Проект Мегапират на самик!
- происходит приближение по горизонтали, с одновременным снижением/подъемом по высоте.
01:56-02:12 От начала до конца маршрута до точки никакого снижения не замечено, еще поднялся даже.
03:10-03:40 Тоже не пытается спускаться, или у него не получается?
- если координаты внутри радиуса 50м до точки, но высота еще не достигнута, задается снижение/подъем по спирали.
Поскольку радиус спирали определяется параметром circle radius, который по умолчанию 100м, самолет потащился на радиус спиралить, попутно снижаясь - там и произошло “касание” по высоте в твоем случае.
02:33 - высота явно не в 10 метрах, как минимум 13 (он сам же справа пишет).
Я то думал что попадание в окно ±50 по расстоянию должно одновременно совпасть с попаданием в окно ±10 по высоте как ты и описывал, а тут получается что сначала приблизился по расстоянию, а высоту можешь достигнуть и на удалении в 300 метров?
P.S. Радиус у меня 50 метров или около того.
Еще, 06:49 - он чо сказать хотел? Вроде что-то обрезалось?
в стабе и альтхолде
Он пытается удержать курс по компасу? А можно поподробней?
Например про крен и тангаж понятно - я указываю стиком отклонение от горизонта, отпустил стик - самолет встал в 0. А тут как?
01:56-02:12 От начала до конца маршрута до точки никакого снижения не замечено, еще поднялся даже.
смотрим на горизонт. Прицел ниже нулевого уровня, т.е., по идее, должен снижаться. Однако, уровень нуля на горизонте сдвинут вверх на фоне равномерного и прямолинейного движения. Поскольку при этом включен полный газ, предполагаю влияние наводок на магнетометр в твоем конкретном случае.
Аналогичное поведение в других случаях снижения навстречу ветру (с газом).
а высоту можешь достигнуть и на удалении в 300
Не можешь, разве что дует с такой силой, что самолет сносит к черту.
Он пытается удержать курс по компасу? А можно поподробней?
руководство, гл. 6.4
смотрим на горизонт. Прицел ниже нулевого уровня, т.е., по идее, должен снижаться. Однако, уровень нуля на горизонте сдвинут вверх на фоне равномерного и прямолинейного движения. Поскольку при этом включен полный газ, предполагаю влияние наводок на магнетометр в твоем конкретном случае.
Аналогичное поведение в других случаях снижения навстречу ветру (с газом).
Наводки не стыкуются, попробую обосновать:
1.Перед этим вылетом я как раз дома тестировал датчик тока при подключенной наземке, газовал и в максимум и в минимум, курс не ехал, если только 2-3 градуса.
2.Даже если предположить что провода в полете сместились и появились наводки на компас, то что это дает?
Показания компаса - постоянны, так как мы движемся прямолинейно и ток, а соответственно и наводки тоже постоянны.
А, как я понимаю, коррекция горизонта включается только при изменении магнитного курса, и если компас стоит , то он на горизонт не влияет.
Предположения:
1)Может влияет выкос - мое мнение не должен, все должен компенсировать стаб.
2)Может неправильно настроен угол установки платы по тангажу - склоняюсь к этому варианту.
Вопрос по алгоритму:
Как я вижу из видео самолет опустил вниз нос на 5 градусов и ждал снижения, но этого было мало и он продолжал лететь горизонтально. Правильно?
Почему бы не добавить в алгоритм увеличение угла, если например после 5 секунд снижаться так и не начали?
не добавить в алгоритм увеличение угла
Если бы у нас была идеальная ИНС, я бы так и сделал.
Есть еще один вариант, могу дать тебе поршивку в частном порядке “поиграться”, подобрать коэф-ты, потому что сейчас я лишен возможности облетывать сам. На земле и в симе настроить не получится, нужен реальный полет. Цель - добиться более быстрой сходимости горизонта по тангажу и, соответственно, решение проблемы с вялым снижением и набором из-за ухода горизонта по тангажу. Попробуешь?
Там все просто, в наземке появится отладочное окно, где можно менять коэф-ты.
Как я понял ты прелагаешь подкорректировать коэффициенты алгоритма определения горизонта.
Могу попробовать, почему бы и нет, но с другой стороны это наверное черевато еще морковками ( А зимние морковки череваты походами по сугробам …
Еще вопрос как все это проверять лучше/хуже, ведь реальный горизонт мы не видим, и есть куча факторов по которым можно косвенно судить врет он или нет.
Да и поможет ли тут горизонт, даже если он станет полностью правильным, то могут появиться нисходящие и восходящие потоки, в которых 5 градусов не хватит, и опять будет то же самое?
И еще, не совсем понял про идеальную ИНС, а чего страшного если с таким горизонтом(не всегда правильным) сделать несколько градаций тангажа для подъема/снижения. То есть не хватает 5 включили 10 и т.д.
руководство, гл. 6.4
Там написано что если стик курса в нейтрали - то держим курс.
А если не в нейтрали?
А если был курс 10 градусов, я повернул элеронами на 90, стик курса не трогал, он должен вернуться в 10? Это явно не так.
Значит не держит - а что то другое?
Я к тому логика работы стаба по курсу координально отличается от тангажа и крена. Вот и хочется понять как это все задумано.
Несоответствие показываемого тангажа и реального набора/спуска это те грабли на которые я наступил еще в сентябре месяце. После этого начал эту проблему целенаправленно вылетывать на предмет анализа ситуации и ее решения в навигации. Я по всякому менял коэффициенты IMU и прочую шнягу в алгоритмах, прокладку проводов, а после этого взлетал и анализировал. В результате выводы были сделаны следующие:
- Это не ошибки магнетометра из-за близких проводов с большими токами.
- Невозможно на 100% проэмулировать на коленке линейное ускорение при наборе высоты или ее сбросе, особенно в сочетании с креном тела в развороте и переходных процессов от снижения к нормали. Ошибка будет появляется в любом случае, вопрос лишь в ее величине и правильной оценке внутри алгоритмов. Никакие компенсации по GPS на 100% не помогут, а иногда делают только хуже.
- Реальный самолет, вот хоть ты тресни, прямо НИКОГДА не летает. Тангаж может показывать вверх, но самолет реально летит вниз или наоборот. Это зависит от десятка факторов: конструкция планера (летает с задранным носом или поднятым хвостом и не нулевым положением рулей высоты), ветра в данной конкретной точке, ошибка вычисленного тангажа/крена, кривизны GPS и много всего другого. Можно прямо в полете попытаться ручками снять ошибку, но это не даст желаемого результата, так как ошибку сняли при некоторых мгновенных условиях. Через 30 секунд условия будут другими.
- Я спаял и собственноручно облетал 4 своих устройства. Двух, работающих на 100% одинаково, ни разу не получилось. О повторяемости можно говорить только в пределах некоторых допусков. Поэтому, тонко подобрав коэффициенты работы IMU для своего железа, не факт что для другого это тоже хорошо. Поэтому на каком-то этапе мне пришлось опять загрубить компас и аксель и вывести на передний план гироскоп.
- Во всех АП в той или иной степени присутствует данная проблема. Конечный пользователь замечает ее не сразу, иногда вообще не замечает. Не зря Тим в своей последней конструкции подчеркнул, что в первую очередь пытается решить проблему именно со спуском/набором высоты. Значит тоже чешет затылок на эту тему. Решить задачу в лоб путем смены установки руля высоты с X градусов на “побольше” не получится потому что костыль он и есть - костыль.
Очень большую пищу для размышлений, как разработчик, я получил когда ночью катал самолет на машине кругами на стоянке большого супермаркета.
Двух, работающих на 100% одинаково, ни разу не получилось. О повторяемости можно говорить только в пределах некоторых допусков.
Я думаю, что датчики дают разные результаты, только из-за этого не стоит ожидать полной идентичности устройств.
Можно для этого писать логи на одном аппарате, на котором установлено несколько плат (при наличии их у владельца), причем необязательно их включать в контур управления. Просто запись датчиков в логи и потом сравнение даст имхо основательно разнящиеся результаты.
А уж дальше копать совершенство алгоритмов.
Просто запись датчиков в логи и потом сравнение даст имхо основательно разнящиеся результаты.
Ты упускаешь одну существенную деталь.
Дома на столе ты можешь сравнивать реальное положение платформы с текущими вычисленными и заниматься оценками и анализом.
Логи снятые в воздухе сравнивать не с чем 😃 Реального положения тела и вектора поступательного движения мы не знаем, хоть умри от своих хотелок. Я ведь вот не зря написал про то, как самолет в машине катал 😉
Я пытался уже подъехать к решению этой проблемы и так и сяк. И даже уже испытал пару вариантов. По результатам испытаний был только один положительный момент - теперь у меня есть режим аварийной навигации при достижении сверхмалых высот, этакая защита самолета от дурака разработчика и тестера. В попытках найти истину 2 раза данная фича в навигации мне самолет по большому счету спасла.
Ты упускаешь одну существенную деталь.
Вообще-то я истину не упоминал, а говорил про разные результаты “идентичных” плат:
Просто запись датчиков в логи и потом сравнение даст имхо основательно разнящиеся результаты.
Понятно, что истина даже не посередине, а где-то сбоку, возможно очень далеко.
А опыты в машине еще добавят свой неповторимый “привкус” искажений магнитных полей.
Но это не повод бросить поиски и сказать: “Кажись ничего не получится, все уже учли…”
Никто не ждет “волшебной таблетки”, собираем статистику:)
Да, пока собираем и думаем. Опускать руки никто не собирается. Жаль, что сейчас не летное время года. А это как раз та проблема решение которой лежит в плоскости большого кол-ва реальных тестов, а не полетов в виртуале.
в которых 5 градусов не хватит, и опять будет то же самое?
Ты неправильно “раскусил” логику работы по высоте. Сейчас используется линейная функция: 0.7 градуса тангажа на метр разницы по высоте от цели, максимум вверх 15, минимум (вниз) 20 градусов.
Т.е. даже если совсем уполз горизонт, ему хватит держаться где-то рядом с целевой высотой. А горизонт имеет свойство вставать на место. Поэтому, процесс не является необратимым.
Там написано что если стик курса в нейтрали - то держим курс.
А если не в нейтрали?
А если был курс 10 градусов, я повернул элеронами на 90, стик курса не трогал, он должен вернуться в 10? Это явно не так.
Значит не держит - а что то другое?
Логика проста: есть текущий курс, который автопилот в стабе держит при помощи РН, если стик “педалей” в нейтрали. Если стик отклоняешь, удержание отключается до момента возвращения в нейтраль, и РН управляется со стика напрямую. При возврате в нейтраль запоминается новый курс для удержания.
Дополнительно, то же самое происходит при отклонении стика крена в самолетах. Удержание отключается для возможности поворота виражом.
это те грабли на которые я наступил еще в сентябре месяце.
- возможно
- GPS здорово помогает, если его правильно применять, даже с задержкой. Но нужен жесткий контроль применимости.
- Неважно, куда летить самолет, парашютирует или разгоняется в плоскости. Цель ИНС - отображать расположение реального горизонта.
- Если для системы нужно “затачивать” коэффициенты для каждого индивидуального чипа в пределах номенклатуры - это хреновая система, хоть и красивая. Если хоть один параметр уйдет за ожидаемый диапазон - все полетит к чертям. Система должна быть устойчивой (robust) и не иметь “залипших” состояний (gimbal lock, сингулярности, полюса, расходимость).
катал самолет
а я баловался с вводом смещений акселя по осям, что, в принципе, почти то же самое 😃 Ты прав, не все можно просчитать “на коленке”.
У Сергея сложность в том, что он гоняет АП буквально “перед носом”, точки расположены в 150 метров максимум. Поэтому и “перформанс” страдает, и все “бока” с лагами ЖПС и компаса вылезают, т.к. АП крутится туда-сюда.
Вообще-то все правильно, надо мучать по полной программе, но в таких узких рамках точного выхода на “точку” и по высоте ждать не приходится: я специально убавил “злобность” автопилота, чтобы не гробить аппараты в случае чего.
Задал бы метров 500 туда-обратно хоть раз, для интереса.
Сейчас используется линейная функция: 0.7 градуса тангажа на метр разницы по высоте от цели, максимум вверх 15, минимум (вниз) 20 градусов.
Т.е. даже если совсем уполз горизонт, ему хватит держаться где-то рядом с целевой высотой
Хмм, странно, судя по видео он выставляет 5-7 градусов, но никак не 15 при 20 и более метрах разницы.
Олег, еще вопрос из другой области:
Можно ли как-то ограничить газ в авторежимах, не ограничивая его в мануале и стабе?
Просто после просмора видео я понял, что много времени полета проходит при 100% газе(наваливает автопилот), а у этого режима очень плохое соотношение тяги к потребляемой мощности.
не ограничивая его в мануале и стабе?
Можно. Добавлю.
Бывают “перекачанные” сетапы, где полный газ может спалить что-нибудь.
А вот в твоем случае полный газ вызван безуспешной попыткой достичь скорости по земле, которую ты сам и выставил, против ветра. Если скорость в норме, газу больше, чем надо, он не даст.
Можно. Добавлю.
Бывают “перекачанные” сетапы, где полный газ может спалить что-нибудь.
Я просто думал вдруг как-то можно сделать это уже существующими настройками. Ок, тогда ждем, пока попробую просто уменьшить везде.
У меня как раз тяжко ему на максимальном газе, регуль греется сильно.
А вот в твоем случае полный газ вызван безуспешной попыткой достичь скорости по земле, которую ты сам и выставил, против ветра. Если скорость в норме, газу больше, чем надо, он не даст.
Это понятно, вопросов нет, но без датчика воздушной скорости тут без вариантов походу…
Кстати пробовал что-то в этом направлении?
Отдельно от РУ сейчас никак, АП юзает всю доступную по РУ шкалу газа.
Syberian, насколько я понял, ваш ARM проект начался с платы STM32F1-Discovery, для использования которой надо было прикупить плату с датчиками. Цена железа получается около 90 долларов.
Недавно вышла новая STM32F3-Discovery, где датчики оринтации уже встроены. Есть гироскоп, акселерометр, компас.
Самое главное, цена вопроса - всего 11 баксов (http://www.digikey.com/…)
Вы не планируете поддерживать новое железо? 😃
ваш ARM проект начался с платы STM32F1-Discovery
Во-первых, началось все с STM32F4-Discovery
Во-вторых, F3 и F4 это совсем два разных мира.
В-третьих, уже Олег уже сказал, что даунгрейда не будет. Сделать даунгрейд - это фактически новый проект с нуля + кастрация по ОСД и звуку + колхоз с бародатчиком высоты так как его все равно не хватает на плате DF3
Нет. Железка будет только одна. И не ф1, а ф4, почувствуйте разницу.
Тема слегка закисает:(?
В самом конце моего поста привожу “постраничную” статистику активности (надеюсь, что не интереса к теме).
Не так давно я аж подпрыгивал от интереса, получив смс-ку о “движухе” в теме.
Почти перестал подпрыгивать:)
Непростое время было, когда c АВР на АРМ переход “вдруг” пришлось делать.
Сейчас, похоже, тоже время нелегкое. Погода?
На графике по горизонтали номер страницы, по вертикали вниз - сколько дней эта страница “тянулась”.
Извиняюсь за небольшой офтоп, несмотря на затишье в теме, все равно летаю на МРХ, хоть и без его красивостей в “экранной” части, без телеметрии, телевизора и прочего (по морозу не особо удобно с этим возиться). Поэтому пока использую МРХ как незаменимого помощника в тумане и др. условиях. Возврат использую в полный рост, помогает здорово. Пока не подобрал коэффициенты под свой временный носитель - крыло, теребит его, извиняюсь за оборот…
Может не только мне будет интересно, что типа в Тамбове тоже зима объявилась:) и Мегапираты очень нужны…
Погода?
Ремонт 😃 Даже на работе уже отпуск взял, не справляюсь. С утра до ночи шпатлевка, гипсокартон, обои, плитка и прочий джамшутинг. Так что пока ничем не радую.
Активных товарищей в теме - по пальцам: ты, Сергей, Алекс-бер. Хотя, владельцев икса уже гораздо больше. Или нет вопросов, или не сезон. У нас вот 3 дня минус 40 жарило.
Если вопросов нет значит все понятно😁
А на самом деле конечно не сезон, такой дубак на улице. Сам недавно приобрел железо, сейчас сижу разбираюсь на столе. Пока только положительные впечатления. До этого летал на игле и на фишке. Надеюсь что с потеплением и окончанием ремонта активность в теме возрастет😁