-
Notifications
You must be signed in to change notification settings - Fork 0
8. Полётные режимы
На этой странице перечислены и описаны навигационные режимы, которые присутствуют в iNAV.
По соображениям безопасности, режимы навигации iNAV могут быть активированы только в случаях:
- ACC и MAG работоспособны и [откалиброваны] (https://github.com/iNavFlight/ru_wiki/wiki/4.-Sensor-calibration) должным образом,
- Контроллер определил необходимое кол-во спутников и активирован 3D GPS Fix,
- Двигатели находятся в режиме ARM (квадрокоптер "заармлен").
Это относится и к включению режимов навигации в конфигураторе, а также автономно, на летном поле. (Для стендовых испытаний без(!) пропеллеров, вы можете изменить в CLI "set nav_extra_arming_safety = ON" в положение "OFF".), в таком случае, полётный контроллер не будет проверять режим 3D GPS Fix и можно активировать моторы.
-
Такие полётные режимы, как POSHOLD, WP (путевые точки) и RTH (возврат домой) являются самодостаточными и не нуждаются в каких-либо дополнительных режимах, которые будут определены в на вкладке "MODES" (... потому что ANGLE (а в режиме WP еще и ALTHOLD) активируются вместе с этими режимами с помощью iNAV автоматически. Таким образом, ALTHOLD и режим ANGLE должен быть настроен правильно, чтобы позволить навигационным режимам iNAV работать должным образом.)
-
There is a companion wiki page further describing way point missions, tools and telemetry options.
Примечание: В iNAV все параметры расстояния, скорости и ускорения, вводятся в см, см/с и см/с2.
Давайте более детально рассмотрим каждый режим.
Когда активен данный режим, коптер/крыло сохраняет высоту, если не будет изменено положение стика "газа". Уровень "газа" задает скорость спуска или подъема относительно нейтрального положения стика в пределах максимальной скорости, заданной переменной nav_manual_climb_rate (см. iNav переменные CLI). Для использования необходимо наличие барометра.
SONAR: Altitude hold code will use sonar automatically on low altitudes (< 3m) if hardware is available.
Using ALTHOLD with a plane (fixed wing: fw) with GPS: Barometer should be ignored. (To disable barometer: "set baro_hardware=1").
ВНИМАНИЕ(!) в прошивках, начиная с 1.6, СОНАР не используется
In general you shouldn't mix up ALTHOLD and ACRO/HORIZON: ALTHOLD doesn't account for extreme acro maneuvers.
Активируется полетным режимом ALTHOLD.
Altitude, as calculated by iNAV's position estimator, is recorded to BLACKBOX as navPos[2].
Activate AIRMODE to keep the copter stable in fast descent - now you can do the whole flight in altitude hold - from takeoff to landing.
Climb rate in ALTHOLD mode:
"set nav_max_climb_rate = 500" and "set nav_manual_climb_rate = 200" define the maximum climb and decent rate in autonomous/manual flight modes.
The neutral position of the throttle stick to hold current altitude is defined by
- “set nav_use_midthr_for_althold=ON”: use mid position of throttle stick as neutral.
- “set nav_use_midthr_for_althold =OFF”: use current stick position (i.e. when activating ALTHOLD) as neutral. [Yet, if "nav_use_midthr_for_althold=OFF”, and you enable ALTHOLD with throttle stick too low (like on the ground) iNAV will take “thr_mid” as a safe default for neutral. “thr_mid” is defined In the “Receiver” tab and should be set to hover throttle.]
In the moment you engage ALTHOLD iNAV always sends “nav_mc_hover_thr” to the motors as the starting value of the altitude control loop. You should configure this to your copter's hover setting, if your copter doesn't hover close to the default value of 1500us. Otherwise your copter will begin ALTHOLD with a jump or drop.
Example: Let's assume "nav_mc_hover_thr” is already set correctly to your copter's hover throttle and “set nav_use_midthr_for_althold =OFF”. Let's say you have your throttle stick at 30%, and you enter ALTHOLD, your copter will maintain hover at this 30%. If increase throttle up to 40% it will start to climb. (Even if your copter needs 60% throttle to actually climb up in normal flight without ALTHOLD.)
"set alt_hold_deadband = 50": You have to change throttle command (e.g. move throttle stick) by at least this amount to make the copter climb or decent and change target altitude for ALTHOLD.
If ALTHOLD is activated at zero throttle iNAV will account for deadband and move the neutral "zero climb rate" position a little bit up to make sure you are able to descend.
PIDs для режима ALThold:
- ALT P - Определяет, как быстро коптер попытается компенсировать ошибку абсолютной высоты (converts alt error to desired climb rate)
- ALT I - Определяет, как быстро коптер попытается ускориться, чтобы достичь желаемой скорости набора высоты (climb rate)
- VEL P - Определяет, сколько "газа" нужно добавить для достижения желаемого ускорения
- VEL I - Регулирует компенсацию "газа" (И вертикальное движение воздуха, termals). Это может быть, по существу, равно нулю, если стик газа точно 1500us. Слишком большое значение «VEL I» приведет к вертикальным колебаниям, слишком низкое значение «VEL I» вызовет падение или скачок при включении ALTHOLD.
- VEL D - Действует как демпфер для VEL P и VEL I, замедлит реакцию и уменьшит колебания от слишком высоких значений VEL P и VEL I
Неспособность поддерживать высоту может быть вызвана рядом причин:
- Недостаточный ALT_P и/или ALT_I
- Не рабочий барометр (перейдите в раздел сенсоров в конфигураторе и проверьте грфик "баро", он не должен быть стабильно ровным)
- серьёзная нехватка мощности моторов (альтхолд способен компенсировать лишь в разумных пределах. Если ваш коптер способен висеть с уровнем газа более 1700, вероятно вам не удастся использовать данный режим стабильно)
- Изменение высоты во время быстрого полета, вероятно, связано с повышенным давлением воздуха и рассматривается как понижающееся в абсолютной высоте - попробуйте покрыть ваше барометр вспененным материалом (поролон).
ALT+VEL PID Tuning
Lets make a small experiment: Make sure baro is well isolated. You may also want to reduce baro weight: "set iNAV_w_z_baro_p = 0.5" and "set nav_alt_p = 0" and try flying. This way the controller will attempt to keep zero climb rate without any reference to altitude. The quad should slowly drift either up or down. If it would be jumping up and down, your "nav_vel_*" gains are too high.
As a second step you can try zeroing out "nav_vel_p" and "nav_vel_i" and "set nav_vel_d = 100". Now the quad should be drifting up/down even slower. Raise "nav_vel_d" to the edge of oscillations.
Now raise "nav_vel_p" to the edge of oscillations. Now ALTHOLD should be almost perfect.
And finally "set nav_mc_hover_thr" slightly (50-100) higher/lower than your actual hover throttle and tune "nav_vel_i" until the quad is able to compensate.
Keep in mind that no tuning can fix bad baro isolation issue.
If quad is buzzing while ALTHOLD is activated try lowering "nav_vel_p" a bit.
What is the trick with "nav_vel_i"?
"nav_vel_i" is used to compensate for "nav_mc_hover_thr" (hover throttle) being set to a slightly incorrect value. You can't set hover throttle to an exact value, there is always influence from thermals, battery charge level etc. Too much "nav_vel_i" will lead to vertical oscillations, too low "nav_vel_i" will cause drops or jumps when ALTHOLD is enabled, very low "nav_vel_i" can result in total inability to maintain altitude.
To deal with oscillations you can try lowering your "nav_alt_p", "nav_vel_p", "nav_max_climb_rate", and "nav_manual_climb_rate".
Climb rate is calculated form the readings of the accelerometers, barometer and – if available – from GPS (“set inav_use_gps_velned = ON”). How strongly the averages of these noisy signals are taken into account in the estimation of altitude change by iNAV is controlled by
- set inav_w_z_baro_p = 0.350
- set inav_w_z_gps_p = 0.200
for vertical position (z) and - set inav_w_z_gps_v = 0.500
for vertical velocity. Too high “iNAV_w_z_baro_p”will make ALTHOLD nervous and too low will make it drift so you risk running into the ground when cruising around. Using GPS readings for vertical velocity allows for a lower weight for baro to make ALTHOLD smoother without making it less accurate.
// TODO: explain remaining relevant settings
As for multicopters, iNAV is not intended to use ALTHOLD controller in anything but ANGLE mode.
iNAV controls pitch angle and throttle. It assumes that altitude is held (roughly) when pitch angle is zero. If plane has to climb, iNAV will also increase throttle. If plane has to dive iNAV will reduce throttle and glide. The strength of this mixing is controlled by “nav_fw_pitch2thr”.
Set board alignment in such a way that your plane is flying level both in "PASSTHROUGH" and in "ANGLE", when you don't touch the sticks.
Параметры iNAV для крыла:
- set nav_fw_cruise_thr = 1400 # cruise throttle
- set nav_fw_min_thr = 1200 # minimum throttle
- set nav_fw_max_thr = 1700 # maximum throttle
- set nav_fw_bank_angle = 20
- set nav_fw_climb_angle = 20
- set nav_fw_dive_angle = 15
- set nav_fw_pitch2thr = 10 # pitch to throttle
- set nav_fw_roll2pitch = 75 # roll to pitch
- set nav_fw_loiter_radius = 5000
При активации коптер/крыло сохраняет свое горизонтальное (2D) положение, стиком "газа" по-прежнему управляем движениями вверх и вниз (ось z). Вы можете использовать стик крена и тангажа (наклоны налево/направа или вперёд назад), чтобы передвигаться. Удержание позиции будет возобновлено, когда вы снова установите правый стик (режим 2 roll/pitch) в центр. Обратите внимание, что вы можете использовать этот режим с ** ALTHOLD **, чтобы получить полное 3D-позиционное удержание!
POSHOLD = Удержание в 2D (в одной плоскости)
POSHOLD + ALTHOLD = Удержание позиции в 3D (по всем осям)
POSHOLD + ALTHOLD + MAG = Удержание позиции в 3D (по всем осям) и удержание направления
(Режим стабилизации ANGLE активируется автоматически для перечисленных выше режимов)
Hints for safe operation:
- Попробуйте вращать по YAW с подключением в конфигураторе - вы сразу увидите, если не корректно настроен ваш компас (например не правильная калибровка, интерференция, свисающие провода, ...), т.к. после поворота, в конфигураторе 3Д модель начнёт "уплывать" в сторону. Если компас настроен не правильно, крайне необходимо перекалибровать его на открытой местности.
- Всегда проверяйте насколько режим POSHOLD корректно работает, перед использованием режима "Возврат домой" (RTH) или запуск полёта по точкам (WP mission).
// TODO: explain relevant settings. CRUISE ATTI // TODO: explain what happens when you are in POSHOLD mode and GPS fails.
Активируется POSHOLD в полётных режимах.
Этот режим полета влияет на ось (yaw) рыскания и может быть включен вместе с любым другим режимом полета. Это помогает поддерживать текущий курс без участия пилотов при поддержке магнитометра. Когда стик оси yaw находится в нейтральном положении, Heading Lock старается удерживать курс без рыскания. Когда пилот перемещает джойстик, функция Heading Lock не используется.
Это эквивалент TauLabs Axis Lock mode
// TODO: explain if this works for FW w/o magnetometer.
RTH попытается вывести коптер/самолет на стартовую позицию. Стартовая позиция определяется как точка, где моторы аппарата были запущены. RTH контролирует положение и высоту. Вам нужно будет вручную управлять высотой, если у вашего самолета нет датчика высоты (барометра). В случае с неподвижным крылом высота определяется GPS, поэтому вам не нужен барометр в вашем ПК (например, CC3D).
С настройками по умолчанию RTH приземлится немедленно, если вы находитесь ближе чем на 5 метрах от стартового положения. Если дальше, он обязательно должен набрать/сбросить высоту не менее 10 метров, затем начинать идти домой со скоростью 3 м/с и приземляться. Он деактивирует моторы сам, если он будет настроен таким образом (в командной строке CLI), иначе вам придется вручную дизармиться на земле.
// TODO: explain how this works with planes. // TODO: explain relevant settings. // TODO: explain what happens when you are in RTH mode and GPS fails.
There are many different modes for Altitude, see further down on this page
Активируется RTH полётных режимов.
Автономные путевые точки используются, чтобы квадрокоптер/самолет мог произвести полёт по предопределённой миссии. Миссия определяется с помощью путевых точек, которые имеют информацию о широте, долготе, высоте и скорости между путевыми точками. Графические интерфейсы, такие как EZ-GUI и mwp, могут использоваться для установки путевых точек и загрузки миссии в полётный контроллер. Cleanflight или iNav-конфигуратор по-прежнему не способны создавать миссии маршрутных точек. Загруженные миссии сохраняются в ПК (полётный контроллер) до тех пор, пока ПК не перезагружен или новая загруженная миссия не удалит старую. В последних версиях прошивки появилась возможность загрузки миссии дома, и затем, активации её в поле, для выполнения без использования наземной станции (подробности в английской версии описания прошивок)
Как только режим путевых точек активирован (NAV WP должен быть предварительно установлен в конфигураторе на вкладках режима для определенного переключателя вашего пульта), квадрокоптер/крыло начнет выполнять миссию маршрутной точки, основываясь на путевых точках в цифровом порядке. Миссии маршрутных точек могут быть перезапущены путем включения / выключения NAV WP, прерывание во время миссии также возможно при выключении NAV WP.
В настоящее время до 30 путевых точек могут быть установлены на платах F1, и 60 - на F3 и лучше. ОДНАКО! прошивка пока не может выполнять никакие другие типы точек, отличные от обычной маршрутной точки! Бессмысленно пробовать загружать точки типа POI, Круг, Посадка, Пролёт с определённым направлением по курсу, которые предлагают программы наземной станции. В настоящее время это ограничение связано с поддержкой слабых контроллеров на F1
Этот режим находится в процессе разработки, однако он работает хорошо в том виде, как есть сейчас. There is an additional wiki page further describing way point missions, tools and telemetry options.
// TODO: Explain better. // TODO: explain what happens when you are in WP mode and GPS fails.
Этот режим находится в процессе разработки. Используется совместно с режимом "Следуй за мной".
// TODO: Explain better. // TODO: explain what happens when you are in GSC NAV mode and GPS fails.
A diagram to indicate flight modes relation to navigation modes and illustrate sensor requirements:
RTH sequence can control altitude in several different ways, controlled by nav_rth_alt_mode and nav_rth_altitude parameters.
Default setting is NAV_RTH_AT_LEAST_ALT - climb to preconfigured altitude if below, stay at current altitude if above.
nav_rth_alt_mode = CURRENT
nav_rth_altitude is ignored
nav_rth_alt_mode = EXTRA
nav_rth_altitude defines extra altitude margin
nav_rth_alt_mode = FIXED
nav_rth_altitude defines exact RTH altitude above launch point.
If the multi-rotor is below nav_rth_altitude it will enter position hold and climb to desired altitude prior to flying back home. If the machine is above the desired altitude, it will turn and fly home and descend on the way.
nav_rth_alt_mode = MAX
nav_rth_altitude is ignored
nav_rth_alt_mode = AT_LEAST
nav_rth_altitude defines exact RTH altitude above launch point
- Начало работы с iNAV
- Руководство по мультироторам
- Руководство по самолетам
- Карта поддерживаемого оборудования
- Failsafe
- YouTube video guides
- Автоопределение сенсоров и определение проблем с оборудованием
- Калибровка сенсоров
- GPS и настройка компаса