Проект Мегапират на самик!
на 5% - все как дохтер прописал
Спасибо, Александр, у меня уже 5%, больше не стал добавлять пока. В тумане неудобно регулировки делать. У меня колбасит по тангажу при разгоне против ветра, может и на спуске колбаснуть - это больше беспокоит. В ручном режиме не страшно - если увидел, то газ сброшу. А вот при возврате непонятно почему не колбасило, вроде ничего этому не мешало. Заколбасит - скорее по датчику удара задизармится, да камеру сбросит, например… Если при возврате в тумане, как вчера, то не вернется (вчера работал отлично, не проявилось). У тебя на крыле какой коэффициент стоит D? У меня 0.19, может многовато. На большом самолете было самый раз, на ЛК похоже уменьшать надо.
=======================
Товарищ мой самолет бросал - по 5G задизармился, неплохой бросок… Так и развалиться на взлете недолго. А при колбасне нагрузка посерьезнее будет.
точно уже не помню D… Вечером посмотрю - отпишусь… У меня колбасило сильно на скорости по тангажу - убрал немного расходы и D - теперь все пучком: разгонял самик до 100 км (по телеметрии…) - колбасни нет, а раньше при 70 -ти как паралитик…
теперь на работе и самика под рукой нет - вечером выложу…
какой коэффициент стоит D? У меня 0.19, может многовато.
уменьшайте в матрице pitch раза в два, D можно не трогать, нормальное.
У ST новый проц stm32f3, есть fpu, памяти меньше чем у stm32f4 и частота меньше.
И платка stm32f3discovery с датчиками на 9 осей, гира аксель, маг. Стоит 560руб у нас.
Для MPX подойдет ?
Не пойдет. Проц не подходит по раскладке периферии и частоте.
Все же урвал у погоды вчера часик.
Полетал классно, есть видео и как обычно вопросы.
Перед полетом механически уменьшил расход руддера, такое ощущение что летать в авторежимах стал намного лучше.
Руддером в ручных режимах не пользуюсь так как сильно закладывает самолет на бок, походу надо микс с элеронами.
Вопрос - как и где он рулит руддером сам? В авторежимах как я помню полностью отключен.
www.youtube.com/watch?v=vw0Z-tlI-U8&feature=plcp
По видео:
Вокруг путевой точки есть зона в виде цилиндра радиусом 50м и высотой 1м, задевание которой означает достижение точки.
- вообще не стыкуется с видео.
01:50 - Включил полет по точкам.
02:12 - Максимально приблизился к первой точке, но пока высоковато, надо спускаться на 25 метров ниже
02:32 - Улетев на ровно на сотню метров от точки решает что она достигнута ))) Выше задуманной высоты на 15 метров.
04:00 - Опять решил что попал в точку только отлетев от нее на 100 метров, притом вроде ровно 100.
04:27 - Решил что попал в точку только отлетев от нее на 130 метров, получается что не ровно 100.
P.S. Что странно - в этот раз ниразу не срывалась синхра.
Отличия текущего конфига:
1.Морозец минус 2
2.Приемник с антенной на крыше, а ноутбук с писалкой в машине. Раньше было все на крыше.
Нипанятна…
Приемник с антенной на крыше, а ноутбук с писалкой в машине. Раньше было все на крыше. Нипанятна…
А что нипанятно?
Тут наоборот все панятно - или бук или писалка гадит… Разнес и срывы прекратились…
Возми и проверь - отнеси самик подальше от приемника и подноси бук к приемнику - заметишь…
Полет классный, тока вот еще бы вид карты включал периодически (особенно по достижению точки.) - было бы еще информативней…
Молодец!
А я пока в полукопии ушел - погода дерьмо и времени на полет нету (пока домой приду - уже темно), вот и строю потихоньку и погоду жду…
Но самик с МПХ заряжен, настроен и в полной готовности к полету - ждем-с…
А что нипанятно?
Тут наоборот все панятно - или бук или писалка гадит… Разнес и срывы прекратились…
Я к тому что перепроверять надо, рад - если все так просто )
тока вот еще бы вид карты включал периодически (особенно по достижению точки.)
Блииин, а я то думаю чо я забыл попробовать в полете)))))
Дома спецом настроил тумблер, проверил, и забыл ))))
как и где он рулит руддером сам?
в стабе и альтхолде
вообще не стыкуется с видео
Достижение точки происходит в несколько этапов.
- происходит приближение по горизонтали, с одновременным снижением/подъемом по высоте.
- если координаты внутри радиуса 50м до точки, но высота еще не достигнута, задается снижение/подъем по спирали.
Поскольку радиус спирали определяется параметром circle radius, который по умолчанию 100м, самолет потащился на радиус спиралить, попутно снижаясь - там и произошло “касание” по высоте в твоем случае.
2а) если высота достигнута, но координаты еще нет, самоль летит на точку, удерживая высоту
Разница высот не 1, а ±10 метров, тут я оговорился.
- происходит приближение по горизонтали, с одновременным снижением/подъемом по высоте.
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% газе(наваливает автопилот), а у этого режима очень плохое соотношение тяги к потребляемой мощности.