Проект Мегапират на самик!
такая куча параметров в R
По числу осей линейных датчиков - не так уж много. В q - гира и аксель. Еще в Р (ков. матрица) надо задавать начальные значения. Правда, поскольку шумы считаются некоррелированными, можно забивать только диагональ. От этого зависит скорость начального схождения. В любом случае, “смертельно” накуролесить, чтобы ничего не работало, очень сложно. Все сразу отражается на поведении.
Предлагаю несколько вариантов для самолётов, давайте обсудим.
1.Не включать автовозврат после “ударных” ускорений до пересброса питания.
2. Не включать возврат если скорость меньше 20 и высота меньше 20
3. Выключать возврат на высоте ниже 20 если скорость так и не превысила 20, через 3 сек после включения.
Еще вариант условия - если была скорость, а после удара стала ноль… То есть не висит против ветра, например, а приложился…
Суммируя вышеописанное, нужно добавить датчик удара.
- Разрешить аварийный возврат после однократного удаления 50м от старта и высоты 20м.
- Если датчик удара сработал после 1, возврат отключается.
- при срабатывании датчика удара включается дизарм
А что с ситуацией низко и далеко ?
Предлаю по итогам.
Не включать после удара.
Не включать если низко и скорость менее 20
В остальных случаях пусть пытается ?
Суммируя вышеописанное, нужно добавить датчик удара. 1) Разрешить аварийный возврат после однократного удаления 50м от старта и высоты 20м. 2) Если датчик удара сработал после 1, возврат отключается. 3) при срабатывании датчика удара включается дизарм
- Аварийный - это по условию? Т.е., с пульта я могу его включить и при невыполнении 50х20? Если нет, тогда предлагаю ограничение по высоте снять, либо сделать 2м.
Почему: реальный случай - дальность 200м, высота 15м, зарулился. Включаешь автовозврат, а он не хочет, поскольку ограничение 20м. - и 3) предлагаю ввести условия - независимо от удара,
-если высота 0-2м скорость 0-6км/ч - движок отключаем (самолёт на земле, или человек несёт в руках)
-если высота больше 2м, скорость 0 и в течение 2-3 сек не изменяется, движок отключаем (режим “здравствуй, дерево”, как назвал его Тим:)). Т.е., самолёт повис на дереве, или лежит где-либо “на крыше дома моего”.
Ну, и если это всё ещё и после удара, движок отключаем без вариантов:).
Предлагаю именно не дизармить, а просто не включать двигатель в этих ситуациях!
Почему: -сдуло ветром с дерева или крыши, любопытный поднял самолёт и бросил в воздух (т.е. высота больше 2м и скорость больше 6 км/ч) - при наличии заряда в батарейке включаем двиг, занимаем эшелон и валим к точке старта:)))
Да, ещё вспомнил - если после удара высота больше 2м и скорость больше 6км/ч - пытаемся выровнять и лететь дальше (типа, ударился об ветку дерева, или провод ЛЭП…)😃
Мне вот так это дело видится. Не знаю, насколько возможно это всё реализовать…😃
О, долго клаву топтал:). Сергей уже про “далеко-низко” написал
ну тогда уж добавьте вариант поломки лопасти винта, будет жуткий расколбас - выкл движка. ведь не обязательно встречаться с деревом или землей, в воздухе не только самолетик находится, но и другие летающие.
- Аварийный - это по условию? Т.е., с пульта я могу его включить и при невыполнении 50х20? Если нет, тогда предлагаю ограничение по высоте снять, либо сделать 2м.
Почему: реальный случай - дальность 200м, высота 15м, зарулился. Включаешь автовозврат, а он не хочет, поскольку ограничение 20м.- и 3) предлагаю ввести условия - независимо от удара,
-если высота 0-2м скорость 0-6км/ч - движок отключаем (самолёт на земле, или человек несёт в руках)
-если высота больше 2м, скорость 0 и в течение 2-3 сек не изменяется, движок отключаем (режим “здравствуй, дерево”, как назвал его Тим:)). Т.е., самолёт повис на дереве, или лежит где-либо “на крыше дома моего”.
Ну, и если это всё ещё и после удара, движок отключаем без вариантов:).Предлагаю именно не дизармить, а просто не включать двигатель в этих ситуациях!
Почему: -сдуло ветром с дерева или крыши, любопытный поднял самолёт и бросил в воздух (т.е. высота больше 2м и скорость больше 6 км/ч) - при наличии заряда в батарейке включаем двиг, занимаем эшелон и валим к точке старта:)))Да, ещё вспомнил - если после удара высота больше 2м и скорость больше 6км/ч - пытаемся выровнять и лететь дальше (типа, ударился об ветку дерева, или провод ЛЭП…)😃
Мне вот так это дело видится. Не знаю, насколько возможно это всё реализовать…😃
О, долго клаву топтал:). Сергей уже про “далеко-низко” написал
Мне кажется на 2 метра высота может уплыть махом, что баро что жпс
. И все перестанет работать как задумано.
Кстати, Олег, как насчет поддержки сонара?
Мне кажется на 2 метра высота может уплыть махом, что баро что жпс
Основная высота берётся с баро, скачкИ в пределах 1-2м как раз укладываются. Плюс условия связаны ещё и со скоростью. По-моему, вполне…
Смысл, чтобы привязать к высоте безопасной для людей, и почти безопасной для самолёта при падении “просто кирпичём”😃
Основная высота берётся с баро, скачкИ в пределах 1-2м как раз укладываются. Плюс условия связаны ещё и со скоростью. По-моему, вполне…
Смысл, чтобы привязать к высоте безопасной для людей, и почти безопасной для самолёта при падении “просто кирпичём”😃
А еще 2 метра это может быть естественное изменение высоты на поле.
Тут мне кажется сколько людей столько и цифр.
Может все же дать каждому настроить как он хочет.
В настройках автопилота ввести 2 цифры мин скорость для включения и мин высота.
Работать они будут через логичекое или. То есть для включения достаточно набора или мин скорости или мин высоты.Захотел чтоб работало при любой скорости или высоте - увел нужную цифру в минус.
А, еще чекбокс “запрет включения после удара”
Добрался я таки до MPX 😃
Сейчас поеду испытывать, как раз и ветерок хороший 9-11 м/с 😃
По числу осей линейных датчиков - не так уж много. В q - гира и аксель.
А почему решили не включать в ФК маг. ?
Шум курса тоже придется как-то удалять.
Он тоже там, но его шум лежит в R. Из показаний гиры интегрируется кватернион, добивается акселем, из него затем вычисляется референсный трехосевой вектор H, который является предсказанием реального вектора В, т.е. компаса.
Попутно нахаляву имеем компенсацию биасов гиры и акселя до определенных пределов и компенсацию центробежки.
А как компенсация центробежки получается “нахаляву”? информация о скорости должна откуда-то поступать? 😃
Под халявой имелось в виду биасы. Центробежка корректируется путем вычисления угловой скорости (гира), перегрузки (сам аксель - отличие длины от 9.81) и отличия Н от В, в результате вводится виртуальная “поправка” к предсказанию акселя, не меняя показания его самого. Для линейных ускорений используется именно отсутствие угловых скоростей и преобладает влияние Н, для центробежки - наоборот, преобладает гира, а Н ослаблено. Естественно, все пропускается через матрицу наблюдения. И никаких ЖПС не нужно, хех… По магнитному и ускорительному тестам получается то же, что у моего “идеала” - VN100 (картинка справа, естественно).
Для Дринкера специально: согласись, с*издить алгоритм у VectorNav - это тоже труд, достойный докторской, а не просто “поделка” 😉
Для прочих: я не *издил алгоритм ниоткуда.
Он тоже там, но его шум лежит в R.
Шум мага в R, а курс (из которого получается yaw-часть кватерниона) д.б. в x и его шум в P и Q, насколько понимаю. 😃
>Центробежка корректируется путем вычисления угловой скорости (гира), …
“… это разные омеги, каждая живет собственной жизнью” (C, кажется Oliver)
Для квадриков (которые летают не только носом вперед) плохо подходит.
Под халявой имелось в виду биасы. Центробежка корректируется путем вычисления угловой скорости (гира), перегрузки (сам аксель - отличие длины от 9.81) и отличия Н от В, в результате вводится виртуальная “поправка” к предсказанию акселя, не меняя показания его самого. Для линейных ускорений используется именно отсутствие угловых скоростей и преобладает влияние Н, для центробежки - наоборот, преобладает гира, а Н ослаблено. Естественно, все пропускается через матрицу наблюдения. И никаких ЖПС не нужно, хех…
Это тебе так кажется.
Для прочих: я не *издил алгоритм ниоткуда
А кто сомневается? Конечно сам напесал. Из рассуждений это очевидно.
а курс (из которого получается yaw-часть кватерниона) д.б. в x
курса в чистом виде нет. Есть вектор мага B, и шум из него в R. Кватернион (содержащий attitude, есно) в Х.
Для квадриков (которые летают не только носом вперед) плохо подходит.
Тут ускорения линейные, а вектор акселя всегда смотрит в “пол” квадра, меняется только его длина. Должно прокатить тоже, т.к. ускорения считаются независимо от направления, да и компас никуда не делся. Даже марг работал. С ОСД на борту калман на коптере не тестил, впрочем, это вопрос времени. Висит сносно.
Конечно сам напесал
Единственное, что я изучил в этой жизни - это кнопка “мне повезет” в гугле, и весь свой совт я с*издил по разным местам. Вот, я сознался, так лучше? Изжога прошла?
Вот, даже жирным выделю, чтоб заметнее было. Заучи ссылку на это сообщение как “отче наш”, будешь тыкать меня носом потом. А также последнее сообщение, в котором я тебе ответил что-то.
Олег, вопросик. Плата у меня установлена горизонтально в самолете, параллельно строительной оси, относительно которой угол установки крыла порядка 1,5°. В таком положении без руления РВ я зимой взлетал с пуза со снега (разбег и плавный отрыв без ручек, только газ).
В полете в стабе тянет вниз. Для того, чтобы изменить тангаж для удержания, нужно переставлять плату или достаточно перекалибровать уровни в положении тангажа с более задранным носом?
Вот кусок видео небольшой, только с экрана ТВ снял фотиком, больше нечем.
www.youtube.com/watch?v=yX4lFKpAtN0
Почему-то не захотел в лойтере высоту набирать. При возврате на базу тоже высота была “над головой”, всего метров двадцать, стремно. Видео не осталось…
В полете в стабе тянет вниз.
Под “зад” платы что-то подложить, чтобы смотрела вниз градуса на полтора-два (тангаж -2 в наземке). В дальнейшем введу установку “угла атаки”.
Жать level на плате под углом нельзя: будет плыть горизонт.
В дальнейшем введу установку “угла атаки”
Буду ждать.
С триммированием тоже не получилось. Похоже надо триммирование в воздухе делать в мануале, потом смотреть, в каком положении рули оказались на земле. После этого электронные триммеры в ноль, а в те же положения механически тягами загнать рули. Тогда все будет в естественных нейтралях и не возникнет затыков.
А сейчас получается, что режим стаб - одно положение РВ, например, а при потере связи - другое положение, совпадающее не с оттриммированным мануалом, а с нейтралью стандартной.
Такое ощущение, что в программе существует не один вход в стаб со своими переменными.
Кватернион (содержащий attitude, есно) в Х.
ОК. Судя по #2636, “w” и “a” тоже в Х, итого в Q: (4+3+3 и м.б. что-то еще)^2=100.
Не лень было дяде Калману тащить такую Q, если она мало влияет на результат. 😃
Про платку: не понял куда пишутся логи, только в епром? Нет ли в планах добавить СД-карточку? (по логам можно много посчитать)
не захотел в лойтере высоту набирать.
а какая версия поршивки? последняя 2712?
Да, прошивка 2712