MultiWii - обсуждаем и отлаживаем Alt Hold

gorbln
alexmos:

а что за аксель

Аксель ADXL345, относительно гиры не повёрнут (точки на микрухах в одну сторону смотрят). При первой калибровке ускорение по Z = 256. если перевернуть, то ускорение показывается -310. Если поменять знак ускорения по Z и откалибровать в 2 положениях, то всё с точностью до отрицательного знака (т.е. -256 и -700), значок коптера в гуях перевёрнут.

acc_1G = 256

Вот ещё что хотел спросить - а гуи какие-то конкретные надо, или стандартные сойдут? Я юзаю MultiWii Win GUI, им не надо яву, а с ней почему-то не дружит ноут на работе.

alexmos

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

Возможность ГУИ сильно зависит от протокола. В каждой версии (в т.ч. и промежуточныХ) слегка меняют протокол, так что работать будет именно с тем гуи, которй был на момент совмещения кодов. Смержился я с первой официальной 2.0, с его гуи и будет работать.

gorbln

Проверил в оригинальной 2.0 релизной прошивке. Такая же фигня после калибровки - по оси Z 256 в нормальном положении, в остальных экстремальных точках - 300…310 по питчу и роллу, вверх ногами по Z -320. Может, у меня какой “не такой” аксель? Может значение 1G изменить на 300? =)

9 days later
gorbln

Ещё один вопрос появился. Допустим, получится у меня с 1G=300. а как калибровка на поле происходит? Ну то есть стиками пульта? Выполняется стандартная калибровка и остальные калибровочные параметры стираются? Или как?

alexmos

Точно также можно по всем осям калибровать со стиков. Эта команда равносильна нажатию кнопки в ГУИ

skyrider

Давно летаю FPV на самолетах, на коптерах не складывалось, как то все по другому, основная проблема отсутствие чувства высоты. Так вот к чему это я, решаю эту проблему (привыкаю к FPV на коптере) с помощью сонара, рекомендую всем кто не может пересесть с самолета на коптер по FPV, подключаете сонар, заливаете прошивку от alexmos, завешиваете коптер на высоте 1 метр, одеваете очки и наслаждаетесь спокойным полетом по периметру стадиона. Прошивка alexmos_r23, вчера отлетал 2 пака в очках, высоту держит отлично, полет не напрягает вообще, хочу сегодня подняться метра на 4 и попробовать по баро, если будет падать ниже 2 метров - сонар должен подхватить.

gorbln

Хотел спросить такую вещь - скошенный газон для сонара - это нежелательная поверхность? Или вполне “летабельная”?

skyrider

Летал на футбольном поле, трава 0 - 10 см, полет нормальный.

офтоп,

skyrider:

хочу сегодня подняться метра на 4 и попробовать по баро

винты 12х4.5 с rctimer гуано, не рекомендую если вес коптера более 1.5 кг, отстрел одной лопасти в полете, хорошо летал по очкам на сонаре 0.5 метра от земли, повреждений 0% 😃

Uvis

Взял пару HCSR04, погонял их для теста и обнаружил такой эффект - один сонар когда теряет поверхность, выдает дистанцию что-то типа 35м, второй наоборот - 0. Игрался питанием и пинами, результат стабилен 😦 Какой лючше подойдет для квадро?

alexmos
gorbln:

Хотел спросить такую вещь - скошенный газон для сонара - это нежелательная поверхность? Или вполне “летабельная”?

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

Uvis:

Взял пару HCSR04, погонял их для теста и обнаружил такой эффект - один сонар когда теряет поверхность, выдает дистанцию что-то типа 35м, второй наоборот - 0. Игрался питанием и пинами, результат стабилен Какой лючше подойдет для квадро?

придется оба попробовать… У меня тоже какая-то глючная разовидность этих сонаров - при потере сигнала выдают вполне нормальные 1-2метра. Но при этом существенно увеличивается время отклика - таким образом и отлавливаю ошибки. Проверьте время отклика у своих и гляньте пороговые настройки в Sonar.pde

gorbln

Поменял в настройках Sensors.ino параметр acc_1G, сделал его равным 320. Теперь при переворачивании коптера по оси Z -256 =). Поставить 288 что ли?
А ещё хотел уточнить - при наличии незатухающих осцилляций по высоте, периодом примерно 2-3 секунды и амплитудой около полутора метров (сонар есть) - что изменять? уменьшать P? А в каком из регуляторов, их там три - Altitude, Velocity и Level?

alexmos
gorbln:

Поменял в настройках Sensors.ino параметр acc_1G, сделал его равным 320. Теперь при переворачивании коптера по оси Z -256

Для моей прошивки, калибруйте по 6-ти точкам - как раз для таких случаев, поможет выровнять. Но это только при условии линейности, то есть если на концах 255, -255 - то при отсутвии ускорения в центре 0. Иначе, лучше поменять датчик.

gorbln:

А ещё хотел уточнить - при наличии незатухающих осцилляций по высоте, периодом примерно 2-3 секунды и амплитудой около полутора метров (сонар есть) - что изменять? уменьшать P? А в каком из регуляторов, их там три - Altitude, Velocity и Level?

Для высоты только Altitude P, I, D крутите. Если осцилляции - уменьшить I (можно в 0), уменьшить P и/или увеличить D (можно даже до больших значений типа 30-40). И проверьте как при наклонах себе ведет. при плохо откалиброванном акселе при наклонах будет очень плохо 😦

1 month later
skyrider

Вынужден перейти на 2.1 для работы GPS, вмерживать в 2.1 поддержку сонара планируется? 😃

alexmos

Да, начал, но все руки не дойдут закончить. В отличие от 2.0, в 2.1 поменяли очень много и автоматический мержинг средствми SVN не прошел, так что все вручную.

skyrider

Отлично, значит перешиваю все свои коптеры на 2.1 , разбираюсь чего там нового и как работает, а тут и Ваша прошивка выйдет!

Олег24
alexmos:

Да, начал, но все руки не дойдут закончить. В отличие от 2.0, в 2.1 поменяли очень много и автоматический мержинг средствми SVN не прошел, так что все вручную.

Может попробовать убрать из 2.1 код для сонара i2c и вместо него вкорячить для аналогового ? ( заменив функции ) ?

alexmos

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

mahowik
alexmos:

У меня собственный алгоритм удержания высгты и туда сонар интегрирован с баро

думаю стоит смиксить стоковый алт-холд и твой драйвер сонара + error based алгоритм перехода баро-сонар, т.к. стоковый по отзывам довольно не плохо держит на ms5611 + хорошо бы уйти от использованоя акселя в алт-холде… причин много, думаю помниш еще 😃
так же в стоке совсем тупо хреново написана корректировка/изменение высоты газом, на включенном алть-холд соот-но…

Олег24
alexmos:

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

Да ты прав на 1000% . В IMU нет ни одной строчки про сонар.У меня сонар в гуи в дебуге показывает , реакции никакой.

alexmos
mahowik:

думаю стоит смиксить стоковый алт-холд и твой драйвер сонара + error based алгоритм перехода баро-сонар, т.к. стоковый по отзывам довольно не плохо держит на ms5611 + хорошо бы уйти от использованоя акселя в алт-холде… причин много, думаю помниш еще так же в стоке совсем тупо хреново написана корректировка/изменение высоты газом, на включенном алть-холд соот-но…

Да можно, но у меня не дошли руки даже затестить стоковый алгоритм, хотя баро MS5611 есть 😃 А руление высотой у меня сейчас тоже неправильно сделано. Работает только потому, что мой алгоритм позволяет сделать сильный PID и он быстро гасит ошибку. По хорошему, надо делать каскадный PID с Feed Forward (и его же использовать для руления в режиме level, т.к. стоковый тоже неправильно сделан), для режима GPS-ASSIST (GPS держит позицию, а мы управляемм координатой), для OpricalFlow. Т.е. этот каскадный PID с FF будет очень нужным дополнением, но MWC тупо не рассчитан на него - надо реструктурировать тонны кода и вводить новые параметры в интерфейс, поэтому даже начинать не хочется - потеряется всякая связь с официальным релизом и мержить новые фичи будет мегасложно.

Этот алготртм с самомго начал заложил в свой контроллер Дмитрий (ziss_dm) - поэтому проще переключиться на его проект 😃