INAV - навигация для полетного контроллера

Квадрокоптеры, настройка и комплектующие.
Ответить
Аватара пользователя
PSJ
Сообщения: 22
Зарегистрирован: 04 дек 2018, 18:06

INAV - навигация для полетного контроллера

Сообщение PSJ »

Изображение

INAV это ответвление проекта Cleanflight, в котором особое внимание уделено функциям навигации и GPS. В настоящее время INAV поддерживает удержание позиции (POSHOLD), возврат к месту взлета (RTH) с предопределенной высоты подъема, полет по маршруту и режим "следуй за мной" (Follow Me). Поддерживается использование с самолетами и Мультикоптерами.

Многие настройки INAV, отличатся от стандартного Cleanflight, работоспособность аппаратов с настройками из Cleanflight не гарантируется.

Обязательно к прочтению
Как прошить?!
Загрузите *.hex файл для вашего полетного контроллера отсюда последний стабильный релиз iNav и используя приложение для chrome iNav Configurator прошейте. Также можете купить и использовать приложение для android Cleanflight flasher для загрузки прошивки в полетный контроллер с android устройств.

Оборудование необходимое для работы в режимах использующих GPS.
  • Многороторные системы: GPS, компас (магнитометр), барометр.
  • Самолеты: GPS. (компас (магнитометр) и барометр не требуются)
Ограничения Naze32, CC3D и других полетных контроллеров на процессоре F1.
  • Нет поддержки телеметрии кроме LTM and FrSky.
  • GPS протокол только Ublox.
  • Нет поддержки ультразвуковых датчиков.
  • Нет автоматического определения магнитного склонения.
  • Нет управления программируемыми светодиодами.
  • Начиная с версии 1.4 есть поддержка только S.Bus, Spektrum и IBus протоколов SerialRX
Для просмотра полного списка ограничений перейдите Link

Эти возможности iNAV могут быть включены, если вы компилируете прошивку из исходных кодов, (обычно при этом нужно отключить что-то другое из-за ограничений по размеру) Читайте Building in windows и Features которые можно безопасно удалить или добавить (Это не полный список, так как можно отключить и другие функции)

Примечания / Общие вопросы
  • Вы не смогли выполнить калибровку accelerator, что приводит к невозможности использования режимов NAV
  • iNav имеет только один PID контроллер, называемый fp-pid. Это модифицированная версия luxfloat.
  • iNav имеет дополнительную функцию безопасности, которая не даёт запустить двигатели, если определенные условия будут выполнены, или не будут выполнены. Это управляется переменной CLI - "Nav_extra_arming_safety" , которая по умолчанию включена.
  • У iNav имеются следующие полетные режимы По этой же ссылке вы найдете описание по их использованию.
  • Если при удержании позиции ваш коптер склонен к "унитазингу" (toilet-bowling), то есть сначала пытается держать позицию, а затем начинает совершать круговые движения с увеличивающимся радиусом, то скорее всего вы не выполнили калибровку компаса или на него действует магнитное поле от силовых проводов или бузера. Если используется компас, установленный на основную плату полетного контроллера, попытайтесь установить полетный контроллер как можно дальше от частей коптера создающих магнитные наводки
Нет GPS фикса после настройки приемника GPS и при этом индикатор GPS в конфигураторе светится синим.
Это обычно происходит из-за электромагнитных наводок самого полетного контроллера или другого оборудования, например видеопередатчика частотного диапазона 1.2GHz. Располагайте GPS приемник на стойке или используйте экранирование.
Калибровка акселерометра является обязательным этапом настройки полетного контроллера. Современные датчики линейного ускорения являются точными, но они требуют калибровки, если мы хотим получить точные данные. Датчики могут иметь смещения, коэффициенты масштабирования для разных осей могут быть разными. Поэтому расширенная шести-точечная калибровка помогает справиться с перечисленными проблемами и необходимо отнестись к ней серьезно.

Можете руководствоваться этим виде, как примером ссылка на канал YOUTUBE

Этапы калибровки акселерометра
Обратите внимание, что, в отличие от cleanflight, iNav не делает калибровку по уровню для калибровки акселерометра! Смотрите раздел "Калибровка уровня" ниже.

Примечание: Если полетный контроллер установлен под углом или вверх ногами, то вы должны выполнить калибровку основываясь на ориентации полетного контроллера, а не ЛА. То есть на рисунках показана ориентация полетного контроллера, а не коптера или самолета!

Подключите полетный контроллер к программному обеспечению "Configurator", выберите вкладку "Setup".
Установите полетный контроллер (поз 1) и нажмите кнопку "Calibrate Accelerometer". Расширенная калибровка активируется и запишет 1-ю точку данных.
Поверните полетный контроллер во все стороны в последовательности (поз 2-6): в верх ногами, на правую сторону, нос вверх, на левую сторону, нос вниз. Нажимайте кнопку "Calibrate Accelerometer" для каждой позиции. Усовершенствованный алгоритм калибровки будет записывать с 2-ой и по 6-ю точку данных.
После того, как все 6 позиций были выполнены, усовершенствованная калибровка вычислит необходимое смещения и сохранить их в EEPROM. Калибровка акселерометра выполнена.
Используйте CLI для проверки accgain_x, accgain_y и accgain_z параметры НЕ ДОЛЖНЫ БЫТЬ 4096. Если это так, то алгоритм не сходится, калибровка не удалась, необходимо повторить калибровку акселерометра заново.
Нет необходимости размещать полетный контроллер идеально ровно, алгоритм не беспокоится о точном положении до тех пор, пока они расположены относительно друг от друга под углом 90 градусов и полетный контроллер находится в неподвижном состоянии в любых положениях.

Калибровка уровня (Level calibration)
Калибровка акселерометра не выполняет калибровку уровня. Для того, чтобы работали полетные режимы ANGLE и HORIZON, а также навигационные автоматические режимы необходимо выполнить триммирование уровня. Настройка производится в разделе "Board Alignment" на вкладке "Configuration". Значения для осей Roll и Pitch должны быть близкими к 0.0, когда ЛА выровнен в горизонт.

ПРИМЕЧАНИЕ! Если вы будете использовать CLI для калибровки уровня, то помните. что у iNAV все углы измеряются в градусы*10, то есть если вам необходимо оттриммировать плату на 1.5 градуса, то необходимо вводить значение "15".

Калибровка компаса
Процесс калибровки
Калибруйте компас запитывая ЛА от основной батареи.

Нажмите кнопку "Calibrate Magnetometer". Теперь в течение 30 секунд держа коптер в руках вращайте его так, чтобы каждая из его сторон (перед, зад, лево, право, низ и верх) была направлена в сторону земли. Хотя алгоритм калибровки в состоянии определить правильные значения калибровочных коэффициентов если вы будете просто 30 секунд после нажатия на кнопку "Calibrate Magnetometer" вращать коптером в воздухе, описывая движения похожие на знак бесконечности.

Как определить, что компас откалиброван правильно
Подключите полетный контроллер к iNAV конфигуратору и обратите внимание на значения углов описывающие положение коптера в пространстве на вкладке "Setup" (Значения Heading, Pitch и Roll). Установите коптер носом на север и проверьте, что значение heading равно 0 градусов. Наклоните коптер на 30 градусов вперед, вправо, влево, назад и удостоверьтесь, что значение Heading не меняется более чем на единицы градусов. Повторите эти же действия, но так, чтобы нос коптера был повернут на восток (heading=90 градусов), юг (heading=180 градусов), запад (heading=270 градусов).

Если значение правильное только, когда коптер установлен горизонтально, то скорее всего переменная CLI align_mag не соответствует реальной ориентации компаса. Если значение правильное, когда коптер установлен горизонтально, но уплывает при наклонах коптера, тогда следует выполнить калибровку компаса снова.

Магнитное склонение
Кроме калибровки компаса необходимо установить магнитного склонение. Это также выполняется на вкладке "Configuration". Магнитные склонения для различных географических положений приведены здесь: www.magnetic-declination.com

Если значение магнитного склонения скажем +3° 34', то в iNav конфигуратор нужно ввести 3.34 (некоторых локалях 3,34). В CLI, того же эффекта можно добиться при помощи команды set mag_declination = 334. Для западного склонения нужно использовать знак минус, то есть для 1° 32' W, set mag_declination = -132. Во всех случаях (CLI или GUI), числе справа представляют собой минуты, а не десятые доли градуса.

В iNav 1.2, на не-F1 полетных контроллерах, возможно установить автоматическое определение магнитного склонения, которое является достаточно точным для системы навигации iNav. set inav_auto_mag_decl = ON.

Бекап и восстановление настроек
Для того чтобы избежать повторных перекалибровок при сбросе настроек в CLI введены команды для считывания и записи офсетов и гейнов акселерометра: acczero_x, acczero_y, acczero_z, accgain_x, accgain_y, accgain_z.
Manual
Самолетный режим, в котором значения со стиков передаются сразу на сервы, как бы минуя полетный контроллер. При возвращении стика в нейтральное положение сервы возвращаются в средние положения.

ACRO
Режим удержания углов направления PID контроллером, измеряются углы гироскопом, управление ими осуществляется стиками аппаратуры. При возвращении стика в нейтральное положение углы перестают изменяться. При наложении режима Air на OSD отображается AIR.

ANGLE он же Stab
Режим удержания предварительно откалиброванного горизонтального положения. Углы измеряются гироскопом, положение относительно горизонта - акселерометром. Стиком задается угол отклонения от горизонтального положения. При возвращении стика в нейтраль, система стремится вернуться в горизонтальное положение.

ALTHOLD
Удержание высоты по барометру. Стиком газа управляется скорость снижения/подъема.

POSHOLD для коптера
Режим удержания координат, принятых с GPS модуля. Автоматически добавляется режим ALTHOLD.
Подрежим Attitude: при рулении правым стиком на время отключается удержание координат и работает ANGLE + ALTHOLD. При возвращении стика в нейтраль, координата перезаписывается.

POSHOLD для самолета
Режим облета по окружности координат, принятых с GPS модуля в момент активации режима.
  • Настройка оборудования
    Отбалансируйте пропеллеры и моторы, установите ПК на демпферы, если это возможно.
  1. Подготовка полетного контроллера
    Прошейте свежую версию iNav.
    Произведите 6-позиционную калибровку датчиков.
    Выберите микшер. В iNav убраны многие микшеры, поэтому требуется ручная настройка микшеров каналов для экзотических сетапов (Custom Mixer).
  2. Установка средних значений передатчика
    Установите триммы на аппаратуре управления в нулевые положения. Используйте субтриммер, чтобы настроить средние значения TX точно в 1500, когда стики Roll / Pitch / YAW расположены по центру. Вы можете проверить входные значения на вкладке "Receiver" в Сleanflight / iNav Configurator.
  3. Настройка значений PID по Pitch/Roll/Yaw/Level
    Настройка PID регулятора и примеры
  4. Триммирование коптера для горизонтального полета
    НЕ ИСПОЛЬЗУЙТЕ ТРИММЫ на вашем передатчике, чтобы избавиться от дрейфа вашего коптера. Используйте параметры выравнивания платы или комбинацию стиков для триммирования акселерометра. Как триммировать акселерометр
  5. Настройка и проверка FailSafe в передатчике и iNAV
    Гайд по настройке FailSafe.
  6. Определение и настройка газа висения
    Используйте BlackBox или Конфигуратор, чтобы определить значение положения стика газа, когда ваш коптер зависает на одном уровне по высоте. Установите в CLI переменную nav_mc_hover_thr равной этому значению. Вы также можете настроить это без Blackbox. Если ваш коптер прыгает/поднимается при активации удержания высоты, уменьшите значение nav_mc_hover_thr примерно на 100. Если ваш коптер снижается - увеличьте это значение на 100. И продолжайте менять более мелкими значениями до тех пор, пока скачок или резкое снижение не пропадет совсем при активации удержания высоты.
  7. Тонкая настройка переменных в CLI
    iNav предлагает множество настроек с помощью переменных CLI. Настоятельно рекомендуется прочитать о переменных CLI в iNav. Some important ones are:

    nav_user_control_mode определяет, как будут интерпретироваться входные значения по Pitch / Roll от RC приемника и как будут влиять на полет в режиме POSHOLD: ATTI - правый стик контролирует угол наклона коптера как в режиме ANGLE; CRUISE - правый стик контролирует скорость и направление полета.
Основные этапы настройки iNav на самолете
Для более подробного Howto на примере CC3D смотрим сюда
Шаг 1. Подготовка полетного контроллера.
Прошейте самую свежую версию iNav. (Предупреждение: по-умолчанию в iNav установлен микшер для Квадрокоптера, поэтому установлена высокая частота обновления для PWM выходов. Это может вывести сервы из строя при подаче питания. Поэтому рекомендуется при смене прошивки полетного контроллера через FTDI отключать сервы из разъемов)

Проведите полную калибровку сенсоров. (Не забываем, что необходимо проверить насколько хорошо выровнен полетный контроллер относительно корпуса самолета. При этом нулевые углы pitch и roll соответствуют горизонтальному полету самолета.)

Выберите подходящий микшер. (Самолет (Airplane), Летающее крыло (Flying Wing) или Настройки пользователя (custom airplane))

Шаг 2. Подключение.
Сервы и ESC/Мотор.
Выход (Output) 1 ESC/мотор.

Выход (Output) 2 Пусто

Выход (Output) 3 Руль высоты (Elevator)

Выход (Output) 4 Элерон (Aileron)

Выход (Output) 5 Элерон (Aileron)

Выход (Output) 6 Руль направления (Rudder)

Если используется GPS, то подключаем его к UART 2.
Если используется приемник Sbus, то подключаем его к UART 3. (Заметьте, то для этого необходим более новый полетный контроллер типа spracing f3)
Если используется приемник с выходом PPM, то подключаем его к IO 1 пин 1.
Если используется телеметрия, то подключаем ее при помощи softserial.
Шаг 3. Настройка пульта РУ, конечных точек и реверса серв.
Настройте необходимые органы управления вашего пульта РУ (стики, переключатель полетных режимов, AUX) и приемник.
Если используется GPS, то настройке в конфигураторе iNAV порт UART2 для GPS на скорости 57600 и включите эту опцию на закладке Configurations.
Пульт РУ НЕ ДОЛЖЕН использовать какие-либо микшеры. Проверьте, что при движении органов управления пульта соответствующие каналы изменяются на закладке настройки приемника. Кроме этого, все органы управления должны быть отцентрованы по значениям 1500us, а полные отклонения стиков должны изменять значения в соответствующих каналах в пределах 1000-2000us. Используйте subtrim и расходы в пульте, чтобы сигналы соответствовали этим нормам.
Правильное поведение каналов в зависимости от стиков следующее:

Газ (Throttle) стик от себя - значение увеличивается

Руль направления (Rudder), Yaw стик вправо - значение увеличивается

Руль высоты (Elevator), Pitch стик от себя - значение увеличивается

Элероны (Ailerons), Roll стик вправо - значение увеличивается

Следующий этап - удостовериться, что сервы двигаются так как нужно в зависимости от движения стиков пульта РУ. Если что-то не правильно, что необходимо выполнить настройку на странице Servo iNAV конфигуратора.
Servo 2: Руль высоты (Elevator)

Servo 3 и 4: Элероны (Ailerons)

Servo 5: Руль направления (Rudder)

(Примечание: На странице Servos все сервы пронумерованы от 0-7, в то время как на странице Motors они имеют нумерацию от 1 до 8.)

Шаг 4. Измените настройки PID.
Значения коэффициентов PID регулятора в iNav по-умолчанию выставлены для мультироторов. Вы можете найти примеры настройки PID здесь и использовать их как отправные значения для более точной подстройки во время полевых испытаний.
Если ваш самолет оборудован рулем поворота (Rudder) используйте "set i_yaw = 0".
Если наблюдается перерегулирование в режиме RTH, попробуйте уменьшить "nav_fw_pos_xy_p" и/или увеличить "nav_fw_pos_xy_i". Можно начинать со значений: "set nav_fw_pos_xy_p = 50"; "set nav_fw_pos_xy_i = 5". Кроме этого, можно уменьшить "nav_fw_pos_xy_d". Поведение самолета может быть очень разным в зависимости от наличия и силы ветра, поэтому для нахождения оптимальных параметров нужно проводить настройку в разных условиях.
В режиме "Angle" нет необходимости в больших углах отклонения рулевых поверхностей. Установите "fw_p_roll" и "fw_p_pitch" в такое значение, чтобы рули отклонялись на 25% от полного хода. Это отправная точка для подстройки значений коэффициентов. Если значения слишком велики, то при полете будет наблюдаться перерегулирование и осцилляции.
Хорошим инструментом для определения оптимальных настроек является blackbox logger. Некоторые полетные контроллеры имеют его на борту, к некоторым придется его подключать дополнительно. После полеты вы можете проанализировать поведение различных параметров самолета в 'Chrome blackbox explorer' и понять причины того или иного поведения его в полете. Кроме того, практически бесполезно задавать вопросы на форумах касаемо поведения ЛА без наличия лога. Кроме того, при помощи blackbox log возможно "проиграть" весь полет в mwp tools.
//TODO: explain how rates work with airplane servos.

Шаг 5. Дополнительный, но рекомендуемый:
Используйте Airmode режим для того чтобы получить полную стабилизацию и расходы серв с выключенным двигателем (throttle = минимуму).
Настройка failsafe с возвратом домой
Отключите компас (если установлен на плате полетного контроллера) таким образом, iNAV будет использовать GPS heading. Команда Cli set mag_hardware = NONE
Отключите барометр (если установлен на плате полетного контроллера) (set baro_hardware = NONE) из-за критической ошибки, которая приводит к "морковкам". Issue 543
  • iNAV Blackbox Explorer
  • iNAV LUA скрипт для OpenTX
  • iNAV конфигуратор
Все ошибки арминга перечислены на главном экране конфигуратора

Скачать:
Последняя версия прошивки на Github
Конфигуратор скачать Внимание! Прошивка должна быть той же версии, что и конфигуратор.
Ответить