RSS лента

mahowik

MahoWii 2.4

Рейтинг: 5.00. Голосов: 14.
25.11.2016 в 06:16 (7226 Показов)
Всем привет!

Выкладываю проект в открытый доступ https://github.com/mahowik/mahowii

Работа проведена большая. Налетаны десятки часов. Спасибо всем и отдельно Артему за помощь в тестировании!

Постараюсь коротенько
1) единая ИНС для расчета вертикальных/горизонтальных скоростей и перемещений по данным акселерометра с коррекцией на баро и гпс

2) 3-х осевая 6-ти точечная калибровка акселеромета для более точной работы ИНС.

3) По удержанию/регулировке высоты (альтхолд - АХ):
- полностью переписан и теперь на основе ИНС
- SAFE_ALT бокс/режим. Это тоже самое что и пункт 4 из описания RC3, но активацию можно настроить в ГУИ, а высоту задать SAFE_ALT_DURING_AH дефайном.
- полностью переработан детектор фиксации земли, воздушной подушки и посадки
- компенсатор воздушной подушки интегрирован с ИНС
- единый ПИД контроллер для регулировки высоты и ее удержания
- боле надежный поиск газа висения (И-частью ПИД регуля)
- на посадке "нежная" скорость спуска, т.к. можно влепить в землю. Где, если высота меньше SAFE_NAV_ALTITUDE (=5м), то скорость ограничена MIN_NAV_VARIO (=0.5м/с), а если высота выше, то скорость спуска уже пропорциональна высоте, где макс. скорость MAX_NAV_VARIO (=2.5м/с) на высоте RTH_ALTITUDE (=25м) и выше.
- скорость подъема при навигации по точкам и на возврате домой выходит на макс. до MAX_NAV_VARIO (2.5м/с) на высоте большей чем SAFE_NAV_ALTITUDE (=5м), где если высота менее SAFE_NAV_ALTITUDE, то скорость ограничения в 3 раза ниже (т.е. MAX_NAV_VARIO/3), опять же для безопасности.

4) По ГПС режимам:
- удержание позиции (position hold - PH) теперь стало более отзывчивым и точным, т.к. использует данные ИНС. Активация по INS_PH_NAV_ON (включено умолчанию)
- возмозможность полетов в PH, когда roll/pitch стик за границей AP_MODE (=20), где при отпускании стика происходит захват позиции.
- расчет/предсказание точки останова при полетах в удержании позиции (PH - position hold). Регулируется параметром Pos-I в ГУИ. Когда отпускаем стик, к текущей координате добавляется вектор скорости умноженный на время из Pos-I
- ожидание набора заданной высоты в точках навигации
- при активации возврата домой (RTH - return to home) если растояние до точки "дом" меньше чем RTH_RADIUS (=10м), то возврат с набором высоты будет пропущен и включено удержание позиции либо посадка (если она активиривана вместе с RTH).
- автоконфигурация гпс модулей по MTK протоколу
- автоконфигурация гпс модулей по u-blox протоколу + новые дефайны
- запрет АРМа, если какой либо из ГПС режимов включен
- запрет АРМа, если нет 6-ти спутников (отключается закрытием дефайна ONLY_ALLOW_ARM_WITH_GPS_3DFIX)
- если RTH активирован, то активация других гпс режимов будет проигнорированна, что бы избежать перезапуска цикла RTH (вийный баг)
- фикс прыжков координат в ГУИ (вийный баг)

5) FRSKY телеметрия (в связке с ER9X прошивкой пульта):
- исправлено отображение координат (вийный баг)
- исправлено отображение ГПС скорости (вийный баг)
- удаление не нужных пакетов типа (ax, ay...)

6) Всякое разное:
- оптимизированная математика (sin,cos и т.д.) С активированной ИНС влез в 4-5мс без дропов!
- фильтрация данных магнетометра в процессе его калибровки для избежания попадания шумов в мин/макс значения калибровки
- 50гц ПИД выход для АХ и ГПС режимов
- независимый от времени цикла конечный ПИД регулятор и как следствие более точный и не подверженный дрейфу горизонт
- куча мелкофиксов, оптимизациий и улучшений в сравнении с multiwii

Примечания:
- параметры в конфиге помеченные как (**) или (EEPROM) хранятся в EEPROM и соот-но берурся из config.h только при первой загрузке.

Рекомендации:
- для ИНС хорошо подходят u-blox модули от 6-й до 8-й версии (хотя 7-ю не пробовали, но думаю будет ок). С МТК модулями удержание позиции похуже, а настройка ПИД показалась сложнее.
- хорошо бы выполнить 3-х осевую калибровку акселя, как написано тут (пункт 4) В результате по всем осям будет +/-512 с погрешностью в пару единиц.
- для конфигурации оч. рекомендую EZ-GUI https://play.google.com/store/apps/d....ezio.multiwii
В нем есть все что надо: пиды, мониторинг, доп. eeprom параметры, точки навигации и т.д.
- заливать прошивку arduino 1.6.7 https://www.arduino.cc/en/Main/OldSoftwareReleases
- перед первой заливкой лучше почистить EEPROM скетчем для Atmeta2560

О том как проводилось тестирование (а так же описания к RC1/RC2/RC3) можно почитать тут. А так же на канале Артема куча, видео роликов.

Напомню, прошивка ориентированна на АИОП контроллер (ALL IN ONE PRO Flight Controller), либо любой другой с Atmega1280/2560 + mpu6050 + ms5611 + hmc5883 (но тут уже возможны нюансы распиновки выходных пинов, т.е. на свой риск). По другим контроллерам не гарантирую!

Для скачивания идем на https://github.com/mahowik/mahowii и жмем сверху справа кнопку "Clone or download" и потом "Download ZIP". Далее надо распаковать архив и папку "mahowii-upstream_shared" переименовать в "mahowii". Потом открываем mahowii.ino в Arduino IDE как обычно.

Там же на github не забываем жать кнопочку "Star" Если нет github аккаунта, то заводим его и жмем "Star"

Blogs:
- https://www.rcgroups.com/forums/show....php?t=2787668
- http://www.multiwii.com/forum/viewtopic.php?f=8&t=7877
- http://forum.rcdesign.ru/blogs/83206/


Обновлено 30.11.2016 в 22:13 [ARG:5 UNDEFINED]

Категории
Без категории

Комментарии

  1. Аватар для BigWheeelS
    О, неплохо.
  2. Аватар для Saire
    круто)) Спасибо!
  3. Аватар для ADF
    Спасибо!
  4. Аватар для Covax
    Класс, молодец!
  5. Аватар для SergDoc
    Звёздышку нажал
  6. Аватар для dvd-media
    Мне не надо, но тоже нажал. За такое не жалко.
  7. Аватар для alezalez
    Спасибо!
  8. Аватар для Shuricus
    Работа, видимо, колоссальная - вот бы на СТМ ее, типа Ф4 с баро за 25$ - а то все пропадет зря.
    Хотя это уже Инав сделал, не знаю как хорошо.
  9. Аватар для Covax
    С силу появления глушилок на ру и гпс нужен хотя бы приблизительный возврат домой по инерциальной системе)
  10. Аватар для mahowik
    Цитата Сообщение от Shuricus
    Работа, видимо, колоссальная - вот бы на СТМ ее, типа Ф4 с баро за 25$ - а то все пропадет зря.
    Хотя это уже Инав сделал, не знаю как хорошо.
    Сейчас большинство контроллеров и прошивок к ним имеют примерно один и тот же набор функций и режимов. Где avr контроллеры проигрывают в производительности stm-ам и соот-но довольно сложно было оптимизировать и запустить инс на avr, но задача решена и можно вдохнуть новую жизнь в уже пристарелую железку. А в порте смысла нет, т.к. на ф4 уже калманы всякие крутить надо и т.д.
  11. Аватар для mahowik
    Цитата Сообщение от Covax
    С силу появления глушилок на ру и гпс нужен хотя бы приблизительный возврат домой по инерциальной системе)
    Увы никак. На наших хоббийных датчиках хорошо калиброванная инс живет пару секунд всего без коррекции по абсолютным сенсорам.
  12. Аватар для omegapraim
    А почему нельзя сделать Экстренный возврат домой по компасу, если вдруг у квадрика все ру и гпс отвалилось, то развернуть его в направлении точки взлета и фигачить пока сигнал с гпс не появится. Этот способ имеет массу нюансов по получению улетов, но тем не менее если дело в глушилках, то позволит вылететь из зоны поражения.
  13. Аватар для SergDoc
    Цитата Сообщение от omegapraim
    А почему нельзя сделать Экстренный возврат домой по компасу, если вдруг у квадрика все ру и гпс отвалилось, то развернуть его в направлении точки взлета и фигачить пока сигнал с гпс не появится. Этот способ имеет массу нюансов по получению улетов, но тем не менее если дело в глушилках, то позволит вылететь из зоны поражения.
    Можно ещё на бабушкин шепот лететь:
    1) и самое вероятное "глушилка" будет подменять координаты GPS и даже кратковременное нахождение в таком состоянии сведёт все показания коту под хвост.
    2) в 90% уверен, что РУ не сразу пропадёт полностью, а сначала начнёт "издеваться" над аппаратом...

    И так, всё что мы делаем - это хобби (игрушки) и еже-ли попали в такую передрягу - самое лучшее, что приходит на ум - посадка.
    Возможная потеря аппарата - ничто по сравнению с тем, что он может натворить ломанувшись куда попало....
    Дима, или ты можешь смоделировать и проверить десятки, а лучше сотни раз такую ситуацию? Что бы быть уверенным что данный алгоритм сработает в 100% случаев правильно?
  14. Аватар для BigWheeelS
    Маховик, а с помощью какой утилиты можно менять параметры в EEPROM , которые добавил ты?
  15. Аватар для mahowik
    новые параметры все в config.h, т.е. в еепром новых параметров нет, хотя многие из них переиспользованы...
  16. Аватар для mahowik
    Если у кого завалялся ненужный АИОП, приму в дар
    Мой совсем добытый уже...
  17. Аватар для BigWheeelS
    Александр, ещё несколько вопросиков.
    1. Как отключить пикание buzzer'а при возвышении/снижении в ALT HOLD ?
    2. Нужно ли менять пиды, если я выставил GYRO LPF 42HZ ?
    3. С помощью какого инструмента можно редактировать настройки AUX каналов выше 5-го ? Я в дефайне PPM-SUM заменил 8 на AUX5, но в ez-gui нет настроект для него.
  18. Аватар для mahowik
    1) #define BUZZER
    2) нет
    3) я не игрался с этим, но в принципе можно легко обойтись и 4-мя каналами и если не хватает 3-х состояний/боксов на каждый, то активируйте #define EXTENDED_AUX_STATES. Тогда на каждый канал будет по 6 состояний/боксов, т.е. на 4 канала 4*6=24 режима можно вешать...

    Channel values
    1000-1230
    1231-1360
    1361-1490
    1491-1620
    1621-1749
    1750-2000
  19. Аватар для BigWheeelS
    #define BUZZER это же глобальный ВКЛ/выкл пикалки. а мне нужно убрать только пикание альт холда.
  20. Аватар для AlexeyStn
    Огромное спасибо, Александр!
    Как раз пока снег и морозы, гонять на миниках не слишком комфортно, так что сижу восстанавливаю свой старый 450-й камеролёт на АИОП.
    Наверняка где-то уже проскакивало, но не нашёл и спрошу ещё раз: AIOP c MahoWii допустимо крепить болтами или обязательно делать виброразвязку на двухстороннем вспененном скотче?
    Раньше летал с приклеенным на скотч, но хотелось бы поменять конструкцию.
  21. Аватар для mahowik
    Цитата Сообщение от BigWheeelS
    #define BUZZER это же глобальный ВКЛ/выкл пикалки. а мне нужно убрать только пикание альт холда.
    Вы первый кому понадобилось это отключить. Это скорее удобство что бы знать что стик вне центра и на слух примерно знать ожидаемую скорость снижения...
  22. Аватар для mahowik
    Цитата Сообщение от AlexeyStn
    AIOP c MahoWii допустимо крепить болтами или обязательно делать виброразвязку на двухстороннем вспененном скотче?
    Раньше летал с приклеенным на скотч, но хотелось бы поменять конструкцию.
    Я не использую виброразвязку. Из балансировок, только винты и то на отвертке на глазок. Т.е. мотор+винт в связке не балансирую...
  23. Аватар для SanRomStaV
    Спасибо за Ваши труды!
    не подскажите какой сонар сейчас наиболее актуален?
  24. Аватар для mahowik
    в последнем релизе его нет, т.к. не нужен уже по сути... если кратко:
    - сонар капризен к различним типам поверхностей
    - точности барометра ms5611 вполне достаточно
  25. Аватар для SanRomStaV
    Спасибо, а реально ли установить сонары по бокам и сзади, для боле безопасных полётов по камере?
  26. Аватар для LomS
    Здравствуйте, в 2.4 версии больше нет возможности управлять серво-стабилизацией? скажем по AUX3?
  27. Аватар для mahowik
    Цитата Сообщение от SanRomStaV
    Спасибо, а реально ли установить сонары по бокам и сзади, для боле безопасных полётов по камере?
    Если летать с макс скоростью 50см/c то наверное можно прикрутить, а далее тесты тесты, краши ремонты и опять тесты
  28. Аватар для mahowik
    Цитата Сообщение от LomS
    Здравствуйте, в 2.4 версии больше нет возможности управлять серво-стабилизацией? скажем по AUX3?
    Если вы про обычную вишную серво-стабилизацию, то смотрите в config.h секцию Cam Stabilisation (строка 260)
  29. Аватар для LomS
    Цитата Сообщение от mahowik
    Если вы про обычную вишную серво-стабилизацию, то смотрите в config.h секцию Cam Stabilisation (строка 260)
    сама стабилизация работает, но возможности покрутить камерой в ручную, не могу найти (крутилкой с пульта). Спасибо
  30. Аватар для mahowik
    а ну да, я вроде прикручивал такую возможность в прошлых прошивах... будет время посмотрю...
  31. Аватар для SanRomStaV
    Цитата Сообщение от mahowik
    Если летать с макс скоростью 50см/c то наверное можно прикрутить, а далее тесты тесты, краши ремонты и опять тесты
    У Вас был похожий опыт? Скорости минимальны, для плавной съёмки до 25 км/ч. Был печальный опыт столкновений боком и задом в деревья( Было бы очень здорово установить рабочие сонары по бокам и сзади. Каковы могут быть варианты реализации?
  32. Аватар для brig
    Спасибо, Александр, за вашу работу!
    Пара вопросов...
    1)
    Цитата Сообщение от mahowik
    ....активируйте #define EXTENDED_AUX_STATES. Тогда на каждый канал будет по 6 состояний/боксов
    А как это использовать практически? GUI ведь не поддерживает по 6 состояний канала управления?

    2) Прочитав все дневники (RC1...RC3 и более ранние), не нашел упоминаний о "custom motor mixing" для случаев, когда рама квадрокоптера представляет собой не чистый Х-крест, а нечто вроде TBS Discovery или Alien. Или в Вашей прошивке здесь нет особенностей и коррекцию можно выполнять стандартно для Multiwii?
  33. Аватар для brig
    С первым вопросом вроде разобрался: как советовали на rcgroups.com, в файле MahoWii.h заменил дефайн #define VERSION 240 на #define VERSION 230, после чего стало возможным использовать WinGUI 2.3, который эту функцию поддерживает. Надеюсь, на функционирование mahowii это не повлияет.
  34. Аватар для mahowik
    Цитата Сообщение от brig
    1) А как это использовать практически? GUI ведь не поддерживает по 6 состояний канала управления?
    - wingui указав #define VERSION 230
    - ez-gui лучший выбор

    Цитата Сообщение от brig
    2) Прочитав все дневники (RC1...RC3 и более ранние), не нашел упоминаний о "custom motor mixing" для случаев, когда рама квадрокоптера представляет собой не чистый Х-крест, а нечто вроде TBS Discovery или Alien. Или в Вашей прошивке здесь нет особенностей и коррекцию можно выполнять стандартно для Multiwii?
    все верно, т.е. как в обычном вие через MY_PRIVATE_MIXING
  35. Аватар для AlexeyStn
    Есть GPS-модуль Crius CN-06 v3.0 (Ublox NEO-6M), работает на 115200 кбит/с.
    GPS исправен точно, спутники ловятся, если принимать с него данные на FTDI-адаптер или tBeacon.
    Год назад на MahoWii 2.2 работало идеально. С переходом на 2.4 возникли проблемы: полётный
    контроллер принимает битые данные. Жёлтый диод на AIOP мигает как попало, а на OSD и телеметрии пульта пишутся или нули, или абсолютно нереальные координаты. В config.h нашёл строку:

    // avoid using 115200 baud because with 16MHz arduino the 115200 baudrate have more than 2% speed error (57600 have 0.8% error)

    Выходит, теперь надо перенастраивать GPS-модуль через U-center?

    UPD: Завелось! Надо было указать #define UBLOX вместо #define NMEA.
    Теперь полётник нормально принимает и на 57600, и на 115200.
    Так что 115200 бит/с всё равно работает, несмотря на то, что это не рекомендованная скорость.
    Обновлено 05.02.2017 в 20:53 [ARG:5 UNDEFINED]
  36. Аватар для mahowik
    Стабильный и достаточный GPS_BAUD это 38400 или хотя бы 57600. На 115200 велика вероятность ошибки передачи пакетов.

    Через U-center ничего крутить не надо. Прошива умеет делать автоконфигурацию.
  37. Аватар для AlexeyStn
    Ok. Поставлю 57600. А то мало ли как на морозе или жаре частоты уплывут.
  38. Аватар для ponch
    c GPS влить на 328p вообще не вариант? хотя бы с RTH. Оригинальная mw на моем пк (paris sirius) странно себя ведет - дрифт назад и ничего не помогает. а на этой прошивке все ок) Но без rth как-то стремно.
  39. Аватар для mahowik
    слишком много зависимостей в коде между различными ГПС режимами, т.е. просто так не выпилить...
  40. Аватар для nemo61
    Александр, подскажите. Не могу настроить position hold. Унитазит. Можно ли настраивать режим с помощью ПИДов? Или нужно делать выносной компас? Ещё вопрос. Есть ли различие в прошивках на гитхабе и тех, что Вы высылали пользователям.
    Обновлено 17.04.2017 в 11:09 [ARG:5 UNDEFINED]