MultiWii

Covax
mahowik:

И как это можно по гирам увидеть?

Гира = датчик вибрации

mahowik
Covax:

Гира = датчик вибрации

Т.е. запуская один мотор на полном газу добиваемся положения пропа с минимальным шумом на гире. Верно?

Syberian

достаточно среднего газа и в ГУИ сделать увеличение графика.

Covax

И не забываем отключить остальные моторы 😉

SovGVD

пора бы уже в код добавлять подобную проверку… типа если на низких (до взлета) оборотах вибрация на одном из(на всех по очереди проверка) моторов сильная - не летим, а заставляем сделать всё по нормальному

mahowik
SovGVD:

пора бы уже в код добавлять подобную проверку… типа если на низких (до взлета) оборотах вибрация на одном из(на всех по очереди проверка) моторов сильная - не летим, а заставляем сделать всё по нормальному

Горраздо полезнее было бы еслиб они фильтры нормальные впихнули, учитывая шумность бюджетных датчиков вия, чеб удаление вибрации стало делом добровольным, а не обязательным.
Пример ардукоптер…

Covax

Да, что-то мультивий стал не очень стремительно развиваться…

SovGVD

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

mahowik
Covax:

Да, что-то мультивий стал не очень стремительно развиваться…

Будем сами развивать! 😃
Я тут решил не дать умереть Олеговскому МАРГ-у. Портанул его с 1.7претер на 1.7файнал. Ну портанул может громко сказано. Вмержил так сказать 😃
В двух словах: в гуях красота, вертеть можно на 360 град по всем осям + псевдо-компас работает и можно включать удержание по яв! Есть правда небольшой дрейф по яв на 2-4град в мин (это без наличия магнетометра, с ним дрейфа не будет), но для простых полетов без жпс это мелочи думаю.
Все что нужно это подобрать коэф чувствительности гиры. По формуле это делается в одну-две итерации.
Для idg650/655 уже подобран. У тебяж вроде эта гира?
В общем сегодня-завтра выложу подробности как до компа доберусь.

Covax

Давай, родной! Молодчина! А то Алекс совсем впал в спячку, французы видать по весне/летом о коптерах думать не могют 😃

mahowik:

Есть правда небольшой дрейф по яв на 2-4град в мин

Это вообще ерунда!

mahowik:

Для idg650/655 уже подобран. У тебяж вроде эта гира? В общем сегодня-завтра выложу подробности как до компа доберусь.

Да, именно эта, вполне адекватно себя ведет. Ждем прошивку!

SovGVD:

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

Ну для Атмеги 328 никакой пират не светит, не буду же я квадрик полностью меня удовлетворяющий выкидывать из-за мегапирата 😃 328+wmзplus+bma020 как раз для того чтобы научится летать, а то с мегапиратом чую вообе не научусь никогда, буду читерить бародатчиками и gps 😃

SovGVD
Covax:

для Атмеги 328 никакой пират не светит

я думаю если убрать кучу всяких ненужностей (чтобы было на уровне текущего состояния multiwii), то вполне влезет, а летает в разы лучше… ну и особо переделывать не надо - всего лишь поменять мини на мегу (или все строят такие мелкие коптеры, что платка не влезет никуда?) и немного поиграться с коэффициентами, если датчики не itg3200 - которые в каждом wmp щас и не bma020/bma180
оно и без gps с бародатчиками очень хорошо летает… хотя на лето есть задумка, без gps с компасом не обойтись будет

Covax

Мне кажется на 328 не пирата надо портировать, а развивать мультивий. Легче добавить, чем выкинуть лишнее. Мегапират всегда будет требователен к датчикам и дороже. Если Александр реально довел до ума МАГ Олега под Мультивий, то разве это плохо? У меня квадрик летает отлично, и мне только МАГ для него интересен по большому счету и Z ось.

SovGVD

multiwii тоже требователен =) пока wmp не заменил на другую гиру - одна колбасня (да и вообще налево и направо сам советуешь брать нормальные датчики + гемор с вибрацией), цена мелкой платки в сравнении с мегой не такая уж и кусачая… в итоге за чуть большую цену (рублей 500-600 на вскидку), получаем более стабильный, кастомизируемый и мощный проект (еще бы GUI под все системы, в Linux через wine не очень удобно с .net прогой работать)
я конечно не агитирую ломать multiwii… все вышесказанное личное субъективное мнение (скорее всего от того что с multiwii у меня так и не сложилось)

Covax

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

Siorinex

Вот сижу и думаю: в Паскале в своё время была возможность сделать куски “под конкретный компилятор, систему и т.д.”, когда не юзаемое просто отбрасывалось компиллером… МБ аналог предусмотрен в Ардуино, он всё-же под G++, а у того что-то такое было…

Потом, некоторые алгоритмы - возможно реально оптимизировать…
Что-то где-то добавить какие-нить фильтры и т.д.
Надо смотреть…

Сейчас должны доехать детали для коптера - буду осваивать полёты под МультиВием, а потом планировал проапгрейдить его хотя-бы до Пирата…
Но всё больше склоняюсь к мысли сделать как-то хитро с возможностью или юзать и то и то, или построить второй мультикоптер, оставив мультивий для адаптации прошивок… %)

Syberian
Siorinex:

то-то где-то добавить какие-нить фильтры и т.д.

Вот в этом подвох и кроется. Я, кажется, тут где-то писал, как пытался поставить на гиру IIR-фильтр в МультиВи. Все работает классно и красиво, но… не летает! Жуткая колбасня.
С подобным столкнулся на мегапирате, когда 1-в-1 с мультивия переписал драйвер под ITG3200.
Здесь хоть цикл в пределах 6000 (6 мс) и fastPWM 400 Гц, а в пирате основной цикл 16 мс и обычный PРМ 50 Гц!
Вот и посчитайте, сколько времени нужно там и там с момента обнаружения гирой отклонения - до поступления соотв. команды на мотор?
А IIR-фильтр добавляет еще 30-40 мс задержки в эту линию. И это самое лучшее, что можно получить с приемлемой фильтрацией в случае с моим аппаратом. Быстродействие-то у него 500 мкс, а вот сигнал выхода от входа отстает.

GreatLesli

Добрый день, собрал все по схеме и настроил , положение держит хорошо, только есть один вопрос. При старте не все двигатели одновременно стартуют и когда включен нунчак поведение непонятное вообще. Как правлино откалибровать все моторы одновременно. Как я понимаю это нельзя как в куке сделать через мозги или я чего то не понял. Спасибо

SovGVD

если в GUI показывает что на все моторые одинаковый сигнал идет, то надо просто замкнуть вместе все сигнальные контакты (+ землю конечно) на регулях и всех махом откалибровать (я себе спаял раземчик, чтобы не мучится особо)

mahowik

И так по MARG-у.

Начну с release notes для 1.7preter от Олега:

-реализован режим удержания курса (heading hold): если ручка YAW отпущена, удерживает азимут, в котором находился в момент отпускания. Никакими переворотами и пилотажем с курса его теперь не сбить.
-добавлен полный алгоритм MARG с магнетометром. Чтобы его включить, нужно раскомментировать один из магнетометров (и подключить его). Угол склонения магнитного поля компенсируется и значения не имеет.
-сила удержания курса регулируется в поле YAW P, при этом коррелирует с усилением гиры в обычном режиме
-удержание угла разрешается фишками MAG и может активироваться с пульта (независимо от наличия магнетометра, как такового)
-по наблюдениям, дрейф Вийской гиры при комнатной темп. около 2 град в минуту.
-код приведен в летабельную форму, все включается и управляется как следует.

Преимущества и недостатки MARG-a.
В принципе индивидуальные настройки для каждого типа гир это не недостаток, а разовая процедура настройки. Правда я брал 180 град для формулы, а не 90. Проще угол подобрать. У меня получилось 454, у Олега 460.

#if defined(ITG3200) || defined(L3G4200D)
    gyroFactor = deltaTime/670e6; //empirical
  #else
    gyroFactor = deltaTime/454e6; //empirical, depends on WMP on IDG datasheet, tied of deg/ms sensibility
  #endif

Мои изменения:

  • МАРГ портирован из 1.7_preter в 1.7_final
  • для рыскания знак поменял, а то он пытался корректировать отклонение в сторону самого отклонения. Надеюсь не напутал 😃

Подопытные кролики:

Результаты/тесты:
Сразу скажу что в полете пока не проверял т.к. коптер пока не готов.
В ГУИ:

  • красота, вертеть можно на 360 град по всем осям
  • на моторы идут адекватные уровни. Тут правда не уверен нужно ли будет тюнить пиды при переходе с обычной прошивы.
  • псевдо-компас (конфигурация без магнетометра) работает и можно включать удержание по яв. К примеру при отклонении вправо, подымаются уровни на левый-верхний и правый-нижний моторы. Корректно по идее?
  • не получилось переключать с пульта heading hold. Если в ГУИ выбран хотя бы один квадратик, то удержание курса с пульта уже не отключить.
  • есть небольшой дрейф по яв на 2-4град в мин (это без наличия магнетометра, с ним дрейфа не будет)

Также спешу огорчить любителей быстрой езды. Акро мода не будет, т.к. MARG-у требуется как мин гира+аксель. За счет акселя корректятся ощибки гиры по всем осям кроме яв. Ну и если маг добавить тогда и по яв будет коррекция. Соот-но аксель должен быть включен по дефолту. Без него у меня в ГУИ модель не крутится + на левый нижний мотор идет макс. уровень а наостальных мин.
Теоретически это не беда и ПИД-ами можно настроить его довольно агрессивно и в стаб. моде. Важно то что из любого положения, отпустив стики, он как кошка будет пытаться вернуться на исходную… теория правда 😃, но по ГУИ именно так и происходит…

Пробуйте, предварительно оттестив в ГУИ, желательно со снятыми пропами! Жду отзывов! 😃

Полезные сцылки:
Оригинальный алгоритм: diydrones.ning.com/…/dcm-imu-theory-first-draft
Одна из реализаций: code.google.com/p/imumargalgorithm30042010sohm/

Covax

Саша, отлично! Бросаю работу, выезжаю в поля сегодня 😃
Последний штрих: можно как Олег в Мегапирате выставить максимальный угол отклонения горизонта коптера в градусах, скажем не более 20 градусов? (Чтобы можно было выпимши летать, шутка 😃

mahowik
Covax:

Бросаю работу, выезжаю в поля сегодня

Ну я бы так не спешил! 😃 В руках надо покрутить хорошенько и в ГУИ повтыркать, дабы не убить жужжжелецу 😃

GreatLesli:

При старте не все двигатели одновременно стартуют и когда включен нунчак поведение непонятное вообще.

если калиброваны правильно то может в этом дело