MultiWii

romeo84
dROb:

Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.

Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,

Да, дело всего скорее в прошивке. Использую MultiWii_2_2. Попробовал сделать два переворота одновременно, в итоге после перевода в режим удержания горизонта коптер скривило так, что не смог удержать => воткнул в дерево. (оффтоп - как его теперь от туда достать… высокая сосна, самый верх:)) )

kostya-tin

походу это беда многих мультивиев. сам летаю на AIOP v2 с RCtimerа, и сам неоднократно замечал этот глюк. если в ручную выровнять квадрик после флипа и включить стабилизацию, то коптер начинает уносить. где то секунды 2-3 его удержать и уже можно отпускать. летаю на MahoWii RC3

dROb
kostya-tin:

походу это беда многих мультивиев. сам летаю на AIOP v2 с RCtimerа, и сам неоднократно замечал этот глюк. если в ручную выровнять квадрик после флипа и включить стабилизацию, то коптер начинает уносить. где то секунды 2-3 его удержать и уже можно отпускать. летаю на MahoWii RC3

Давно не лазил в код мультивия, но мне кажется это можно поправить. Видится мне, это из-за неверных коэффициентов для определенных гироскопов (и где-то они там в коде вроде прописываются). Проверить можно, например, следующим образом. Крутануть на 45 градусов, остановить, и смотреть - доплывает ли через несколько секунд горизонт или стоит как вкопанный. Если доплывает - надо вносить коррективы.
Вообще то причины могут быть и другие - например включен неверный режим гироскопа (например включена высокая точность, где нужна высокая скорость), но я сомневаюсь. Мне кажется такое поведение можно выправить некими постоянными коэффициентами.

UPDATE:
Интересует похожий, но несколько с другой стороны вопрос. Что делать, если наоборот, горизонт начинает уплывать при ровном полёте с одинаковым наклоном. Т.е. летим ФПВ, вперед, секунд 15. Отпускаем ручку в центр, и видим что горизонт уплыл назад (т.е. коптер вместо висения - поплыл назад). Через 3 секунды горизонт устаканивается.
я аналогичный вопрос задавал давно, но вроде не было ответа хорошего.

kostya-tin

кстати, такой вариант тоже у себя замечал, думал может в развесовке причина, но скорее всего, что не в ней

WETErok

предположу что проблема в комплементарном фильтре. В нем положение гироскопов корректируется акселерометром, акселерометр большую часть времени должен показывать в верх, нормаль к поверхности земли. Когда делается флип или долгое равномерное движение в одну сторону ось Z акселерометра уже не вертикальная к земле. То есть акселеромтер корректирует гироскоп неверными значениями в результате угол горизонта уплывает. И требуется какоето время что бы восстановить ось Z акселерометра и значения гироскопа.
www.poprobot.ru/theory/complementary_filter

Vadimus_ca
тигромух:

Хм, а у меня наоборот, V929 с этой платой стал летать значительно хуже. Я списал на то, что коллекторники подустали, забросил его и занялся мелкотой на БК.
А какую частоту PWM вы поставили?

В сравнении с V222 (дальнейшее развитие V929) переделанный mQX летает как минимум не хуже, я бы сказал поживее.

PWM 32Hz.

тигромух:

MPU6050_LPF_xx

Попробовать поставить следующий/предыдущий?

В любом случае, вчера нашел у себя пару запасных лучей, теперь моторы не гуляют, буду пробовать снова.
Кстати, они оказались длиннее, чем родные от mQX, где-то на 4мм.

Еще вопрос - в режиме horizon, можно ли задать максимальный угол крена?

Taatarenkoff
Vadimus_ca:

Еще вопрос - в режиме horizon, можно ли задать максимальный угол крена?

Нет. В этом режиме он не ограничевается.

Vadimus_ca

А есть режим с таким ограничением?

UPD Похоже, я не правильно понял значение режимов Horizon/Angle.
Получается - Horizon это Angle с переходом в Acro при больших отклонениях ручки крена.

А я вчера еще не мог понять, как моя дочь (7 лет) умудрилась в Horizon перевернуть коптер вниз винтами 😃

djsatan

Через 3 секунды горизонт устаканивается.

Мудрил мудрил,думал что у меня уже Вии помер после 15-20 прошивки,оказалось всё просто,какой то баг записывается и причина тому USB 3.0 к которому подконекчен FTDI. Сменил юсб и всё стало чётенько. КСтати баг с уходом горизонта происходил не в первый полёт а именно после второго арма (почему не знаю)

П.С интересует подключение дешёвого сонара HC-SR04 которого нет в списке.
Что нужно дописать и куда что бы он появился в конфиге ? И на какие разьёмы его вешать ?

Taatarenkoff
Vadimus_ca:

Похоже, я не правильно понял значение режимов Horizon/Angle.
Получается - Horizon это Angle с переходом в Acro при больших отклонениях ручки крена.

Да. Всё верно. Angle (раньше был LEVEL) - угол ограничен то ли 45 то ли 50 градусов.

romeo84
dROb:

Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.

Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,

Блин, надо что-то с этим делать. Вся вкусность левел-мода в том, чтобы после нереальных флипов выровнять коптер, если зарулишься.

  1. Валяется Наза-М Лайт, попробую её впихать вместо мультивии и на ней такое сотворить, интересно, как она себя поведёт.

Ну а что касается мультивия:
2. Попробую отключить лоу-пасс фильтр на 10 герц на гиро (#define MPU6050_LPF_10HZ).

  1. Попробую пошаманить с настройками комплиментарного фильтра
// **************************************************
// 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

Что думаете?
Неужели никто до сих пор не решил данную проблему… грош цена тогда такому режиму стабилизации. Очень обидно будет, если это проблема железа и софтово его не поправить.

Flutter
romeo84:

грош цена тогда такому режиму стабилизации.

Крутой мужик.

BigWheeelS
GaD=:

Строчка #define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 42 желаемого результата не дала, так как смещается от центра и все равно не понимает разности в 7%.

Art_Nesterov:

А строчка #define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 42 это вообще для другого… для того что бы увеличить/уменьшить “мертвую зону” в середине хода стика газа. Например, если аппа не держит или не настраивается точно 1500 в середине хода стика.

Не вводите новичков в заблуждение, пожалуйста. ALT_HOLD_THROTTLE_NEUTRAL_ZONE отвечает за ширину нейтральной зоны стика газа в режиме удержания высоты. То есть когда в режиме BARO стик газа находится в этой зоне, то коптер держит высоту, не возвышается и не снижается.

Tigra74
k0der:

кто использует сборку с LCD? там можно тока пиды настраивать? есть где мануал?

Не только пиды-там ещё куча значений-для трёхи например среднее положение сервы есть - триммирование.
И настроек больше,чем на экране компа.
вывод индикации значений ЖПС и пр. на экран.

В меню заходится с пульта комбинацией стиков.(при выкл.арме)

А там уже всё понятно при листании строк-где какие значения.

Art_Nesterov
BigWheeelS:

е вводите новичков в заблуждение, пожалуйста

А “мертвая зона” и “нейтральная зона” это не одно и то же??? назовите, как хотите, но суть все равно такая же… В идеале хорошо бы получить газ висения в середине хода стика газа. Но середина хода этот не всегда 1500…

Geniok
Art_Nesterov:

А “мертвая зона” и “нейтральная зона” это не одно и то же??? назовите, как хотите, но суть все равно такая же… В идеале хорошо бы получить газ висения в середине хода стика газа. Но середина хода этот не всегда 1500…

Вы не правы, вам правильно ответили, перечитайте ответ еще раз. Данная строчка отвечает не за мертвую зону для компенсации дрожания осей аппы, а за нейтральную зону в которой в режиме “Baro” коптер будет держать высоту. Даже если у вас газ висения 90%. К самому газу висения это не имеет никакого отношения.

k0der

Вопрос, по этой картике как ардуино настраивается? Интересует порты к которым подключается апаратура

вопрос снимается. решение
pulseIn(pin, INPUT);

Art_Nesterov
Geniok:

К самому газу висения это не имеет никакого отношения.

Я наверно понял… расхождение связано с тем, что я пользую Маховий. А там в Альтхолде стик при висении всегда в середине (только в АХ и летаю). И эта нейтральная зона соответствует у меня каким то значениям в районе 1500. И даже если, высаженные аккумуляторы, и газ висения 90%, то стик все равно в середине… а как там его отрабатывает контроллер не видно.

Shuricus

Я еще зимой задавал этот вопрос, почему после ролла Маховии теряет горизонт и его нужно руками выравнивать обратно. Через пару секунд выравнивается сам. Тогда все скромно промолчали.

Вот видео, там где рывки после ролла - это я руками пытаюсь его выровнять.
Я думал только у меня проблемы! 😃

www.youtube.com/watch?v=8475Y3AJLQc

DmS
Shuricus:

Я еще зимой задавал этот вопрос, почему после ролла Маховии теряет горизонт и его нужно руками выравнивать обратно. Через пару секунд выравнивается сам. Тогда все скромно промолчали.

Вот видео, там где рывки после ролла - это я руками пытаюсь его выровнять.
Я думал только у меня проблемы!

почему же промолчали, вот точный ответ:
rcopen.com/forum/f123/topic221574/10781

3D крутите не в level режиме, т.е. по гиру,
так как LPF фильтр в мультивие так работает, время воостановления(после возврат в горизонт) зависит от его настроек.

Shuricus
DmS:

почему же промолчали, вот точный ответ:
MultiWii

С запозданием в пол года, потому што.

Теперь я уже понял, что это совсем не СС3D!
Крутить роллы в ручном режиме на любом контроллере можно. Хочется то с автовыравниванием!