• 外部控制
    • 外部控制固件设置
      • 1. 映射一个RC切换开关为外部模式激活开关
      • 2. 使能协同计算机接口
    • 硬件设置
      • 1. 数传
      • 2. 机载协同计算机
      • 3. 机载计算机和到ROS的WIFI连接(推荐

    外部控制

    官网英文原文地址:http://dev.px4.io/offboard-control.html

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

    外部控制允许使用运行在飞控板外部的软件去控制px4飞行控制栈。通过MAVLink协议完成这些操作,特别是SET_POSITION_TARGET_LOCAL_NED和SET_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. 一个连接到地面站计算机

    参考数传包括:

    • Lairdtech RM024
    • Digi International XBee Pro

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

    2. 机载协同计算机

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

    低性能机载计算机:

    • Odroid C1+ or Odroid XU4
    • Raspberry Pi
    • Intel Edison

    高性能机载计算机:

    • Intel NUC
    • Gigabyte Brix
    • Nvidia Jetson TK1

    {% 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 %}