跳至内容

PX4 以太网设置

以太网连接提供了一种快速、可靠和灵活的通信方式,可替代 USB 或其他串行连接。

它可用于连接地面站、配套计算机和其他 MAVLink 系统。在连接使用以太网的系统(如 IP 无线电台)时,特别推荐使用该系统。

本专题包括

支持的飞行控制器

PX4 支持以太网连接 Pixhawk 5X 标准 有以太网端口的飞行控制器(及更高版本)。其他板卡也可能支持该功能。

支持的飞行控制器包括

设置以太网网络

要通过以太网连接系统,需要将它们配置为在同一个 IP 网络上运行,这样每个系统都有一个唯一的 IP 地址,并能找到其他系统。这可以使用 DHCP 服务器分配地址,或手动配置网络上每个系统的地址。

我们提供的配置不一定适合您的本地网络。因此,作为一个配置示例,我们将在下文中展示如何在 IP 网络中设置系统,其静态地址范围为 192.168.0.Xxx,其中 PX4 有一个静态分配的地址 192.168.0.4 而计算机的地址为 192.168.0.1.如果您想将另一台计算机或其他系统连接到网络,可以使用类似的方法分配一个静态地址。

信息

在网络配置方面没有什么特别之处(除了用于修改网络设置的工具之外);其工作原理与任何家庭或企业网络大致相同。也就是说,了解 IP 网络的工作原理是非常必要的!

PX4 以太网网络设置

PX4 使用 网民 模块来应用和更新网络设置。

网络设置在配置文件中定义 /fs/microsd/net.cfg 在 SD 卡上。这是一个文本文件,在新的一行中将每个设置定义为 name=value 对。配置文件可能是这样的

DEVICE=eth0
BOOTPROTO=fallback
ipaddr=192.168.0.4
NETMASK=255.255.255.0
router=192.168.0.254
dns=192.168.0.254

值在哪里?

  • 设备:接口名称。默认为 eth0.
  • BOOTPROTO:获取 PX4 IP 地址的协议。proto 的有效值为 dhcp, 天电, 后备 (使用 DHCP,但如果 DHCP 失效,则恢复使用静态地址)
  • IPADDR:静态 IP 地址(在 BOOTPROTO 为 天电后备)
  • NETMASK:网络掩码
  • 路由器:默认路由地址。
  • DNS:DNS 服务器地址。

要设置上述示例配置,请使用 QGroundControl:

  1. 用 USB 电缆将飞行控制器连接到电脑。

  2. 开放 QGroundcontrol > 分析工具 > MAVLink 控制台

  3. 将类似下面的命令输入到 MAVLink 控制台 (将数值写入配置文件):

    回响 DEVICE=eth0 >; /fs/microsd/net.cfg
    回响 BOOTPROTO=fallback >>; /fs/microsd/net.cfg
    回响 IPADDR=192.168.0.4 >>; /fs/microsd/net.cfg
    回响 NETMASK=255.255.255.0 >>;/fs/microsd/net.cfg
    回响 路由器=192.168.0.254 >>;/fs/microsd/net.cfg
    回响 DNS=192.168.0.254 >>;/fs/microsd/net.cfg
  4. 网络配置设置完成后,就可以断开 USB 电缆。

  5. 重新启动飞行控制器以应用设置。

请注意,上述设置为飞行控制器提供了一个以太网地址。您还需要 配置以太网端口 以使用 MAVLink。

Ubuntu 以太网网络设置

如果您的地面站(或配套电脑)使用 Ubuntu,那么您可以使用 网络计划 来配置网络。

下面我们将展示如何在 netplan 配置文件中编写设置;/etc/netplan/01-network-manager-all.yaml",与上述 PX4 设置使用的网络相同。请注意,还有许多 例子 和指示 网络计划 文件。

设置 Ubuntu 电脑:

  1. 在终端中创建并打开一个 网络计划 配置文件: /etc/netplan/01-network-manager-all.yaml 下面我们使用 纳米 文本编辑器。

    sudo nano /etc/netplan/01-network-manager-all.yaml
  2. 将以下配置信息复制并粘贴到文件中(注意:缩进部分很重要!):

    网络
      版本:2
      呈现器:网络管理器
      eternets:
          enp2s0:
              地址
                  - 192.168.0.1/24
              nameservers:
                  地址:[192.168.0.1]
              路线:
                  - 到192.168.0.1
                    via: 192.168.0.1

    保存并退出编辑器。

  3. 应用 网络计划 在 Ubuntu 终端中输入以下命令即可完成配置。

    sudo netplan apply

同伴电脑以太网网络设置

配套计算机的设置取决于配套计算机的操作系统。

Linux 操作系统可支持 网络计划在这种情况下,说明与上述相同,但使用的是唯一的 IP 地址。

以太网端口配置可设置 串行连接 (这就是 PX4 如何看待以太网连接)。这包括流式传输的 MAVLink 信息集、数据传输速率、远程系统可连接监听的 UDP 端口等。

信息

您必须单独配置 PX4 IP 地址和其他 IP 地址。 网络设置 (如前所示).

PX4 通过 MAVLink 对串行端口进行配置,以连接到 GCS,参数如下所示:

参数价值说明
MAV_2_CONFIG1000配置以太网端口
mav_2_broadcast1广播 心跳 信息
MAV_2_MODE0发送 "normal" MAVLink 信息集(即 GCS 信息集)
mav_2_radio_ctl0禁用 MAVLink 流量的软件节流功能
MAV_2_RATE100000最大发送速率
mav_2_remote_prt1455014550 MAVLink 远程端口(GCS)
MAV_2_UDP_PRT1455014550 MAVLink 网络端口(全球监控系统)

通常情况下,配套计算机会使用端口 14540 (而不是 14550)中指定的 MAVLink 信息流。 机载 配置文件。您可以通过更改 mav_2_remote_prtMAV_2_UDP_PRT14540MAV_2_MODE2 (机载)。但请注意,使用 GCS 配置文件仍可正常工作。

有关 MAVLink 串行端口配置的更多信息,请参阅 MAVLink 外围设备(GCS/OSD/同伴)

QGroundControl 设置示例

假设您已经 设置以太网网络 这样您的地面站电脑和 PX4 就能在同一个网络上运行,而且

通过以太网将 QGroundControl 与 PX4 连接:

  1. 设置以太网网络 这样您的地面站计算机和 PX4 就能在同一个网络中运行。

  2. 使用以太网电缆连接地面站计算机和 PX4。

  3. 启动 QGroundControl 并 定义通信链路 (应用程序设置 > 通信链接) 指定 服务器地址 和端口分别为 PX4 分配的 IP 地址和端口。

    假设数值设置与本主题其余部分所述相同,则设置将如下所示:

    用于以太网设置的 QGC 通信链路

  4. 如果您选择此链接,QGroundControl 就会连接。

信息

PX4 以太网端口配置 应该不需要(默认值适合通用控制系统)。

MAVSDK-Python 设置示例

设置 MAVSDK-Python 在配套计算机上运行:

  1. 设置以太网网络 这样您的伴侣电脑和 PX4 就能在同一个网络中运行。

  2. 修改 PX4 以太网端口配置 连接到配套电脑。您可以更改参数 mav_2_remote_prtMAV_2_UDP_PRT14540MAV_2_MODE2 (机载)。

  3. 请按照 MAVSDK-python 来安装和使用 MAVSDK。

    例如,您的代码将通过以下方式连接到 PX4:

    蟒蛇
     drone.connect(系统地址="udp://192.168.0.4:14540")

信息

MAVSDK 可通过端口连接 PX4 14550 如果不修改 PX4 以太网端口配置,也可以使用默认配置。但不建议这样做,因为默认配置是为与 GCS(而不是配套计算机)通信而优化的。

ROS 2 设置示例

先决条件

  • 支持运行 PX4 固件的自动驾驶仪硬件,其中包括 uXRCE-DDS 中间件。请注意,PX4 v1.14 及更高版本包含所需的 uxrce_dds_client 模块。
  • ROS 2 已在配套计算机上正确设置。
  • 您已按照本页顶部讨论的以太网网络和端口设置进行了设置。

设置 ROS 2:

  1. 通过以太网连接飞行控制器和配套电脑。

  2. 在 PX4 上启动 uXRCE-DDS 客户端手动或自定义系统启动脚本均可。请注意,必须使用配套计算机的 IP 地址和代理正在监听的 UDP 端口(上述配置示例将配套计算机的 IP 地址设置为 192.168.0.1代理 UDP 端口设置为 8888 在下一步中)。

  3. 在配套计算机上启动 micro XRCE-DDS 代理.例如,在终端中输入以下命令,启动监听 UDP 端口的代理 8888.

    MicroXRCEAgent udp4 -p 8888
  4. 运行一个 监听节点 在新终端中确认连接已建立:

    消息来源 ~/ws_sensor_combined/install/setup.bash
    玫瑰2 启动 px4_ros_com sensor_combined_listener.launch.py

    如果一切设置正确,终端应显示以下输出:

    收到 传感器 合并 数据
    =============================
    ts: 855801598
    gyro_rad[0]: -0.00339938
    gyro_rad[1]: 0.00440091
    gyro_rad[2]: 0.00513893
    gyro_integral_dt: 4997
    相对加速度计时间戳: 0
    加速度计_m_s2[0]: -0.0324082
    加速度计_m_s2[1]: 0.0392213
    加速度计_m_s2[2]: -9.77914
    加速度计积分 dt: 4997

另请参见