一、配置网络文件net.cfg
使用 USB 数据线将飞控连接到计算机,依次打开QGroundcontrol > Analyze Tools > MAVLink Console,在MAVLink控制台中输入如下命令:
echo DEVICE=eth0 > /fs/microsd/net.cfg
echo BOOTPROTO=static >> /fs/microsd/net.cfg
echo IPADDR=192.168.1.12 >> /fs/microsd/net.cfg
echo NETMASK=255.255.255.0 >>/fs/microsd/net.cfg
echo ROUTER=192.168.1.1 >>/fs/microsd/net.cfg
echo DNS=192.168.1.1 >>/fs/microsd/net.cfg
这里就是设置PX4飞控的静态IP地址,输入完成后,可以输入如下命令对配置文件进行查看:
cat /fs/microsd/net.cfg
确保准确无误后,输入下面命令将配置文件内的参数更新传入飞控内存:
netman update
这时候,飞控会自动重启,重启完成后net.cfg文件会被自动删除,输入下述命令查看系统内参数:
netman show
二、机载电脑以太网设置
在ubuntu22.04系统下,依次打开设置>网络>有线,添加新配置,IPv4下设置手动,如下所示
将网线连接飞控ETH口和机载电脑网口,测试是否能ping通
ping 192.168.1.2
在MAVLink控制台中输入命令,结果如图所示(这里拿了其他飞控测试截图,因此输入IP变了)
在ubuntu命令行输入命令,结果如图所示:
三、配置PX4 MAVLink通讯参数
这里我选择的是MAV_2_CONFIG,大家也可以选择0或1口:
MAV_2_CONFIG | Ethernet |
MAV_2_MODE | Onboard |
MAV_2_REMOTE_PRT | 14550 |
MAV_2_UDP_PRT | 14540 |
根据官方配置推荐,端口 14550 常用于与地面控制站(如 QGroundControl)通信,端口 14540 常用于与机载外部 API(如 MAVROS)通信
四、运行MAVROS并测试
在机载电脑端输入如下命令,其中参数fcu_url用于指定 FCU (Flight Control Unit) 的连接方式和地址,我们指定通信协议为 UDP,@分割符前为监听地址(即电脑自身的IP),后为目标发送地址(即飞控PX4的IP)。
roslaunch mavros px4.launch fcu_url:="udp://192.168.1.2:14540@192.168.1.12:14540"
运行成功的结果如图所示: