RSS лента

dollop's blog

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

Рейтинг: 5.00. Голосов: 15.
19.02.2016 в 00:22 (58684 Показов)
Запишу в дневник, чтобы не забыть, да и пригодится может кому...
Да, это не полный и исчерпывающий мануал по 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]

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

Комментарии

Страница 5 из 5 ПерваяПервая ... 3 4 5
  1. Аватар для Роман С.А.
    Вся загвоздка была именно как ПРАВИЛЬНО активизировать в ИНАВе , во вкладке Конфигуратион сам ЖПС. Я то думал что там активируются сначала сами строки этими бегунками,(две верхние автоматически активированы),а затем уже выставляется ЖПС и жмётся "Саве". Видос там я залил короткий,как пытался всё поделать.))
  2. Аватар для Роман С.А.
    Подключил CC3D к компу через стандартный УСБ разьём , стандартным (не ttl кабелем).Подал питание на колодку что для рулевых машинок и регулятора оборотов. CC3D засиял синим и заморгал жёлтым. Но ИНАВ не подключился.Я завис.Везде пишут что должен подключится.Залез в дебри форума.Нашёл что кто то,вот точно так же пытался подсоединить и ничего.Нашёлся добрый человек,подсказал.Оказывается,сначала надо запитать от УБЕКа регуля колодку на CC3D,он засветится и только потом,подсоединять кабель к компу.Я проделал всё именно в этой последовательности.И о чудо,комп распознал всё сразу. ИНАВ запустился и соединился с CC3D.Включил Турнигу. Приёмник,заранее привязанный к передатчику,активировался.Зайдя во вкладку ИНАВа,в "Receiver" , попробовал подвигать рукоятками на Турниге. На экране полоски не двигаются.Что делать?
  3. Аватар для alexeykozin
    Цитата Сообщение от Роман С.А.
    Что делать?
    имхо пора накатить.
    три раза по сто, под хорошую закусочку,
    с наступающим )
    не все очевидно конструктивное является таковым на самом деле, в конкретном случае нужно выждать
    Обновлено 29.12.2017 в 13:25 [ARG:5 UNDEFINED]
  4. Аватар для Роман С.А.
    Вы наверно уже это проделали.)) Всё таки как никак канун НГ (Новый год).
  5. Аватар для Роман С.А.
    Если нечего конструктивно предложить в нужном ключе и правильном разрезе по решению вопроса,зачем засорять ветку по теме?
  6. Аватар для alezalez
    "Приёмник,заранее привязанный к передатчику,активировался.Зайдя во вкладку ИНАВа,в "Receiver" , попробовал подвигать рукоятками на Турниге. На экране полоски не двигаются.Что делать?"
    Какой приемник (вернее, какой протокол у приемника)? Во вкладке конфига правильно указали тип сигнала с приемника? Порт для этого приемника настроен? Правильно вам сказали, что нужно накатить - вы не дали необходимой информации, а без бутылки тут не разобраться
    Обновлено 31.12.2017 в 22:28 [ARG:5 UNDEFINED]
  7. Аватар для Роман С.А.
    Ура товарищщи!!! Радостная непонятка!! Во вкладке "Конфигуратион", в "Receiver Mode" блуждая по выбору протоколов,я от нечего делать решил применить народный метод "случайного тыка". Открыв варианты радиопротоколов связи передатчик-приёмник, заменил (просто так) выбранный там PWM RX input (one wire per channel), на PPM RX input. Сохранил. ИНАВ перезагрузился. Лезу во вкладку Recriver.Смотрю,что то полосочки цветные верхние как то не так вытянуты.Я подвигал рукоятками на Турниге и они отозвались пропорционально движению!!! И теперь вот думаю,ну что так через Ж..пу всё у них в настройках и всё так не логично! Отчего не телеметрийный приёмник работает в якобы телеметрийном режиме???

    Два дня убил на это всё.) Но было ощущение,что сдвинусь с этой "мёртвой" точки.))
  8. Аватар для Роман С.А.
    Вот фотка приёмника моего и там видно как китайцы распаяли кабель.Я потом переставлял их местами .Тот белый,что из цельного разьёма,я вытащил и всунул вместо него тот,что рядом с красным идёт.Третий слева. Так якобы правильно. https://drive.google.com/file/d/15lA...ew?usp=sharing
  9. Аватар для Роман С.А.
    Верная раскладка вот... 1 Ground
    2 +5V
    3 Unused
    4 CH1
    5 CH2
    6 CH3
    7 CH4
    8 CH5
  10. Аватар для Роман С.А.
    Я по ней и выполнил всё в итоге.
  11. Аватар для Роман С.А.
    Пока что сборка у меня точно как тут будет. http://s8.hostingkartinok.com/upload...a3d23a8d46.jpg
  12. Аватар для Роман С.А.
    Тут вот ещё обсуждаем.. http://forum.rcdesign.ru/f90/thread490029-13.html
  13. Аватар для Роман С.А.
    Дело движется.Медленно конечно,но хотя бы так.Проблемка с настройкой ОСД.Тут всё описываю... http://forum.rcdesign.ru/f123/thread...ml#post7304308
  14. Аватар для Роман С.А.
    Как бы стало проясняться.Та часть графики и символов,что не отображается ОСД,должны проявиться после нахождения спутников и активации системы в пространстве.(Точка позиционирования по ЖПС).Тогда якобы появится стрелка указывающая "Дом" и прочее. Какое минимальное количество спутников и где надо их выставить,вот что нужно узнать.
  15. Аватар для Роман С.А.
    Как настраивается режим ФС, на приёмнике с ППМ, аппаратуры Флайскай ,для полётников с ИНАВом ?
  16. Аватар для dROb
    Товрищи, а подскажите, почему такая фигня может быть. Поставил на свой CC3D inav последней версии (для CC3D последняя - 1.7.3). Конфигуратор той же версии, хотя пробовал и свежайший

    В общем не запускается процесс 6-шаговой калибровки акселя. Нажимаю кнопку Accelerometer Calibration - пишет "Calibration Started", затем проходит две секунды и "Calibration finished". В калибровачных константах пусто (4096). И хоть ты тресни. Обидно прям.

    Ради интереса поставил CleanFlight - там проблем нет, но там и процедура не 6-шаговая. Положил на стол, откалибровал, можно летать.
  17. Аватар для emax
    а возможно ли INAV конфигуратор подключить к данному контроллеру не через USB, а через какой-нибудь UART?
  18. Аватар для dollop
    Да, просто нужно включить на вкладке портов для этого UART режим MSP
  19. Аватар для Hollod
    Здравствуйте! Почему то не включается флажок на вкладке Failsafe...Может сталкивался кто с таким...
  20. Аватар для imale
    Здравствуйте! Возможно ли INAV установить на Mini CC3D Atom https://ru.aliexpress.com/item/32869...76102e0e3Q29Ja для стабилизации мотопланера? Какие еще плюшки будут доступны для этой модели контроллера? Соединение с приемником по SBUS/PPM. Задача - минимизировать вес.
  21. Аватар для dollop
    Цитата Сообщение от imale
    Прошу вашего совета (копия сообщения из обсуждения)
    Здравствуйте! Возможно ли INAV установить на Mini CC3D Atom...
    Михаил, приветствую.
    Конечно можно. Подойдёт какая нибудь старая версия INAV - младше 1.7.3 (включая) , потому что года так с 2017 слабые микроконтроллеры (ниже f3 утратили поддержку). Не знаю какие плюшки нужны, но если поставить GPS то будет прилетать домой. Стабилизация полёта, автовзлет, авто посадка (нужно поле), контроль батареи, телеметрия на экране пульта. Так как у этого полетника катастрофически мало uart, то нужно ограничить себя в периферии. Если приемник sbas, то без osd, или телеметрии и тд
  22. Аватар для imale
    Константин, спасибо. Заказал АТОМ, как придет, буду пробовать прошивать, правда опыта нет...
    На первой странице Вы упоминали о проекте "типа vtol", как продвигается работа в этом направлении?
Страница 5 из 5 ПерваяПервая ... 3 4 5