MultiWii
Пользую CRIUS MultiWii Standard Edition Flight Controller MWC SE v2.5
вот такой (goodluckbuy.com/crius-multiwii-standard-edition-fl…)Работет отлично на квадрике. Появилась одна проблема. После переворота в акро-режиме резко включаю режим стабилизации горизонта, после чего коптер 10-15 секунд не может нормально стабилизироваться: упорно держит небольшой угол, причём чем резче был переворот, тем больше угол и дольше он “приходит в себя”. Что это может быть? На двух коптерах с разными платами стабильно такое замечал. Я думаю, это дешёвенький акселометр сходит с ума после резких телодвижений. Было такое у кого-нибудь?
Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.
Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,
Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.
Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,
Да, дело всего скорее в прошивке. Использую MultiWii_2_2. Попробовал сделать два переворота одновременно, в итоге после перевода в режим удержания горизонта коптер скривило так, что не смог удержать => воткнул в дерево. (оффтоп - как его теперь от туда достать… высокая сосна, самый верх:)) )
походу это беда многих мультивиев. сам летаю на AIOP v2 с RCtimerа, и сам неоднократно замечал этот глюк. если в ручную выровнять квадрик после флипа и включить стабилизацию, то коптер начинает уносить. где то секунды 2-3 его удержать и уже можно отпускать. летаю на MahoWii RC3
походу это беда многих мультивиев. сам летаю на AIOP v2 с RCtimerа, и сам неоднократно замечал этот глюк. если в ручную выровнять квадрик после флипа и включить стабилизацию, то коптер начинает уносить. где то секунды 2-3 его удержать и уже можно отпускать. летаю на MahoWii RC3
Давно не лазил в код мультивия, но мне кажется это можно поправить. Видится мне, это из-за неверных коэффициентов для определенных гироскопов (и где-то они там в коде вроде прописываются). Проверить можно, например, следующим образом. Крутануть на 45 градусов, остановить, и смотреть - доплывает ли через несколько секунд горизонт или стоит как вкопанный. Если доплывает - надо вносить коррективы.
Вообще то причины могут быть и другие - например включен неверный режим гироскопа (например включена высокая точность, где нужна высокая скорость), но я сомневаюсь. Мне кажется такое поведение можно выправить некими постоянными коэффициентами.
UPDATE:
Интересует похожий, но несколько с другой стороны вопрос. Что делать, если наоборот, горизонт начинает уплывать при ровном полёте с одинаковым наклоном. Т.е. летим ФПВ, вперед, секунд 15. Отпускаем ручку в центр, и видим что горизонт уплыл назад (т.е. коптер вместо висения - поплыл назад). Через 3 секунды горизонт устаканивается.
я аналогичный вопрос задавал давно, но вроде не было ответа хорошего.
кстати, такой вариант тоже у себя замечал, думал может в развесовке причина, но скорее всего, что не в ней
предположу что проблема в комплементарном фильтре. В нем положение гироскопов корректируется акселерометром, акселерометр большую часть времени должен показывать в верх, нормаль к поверхности земли. Когда делается флип или долгое равномерное движение в одну сторону ось Z акселерометра уже не вертикальная к земле. То есть акселеромтер корректирует гироскоп неверными значениями в результате угол горизонта уплывает. И требуется какоето время что бы восстановить ось Z акселерометра и значения гироскопа.
www.poprobot.ru/theory/complementary_filter
Хм, а у меня наоборот, V929 с этой платой стал летать значительно хуже. Я списал на то, что коллекторники подустали, забросил его и занялся мелкотой на БК.
А какую частоту PWM вы поставили?
В сравнении с V222 (дальнейшее развитие V929) переделанный mQX летает как минимум не хуже, я бы сказал поживее.
PWM 32Hz.
MPU6050_LPF_xx
Попробовать поставить следующий/предыдущий?
В любом случае, вчера нашел у себя пару запасных лучей, теперь моторы не гуляют, буду пробовать снова.
Кстати, они оказались длиннее, чем родные от mQX, где-то на 4мм.
Еще вопрос - в режиме horizon, можно ли задать максимальный угол крена?
Еще вопрос - в режиме horizon, можно ли задать максимальный угол крена?
Нет. В этом режиме он не ограничевается.
А есть режим с таким ограничением?
UPD Похоже, я не правильно понял значение режимов Horizon/Angle.
Получается - Horizon это Angle с переходом в Acro при больших отклонениях ручки крена.
А я вчера еще не мог понять, как моя дочь (7 лет) умудрилась в Horizon перевернуть коптер вниз винтами 😃
Через 3 секунды горизонт устаканивается.
Мудрил мудрил,думал что у меня уже Вии помер после 15-20 прошивки,оказалось всё просто,какой то баг записывается и причина тому USB 3.0 к которому подконекчен FTDI. Сменил юсб и всё стало чётенько. КСтати баг с уходом горизонта происходил не в первый полёт а именно после второго арма (почему не знаю)
П.С интересует подключение дешёвого сонара HC-SR04 которого нет в списке.
Что нужно дописать и куда что бы он появился в конфиге ? И на какие разьёмы его вешать ?
Похоже, я не правильно понял значение режимов Horizon/Angle.
Получается - Horizon это Angle с переходом в Acro при больших отклонениях ручки крена.
Да. Всё верно. Angle (раньше был LEVEL) - угол ограничен то ли 45 то ли 50 градусов.
Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.
Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,
Блин, надо что-то с этим делать. Вся вкусность левел-мода в том, чтобы после нереальных флипов выровнять коптер, если зарулишься.
- Валяется Наза-М Лайт, попробую её впихать вместо мультивии и на ней такое сотворить, интересно, как она себя поведёт.
Ну а что касается мультивия:
2. Попробую отключить лоу-пасс фильтр на 10 герц на гиро (#define MPU6050_LPF_10HZ).
- Попробую пошаманить с настройками комплиментарного фильтра
// **************************************************
// Simplified IMU based on "Complementary Filter"
// Inspired by
//
// adapted by ziss_dm :
//
// The following ideas was used in this project:
// 1) Rotation matrix:
// 2) Small-angle approximation:
// 3) C. Hastings approximation for atan2()
// 4) Optimization tricks:
//
// Currently Magnetometer uses separate CF which is used only
// for heading approximation.
//
// **************************************************
//****** advanced users settings *******************
/* Set the Low Pass Filter factor for ACC
Increasing this value would reduce ACC noise (visible in GUI), but would increase ACC lag time
Comment this if you do not want filter at all.
unit = n power of 2 */
// this one is also used for ALT HOLD calculation, should not be changed
#ifndef ACC_LPF_FACTOR
#define ACC_LPF_FACTOR 4 // that means a LPF of 16
#endif
/* Set the Gyro Weight for Gyro/Acc complementary filter
Increasing this value would reduce and delay Acc influence on the output of the filter*/
#ifndef GYR_CMPF_FACTOR
#define GYR_CMPF_FACTOR 600
#endif
Что думаете?
Неужели никто до сих пор не решил данную проблему… грош цена тогда такому режиму стабилизации. Очень обидно будет, если это проблема железа и софтово его не поправить.
грош цена тогда такому режиму стабилизации.
Крутой мужик.
Строчка #define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 42 желаемого результата не дала, так как смещается от центра и все равно не понимает разности в 7%.
А строчка #define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 42 это вообще для другого… для того что бы увеличить/уменьшить “мертвую зону” в середине хода стика газа. Например, если аппа не держит или не настраивается точно 1500 в середине хода стика.
Не вводите новичков в заблуждение, пожалуйста. ALT_HOLD_THROTTLE_NEUTRAL_ZONE отвечает за ширину нейтральной зоны стика газа в режиме удержания высоты. То есть когда в режиме BARO стик газа находится в этой зоне, то коптер держит высоту, не возвышается и не снижается.
кто использует сборку с LCD? там можно тока пиды настраивать? есть где мануал?
Не только пиды-там ещё куча значений-для трёхи например среднее положение сервы есть - триммирование.
И настроек больше,чем на экране компа.
вывод индикации значений ЖПС и пр. на экран.
В меню заходится с пульта комбинацией стиков.(при выкл.арме)
А там уже всё понятно при листании строк-где какие значения.
е вводите новичков в заблуждение, пожалуйста
А “мертвая зона” и “нейтральная зона” это не одно и то же??? назовите, как хотите, но суть все равно такая же… В идеале хорошо бы получить газ висения в середине хода стика газа. Но середина хода этот не всегда 1500…
А “мертвая зона” и “нейтральная зона” это не одно и то же??? назовите, как хотите, но суть все равно такая же… В идеале хорошо бы получить газ висения в середине хода стика газа. Но середина хода этот не всегда 1500…
Вы не правы, вам правильно ответили, перечитайте ответ еще раз. Данная строчка отвечает не за мертвую зону для компенсации дрожания осей аппы, а за нейтральную зону в которой в режиме “Baro” коптер будет держать высоту. Даже если у вас газ висения 90%. К самому газу висения это не имеет никакого отношения.
К самому газу висения это не имеет никакого отношения.
Я наверно понял… расхождение связано с тем, что я пользую Маховий. А там в Альтхолде стик при висении всегда в середине (только в АХ и летаю). И эта нейтральная зона соответствует у меня каким то значениям в районе 1500. И даже если, высаженные аккумуляторы, и газ висения 90%, то стик все равно в середине… а как там его отрабатывает контроллер не видно.
Я еще зимой задавал этот вопрос, почему после ролла Маховии теряет горизонт и его нужно руками выравнивать обратно. Через пару секунд выравнивается сам. Тогда все скромно промолчали.
Вот видео, там где рывки после ролла - это я руками пытаюсь его выровнять.
Я думал только у меня проблемы! 😃
Я еще зимой задавал этот вопрос, почему после ролла Маховии теряет горизонт и его нужно руками выравнивать обратно. Через пару секунд выравнивается сам. Тогда все скромно промолчали.
Вот видео, там где рывки после ролла - это я руками пытаюсь его выровнять.
Я думал только у меня проблемы!
почему же промолчали, вот точный ответ:
rcopen.com/forum/f123/topic221574/10781
3D крутите не в level режиме, т.е. по гиру,
так как LPF фильтр в мультивие так работает, время воостановления(после возврат в горизонт) зависит от его настроек.