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

jShadow
ИльяПРо:

Это сильный аргумент.Хорошо, ваша правда, если вы это прочуствовали, попробывали на опыте, тогда вы правы, а я нет. Если этой точности хватает, тогда UKF правда не нужен.

Возможно коррекция смещения акселерометра относительно центра вращения точность и повысит - честно признаюсь, не пробовал, т.к. меня устраивает точность того, что есть.

ИльяПРо:

Вот как раз это я и хочу проверить на модели. Я об этих негативных эффектах сам говорил несколько сообщений назад.

ИльяПРо:

Вот это ничем не подтвержденные слова. В спутниках используют фильтр Калмана, а не комплиментарники уже десятки лет. Полагаю это весомый аргумент.

Я говорил об одном и том же, по сути. Какое-то время датчик был устойчивый, фильтр предпочел его, затем датчик стал врать, но по прежнему с низкой дисперсией. Фильтр это сведет с ума гарантированно.

ИльяПРо:

В зависимости от применения. Было бы всем так очевидно, то никто бы и не переходил на фильтр Калмана. Железо дешевеет, растет вычислительная мощность, почему бы не реализовать более точный алгоритм.

Это верно, но при возможностях текущих доступных контроллеров сложная математика - это то, в пользу чего придется жертвовать точностью коррекции положения. Так что пока модифицированный Махони для ориентации и альфа-бета-гамма для положения.

ИльяПРо:

И решение пока для меня очевидно - UKF

Хорошо если так. Я начинал с классического коплиментарника с одной переменной, потому что он в свое время обладал очевидными преимуществами перед “голым” GPS. Сейчас это система с уравнениями 2-го порядка и 13 переменными.

ИльяПРо:

Мы же говорим об алгоритме нахождения ориентации и положения, пригодном для коптеров. Вот интересно как находит ориентацию и положение комплиментарник в активных маневрах, при резких наклонах

Я так понимаю, тест предусматривает полет в режиме, когда пилот управляет скоростями, а не кренами?

ИльяПРо:

Сделал 3 теста, как смог. Ваши замечания, предложения.
1 тест. Компас повернут на 15-20 гр относительно истинного. Жду когда поймает спутники. Взлетаю в ручном режиме. Немного летаю. Перехожу в удержание позиции. Нарушение компаса не повлияли на точность положения и ориентации.
2 тест. Компас повернут на 15-20 гр. Спутники пойманы в прошлый раз, поэтому не дожидаюсь. Взлетаю в ручном режиме и сразу перехожу в удержание позиции. Нарушение компаса не повлияли на точность положения и ориентации.
Есть косяк со снижением по высоте. коптер ведет себя не очень стабильно.

Впечатляет! Мне тоже надо прикрутить поправку курса по GPS.

ИльяПРо
jShadow:

Возможно коррекция смещения акселерометра относительно центра вращения точность и повысит - честно признаюсь, не пробовал, т.к. меня устраивает точность того, что есть.

Я не про это, я про линейные ускорения и ускорения возникающие при движения аппарат по кругу на быстрых скоростях, когда в вектор ускорения свободного падения, по которому происходит коррекция подмешиваются “вредные” линейные и центростремительные ускорения. Я тест проводил несколько страниц назад, сравнивал на карусели фильтр Mahony и UKF.

jShadow:

Я говорил об одном и том же, по сути. Какое-то время датчик был устойчивый, фильтр предпочел его, затем датчик стал врать, но по прежнему с низкой дисперсией. Фильтр это сведет с ума гарантированно.

Вот нужно такие ситуации описать и повышать дисперсию в случае выявления. Только в случае с комплиментарником понижением коэффциентов мне не удалось достичь правильного игнорирования неверных датчиков.

jShadow:

Я так понимаю, тест предусматривает полет в режиме, когда пилот управляет скоростями, а не кренами?

Да

Показываю логи. По оси X - направление востока. По оси Y - направление севера. То есть вид сверху. Это траектории движения аппарата.
Обратите внимание чем больше неверен начальный курс компаса, по которому была начальная калибровка осей, тем сильнее пила. Эта пила - это коррекция GPS. чем сильнее пила, тем больше различается истинный курс и прогнозируемый фильтром. Можно заметить, что через некоторое время даже в 3-ьем тесте пила становиится все меньше и меньше, а можно предположить, что полетав я еще немного, курс приблизился бы к настоящему.

jShadow
ИльяПРо:

Показываю логи. По оси X - направление востока. По оси Y - направление севера. То есть вид сверху. Это траектории движения аппарата.
Обратите внимание чем больше неверен начальный курс компаса, по которому была начальная калибровка осей, тем сильнее пила. Эта пила - это коррекция GPS. чем сильнее пила, тем больше различается истинный курс и прогнозируемый фильтром. Можно заметить, что через некоторое время даже в 3-ьем тесте пила становиится все меньше и меньше, а можно предположить, что полетав я еще немного, курс приблизился бы к настоящему.

А как это реализовано? Встроенная способность поиска скрытых зависимостей? Или какая-то предобработка данных GPS?

ИльяПРо

Это особенность UKF искать зависимости. Вся коррекция по датчикам происходит таким образом, я нигде в уравнениях не указываю, что на что влияет. Даже коррекция по акселерометру работает таким же образом. В уравнении модели акселерометра, я просто из кватерниона достаю прогнозируемый вектор гравитации. Дальше фильтр сравнивает прогноз и показание датчика и через уравнение модели датчика (прогнозируемый вектор гравитации, который находится из кватерниона) находит связь между кватернионом и акселерометром.
С GPS тоже самое. В уравнении модели GPS я указываю, что позиция GPS датчика = положение коптера в глобальной СК + вынос датчика из центра коптера в глобальной СК. Из этого он видит связь с позицией и ориентацией. Плюс само положение коптера зависит от того как правильно поворачивается вектор ускорения акселерометра из СК, связанной с коптером в глобальную СК, то есть связь с кватернионом. Фильтр сам находит как из показания GPS правильно скорректировать позицию и ориентацию.
Так еще в догонку логи 3 теста. Тут изображены графики трех углов. Резкие ступеньки и пилы - это та же коррекция по GPS. Видно, что GPS слабо влияет на крен и тангаж, и чуть сильнее на курс. Причем самые сильные ступеньки наблюдаются в первые 10 секунд. Из этого можно сделать предварительный вывод, что при глитче GPS ориентация не сильно пострадает.

SergDoc

Нее, подожди - у тебя есть мат. модель! от которой и пляшут все коэффициенты…
у тебя есть погрешности датчиков, матрица ожидаемости - фильтр от балды не работает…

ИльяПРо:

В уравнении модели акселерометра

во

mahowik
ИльяПРо:

Блога нет, все что выкладываю идет на форум и на youtube. так что если есть вопросы, то я здесь отвечу.

Образовательный фан проект это отлично и хорошо если он принесет вам свои плоды в виде трудоустройства по профилю или фриланс заказы. Чего собственно и желаю вам! 😃
Однако суровая правда такова, что подобные проекты умирают с падением интузиазма единственного разработчика… Потому если есть планы не похоронить проект, то по хорошему надо развивать комьюнити и выложить его в открытый доступ. Либо если есть планы комерциализации, то как мин. делать порт на парочку актуальных на данный момент контроллеров и пиариться распространением бета прошивок…

Я в свое время тоже бежал за мечтой и даже заработал чутка (на пропеллеры с моторами 😃), но если подумать сколько я всего упустил за это время (2-3 года карьеры, адаптация в новой стране, отдых с семьей и т.д.), то оно того и не стоило наверное…

ИльяПРо

Блин, интересные слова. Сам не знаю, что с этим делать и зачем мне это, если докопаться. По идее я бы к открытому проекту склонился, только чуть попозже. Не строю никаких особых планов на это все дело. Так в свободное время заняться, но что-то уж больно сильно затягивает. Как на этом заработать не знаю, ничего нового не придумываю, поэтому остается этим заниматься так ради фана. Думаете время зря теряю, я тоже иногда к такому прихожу, хз, может и брошу все это дело. По идее работа есть, деньги есть, времени нет. Поэтому вместо этого дела, отдыхать больше, пока молодой)
Могу отдать все исходники Александру Русакову и Сергею Липницкому для продвижения проекта и портирования для F4BY. Особых планов и надежд не строю. Что посоветуете в такой ситуации??

SergDoc
mahowik:

то оно того и не стоило наверное…

А какое хобби у вашего мужа? - Да сантиметров 15 наверное… Да ну нафиг - в какой бы стране не был - надо чем-то отвлечённым от работы и даже семьи заниматься иначе крыша поедет )))
Короче если хобби мешает работе - брось ты нафиг эту работу )))
Народ! Самое то главное - в новом году тема снова ожила и актуальна… И опять все собираются )))

mahowik
ИльяПРо:

Что посоветуете в такой ситуации?

Все бросать, нет, не стоит! Важно не забывать про разумный баланс: работа - личная жизнь - хобби - спорт. А то помнится как в любую погоду (-20 и ветер) и даже вечером с 11-ти до 12-ти летал около супермаркета на стоянке, пока свет не гасили 😃

Да простит меня Алексей 😃, по поводу порта будет легче связаться с разработчиками/продавцами железок и получить железку в подарок. Легче том в смысле, что убедить сделать порт вашей прошивы их силами на их железку будет сложнее 😉

Исходники, если без ГУИ, могут быть интересны лишь разработчикам, но и их достаточно что бы заявить о себе на github. Главное не поленится и хотябы описать над чем работали, плюсы/минусы, фичи…
Если же хотите, что бы на вашей прошивке летали, то тут уже нужен ГУЙ. Наиболее простой путь, реализовать поддержку mavlink протокола и заюзать существующий ГУЙ… И понеслась! Как появятся пользователи, придется хоть как то документировать, прислушиваться и добавлять НЕ нужные вам фичи и тратить время на саппорт… К чему это я? 😃 К тому что с развитием проекта, появляется куча нудной работы, которая может убить нафиг все желание что либо вообще делать… Тут уже хорошо иметь команду. Где благодарные пользователи могут помочь и с документацией и с саппортом…

И даже если с проектом ничего не выйдет, то плюсы тут все равно есть. Хотя бы изучение лин. алгебры и статистики, которые очень помогут в освоении алгоритмов машинного обучения, а это сейчас крутой тренд. Так что окупится! 😉

SergDoc:

Да ну нафиг - в какой бы стране не был - надо чем-то отвлечённым от работы и даже семьи заниматься иначе крыша поедет )))

Без хоббей ни куда ясное дело!
Я лишь хотел сказать что в идеале нужно искать вектор как совместить работу и хобби и не забывать/забивать на остальное 😃

jShadow
ИльяПРо:

По идее я бы к открытому проекту склонился, только чуть попозже.

Открывать проект нужно чем раньше, тем лучше - появятся интересующиеся, тестирующие, делящиеся идеями.

ИльяПРо:

для продвижения проекта и портирования для F4BY

ИМХО, для разрабов железа будет проще подарить вам железку, чем заморачиваться с портом.

mahowik:

Исходники, если без ГУИ, могут быть интересны лишь разработчикам, но и их достаточно что бы заявить о себе на github.

Согласен на все 100%.

mahowik:

К тому что с развитием проекта, появляется куча нудной работы, которая может убить нафиг все желание что либо вообще делать… Тут уже хорошо иметь команду. Где благодарные пользователи могут помочь и с документацией и с саппортом…

Тоже верно, но к этой команде надо прийти, а для этого надо довести прошивку до летающего состояния, причем интересного пользователям. А насчет нудной работы по поддержке - любой успешный проект - это прежде всего пользователи. Не будет пользователей - сколь бы хороши не были алгоритмы, проект сдохнет.

ИМХО: Большая беда многих хороших проектов в том, что хотелки и багрепорты простых пользователей начисто игнорируются если они идут в разрез с хотелками разработчиков. А иногда и коммерческие интересы разработчиков ставятся выше интересов сообщества пользователей - это работает с массовым рынком и крупными компаниями, способными тратить миллионы на рекламу. Для маленьких коллективов - это однозначно тупиковый путь. Если будет крепкое сообщество - коммерция придет сама собой.

alexeykozin
jShadow:

ИМХО, для разрабов железа будет проще подарить вам железку, чем заморачиваться с портом.

+100500

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

ИльяПРо

Да вообщем то ничего уникального в моей прошивке нет. Все те же пиды, все тот же UKF как у автоквада. А сервис очень плох, нет гуи, нет приложений калибровки мага и акселя, поддерживается только PPM, логи пушутся в своем формате, визуализируются в labview. Если все переписывать, то получится тот же автоквад 2012-2014 года. И желания нет переписывать. Поэтому особой полезности этот проект не принесет. Создавался этот проект для моих исследований, чтоб можно было попробывать разные схемы, решения, посмотреть графики в разных коородинатах, с разными переменными, подключить всякие датчики тока и т.д. Для обычного пользователя это не интересно.

alexeykozin:

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

Наверное я неправильно понимаю слово порт. Я имел ввиду переопределить переферию своего полетника для адаптации под F4BY. Я специально старался задействовать все то же самое, что и на F4BY, вместо SDIO взять SPI, то есть изначально планировал на F4BY перейти.Другое дело, это как пользователю перенастроить вместо PPM, например PWM или SBUS. или как пользователь сможет посмотреть логи. Как ему откалибровать компас или аксель, моя процедура весьма геморойна.

SergDoc

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

Илья, в 405-м, 407-м проце есть проблемы с sdio, только 429-й нормально работает с ней

ИльяПРо
SergDoc:

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

Поэтому я тоже особо смысла не вижу, так для себя поиграть…

SergDoc:

Илья, 405-м, 407-м процессы есть проблемы с sdio, только 429-й нормально работает с ней

Возможно поэтому у меня SDIO не полетело, буфер больше 1 кб не хотел записываться.

jShadow
ИльяПРо:

Поэтому я тоже особо смысла не вижу, так для себя поиграть…

Тогда тем более есть смысл выложить в открытый доступ куда-нибудь на гитхаб - Вам поиграть, кому-то другому - интегрировать в свой проект. Наработки не должны пропадать даром.

SergDoc

Есть у меня одна идея, которая может избавить от внешнего гуя да и много от чего, но пока только размышления и прикидки как это всё уместить в мелком полетнике ,

  • в фы4бы это влезет…
oleg70
ИльяПРо:

Как на этом заработать не знаю,

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

ИльяПРо:

Сам не знаю, что с этим делать и зачем мне это,

Результаты впечатляют, талант налицо, это не пропадет в любом случае, а может и станет чем то большим чем хобби…
(у меня так, например, пока не получается, и не факт что вообще получится…)))

jShadow
oleg70:

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

Вот поэтому в том числе хорошие проекты загибаются. Один человек только в исключительных случаях сделает “так же” как и компания с целой командой инженеров, а уж “лучше” - вообще из области фантастики. Все успешные проекты стали такими, потому что еще на стадии экспериментальной версии выложили софт в открытый доступ и он привлек других разработчиков. Сформировалась команда и проект начал жить и развиваться.

oleg70:

это не пропадет в любом случае

Если прятать код и говорить “это тот же AutoQuad” - проект загнется как только пропадет энтузиазм.

Я видел много хороших проектов с действительно хорошей идеей, которые не взлетели по одной из следующих причин:

  1. Разработчики изначально позиционировали проект как коммерческий продукт (включая бета-версии) - проект просто не стартовал
  2. Разработчики прятали код - проект сдувался как только у разработчиков пропадал энтузиазм. Эта причина часто идет вместе с предыдущей
  3. Разработчики не слушали пользователей - по сути пользователи были толпой бесплатных бета-тестеров для хотелок разработчиков
rual
ИльяПРо:

я нигде в уравнениях не указываю, что на что влияет.

В матрице прогноза и матрице отношений состояние-измерение.

mahowik:

Я в свое время тоже бежал за мечтой и даже заработал чутка (на пропеллеры с моторами ), но если подумать сколько я всего упустил за это время (2-3 года карьеры, адаптация в новой стране, отдых с семьей и т.д.), то оно того и не стоило наверное…

Стоило, Александр, ибо наше хобби неотъемлемая часть нас. Если б мы были другими - нас бы здесь не было )

ИльяПРо:

Могу отдать все исходники Александру Русакову и Сергею Липницкому для продвижения проекта и портирования для F4BY. Особых планов и надежд не строю. Что посоветуете в такой ситуации??

ДУмаю, что надо выкладывать в открытый доступ для всех, тем более что основа - открытый код. Пусть используют в своих проектах. Хотя с целью продвижения F4BY было бы сделать порт.

mahowik:

Если же хотите, что бы на вашей прошивке летали, то тут уже нужен ГУЙ. Наиболее простой путь, реализовать поддержку mavlink протокола и заюзать существующий ГУЙ…

ГУЙ для базового функционала не нужен, нужна простота, доступность, надежность и минимальный базовый функционал.

jShadow:

Открывать проект нужно чем раньше, тем лучше - появятся интересующиеся, тестирующие, делящиеся идеями

Пока энтузиазм есть )))

SergDoc:

На мой взгляд, система должна быть проста для пользователя как наза, мультивий со всеми его производными, или вообще как кк2- ну это уже перебор…

Тут дело даже не в фичах , которыми можно со временем обрасти, важна базовая функциональность дружелюбная к пользователю: прикрутил-бросил-полетело )))

SergDoc:

Есть у меня одна идея, которая может избавить от внешнего гуя да и много от чего, но пока только размышления и прикидки как это всё уместить в мелком полетнике ,

  • в фы4бы это влезет…

F4BY нужна своя прошива, ибо кому нужен арду купят пикс.

oleg70
jShadow:

Сформировалась команда и проект начал жить и развиваться.

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

jShadow
oleg70:

Тут надо учитывать еще и уровень материала вокруг которого хочется собрать команду, и для начала потрудиться
“разжевать” людям максимально доходчиво сам предмет…

Это если ставить целью создать команду и начать развивать проект.

А если как в случае Ильи - просто интересно самому поковыряться - выкладывание в публичный доступ и дополнительный анонс где-нибудь в блоге в РЦДизайн или RCG требует прктически нулевых дополнительных усилий, а вероятность того, что кто-то заинтересуется кодом и логикой - возрастает многократно. Т.е. ROI действия в виде простого выкладывания исходников весьма высок.