MultiWii

Piranha

Вчерась вот в центре подлетнул немного, несмотря на сильный ветер, отсутствие нунчака и туалетной бумаги 😃 😃 😃

Covax

Около кремля? ОМГ, Дима ну ты даешь 😃 Или у тебя ксива есть? 😃

Piranha
Covax:

Или у тебя ксива есть?

Яж говорю, ни нучаков ни ксивы не туалетной бумаги у меня небыло 😃 зато адреналина-полные штаны 😃

Covax

Олег, а Алексу дал потестить? Пусть имплементит для всех сенсоров, или это будет сложно сделать?

Syberian

Написал, но он еще не ответил.
Нужны индивидуальные настройки для каждого типа гир.
У него сделан уровень по-читерски: что гирами не довернуло, то аксель занормирует. Поэтому

  1. реализации Алекса относительно пох на чувствительность гиры (градусов/сек) - это плюс, да.
  2. Если делать “поворот в наклоне”, все безбожно уходит в сторону из-за прецессии,
  3. при любом движении с ускорением “горизонт” уходит в сторону усиления наклона.

MARG-алгоритм этих недостатков лишен.

SovGVD
Syberian:

Нужны индивидуальные настройки для каждого типа гир.

данная штука под что заточена и какие именно настройки потребуются?

Syberian

Сейчас заточена под чаку + ВМП + трикоптер, режим autolevel
Чисто эмпирически есть коэфф-т для ITG3200
Настройки - один коэффициент для каждой гиры, зависит от ее чутья

mahowik
Syberian:

Сейчас заточена под чаку + ВМП + трикоптер

только трикоптер? у Алила вроде квадрик…

Syberian:

Написал, но он еще не ответил.
Нужны индивидуальные настройки для каждого типа гир.
У него сделан уровень по-читерски: что гирами не довернуло, то аксель занормирует. Поэтому

  1. реализации Алекса относительно пох на чувствительность гиры (градусов/сек) - это плюс, да.
  2. Если делать “поворот в наклоне”, все безбожно уходит в сторону из-за прецессии,
  3. при любом движении с ускорением “горизонт” уходит в сторону усиления наклона.

MARG-алгоритм этих недостатков лишен.

Олег! Снимаю шляпу! Сказать что ты крут - значит ниче не сказать!
Радует что такие люди в теме! 😃

Syberian

Ну, для квадрика нужно стандартно поменять дефайны…

tarik

Насколько я разобрался в исходнике, этому алгоритму без разницы - квадро-, три-, или гексакоптер, что и логично - к движкам он не касается.
По идее, подбирать нужно значение только здесь :

gyroFactor = deltaTime/460e6;

и зависит оно от чуствительности гиры (град/мсек). Чуствительность ITG3200 2000 град/сек, т.е. для 2 град/мсек уже подобранное значение 670e6

SovGVD

подожду пока кто-то полетает и скажет “вау! мега круто”, в идеале еще и с дефолтным wmp (2 датчика 65x вроде бы) и adxl335 =)

Syberian
tarik:

подбирать нужно значение только здесь

Именно это я и пытался сообсчить 😁
Сижу ночами, башка уже не варит…

Covax
Syberian:

Ну, для квадрика нужно стандартно поменять дефайны…

Олег, обьясни пожалуйста, что нужно поменять и где, чтобы заработало с WMP ITG650/655 и например BMA020, а так же алгоритм как подбирать значения.

tarik
Covax:

чтобы заработало с WMP ITG650

У 650-го чуствительность такая же как и у ITG320, так что можно попробывать

gyroFactor = deltaTime/460e6

заменить на

gyroFactor = deltaTime/670e6

про ITG655 даже производитель не знает…

Ну и конечно же тестировать без винтов и в руках.

Syberian
Covax:

алгоритм как подбирать значения.

Попробую.
0) ОТКЛЮЧИТЬ ДВИГАТЕЛИ

  1. добиться, чтобы нормально показывало наклоны в ГУИ в оригинальной 1.7пребис-прошивке
  2. прошить мою и увидеть, что что-то тоже показывает и отклоняется
  3. Расположить плату/датчики горизонтально, подождать, пока все показания устаканятся на нулях (стрелки крен и тангаж)
  4. резко поставить плату градусов под 45 к вертикали “тангажом” - т.е. носом вверх, засечь поведение стрелок “pitch” и ROLL
    4a) если ROLL не меняется, а PITCH первоначально “не достреливает” до требуемого положения, а потом медленно доходит, нужно уменьшить знаменатель в deltaTime/**460e6
    ** 4б) если ROLL становится перевернутым, а потом переворачивается обратно и PITCH медленно возвращается к требуемому положению из максимума, знаменатель в deltaTime/460e6 нужно увеличить
  5. повторять п.4, 4а, 4б , пока “медленная подстройка” не исчезнет совсем.

Если при резком тангаже сразу начинает реагировать MAG или ROLL, пишите, будем думать, какие каналы переставлять.

Covax
Syberian:

4б) если ROLL становится перевернутым, а потом переворачивается обратно и PITCH медленно возвращается к требуемому положению из максимума, знаменатель в deltaTime/460e6 нужно увеличить

а как увеличить, это же 16тиричное я так понимаю? 😃 как это сделать неумелому с помощью скажем калькулятора в windows? 😃

Syberian

Это степень 😃 460 * 10 в 6 степени

Эту 460 и меняем на 450, 670, 320 и пр… Сразу шагом в 20-30
Только надо учесть: если у вас включено #define ITG3200, менять нужно ту часть, где изначально стоит множитель 670е6, а не 460е6

Volver
Syberian:

Переделал, теперь параметры не дурят. Т.к. эта штука считает еще и угол рыскания, вывел его вместо азимута MAG. ftp://syberian.dyndns.org/arduino/Mu…7_MARGv1.1.zip Алил, попробуешь еще раз?

Попробую!! спасибо!

но, только вечером, дома ))

Syberian

Апдейт 😃
Настроил рыскание (в нашем случае - азимут). Показывает с точностью до градуса, повторяемость идеальная, дрейфа за пару минут не заметил. Можно использовать ардуину, как транспортир 😁 Причем, независимо, каким ребром ставить на стол.
ftp://syberian.dyndns.org/arduino/MultiWii1_prebis7_MARGv1.2.zip

Не представляю, что за инструмент получится, если туда еще и магнетометр прикрутить 😃
Я просто должен показать это миру! (и заставить работать у кого-нибудь еще)

В дальнейших планах - отключить ПИДы на гиры вообще, чтобы управление микшировалось только с выходов MARG и пульта (пропорционально-угловое). Задумок много. Может, стоит портировать на 1.7preter?