飞机遵守 MAVLink 提供的位置,速度或姿态设定值。 设定值可以由机载计算机上运行的 MAVLink API(例如 MAVSDK 或 MAVROS)提供(通常通过串口或 wifi 连接)。
:::tip 并非所有设定值消息和无人机都支持 MAVLink 允许的所有坐标系和字段值。 请仔细阅读以下章节,确保仅使用支持的值。 还请注意,在进入模式之前和模式可操作时,设定点必须以 > 2Hz 的速率进行传输。 :::
:::note
- 此模式需要位置或位/姿信息 - 例如 GPS、光流、视觉惯性里程计、mocap 等。
- 除了更改模式外, 禁止遥控器控制。
- 使用此模式前必须先解锁。
- 在启用此模式前,无人机必须已经收到目标设定值数据流(> 2Hz)。
- 如果未以 > 2Hz的速率接收到目标设定值,则无人机将退出该模式。
- 并非所有坐标帧和字段值 MAVLink都支持。 :::
Offboard 模式主要用于控制飞机运动和姿态,目前仅支持 MAVLink 消息的一个有限子集(未来将支持更多)。
其他操作, 如起飞、降落、返航,最好使用适当的模式来处理。 像上传、下载任务这样的操作可以在任何模式下执行。
在进入该模式之前,无人机必须收到设定值数据流,并且保持在该模式下(如果消息速率降至 2Hz 以下,无人机将停止)。 为了在此模式下保持位置,必须向无人机提供一个包含当前位置设定值的数据流。
Offboard 模式需要主动连接到远程 MAVLink 系统 (例如机载计算机或 GCS)。 如果连接丢失,在超时 (COM_OF_LOSS_T) 后,无人机将尝试降落或执行其他故障失效保护操作。 该动作定义在参数 COM_OBL_ACT 和 COM_OBL_RC_ACT 中。
-
-
支持以下输入组合:
- 位置设置值 (仅
x
,y
,z
) - 速度设定值(仅
vx
,yy
,vz
) - 加速度设定值(仅
afx
,afy
,afz
) - 位置设定值和速度设定值(速度设定值作为前置反馈;它被加到位置控制器的输出中,并且结果被用作速度控制器的输入)。
- 位置设定值和速度设定值和加速度(加速度设定值作为前置反馈;它被加到位置控制器的输出中,并且结果被用作速度控制器的输入)。
- 位置设置值 (仅
-
- PX4 支持以下
坐标系
值(仅限): MAV_FRAME_LOCAL_NED 和 MAV_FRAME_BODY_NED。
- PX4 支持以下
-
-
SET_POSITION_TARGET_GLOBAL_INT
-
支持以下输入组合:
- 位置设定值(仅
lat_int
,lon_int
,alt
) - 速度设定值(仅
vx
,yy
,vz
) - 推力设定值(仅
afx
,afy
,afz
)
:::note 映射加速度设定值以创建正常的推力设定值(即不支持加速度设定值)。 :::
- 位置设定值和速度设定值(速度设定值作为前置反馈;它被加到位置控制器的输出中,并且结果被用作速度控制器的输入)。
- 位置设定值(仅
-
PX4 支持以下
coordinate_frame
值(仅限): MAV_FRAME_GLOBAL。
-
-
- 支持以下输入组合:
- 带有推力设定值(
SET_ATTITUDE_TARGET.thrust
)的姿态和方向(SET_ATTITUDE_TARGET.q
)。 - 带有推力设定值(
SET_ATTITUDE_TARGET.thrust
)的机身速率(SET_ATTITUDE_TARGET
.body_roll_rate
,.body_pitch_rate
,.body_yaw_rate
)。
- 带有推力设定值(
- 支持以下输入组合:
-
- Allows to change the cruise speed when navigating with SET_POSITION_TARGET_LOCAL_NED or SET_POSITION_TARGET_GLOBAL_INT
-
-
支持以下输入组合(通过
type_mask
):-
位置设定值(仅
x
,y
,z
;速度和加速度设定值被忽略)。-
在
type_mask
中指定设定值的type(如果未设置这些位,无人机将以花朵状飞行): :::note 下面的某些设置点类型值不是 MAVLinktype_mask
字段标准的部分。 :::值为:
- 292:滑动设定值。 这会将 TECS 配置为空速优先于高度,以便在没有推力时使无人机滑行(即控制俯仰以调节空速)。 这相当于设置
type_mask
为POSITION_TARGET_TYPEMASK_Z_IGNORE
,POSITION_TARGET_TYPEMASK_VZ_IGNORE
,POSITION_TARGET_TYPEMASK_AZ_IGNORE
。 - 4096:起飞设定值。
- 8192:降落设定值。
- 12288:悬停设定值(以设定值为中心绕圈飞行)。
- 16384:空闲设定值(油门为0, 横滚 / 俯仰为0)。
- 292:滑动设定值。 这会将 TECS 配置为空速优先于高度,以便在没有推力时使无人机滑行(即控制俯仰以调节空速)。 这相当于设置
-
-
-
PX4 支持坐标系指定 (
coordinate_frame
字段): MAV_FRAME_LOCAL_NED 和 MAV_FRAME_BODY_NED。
-
-
SET_POSITION_TARGET_GLOBAL_INT
-
支持以下输入组合(通过
type_mask
):-
位置设定值(仅
lat_int
,lon_int
,alt
)-
在
type_mask
中指定设定值的type(如果未设置这些位,无人机将以花朵状飞行)::::note 下面的某些设置点类型值不是 MAVLink
type_mask
字段标准的部分。 :::值为:
- 4096:起飞设定值。
- 8192:降落设定值。
- 12288:悬停设定值(以设定值为中心绕圈飞行)。
- 16384:空闲设定值(油门为0, 横滚 / 俯仰为0)。
-
-
-
PX4 支持以下
coordinate_frame
值(仅限): MAV_FRAME_GLOBAL。
-
-
- 支持以下输入组合:
- 带有推力设定值(
SET_ATTITUDE_TARGET.thrust
)的姿态和方向(SET_ATTITUDE_TARGET.q
)。 - 带有推力设定值(
SET_ATTITUDE_TARGET.thrust
)的机身速率(SET_ATTITUDE_TARGET
.body_roll_rate
,.body_pitch_rate
,.body_yaw_rate
)。
- 带有推力设定值(
- 支持以下输入组合:
-
- Allows to change the cruise speed when navigating with SET_POSITION_TARGET_LOCAL_NED or SET_POSITION_TARGET_GLOBAL_INT
-
-
支持以下输入组合(在
type_mask
中):-
位置设置值 (仅
x
,y
,z
)- 在
type_mask
中指定 类型 的设置点类型:
:::note 下面的 设置点类型 值不是
type_mask
字段的 MAVLink 标准的一部分。 ::值为: - 12288:悬停设定值(无人机停在足够接近设置点)。
- 在
-
速度设定值(仅
vx
,yy
,vz
)
-
-
PX4 支持坐标系(
coordinate_frame
字段): MAV_FRAME_LOCAL_NED 和 MAV_FRAME_BODY_NED。
-
-
SET_POSITION_TARGET_GLOBAL_INT
-
支持以下输入组合(在
type_mask
中):- 位置设定值(仅
lat_int
,lon_int
,alt
)
- 位置设定值(仅
-
在
type_mask
中指定设定值的 type (不是 MAVLink 标准的一部分)。 值为:- 下面的比特位没有置位,是正常表现。
- 12288:悬停设定值(无人机足够接近设定值时会停止)。
-
PX4 支持坐标系(
corrdinate_frame
字段):MAV_FRAME_GLOBAL。
-
-
- 支持以下输入组合:
- 带有推力设定值(
SET_ATTITUDE_TARGET.thrust
)的姿态和方向(SET_ATTITUDE_TARGET.q
)。 :::note 实际仅使用/提取了偏航设置。 :::
- 带有推力设定值(
- 支持以下输入组合:
Offboard 模式 受以下参数影响:
参数 | 描述 |
---|---|
COM_OF_LOSS_T | 丢失 Offboard 连接时的等待超时时间(以秒为单位),然后将触发 offboard 丢失的失效保护措施 (COM_OBL_ACT 和 COM_OBL_RC_ACT ) |
COM_OBL_ACT | 在没有 连接到遥控器的情况下,如果丢失 offboard 控制,则切换换到该模式(值为 - 0:降落,1:保持,2:返航)。 |
COM_OBL_RC_ACT | 连接到遥控器的情况下,如果丢失 offboard 控制, 则切换到该模式 (取值为 - 0:位置,1:高度,2:手动,3:返航,4:降落)。 |
COM_RC_OVERRIDE | 如果使能,在多旋翼上移动摇杆(或者 VTOL 在多旋翼模式)讲控制权还给处于位置模式的无人机(除非无人机正在处理电池失效保护)。 可以分别为自动模式和 offboard 模式启用此功能,默认情况下在自动模式下启用此功能。 |
通常,开发人员不直接在 MAVLink 层工作,而是使用机器人 API,例如 MAVSDK 或 ROS (它们提供了开发人员友好的 API,并负责管理和维护) 连接,发送消息和监视响应 - 使用 Offboard 模式 和 MAVLink 的细节。
以下资源可能对开发者有用:
- 基于 Linux 的 Offboard 控制 (PX4 开发指南)
- MAVROS Offboard 控制示例 (PX4 开发指南)