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

rual
Razek:

Мне ДСМ тоже не очень понравился очень к вибрациям чувствителен.

У меня есть старый арду, брал его для получения опыта и изучения ПО, покрутил его пару раз на столе и бросил в ящик, ибо горизонт при эволюциях абсолютно не адекватный. Возможно там надо было что то поднастроить, но не думаю что получилось бы сильно лучше. В итоге он у меня так и не летал, летаю только на своём. Щас думаю что с ним делать, даже если ПО улучшели с тех пор, то уменя нет времени и желания прикручивать его на раму и настроить для продажи…

Razek:

Есть тропа к хорошему описанию этой либы?

Идёш по ссылке , скачиваешь сюит, устанавливаешь, в появившейся папке фирмваре находишь АХРС_ЛИБ, там две подпапки заголовки и исходники, в исходниках цепляешь к проекту сишный файл с единичкой на конце (с 2кой для РТОС), в загловках находишь либ, это и есть код екф, прицепляешь его к проекту на линковку, заголовочный файл включаешь в свой исходник инклюдом, в своём исходнике размещаешь структуры с типом из заголовка.
В итоге твоя прога должна инциализировать калман в начале, потом должна заполнять периодически структуру данных сенсоров, там же заполняешь ДТ, поле счётчика оставляешь нулём, если все данные поставляешь разом, если нет ( как у меня), при НЕнулевом счетчике коррекция не происходит ( у мну гира считается 400 раз без коррекции, а корекция происходит 50 раз по готовности акселя), вектор ДУСа подаёшь умноженный на ДТ, компас и аксель либо нормализуешь, либо приводишь к единице в покое, в выходных структурах получаешь углы и кватернион.

Да, ешё… Код под лицензией, посему для “чистоты” не забуть купить у Стшников соответсвующую девоплату и можешь пользоваться для своих исследований без ограничений )))

Либа писана под 103й проц и 303м не идёт, возможно пойдёт на 405/407, но не проверял. Всё что написано найдено экспериментально, по этому не буду клясться что всё именно так и есть, но у меня работает.

Razek

АХРС_ЛИБ уже нашел даже, примеры кое какие есть, пока первый уровень понятности достигнут осталось прикрутить посмотреть что да как, либа под 407 заведтся?

rual
Razek:

407 заведтся?

вот

rual:

возможно пойдёт на 405/407, но не проверял.

Чтоб сильно не вникать, подсунь ИНициализации обнуленные структуры под отладчиком (либо маячёк поставь после функции), если пройдёт, значит надежда есть, если зависнет - занчит сушите вёсла.

SergDoc
rual:

Да, ешё… Код под лицензией, посему для “чистоты” не забуть купить у Стшников соответсвующую девоплату и можешь пользоваться для своих исследований без ограничений )))

Вот блин, да я вообще преступником №1 стану, мало того что к ихним продуктам мне доступ заказан, так ещё и ПО трогать нельзя 😃

rual
SergDoc:

так ещё и ПО трогать нельзя

Ну зачем же так?😃 Нужно верить в доброту и справедливость, джентельмены верят другдругу на слово! Честным людям можно, но это уже офтоп, т.к. вопрос философский.

SergDoc

Да ещё, ковыряюсь с хренью аля CC3D - забыл блин про инициализацию УСБ, повесил пока на проводочках, всё равно на этой плате не летать (хотя кто его знает, она вместо мелкоплаты один в один становится), осталось MPUшку запаять и можно пробовать…
и вообще летать хочу, а тут то снег ,то дождь, то всё вместе, надо наверно к другу в гости на новоселье с коптером припереться, у него лестничная площядка Огромная, можно даже по кругу летать 😃 и от роботов ползающих его отучить, хай тоже летающие делает 😃

rual
SergDoc:

ковыряюсь с хренью аля CC3D

Там же вроде тоже екф?

SergDoc

Я хотел на МПУ посмотреть, но по всей видимости у меня проц дохлый (с прошлой платы выдран) даже бутлоадер не стартанул, думаю и датчики паять не буду…

SergDoc

Пока не получается подменить бутлоадер СС на СС3D …

SergDoc

Загнал бутлоадер, загнал прошивку, светодиод моргает правильно, коннекта нет 😦

SergDoc

Выпаял 25P16 а она не мычит не телится (на программаторе), другой нет, чувствую будет ещё один Wii…

rual
SergDoc:

чувствую будет ещё один Wii…

Сергей, а ЦЦ без неё жить не будет?

Вообщем наигрался я с стшным калманом, вещь сугубо демонстрационная, работет до 100 Гц (так написано в доке), демо проект 50 и у мну тоже 50… Память берёт динамическую, причём при каждой итерации забирает и отдаёт, на этом только скорость теряет, вообщем “полный Пэ”. Тем кто не наигрался могу посоветую расширить кучу не менее 1000 хексов, и это только если ваш код в ней не барахтается

Heap_Size       EQU     0x00002000
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
SergDoc
rual:

Сергей, а ЦЦ без неё жить не будет?

Там много впринципе на неё завязано, но есть порт на Naze32 (с MPU6050), так что думаю это возможно, да и много переделок по i2c значит всётаки плохо у ОР с этой шиной, я же думаю ради эксперимента зацепить SPI датчик в Wii, надо ж уже когда-то программировать учится 😃 (слова правильные нашел для изгнания OP-ских бутлоадеров и то хорошо,)

Razek
rual:

Вообщем наигрался я с стшным калманом

Мда печально, теперь понятно почему его никто не юзает =)

Razek

Он же не СТшный калман юзает

SergDoc

У китайцев с чувством юмора плохо goodluckbuy.com/invensence-mpu-6000-chip-six-axis-…

Razek:

Он же не СТшный калман юзает

а фильтр Кальмана бывает ST-шный или чей-то ещё? не я конечно понимаю, что каждый изобретает свой адаптивный фильтр, но в основе с 60-х годов, таки у всех фильтр Калмана (Или Кальмана) 😃
но не многим, и я тому не исключение, удалось в нем разобраться 😦

Razek

Я с Александром обсуждал CTшную либу iNemo имеющую реализацию ЕКФ - просто стшный калман звучит короче =)))

SergDoc

Я прекрасно понимаю, но не факт что он будет работать правильно, там же-ж куева хуча коэффициентов которые надо подбирать самому )))
блин надеюсь скоро закажу платки, буду догонять 😃 выяснилось вот что флешку новую докупать надо 😦 , а барометр хоть и паяный но рабочий 😃 , надеюсь завтра погода и свободное время совпадут, полетаю 😃

SergDoc

А я дурак с мелкоплатой - пропы 12-е вместо 10-х, а пиды загнал как для 10-х и аппарат легче на 150гр., а я хочу чтобы полетело😵😃😠😃 у меня ж тяги на каждой ВМГ в ДВА раза больше😠 злой сам на себя, чуть аппарат не угробил…

serj

Как-то вы странно рассуждаете, DCM это МЕТОД ОПИСАНИЯ ПОВОРОТА, так же как кватернионы, или углы Эйлера. Он не лучше и не хуже, ничего он не фильтрует.
ну или фильтрует также как любой другой метод - путем интегрирования угловых скоростей.
Говорить что метод описания поворота чувствителен к вибрациям, это кажется, неправильно…

Если вибрации влияют на датчики, кажется, надо устранять вибрации, ибо другой информации у нас нет, (я не рассматриваю пока компас и GPS…)

rual
serj:

Как-то вы странно рассуждаете,

То что ДЦМ описывает поворот понятно, выше имелся ввиду весь алгоритм ИМУ ардупилота, в т.ч. и коррекция по акселю. В деталях его не разбирался, но АПМ1.0 видел как работает - немного покрутил в руках (без вибраций и тряски) и горизонт уплывает градусов на 25.

SergDoc

Отлетал до пищалки (мелкоплата с кальманутым фильтром 😃 ), но в Акро, в Горизонт и Angle аксель вечно пытается куда-то увести аппарат, как и раньше 😦 , положительных два аспекта - отсутствовал дома 20мин, значит 15 стабильно летал ( трёха 1100гр., DT700, 12Х4.5 Gefman, 3000мА/ч 20с), в акро висит как прибитый, т.к. я пилот не очень и путаю педали то, погулял за ним по всему двору - аппарат сбежать не пытался 😃
выводы: надо добивать аксель (или менять) ибо дальше АХ с сонаром и т.п. даже пробовать нечего пока не добьюсь стабильности хотя-бы как в Акро.

P.S. серва быстрая цыфровая не дёргается как припадошная в отличии от стандартного wii - немного уводит по курсу, но и погода не безветренная и yawdeadband можно увеличить т.к. пока работаешь газом всё равно немного руддером подрабатываешь даже незаметно для себя, а т.к. это трёха то и чувствительность высокая, немного есть расколбас PPM платки но терпимо 😃

Ха а писчалка сработала на 3.74 В на банку…

rual
SergDoc:

Отлетал до пищалки

Спасибо за опыт! Одномерный калмане не решает.

SergDoc:

пока не добьюсь стабильности хотя-бы как в Акро.

Видимо аксель надо менять, фильтры сами посебе вытянуть не способны…

SergDoc

Можно попробовать вием “зажать” acc_lpf_factor=100 сделать например, но что-то мне подсказывает что ничего это не даст, т.к. тянет в сторону как будто магнитом каким - вот ровно-ровно а потом поплыл с ускорением, хорошо хоть не переворачивается, надо бы ещё на квадрике(без сервы- она довольно сильные вибрации даёт (в мет. корпусе, мотор наружу) ) попробовать , но пока не могу…