MultiWii

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:

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

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

GreatLesli
SovGVD:

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

Спасибо так и сделаю
1Должны ли моторы вращаться после активации

2 Если в GUI разница + - 3-7 это нормально как я понял?

tusik
GreatLesli:

1Должны ли моторы вращаться после активации

Должны.

GreatLesli:

Если в GUI разница + - 3-7 это нормально как я понял?

Я подгонял тримерами.

mahowik

Прочитал вот в факах на сайте мультивийном что взлетать и садится проще в акро моде. Реально чтоле таГ?!

Covax

Короче, не дошел я вчера до мастерской,
Саш, а ты не хочешь доработанный скетч выложить на форум wbb.multiwii.com в ветку про MAG http://wbb.multiwii.com/viewtopic.php?f=8&t=219&start=20 , я думаю там мгновенно тестеры найдутся…

На счет взлета в акро - у меня все отлично взлетает в стаблмоде. Я в акро вообще не летаю, ибо он мне не нужен, гиры 650/655 видимо не слишком чувствительные, коптер болтает только так.

mahowik
Covax:

Короче, не дошел я вчера до мастерской,
Саш, а ты не хочешь доработанный скетч выложить на форум wbb.multiwii.com в ветку про MAG http://wbb.multiwii.com/viewtopic.php?f=8&t=219&start=20 , я думаю там мгновенно тестеры найдутся…

На счет взлета в акро - у меня все отлично взлетает в стаблмоде. Я в акро вообще не летаю, ибо он мне не нужен, гиры 650/655 видимо не слишком чувствительные, коптер болтает только так.

Сегодня постараюсь закинуть, но судя по тому что тема там заглохла месяц назад, может и не поможет 😃

По поводу взлета-посадки видимо пока сам не попробуешь не поймешь 😃

tusik
mahowik:

Пробуйте, предварительно оттестив в ГУИ

Сегодня залью, а завтра попробую. Только у меня гира 3200 и аксель аналоговвый 345. Будет работать?

mahowik
tusik:

Только у меня гира 3200 и аксель аналоговвый 345. Будет работать?

По идее должно пахать. Правда возможно придется коэф. подобрать как описано выше.

tusik

Александр, а почему у меня коптер в гуи не крутится? Графики бегают, обычный коптер крутится, олега с маргом крутится, а этот нет.

mahowik
tusik:

Графики бегают, обычный коптер крутится, олега с маргом крутится, а этот нет.

в смысле на претер прошивке от Олега работает и на последней нет?

tusik
mahowik:

Олега работает и на последней нет?

Да! И включаются только два мотора.

А на обычной прошивке в среднем положении на трех моторах 1300 ед а на одном 1400. Коптер лежит горизонтально, аксель отключен.

mahowik

ну яж писал что марг работает только с акселем! в ГУИ надо включить все линейку кубиков для LEVEL мода + хотяб один кубик в MAG линейке для удержания курса, т.е. чеб аксель был всегда включен.

mahowik:

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