请输入
菜单

网口/网络设置

ArduPilot 4.5(及更高版本)提供了一个网络接口框架,允许局域网和广域网连接。一些后续的自动驾驶仪,例如ZeroOne X6,提供了以太网 MAC 接口,这使得 ArduPilot 能够使用传输层 UDP 或 TCP 协议通过 IP 连接到车辆外设、数据服务器,甚至广域网。

此外,搭载基于 H7 处理器的自动驾驶仪可以使用 PPP(点对点协议)、 PPP 至以太网适配器 和自定义固件版本通过串行端口连接到以太网。有关更多详细信息,请参阅下面的 PPP 配置部分 。

目前,ArduPilot 内置的常规串行管理器挂钩不仅允许串行协议通过常规 UART 连接连接到自动驾驶仪,还可以通过网络连接连接到自动驾驶仪。网络连接可以使用以太网或 PPP 接口。

此外,LUA 脚本绑定允许自动驾驶仪通过 LUA 脚本运行网络服务器类型的应用程序。Web 服务器 LUA 示例可作为小程序使用,以便更快地下载日志并显示车辆/系统状态数据。

对于具有网络接口的外设,ArduPilot 提供 AP_Periph 固件,允许使用外设的串行或 DroneCAN 接口轻松开发网络外设,并轻松设置将这些设备的数据传输到网络自动驾驶仪的方法。

ArduPilot 网络框架概述

ArduPilot 提供了一个 NET 管理器工具,其中包含 IP 协议引擎以及 UDP 和 TCP 传输层引擎。它提供了四个可配置的 IP 端口,每个端口都可以是 UDP 或 TCP、客户端或服务器。自动飞行器可以使用这些端口的数据流,就像使用以下设备的数据流一样:

  • ArduPilot 支持的串行设备(即测距仪、万向节、串行 ESC 等)

  • 与另一飞行器或 GCS 的 MAVLink 连接

此外,自动驾驶仪上运行的 LUA 脚本可以访问这些数据端口。

../_images/Net_framework.jpg

配置

  • 必须将NET_ENABLE设置为“1”并重新启动自动驾驶仪才能查看网络参数:

以太网MAC配置

如果自动驾驶仪具有以太网 MAC 地址,则适用以下参数。这是全局 6 字节 MAC 地址。默认值由自动驾驶仪的 CPU 唯一 ID 自动生成,但可以根据需要进行更改。

自动驾驶仪 IP 地址

以下参数保存自动驾驶仪的 4 字节 IP 地址。默认值为 192.168.144.14

如果网络有 DHCP 服务器,则可以通过使用NET_DHCP 参数启用 ArduPilot 的 DHCP 客户端来动态分配这些,或者根据需要手动设置。

子网掩码和网关

子网掩码限制了自动驾驶仪可以直接通信的 IP 地址。

  • NET_NETMASK 是子网掩码的前导位数。例如,如果设置为 24(默认值),则子网掩码为 255.255.255.0。

网关 IP 地址用于与 NET_NETMASK 定义的本地子网之外的 IP 地址通信时进行路由。任何位于掩码子网范围之外的目标 IP 都将发送到网关的 MAC 地址以及最终目标 IP 地址。默认值为 192.168.144.1.

PPP 配置

此功能允许任何基于 H7 CPU 的自动驾驶仪使用 PPP 通过串行端口连接到网络。这可以是串行 PPP 设备,也可以是 PPP 到以太网适配器

注意

此设置不适用于内置以太网 MAC 的自驾仪。目前每台自驾仪仅允许一个网络连接。此外,自驾仪上只有一个串口可以配置为 PPP。

要启用此功能,首先必须将其包含在自动驾驶仪固件中。这可以通过 自定义固件构建服务器 或者使用“--enable-PPP”waf 配置选项在本地构建代码 (看 构建代码)

../_images/build-server-ppp.jpg

将基于 H7 的自动驾驶仪的一个串行端口连接到以太网交换机或以太网转 PPP 适配器的 USART 端口。为了获得最佳性能,应使用具有流控制的串行端口(例如,通常为 SERIAL1 或 SERIAL2)。如果使用不带流控制的端口,则波特率最高可设置为 921000。

要为 PPP 配置串行端口(本例中使用 Serial2):

ArduPilot 端口配置

这些参数适用于以太网或 PPP 数据链路连接到网络。每个网络物理接口的四个逻辑端口的参数(仅显示端口 1 的示例):

  • NET_P1_TYPE:类型可选为禁用 (0)、UDP 客户端 (1)、UDP 服务器 (2)、TCP 客户端 (3) 或 TCP 服务器 (4)。对于这两种客户端类型,必须设置有效的目标 IP 地址。对于这两种服务器类型,可以使用 0.0.0.0 或自动驾驶仪的本地 IP 地址。如果 IP 设置为 255.255.255.255,UDP 客户端类型将使用广播;如果 IP 在多播地址范围内,则使用 UDP 多播。设置类型后,需要重启才能查看以下参数。

  • NET_P1_IP0NET_P1_IP1NET_P1_IP2NET_P1_IP3:客户端发送数据包的 IP 地址。可以为 0.0.0.0 或自动驾驶仪服务器的 IP 地址。更改后需要重启设备。

  • NET_P1_PORT:这是 TCP 或 UDP 端口号。更改后需要重启设备。

  • NET_P1_PROTOCOL:这会将此端口注册到 ArduPilot 串行管理器,使其显示已连接使用指定协议的设备。这样,ArduPilot 就可以像使用来自 UART 连接设备或连接的数据一样使用这些数据。更改后需要重启设备。

下图显示了以太网万向节的典型单设备设置。

../_images/NET_Periph.png

下图显示了一个典型的车辆系统,该系统具有多个外围设备以及一个可选的地面工厂网络连接,用于数据检索和车辆设置。

服务器还是客户端?

客户端或服务器的选择取决于所连接设备的功能。如果是 TCP 服务器,那么 ArduPilot 的端口应该是 TCP 客户端。如果是 UDP 客户端,那么 ArduPilot 应该是 UDP 服务器。

一般来说,如果设备对于自动驾驶仪来说是可控的,那么它应该是服务器,始终监听命令(例如电调、云台等)。如果是连续数据流(例如空速传感器),那么它可能是客户端,能够直接发送数据而无需查询。

脚本

LUA 脚本的网络访问通过几个套接字样式绑定(搜索“套接字”)提供,允许脚本连接和管理从脚本到网络的 UDP 或 TCP 数据流。

示例脚本在自动驾驶仪上实现了一个简单的 Web 服务器应用程序,该应用程序允许访问 SD 卡(用于快速下载日志)和访问自动驾驶仪状态(本例中为布防和 GPS/AHRS 位置),可在此处自述文件获取

在 SITL 下运行 Web 服务器脚本

生成的网页

../_images/LUA_webserver.jpg

通过网络连接自动驾驶仪连接到 Web 服务器

为了将运行 Web 服务器的自动驾驶仪连接到本地网络,以允许其他 PC 访问该服务器:

  • 将自动驾驶仪连接到本地网络(直接或通过以太网交换机)

  • 确保 NET_IPADDR 是本地网络范围内的地址,或者如果使用以太网接口,请使用网络 DHCP 服务器进行设置。对于 PPP 配置,连接的 PPP 接入外设应已根据需要设置好网络操作,并且其 PPP 守护进程应已运行 arp 代理。

  • 将本地网络浏览器连接到“http://:8080” (注意:严格按照所示输入…… “https://”将不起作用)

电缆适配器、电缆和接线

大多数以太网设备都使用带有 RJ-45 连接器的 CAT5(或更高)电缆进行互连。这些连接器显然过于笨重,不适合用于自动驾驶仪或车载以太网交换机。因此,人们会使用 4 针或 5 针 JST-GH 或 Picoblade 连接器。有关已知设备的列表,请参阅 以太网适配器 页面。

可能需要使用完整的 CAT5 电缆来连接车辆组件以实现更长的线路,但使用两对 22-24 AWG 的双绞线即可实现 1-2 米或更短的线路。从自动驾驶仪到开关以及外围设备的线路都可以使用短双绞线和 JST-GH/Picoblade 连接器来实现。

以太网连接车辆系统示例

上一个
内部RSC调控器
下一个
PX4固件教程
最近修改: 2025-08-05Powered by