Создание собственной системы стабилизации

SergDoc
Astellar:

Может это я что-то накодил не то?

Может… rual где-то тут кино кидал жестко контроллер прикручен… у меня тоже контроллер жестко на раме работает как с DSM так и с EKF нормально… ДУС не боятся вибраций, вибраций боится акселерометр - вывод: больше доверия ДУС… т.е. в краткосрочной перспективе работают ДУС, в долгосрочной - аксель (грубо коррекция уплывания ДУС)

Astellar
SergDoc:

больше доверия ДУС…

Вроде так и есть… Проверю еще раз все параметры…

Спасибо.

oleg70
Astellar:

и пока не придумал как её сильно погасить

Пусть “ходит”…, так и должно быть…, для стабилизации она не используется, там крен и тангаж нужен…

Astellar:

Может это я что-то накодил не то?

В AHRS надо только Kp и Ki немного подобрать, если углы уже показывает правильно , ошибиться в принципе негде…

k0der

Добрый день.
Не могу найти формулу компенсации магнитометра по акселерометру.
Не подкинете методику?
Спасибо

rual
k0der:

Не могу найти формулу компенсации магнитометра по акселерометру.

Странная какая то постановка ) Что можно компенсировать в компасе акселем?

В магнитометре смещение осей компенсируется по мин/макс значениям.

oleg70
k0der:

Не могу найти формулу компенсации магнитометра по акселерометру.

xh=MX * cos(Pitch) - MZ * sin(Pitch);
yh=MX *sin(Pitch)*sin(-Roll) + MY * cos(-Roll)-MZ*sin(-Roll)*cos(Pitch);

Azimut=atan2(yh,xh)*TooGRD;

if(Azimut<0){Azimut=360+Azimut;}

где

TooGRD - константа перевода из радиан в градусы

Надо только знаки Pitch и Roll правильно подобрать, в зависимости от физического расположения сенсоров, и будет азимут с компенсацией наклонов. (если об этом речь была(?))…

rual
oleg70:

(если об этом речь была(?))…

это главный вопрос! )) … и тема акселя не раскрыта.

Да ещё… формула вроде из одного известного алгоритма. Олег, как она в перевернутом состоянии себя чувствует?

oleg70
rual:

… и тема акселя не раскрыта

Откуда и как получать углы крена и тангажа - это по желанию, я например, себе взял “честные” углы по расчетам IMU (гира+аксель), а потом их использовал для коррекции магнитометра и получения угла направления…

rual:

как она в перевернутом состоянии себя чувствует?

вроде “как положено”…, типа: перевернул - “полетел обратно”, правда при углах близких к 90 гр. наблюдается приличный дрейф (видимо свойство cos/sin)…, а так, свои 3-5 градусов точности вполне достижимы…

k0der

добрый день. а есть код для ардуины, который на выходе выдает все углы? (компас, наклон) соотвественно с компесацией

k0der

нашел проект DIY_Headtracker
исходники както более понятны.
за, против?

12 days later
ssh

Немного не по теме, но тут эксперты собрались. Вопрос простой, можно ли использовать CC3D (или ардупилот) с коптером на щеточных моторах? Вместо регулей - мосфеты, но главное - прошивка. Я так подозреваю, что можно, раз уж это открытые проекты. Вроде как сигналы на ESC идут немного другие, чем ипользуются для щеточных моторов. Вопрос простоты внесения требуемых изменений в код прошивки, если таковые потребуются.

mataor

легко. так как ppm сигнал изначально делается шимом

HikeR

на таких моторах PWM, а не PPM. не нужно трогать CC (или ардупилот), нужны просто регули для коллекторников (если речь идет про двупроводные моторы).

ssh
HikeR:

на таких моторах PWM, а не PPM. не нужно трогать CC (или ардупилот), нужны просто регули для коллекторников (если речь идет про двупроводные моторы).

Странно, я думал сигнал там отличается только частотой. И на ESC-ах всегда указывают почему-то PWM, а не PPM. На коптере 2-х проводные моторы. Померил частоту сигнала, идущего на них - в районе 3,75кГц.
Контроллеров подходящих не встречал, да и это уж слишком, по-моему.

HikeR

моторы управляются не частотой, а скважностью.
что именно “слишком” — не понял.

ssh
HikeR:

что именно “слишком”

Ну у обычного ESC вроде бы задача обрабатывать входящий сигнал и на его основе управлять тремя фазами. Что из себя может представлять контроллер щеточным 2х проводном движком я как-то смутно представляю (в плане стыковки с полетным контроллером). Если только конвертор PPM to PWM, но врядли такие существуют, а если и существуют, то это большая редкость.

да, почитал про PPM, вроде стало понятно, в чем различие. Но как его преобразовать не программным путем в PWM, я не представляю

HikeR

ну, с “просто регулями” я, конечно, погорячился. мелких и доступных, действительно, в широкой продаже не наблюдается.

но если вопрос только в программной части, т. е. сам драйвер уже есть и он ждет не дождется готового PWM на входе, то все проще. в GSC нужно сделать что-то вроде:

  1. ActuatorSettings —> ChannelUpdateFreq для выбранных каналов выставить в 4 кГц, к примеру
  2. на закладке Outputs для этих же каналов задать минимум и максимум как 0 и 250 мкс

вроде бы CC и его потомки работают минимум с микросекундами, поэтому для увеличения разрешения нужно снижать частоту, 2 кГц позволит задать 500 промежуточных значений, а 8 кГц — всего 125.

ssh
HikeR:

то все проще. в GSC нужно сделать что-то вроде:

Отлично. Это мне и нужно было узнать.

HikeR:

2 кГц позволит задать 500 промежуточных значений, а 8 кГц — всего 125.

Это и есть ActuatorSetting —> ChannelUpdateFreq?
Что касается драйверов, то на штатном контроллере используются сдвоенные n-канальные мосфеты, по 1му на канал, насколько мне удалось разобраться. Точно такие же нашел в продаже.

Astellar
ssh:

Вопрос простоты внесения требуемых изменений в код прошивки, если таковые потребуются.

Не уверен, что ардупилот позволит “из коробки” управлять щеточными двигателями (особенно если вы сами хотите делать “контроллер”)
Но внесение изменений там в любом случае достаточно простое - благо система поделена очень хорошо на модули.
Самый влоб - это переписать HAL для RC out - именно через него идут управляющие команды на есц.
github.com/diydrones/…/RCOutput_APM1.cpp

ssh

Спасибо, все-таки предпочел CC3D. Главным образом, из-за цены.
Однако, есть один момент, я хоть и нашел точно такие же мосфеты, как на штатном полетном, но также нашел почти такие же, но чуть дешевле, и с чуть меньшим сопротивлением открытого канала, и выходы разведены удобней. Только смущает входная емкость затвора в 2400пф, что в 2-е превышает аналогичную емкость штатной пары. Не знаю, может ли это вообще создать какие-то проблемы выходам CC3D. По идее, он ведь может управлять и сервами напрямую, или я ошибаюсь?

токи там небольшие. Питается коптер от 2S. Штатный мосфет по даташиту держит 7А продолжительно, т. е. в паре на канал это 14А.