flybrain. передатчик + приемник + автопилот. powered by stm32

AlexSneg
RedSun:

Так что вполне хватит обратной связи по угловой скорости, которую, собственно, механический флайбар и обеспечивает.

Таую штуку я уже внедрил по результатам работы над ошибками.

RedSun:

требующий в общем случае дополнительных датчиков…

Ну вот как-бы да, было бы супер, но увы и ах… приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.

RedSun:

каждый раз проводить предполетную калибровку

Как калибровку не проводи, ДУС все равно врать будет по отношению к реальным осям bodyframe. В общем случае нельзя считать что показание по ДУС по х это pitch, а по y - roll. Вообщем не хотелось бы сейчас в детали вдаваться, но я эту проблему порешал. Сейчас платформу можно ставить в самолет с очень большими допусками во всех плоскостях и кренах. Сейчас “удобство пользователя” хотя бы через консоль доведу до более менее приемлемого варианта и буду новые тесты проводить. Вчера сделал режим полета по кругу и удержание высоты без использования GPS. Посмотрю как будет отрабатывать маневры разворотов, там уже будет видно где еще подшаманить.

kimu
RedSun:

В электронный, в принципе, можно запихнуть и стабилизацию угла, но это будет уже дополнительный функционал, требующий в общем случае дополнительных датчиков…

Она там тоже есть. Только для получения угла из скорости никаких лишних датчиков не надо, нужен интеграл.
Хотя об чём это я? Модель уже и так давно знает свою ориентацию в пространстве, да и в ходе настроек датчики должны были как-то определится вдоль какой оси им посчастливилось стоять. Дальше дело за миксами и математикой.

AlexSneg:

приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.

Если не нравится обратная связь, можно при настройке попросить отклонить рули (по очереди) на определённый угол (+5, 0, -5) и по ширине импульса управляющего сигнала примерно определить геометрию.
Правда не понимаю что даст угол отклонения сервы без знания формы рулевой поверхности…

RedSun
AlexSneg:

Ну вот как-бы да, было бы супер, но увы и ах… приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.

Как калибровку не проводи, ДУС все равно врать будет по отношению к реальным осям bodyframe. В общем случае нельзя считать что показание по ДУС по х это pitch, а по y - roll. Вообщем не хотелось бы сейчас в детали вдаваться, но я эту проблему порешал. Сейчас платформу можно ставить в самолет с очень большими допусками во всех плоскостях и кренах.

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

kimu:

Только для получения угла из скорости никаких лишних датчиков не надо, нужен интеграл.

Фигня в том, что дрейф гироскопа (сиречь ошибка оценки угловой скорости) при простом интегрировании вызывает нарастающую со временем ошибку оценки угла. Именно поэтому для коррекции горизонта используются еще и сигналы с акселерометров. А вот с курсом такой фокус не проходит, оттого и приходится коптерщикам-вертолетчикам всякие компасы использовать…

kimu:

Правда не понимаю что даст угол отклонения сервы без знания формы рулевой поверхности…

…а еще без знания ее площади, плеча и прочих нужных параметров…

AlexSneg
RedSun:

Подозреваю, что у Вас эта проблема как-то так и решена.

Да, решена. Я постоянно привожу текущие проекции векторов датчиков к реальным осям bodyframe, заданному референсному положению. У меня есть все эти показатели, только они уже после соответствующей обработки математической появляются.

RedSun:

всякие компасы использовать…

Тут все в порядке. У меня полноценные 9 осей: гира+аксель+компас. Курс держится четко, никуда не уходит. Погрешность в пределах 0,5 градуса

Drinker

Вставлюсь. С точки зрения созерцателя вроде бы все идет как и должно.
Но последнее утверждение вызвало улыбку что-ли. Я про нольпять градуса.

Syberian
Drinker:

утверждение вызвало улыбку

Если алгоритм содран с моего, там действительно в карусельном тесте не более чем на 0.5 град уходит по крену и тангажу. Курс шарится ± 3 градуса, что с компаса возьмешь…
А вот обсуждение “формы закрылков” и какой-то “телорамы” с осями в разные стороны реально доставляет 😁

Drinker
Syberian:

Если алгоритм содран с моего

А у тебя какой алгоритм? арг или марг товарища себастьяна магвика? или дцм?

Syberian:

и какой-то “телорамы”

Тут правильный термин - бодифрейм это система координат связанная с телом.

AlexSneg
Drinker:

А у тебя какой алгоритм?

У меня EKF на кватернионах полноценный. Используется gyro (400Гц) + accel(100Гц) + Mag(~50Гц). Цикл update+predict работает на частоте гироскопа. Дрейф по всем плоскостям практически нулевой, сколько бы я плату ни крутил и как бы долго ее не оставлял на месте лежать. Цифры плавают в пределах 0,8-0,5 градуса.

Drinker
AlexSneg:

полноценный

Что значит полноценный? екф бывает неполноценный.

AlexSneg:

Дрейф по всем плоскостям практически нулевой

Дрейф и точность разные вещи. Ты говорил про точность в нольпять градусов. Чем ты это проверял? Транспортиром?

AlexSneg
Drinker:

екф бывает неполноценный

Да, запросто, буквально недавно видел один проект с исходниками. Нет оно конечно как-то работает, но…
www.gluonpilot.com/wiki/Main_Page Скачай исходники, получи удовольствие

Drinker:

Дрейф и точность разные вещи

Может быть терминология неудачная. Дрейф это когда я положил, засек сколько градусов по всем осям, потом через час пришел, проверил. В градусах все три оси в тех же положениях.
Про точность. Кладем на лист бумаги, обвели ручкой контур. Взяли плату, покрутили, положили. Выровняли по отрисовке. Смотрим сколько показывают. Расхождение меньше градуса от начального варианта. Если рядом сильный магнит, оно конечно поедет на пару градусов по Yaw. Такое объяснение устраивает? Терминологию придумай сам. Конечно, надо не про точность вести речь, поскольку не с чем сравнивать , но о повторяемости ошибки относительно начального референсного положения говорить вполне можно. Знать конкретно где север, а где юг, мне на фиг не нужно и глубоко безразлично. Для ОСД конечно я прямо в поле на взлете сравниваю GPS и компас и засекаю реальную ошибку, после этого это изначение использую для показания истинного направления на север. Сейчас на показания YAW при вычислениях можно опираться примерно до крена в 80 градусов в любом направлении, это я выяснил чисто экспериментом. В принципе при кренах больше, о курсе речь уже не идет чисто физически.

Drinker

ты положи поделку на стол, засеки 0 по яву и начинай поворачивать. При повороте на 90 по транспортиру, сколько градусов у тебя яв показывает? предположу, что не 90, а больше

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

AlexSneg

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

Oliver
AlexSneg:

Но что бы там ни было, оно вообщем-то не важно для самолета, у которого GPS есть на борту

Эгм? Большинство людей считают, что самолеты не могут летать боком или хвостом вперед. Они ошибаются.

AlexSneg

ошибка курса это разность показаний GPS по курсу и компаса по курсу. Где здесь затруднение в определении летим мы хвостом вперед или боком?

Oliver
AlexSneg:

ошибка курса это разность показаний GPS по курсу и компаса по курсу.

Это ж не ошибка, это разные курсы. И они живут совершенно разной жизнью. Особенно показательно на коптерах и прочих дьявАльских машинах.

kimu
AlexSneg:

ошибка курса это разность показаний GPS по курсу и компаса по курсу.

GPS не может показать курс (Курс судна — угол между продольной осью летательного аппарата и направлением на север). Он может показать направление путевой скорости, что есть курс + угол сноса (Угол сноса — угол между продольной осью летательного аппарата и направлением его движения относительно земной поверхности).
Сравнимая показания GPS и компаса можно найти угол сноса (который зависит от ветра, конструкции модели и её положения в пространстве), но никак не ошибку компаса.

Drinker

Позволю себе включиться в диспут академиков.

kimu:

GPS не может показать курс

ГПС показывает курс в виде угла между вектором перемещения приемника и линией, проходящей через географический север и приемник. Тоесть куда смотрит морда аппарата действительно не узнаешь. А вот компас как раз показывает угол между тем куда смотрит морда и линией, проходящей через магнитный полюс земли. Для Москвы эта линия смещена от географической гдето на 7 градусов.

kimu:

но никак не ошибку компаса.

Прав на 100%

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

AlexSneg
kimu:

Он может показать направление путевой скорости, что есть курс + угол сноса

Нет. Тут уж дудки. GPS показывает именно истинный курс движения тела относительно географического северного полюса. Чем выше скорость тела, тем точнее оно его определяет. А компас вообще показывает нечто. Я по совету Дринкера попробовал с транспортиром. 90 градусов у него между осями нет 😃)) Врет градусов 10 минимум. Радует только то, что повторяемость вранья с точность до 1 градуса. То есть, предпринять попытки дальнейшей калибровки можно.

Летал сегодня опять. Специально поехал в сильный ветер. Оооооо! Летали 10 килограммовые и я. Непосвященные сначала поржали, когда я порулил на взлет со своими 800граммами, потом долго удивлялись. Весь пенопласт тихо курил в сторонке, пока ветер не утих. Приходил Nedz со своим крылом и фишкой, тоже со мной полетал. К несчастью ветер довольно быстро кончился, редко радовал порывами. В общем, стабилизатор работает просто отменно сейчас, подобрал я все коэффициенты для своего самолета. Я конечно еще не подключил камеру, но специально раскачивал самолет, пытаясь сбить ему горизонт. Ни фига. На вибрацию автопилот похоже так же не обращает внимания, хотя сегодня я специально жестко прикрепил плату к корпусу, фактически приклеил, убрал все виброгасители. Разницы не почувствовал, как летало строго горизонтально, так и летает. Так что, тему борьбы против вибрации я для себя похоже закругляю, математика и вычислительная мощность победила кривые пропеллеры. Руление по кругу более менее стало работать, остался единственный момент - над удержанием высоты в развороте поработать. Сейчас теряет высоту, придется рулем высоты поинтенсивней приподнимать и рудера поменьше. Сегодня займусь доработаками, завтра опять на испытания. Буду проверять стабилизатор в полете кверху пузом и вертикально вверх, сейчас такие маневры самолет не допускает в принципе, ослаблю слегка эту удавку.

Попробовал дома приемник + передатчик видео 1,5Ватта, подносил в плотную. Потери в RSSI (433Мгц) при включеном рядом видео составляет 5 dB. Не смертельно. Допилю полет по кругу и удержание высоты и вплотную займусь установкой камеры.

baychi
AlexSneg:

Я конечно еще не подключил камеру,

Угу, до подключения камеры все фишководы тоже уверены, что это идеальная система стабилизации. 😃 Без OSD видна только работа гироскопов.

Тем не менее рад за Вас. И буду ждать реального видео.

kimu
AlexSneg:

Нет. Тут уж дудки. GPS показывает именно истинный курс движения тела относительно географического северного полюса.

Не хочу показаться излишне заумным, но нет такого понятия в навигации. “Курс” и “направление движения” совпадают только у железнодорожного транспорта. Я ж не зря умную цитату с определением курса вставил…

Для наглядности картинка из интернетов:

Где:

  • линия курса - то, что в навигации называется курсом, и что пытается с дикой погрешностью показать компас;
  • путь судна - собственно направление движения относительно земли, то, что я за неимением более умного слова обозвал направлением путевой скорости, именно его с дикой точностью показывает GPS;
  • альфа - угол сноса, на который (даже при нулевой погрешности) отличаются показания компаса и GPS.

Рад что всё хорошо работает, но если у компаса повторяемость показаний в пределах 1 градуса, не лучше ли его один раз при настройке откалибровать и дальше не трогать?
Направление движения это хорошо, но иногда и курс знать неплохо.

Drinker
AlexSneg:

Летал сегодня опять.

Есть пара вопросов.
На чем летал, какая стадия поделки, какие функции поделка выполняет, какие коэффициенты ты подобрал?