DWIRobo 译制 · 非官方 · 原文基于 ArduPilot Sub(本站本地译制)· CC BY-SA 3.0 · 关于本翻译 · 下载软件

Sub 飞行模式

Sub 提供以下模式:

需求图例:P — 需要位置(GPS 等);D — 需要深度传感器;R — 需要测距仪(Rangefinder)

Mode

说明

需求

MANUAL

飞行员直接控制,无稳定

-

ACRO

机体坐标系速率控制,深度手动

-

STABILIZE

角度手动控制,深度手动

-

ALT_HOLD

稳定姿态 + 自动深度控制

D

AUTO

自动执行任务指令列表

P/D

GUIDED

由 GCS 导航至位置或按速度/方向航行

P/D

CIRCLE

圆周航行并带深度控制

P/D

SURFACE

上浮至水面,航向由飞行员控制

-

POSHOLD

定点悬停 + 深度控制,可被飞行员覆盖

P/D

MOTOR_DETECT

自动判定电机转向并调整

-

SURFTRAK

稳定姿态同时保持相对海底高度

R

更多细节见 飞行员操控。

模式细节

ACRO 模式

相关参数:ACRO_RP_P、ACRO_YAW_P、ACRO_BAL_ROLL、ACRO_BAL_PITCH、ACRO_TRAINER、ACRO_EXPO

稳定相关

ATC_ANGLE_MAX、JS_GAIN_DEFAULT

ALT_HOLD 模式

SURFACE_MAX_THR

深度控制相关

SURFACE_DEPTH、PILOT_SPD_UP、PILOT_SPD_DN、PILOT_SPEED

Auto/Guided 航点导航相关

WP_SPD、WP_RADIUS_M、WP_SPD_UP、WP_SPD_DN、WP_ACC、WP_ACC_Z、WP_RFND_USE、WP_YAW_BEHAVIOR

GUIDED 模式

在 GUIDED 模式下,载具由 GCS、伴飞计算机或 Lua 脚本指挥。可通过 SET_POSITION_TARGET_LOCAL_NED 或 SET_POSITION_TARGET_GLOBAL_INT 发送位置、速度与加速度目标,由 type_mask 字段选择提供哪几项。接受的组合为:

  • 仅位置

  • 仅速度

  • 位置 + 速度

  • 位置 + 速度 + 加速度

其他组合(例如速度 + 加速度)会被忽略。

包含速度的目标表示 「运动轨迹上的一点 」:消息到达时刻载具应处于何处、应如何运动。 它不是“到点即停”的终点。消息间隔内目标会继续运动:位置按目标速度推进,速度按目标加速度变化。 载具跟随该运动目标,因此通常需沿期望路径每秒发送数次目标。例如带前向加速度的目标会让载具立即开始加速, 而不是到达目标位置后才加速。由于速度与加速度会推动目标位置,它们与位置本身并不冲突: 速度方向背离所发位置时,只是把目标从该位置移开。

跟随目标时的速度与加速度(含目标自身的速度与加速度)受 WP_SPD、WP_SPD_UP、WP_SPD_DN、WP_ACC、WP_ACC_Z 限制。 目标运动快于这些限制时,跟随会出现滞后。

若 3 秒内未收到新目标,速度与加速度目标置零,载具保持最后目标位置。 若要游到某处并停下,发送 「 仅位置 」目标,将按 WP_SPD 做航点导航。

Lua 脚本可用 vehicle:set_target_posvelaccel_NED() 发送同样目标, 也可用 poscontrol 绑定 poscontrol:set_posvelaccel_offset() / poscontrol:get_posvelaccel_offset() 偏移当前目标。示例脚本 guided_above_terrain_posvelaccel_sub.lua 用它们实现恒定前向速度并保持相对海底高度。

CIRCLE 模式

CIRCLE_RADIUS_M、CIRCLE_RATE、CIRCLE_OPTIONS

模式选择

默认通过 GCS 或伴飞计算机的 MAVLink 命令,或摇杆按键切换模式。若要启用 RC 控制模式,需设置:

  • RC_PROTOCOLS 非零(通常用 1)

  • FLTMODE_CH 为用于选择航行模式的 RC 通道

  • FLTMODE1–FLTMODE6 为所需航行模式