当前位置: 首页 > 文档资料 > PX4 开发指南 >

Robotics - 用Linux进行外部控制

优质
小牛编辑
147浏览
2023-12-01

警告: 外部控制是很危险的。在进行外部控制飞行之前,开发者需要保证有充分的准备、测试以及安全预防措施。

外部控制允许使用运行在飞控板外部的软件去控制px4飞行控制栈。通过MAVLink协议完成这些操作,特别是SET_POSITION_TARGET_LOCAL_NEDSET_ATTITUDE_TARGET消息.

外部控制固件设置

在开始外部控制开发之前,固件方面需要做两项设置。

1. 映射一个RC切换开关为外部模式激活开关

在QGroundcontrol中载入参数,并设置RC_MAP_OFFB_SW参数为想要控制外部模式激活的RC通道。这样做是非常有用的,当在外部模式出现问题时可以切换到位置控制模式。

尽管这一步并不是强制的,因为通过MAVLink消息同样可以激活外部模式。但是我们认为这种方式更加安全。

2. 使能协同计算机接口

将参数SYS_COMPANION设置为921600(推荐)或者57600。这个参数将会以合适的波特率(921600 8N1或者57600 8N1)激活TELEM2端口上的MAVLink消息流,这与内部模式的数据流是相同的。

有关这些数据流的更多信息,参考source code中的”MAVLINK_MODE_ONBOARD”。

硬件设置

通常,有3种方式配置板外通讯

1. 数传

  1. 一个连接到飞控板的UART端口
  2. 一个连接到地面站计算机

参考数传包括:

{% mermaid %}
graph TD;
gnd[Ground Station] —MAVLink—> rad1[Ground Radio];
rad1 —RadioProtocol—> rad2[Vehicle Radio];
rad2 —MAVLink—> a[Autopilot];
{% endmermaid %}

2. 机载协同计算机

一个挂载在飞行器上的小型计算机,通过串口转USB适配器连接到飞控板。有许多可用的选择,主要取决于除了向飞控板发送指令外还想要进行的额外操作。

低性能机载计算机:

高性能机载计算机:

{% mermaid %}
graph TD;
comp[Companion Computer] —MAVLink—> uart[UART Adapter];
uart —MAVLink—> Autopilot;
{% endmermaid %}

3. 机载计算机和到ROS的WIFI连接(推荐

一个挂载在飞行器上的小型计算机,通过串口转USB适配器连接到飞控板,同时提供到运行ROS的地面站的WIFI连接。可以是上一部分的任意一个机载计算机,同时再加一个WIFI适配器。例如:Intel NUC D34010WYB有一个PCI Express Half-Mini接口,可以连接一个Intel Wifi Link 5000适配器。
{% mermaid %}
graph TD
subgraph Ground Station
gnd[ROS Enabled Computer] —- qgc[qGroundControl]
end
gnd —MAVLink/UDP—> w[WiFi];
qgc —MAVLink—> w;
subgraph Vehicle
comp[Companion Computer] —MAVLink—> uart[UART Adapter]
uart —- Autopilot
end
w —- comp
{% endmermaid %}