RSS лента

dollop's blog

iNAV на CC3D - самый бюджетный автопилот с функцией RTH для самолета

Рейтинг: 5.00. Голосов: 12.
19.02.2016 в 00:22 (28257 Показов)
Запишу в дневник, чтобы не забыть, да и пригодится может кому...
Да, это не полный и исчерпывающий мануал по iNAV, а пример настройки АП под конкретный тип ЛА.

Кроме того, этой записи в дневнике исполнился год. А за год в iNAV произошли существенные изменения. И только в лучшую сторону. Поэтому тут в тексте многое исправлено и дополнено. Актуально на конец февраля 2017. Версия iNAV 1.6.

В поисках кандидата легкого, не дорого комплекта АП для мелкого FPV самолета взор упал на давно приобретенную плату CC3D. Поставив ее на самолет и без труда настроив OpenPilot захотелось большего, а именно возврата домой. В результате после изучения темы всплыли две возможности:
- прошивка Патрика (базируется на baseflight)
- iNAV (базируется на cleanflight)
Имея не очень успешный опыт эксплуатации прошивки Патрика на multiwii, прочитав наискось его тему на fpvlab.com, найдя фразу Патрика же, что его прошивке до iNAV очень далеко, у меня остался только один вариант. А почитав в основном положительные отзывы по системе навигации iNAV вообще развеялись все сомнения.

Что потребуется:
1. Полетный контроллер CC3D или совместимый с iNAV (от $13)
2. OSD (minimOSD или любое другое поддерживающее cleanflight) (от $8)
3. GPS приемник (от $10)
Итого, на АП, gps и osd вышло менее $32
4. FPV комплект, самолет, РУ, батареи и т.п. это и так понятно.
Фото подопытного ЛА:

Пилот может смотреть по сторонам. На мир с высоты смотрю глазами миньена

Получил удовольствие от настройки iNAV, и использования - самолет летает, отлично управляется и летает в стабилизированных режимах, возвращается домой. В RTH имеется возможность изменять высоту возврата в полете при помощи стика РВ.

Начнем (для увеличения изображений правый клик на нем мышей и открыть в новой вкладке).

1. Прошивка iNAV в CC3D.
Ничего необычного в процессе нет.
Качаем скомпилированную прошивку под наш тип платы отсюда https://github.com/iNavFlight/inav/releases
А далее существует куча мануалов как на CC3D залить стороннюю прошивку. Например тут и тут . Единственное отличие, что для прошивки выбираем скачанный файл iNAV.
С выходом версии 1.2 для CC3D необходимо делать выбор между двумя прошивками CC3D и CC3D_PPM1. Разница очевидна - если используется приемник с выходом PPM (что очень рекомендуется) то качаем одноименную прошивку.

2. Базовая настройка
Настройку полетного контроллера начиная с iNAV 1.6 лучше начинать с закладки Presets. Здесь можно выбрать тип ЛА и за один клик настроить множество параметров.

Далее будем более тонко настраивать iNAV под себя. Начнем с последовательных портов. Настройка портов выполняется на вкладке Ports.
Вкладка Ports

- UART1 оставляем без изменения (по-умолчанию), к нему будет подключено ОСД или FTDI для настройки с компьютера
- UART3 будет занят для GPS. Соответственно и включаем эту функцию и выбираем необходимую скорость на порту.
Могу заметить, что применяя GPS приемники ublox серии 6-8 нет необходимости их подключения к компьютеру и конфигурирования при помощи u-center. iNAV все сделает сам.

Калибровка акселерометра.
Сейчас у iNAV используется шеститочечная калибровка акселерометра. Сложного в ней ничего нет. Ориентируем плату в соответствии с изображением и нажимаем одну единственную кнопку. И так шесть раз. Главное, на что следует обратить внимание так это на то, что ориентация на изображениях инструкции по калибровке - это ориентация полетного контроллера, а не летательного аппарата. Поэтому, чтоб не путаться я провожу калибровку полетника, а уже потом устанавливаю его в самолет.

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

Не обращаем внимания на нумерацию серв/каналов на картинке. Они не очень совпадают с действительностью.

Ориентация платы.
Так как полетный контроллер можно устанавливать в самолет под любым удобным углом, то нужно настроить соответственно iNAV. Для этого переходим на закладку Configuration и в разделе Board and sensor Alignment устанавливаем желаемые углы. Например, если у вас полетный контроллер установлен так, что USB разъем "смотрит" влево по направлению полета, то устанавливаем Yaw degrees = 90. Если USB разъем получился слева, то Yaw degrees = 270. Раньше такие настройки выполнялись только из CLI. Если будете делать эти настройки там, то нужно иметь ввиду, что у iNav единицы углов равны deg*10 то есть для 90 градусов в терминале (CLI) выполняем команду
Код:
set align_board_yaw=900
для 270 градусов -
Код:
set align_board_yaw=2700
Для сохранения изменений сделанных в CLI нужно дать команду save и нажать enter.

После этого, подключим все оборудование по такой схеме (это вариант с PPM Receiver). Еще раз отмечу, что вариант с PPM приемником более предпочтителен, чем следующий вариант с Parallel PWM, хотя бы потому что открываются возможности для телеметрии (SOFSERIAL) и подключение аналоговых сигналов для считывания напряжения, тока, RSSI.



Или по такой схеме (это вариант с Parallel PWM Receiver):
(Фото реального hardware):


Оставаясь на вкладке Configaration настраиваем следующее:
Если не хочется, чтобы самолет крутил двигателем при арминге, то включаем свитч "Don't spin the motors when armed".

Включим и возможность работы с GPS. Выбирать протокол нет необходимости - у CC3D есть возможность общаться только по UBX.

После включения функции GPS iNav не будет армиться без GPS fix. Если хочется проверить что арм работает то можно отключить эту проверку в CLI: "set nav_extra_arming_safety = OFF". Не забываем ее включить обратно для реальных полетов!

Так как у меня приемник PPM, то кроме всего прочего CC3D под управлением iNAV позволит мониторить напряжение батареи, ток потребляемый в полете, RSSI приемника. Все эти опции присутствуют с правой стороны конфигуратора на закладке Configuration.

В группе Other Features я включил Telemetry и SOFTSERIAL. Последняя опция позволяет использовать пины 4 и 5 входов как программный UART, когда не хватает аппаратных, в моем случае я его использую для FR-SKY телеметрии. Если уж зашла речь за нее, то нужно не забывать, что у FR-SKY UART инверсный. Но никаких аппаратных инверторов городить не нужно - разработчики iNAV позаботились. Идем в CLI и активируем инверсию на порту:

Код:
set telemetry_inversion = ON
И после этого подключаем пин RX FR-SKY приемника к пину 4 CC3D (TX от SOFTSERIAL)



Вкладка Receiver
Здесь контролируем, что реакция каналов управления соответствует движениям стиков передатчика. Если нужно то ставим реверсы в передатчике. Но для Turnigy и Taranis этого не потребовалось. Короче, поведение должно быть таким:

- Стик газа (Throttle) от себя - значение канала увеличивается
- Стик руля направления (Rudder) отклонятся вправо - значение канала увеличивается
- Стик руля высоты (Elevator) от себя - значение канала увеличивается
- Стик элеронов (Ailerons) отклонятся вправо - значение канала увеличивается



Вкладка Modes
На вкладке Modes нужно настроить соответствие режимов полета положению каналов AUX. На AUX я настроил трехпозиционный свитч. С тем как настроено у меня на картинке получается следующее:
- минимальное значение канального импульса - работают одни гиры. Взлет самолета - просто песня. Взял за фюзеляж, нос градусов 10-20 вверх поднял, газу на 80-100%, самолет отпустил. Он под этим углом идет в небо. Без просадок, виляний и пр.
- среднее значение - Angle. Тем, кто любит фпв пилотаж, полюбят режим Horizon
- максимальное значение - RTH. Летим домой. Все автоматические режимы в iNAV самодостаточные. То есть к RTH не нужно включать ANGLE или еще чего-нибудь.


Вкладка Failsafe
Наконец-то! Начиная с версии 1.6 у iNAV появился простой и прозрачный фейлсейф.
Для работы фейлсейфа необходимо следующее:
- настроить приемник так, чтобы он не выдавал никаких сигналов при выключенном передатчике
- или назначить на положение одного из AUX каналов режим Failsafe и сделать так, чтобы при выключенном передатчике этот канал приводил к срабатыванию Failsafe.

Так как у меня FR-SKY D4R-II, то выбор очевиден - настраиваю так, чтоб приемник был в режиме no-pulses при фейлсейф. Для этого просто нажимаем кратко кнопку bind на приемнике при выключенном передатчике. Кроме этого, устанавливаем поведение самолета в режиме failsafe. В моем случае я выбрал возврат домой.

Кстати сказать, настройку ФС я невольно проверил. Работает. А дело было так. Одна из первых посадок получилась довольно жесткая - не удивительно, самолет размахом 65см и массой около 600г . Во время этой посадки самолет повел себя так. Ударившись о землю с газом в 0, он резко ожил и дал полный газ, но врезался в кактус, который и остановил аппарат от взлета и набора высоты и кружения в RTH. Это была случайность, которая избавила меня от необходимости стоять и ждать пока сядет акк и самолет рухнет на землю. Короче, при детальном рассмотрении отпал из CC3D приемник от удара при посадке.

После лирического отступления идем на вкладку Motors

Вкладка Motors
На этой вкладке берем в руки самолет, качаем его по осям и смотрим, какие из ползунков шевелятся в зависимости от углов наклона по PITCH и ROLL. Можно запомнить или записать. ROLL - 4,5; PITCH - 3, YAW - 6.


Вкладка Servos
Включаем передатчик, устанавливаем режим Angle или Horizon. Переходим на вкладку Servos.

Тут внимательно. Я, например, на неделю позже взлетел на iNAV из-за реверса элеронов, которая обнаружилась на первой секунде полета . На этой вкладке настраиваем конечные и среднюю точки, расходы, а так же реверсы рулей для режимов стабилизации. Нумерация серв на этой вкладке начинается с 0! Для РВ, наклоняем хвост вниз, РВ должен должен опуститься. Если же РВ поднимается, то необходимо установить Rate (самый правый выпадающий список) Servo 2 с отрицательным знаком. Наклоняем левое крыло вниз. Левый элерон должен должен опуститься вниз, а правый подняться вверх. Если что-то не так, то исправляем установкой отрицательных Rate для Servo 3 и Servo 4 (если элероны подключены к одному каналу через Y-кабель, то достаточно поменять настройку только одного из каналов). Далее отводим хвост влево, руль направления должен отклониться влево. Если не так, то устанавливаем отрицательный Rate для Servo 5.
Обратите особое внимание, что все конечные точки, нейтрали, триммеры настраиваются на той вкладке, а не в передатчике!


3. Переходим к OSD
Я использую minimOSD и micro minimOSD. В них нужно прошить стороннюю прошивку - MWOSD. На данный момент MWOSD претерпевает значительные изменения - добавляются протоколы, новые возможности, опять же-таки появился глючный конфигуратор под chrome...
По ссылке выше присутствует install guide. Но там все как обычно: прошивка через среду Arduino (желательно скачать самую свежую с оффсайта), запуск конфигуратора, прошивка шрифтов через конфигуратор. Настройка параметров. Скрин параметров:


Конечно, до прошивки MWOSD в плату minimOSD ее необходимо настроить. Все изменения в файле Config.h
В разделе OSD HARDWARE settings:
Код:
#define MINIMOSD
В разделе CONTROLLER SOFTWARE
Код:
#define iNAV
И наконец в разделе AIRCRAFT/INSTALLATION TYPE settings
Код:
#define FIXEDWING
В последних версиях MWOSD есть довольно полезная функция MAPMODE. Если ее активировать в Config.h, то через конфигуратор можно выбрать разные режимы карты. Смысл MAPMODE заключается в том, что центр экрана OSD представляет собой виртуальную карту с меняющимся масштабом, на которой изображен ЛА и дом. Таким образом, можно легко ориентироваться на новой местности.

4. Настройка PIFF
Как оказалось настройки PID/PIFF которые ставит по-умолчанию Preset являются хорошим стартом для настройки. На скрине ниже приведены коэффициенты для моего 800mm крыла - EPP Rainbow. Так как Duster с миньеном, который есть на фото в начале записи пережил более 100 вылетов, а сделан он был из пенокартона, то он уже давно утилизирован


Я пользовался для настройки PIFF контроллера рекомендации автора - DigitalEntity:
0) Настраиваем самолет в режиме ANGLE. Полет выполняем визуально, в безветренный день. Начинаем со следующих значений PIFF: P=5, I=10, D/FF = 20
1) Даем резкую команду roll с пульта, и смотрим как самолет ее выполняет. Движение самолета должно быть плавным от начала до конца маневра, без осцилляций в начале и в конце, без раскачек. Если самолет раскачивается в конце маневра - уменьшаем FF; Если самолет начинает выполнять маневр быстро, а затем замедляется и снова продолжает движение, как бы рывками - это значит, что FF слишком мало.
2) Повторяем то же самое для pitch
3) Можно увеличивать FF так, чтобы появились осцилляции в конце маневра, а затем уменьшить этот параметр на 20%
4) Если самолет не достигает заданного угла - нужно увеличить коэффициент I
5) Чтобы самолет хорошо "боролся" с порывами ветра увеличиваем P, но помним, что увеличение P приводит к более активному использованию серв.

5. Настройка PIDов навигации
Если самолет при возврате домой или полетам по точкам летит совсем не по прямой, а восьмерками и спиралями. То стоит подумать о настройке PID навигации, так как значения по-умолчанию не всегда подходят. Первое, что нужно сделать - установить следующие параметры в CLI и в 90% случаев подобные проблемы уходят
Код:
set nav_fw_pos_xy_p = 50"
"set nav_fw_pos_xy_i = 5".
Видео полета (на 2.20 включен принудительный RTH)

Обновлено 26.02.2017 в 09:59 [ARG:5 UNDEFINED]

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

Комментарии

Страница 4 из 4 ПерваяПервая ... 2 3 4
  1. Аватар для Frai
    Айдар посмотрел видео и на русском и на английском разница в них только очередностью включения питания по усб и подключением FTDI адаптера. Пробовал так и эдак бутлоадер не отвечает. Менял скорость портов- молчит собака. И в конце пробовал через Flash loader - тоже самое. Может bootloader только с open pilot совместим. Через open pilot прошивается OPBL прошивка для inav или cleanflight, и легко откатывается на open pilot, без проблем. С OPBL прошивкой конектится в inav. Я уже думаю может FTDI адаптер не ( той системы), а.....
    Кто нибудь летает на OPBL прошивке?
    Обновлено 06.03.2017 в 15:38 [ARG:5 UNDEFINED]
  2. Аватар для vjick
    я тоже долго мучился. пока не запаял перемычку и не прошил прогой из видео.
    Отдал плату другу, он уже туда 5ю версию прошил, летает на коптере, доволен.
  3. Аватар для Frai
    Перемычка запаяна.
    Горит только зеленый светодиод.
  4. Аватар для Newbie74
    Некоторые CC3D не прошиваются через UART. Не знаю, что там китайцы не так сделали. Телеметрия работает через эти порты, GPS работает. А CF и iNav не шьются. Все перепробовал, ничего не помогло. В итоге взял SPRF3 - все прошил с первой попытки.
  5. Аватар для JKKrim
    Цитата Сообщение от Newbie74
    Некоторые CC3D не прошиваются через UART.
    А вы не проверяли объем памяти процессора? Много прошло через руки CC3D, и все прекрасно шились через Main port, за исключением некоторых китайских подделок, на которых стояли процы с 64 кб, вместо 128кб. То есть прошивка вроде как заливалась, но плата не запускалась потом. На них только OpenPilot прошивка влазила и работала.
  6. Аватар для Newbie74
    Не проверял, но думаю проблема не в этом. Сейчас этих cc3d уже нет под рукой, чтобы проверить. Версия CF 1.10 поддерживала single binary file с расширением bin, который можно было залить через openpilot или librepilot через usb без танцев с uart. И вот она заливается и работает. А более новую версию ни одну не удалось залить. Cc3d было три штуки, все куплены у одного продавца. И все с одной и той же проблемой.
  7. Аватар для mishaXXyears
    CC3D Atom - все отлично зашивается через FDTI свисток
  8. Аватар для mishaXXyears
    с bin. версией прошивки, есть куча ограничений по функционалу.
  9. Аватар для N0_PrimA
    Всем доброго времени суток. Купил я себе на замену cc3D spracing f3, но тут вылезла проблема: не работают ПВМ входы, а приемник Л9Р дальнобойный не распологает С.Бас выходом Что делать? рспознаются только 3 канала: Газ и два аукса. Команду chnnel forwarding пробовал. не помогло. Я в печали.
  10. Аватар для dollop
    у frsky L9R есть sbus...
    по PWM приемник к полетнику подключать сегодня как-то дико, если честно. Но если очень хочется, то нужно это делать в соответствии с руководством по подключению конкретно вашего контроллера
  11. Аватар для Wowic
    А кто знает, куда делись в последних версиях OPBL (Open Pilot Boot Loader) версии прошивок для СС3D? Досталась мне пара убогих контроллеров, у которых узкоглазые не распаяли ни майн, ни флекс порт. Вообще все цепи этих портов отсутствуют - ноги СТМ32 сидят на земле. Квалификации подпаяться к 0.5мм выводам не хватает. Я подсоединил GPS к софт порту и все летает, но последняя версия iNav, где была OPBL ноябрьская 1.3, с ней пока и летаю.
  12. Аватар для mishaXXyears
    OPBL СС3D версия снята с поддержки ввиду нехватки памяти и ограниченности функционала, а с версии 1.7 (или 1.8 не помню точно) процы F1 перестанут поддерживаться.
  13. Аватар для Wowic
    Печалька. Тогда вопрос: можно ли прошиваться через swd порт? Его-то китайцы оставили.
  14. Аватар для Newbie74
    А как понять, что не распаян Main port? У меня похожая проблема на одном экземпляре. Не шьётся, никакая периферия не работает на main-порту.
  15. Аватар для Wowic
    "А как понять, что не распаян Main port?" Элементарно. Нет разъема Впрочем у меня есть классический CC3D - путем визуального сравнения через лупу выяснил, что там вообще нога СТМ32 ответственная за main port сидит на земле и не хватает тройки резисторов-конденсаторов. Аналогичная картина для flex.
  16. Аватар для Newbie74
    Понял, спасибо. Посмотрю под лупой.
    Кстати для тех, кто никак не может прошить inav через ftdi адаптер: мне случайно попал в руки адаптер CP2102, так вот через него одна плата пролилась на ура. А я уже решил, что она безнадёжна. Проблема оказалась в FTDI, не знаю уж что с ним не так.
  17. Аватар для JKKrim
    Есть информация какие датчики использует сейчас iNAV ? Стоит ли подключать компас, который на GPS или нет смысла?
  18. Аватар для Frai
    Здравствуйте.
    Может кто подскажет?
    Взял на Али два Атома мини. И с двумя одно и тоже: при подключении через УСБ к компу не определяются com портами, а присваиваются как Human interface devices, HD-compliant vendor-definet device и USB Input Device. Через FTDI тоже никак. Boot запаивал. Ничего.

    С Уважением
  19. Аватар для dollop
    Поставь драйвера dfu-device через zadig подробнее тут
  20. Аватар для Wowic
    "Есть информация какие датчики использует сейчас iNAV ?" GPS (uart), компас (встроенный в плату и i2c отдельный), барометр(встроенный и i2c отдельный), датчики напряжения, тока, в том числе и встроенные в некоторые платы (смотреть в документации по iNav, описание конкретного контроллера), сонар (в основном на f3 платах, не проверял), i2c дисплей (не проверял) "Стоит ли подключать компас, который на GPS или нет смысла?" Если аппарат самолет, то не надо, как и барометр, ничего нужного они не принесут, более того компас может навредить, если неправильно настроен и не внесено магнитное склонение. Если аппарат коптер, то нужны оба - настроить компас непросто. Самонастройки, как на ардупилоте нет..
  21. Аватар для JKKrim
    Ок, спасибо, значит компас идет лесом. Появился еще один вопрос. Кто летает на iNAV на самолете, используют ли мозги руддер при стабилизации и возврате? Собрал двухбалочный мелкий самолет 60см для быстрых полетов, руддера на нем нет, но есть поворот камеры по горизонтали, думаю будет удобно управлять стиком. Но на F3 мозге нельзя использовать PWM вместе с GPS, значит управление по PPM, вот и получается, что на поворотку сигнал руддера будет браться с мозга, и если мозг использует руддер в полете, будет косяк.
  22. Аватар для Wowic
    1. Раньше iNav не использовал рудер для управления самолетом. Насчет последних версий, надо спросить у разработчика. 2. На плате с stm32f3 процессором можно одновременно использовать pwm и gps. Там имеется 3 аппаратных uart-a и 2 программных (пользоваться можно только одним программным uart-ом, иначе, по крайней мере у меня, на sp racing f3, они оба работали с ошибками) Реально даже на stv32f1 можно, я летал в конфигурации сс3d + pwm + gps, хотя при этом уже не хватает uart-ов, чтобы подключить osd, если только не пользоваться i2c датчиками и забрать flex порт под osd, gps при этом на main порту. 3. Ничто не мешает подключить поворотную серву прямо к приемнику на 5 канал и выше.
  23. Аватар для mishaXXyears
    Инав рулит хвостом для удержания курса, и если его не вырубить (пиды по "0"), то мешает самолетке делать разворот по кругу задирая нос.
  24. Аватар для Yanchak
    Столкнуся с такой фигней. ПЛатка СС3Д квадратная, прошивка 1.6 при заходе в CLI прошивка слетает. После першивки работает, но настраивать надо по новой.
    Кстати у меня почемуто иНав не першивает платы, а клинфлайт инавовские прошивки - запросто.
Страница 4 из 4 ПерваяПервая ... 2 3 4