摘自:https://www.yuque.com/xtdrone/manual_cn/udp_matching
UDP端口匹配
图显示了一个典型的模拟器软件在回路上支持任何支持(SITL) 通过模拟环境,的不同部分通过 UDP 端口连接,可在同一台电脑或同一网络上的不同电脑上运行。
在多机仿真环境的配置中,要从这些文件入手:
SITL 启动脚本:
/Firmware/ROMFS/px4fmu_common/init.d-posix/rcS #v1.9之后的PX4固件版本
多机 launch 文件:
/Firmware/launch/multi_uav_mavros_sitl.launch
以一架 UAV 例如,需要配置的具体参数如下(/Firmware/ROMFS/px4fmu_common/init.d-posix/rcS):
(1)多机 launch 文件需要配置的参数如下:
<!-- UAV0 --> <group ns="uav0"> <arg name="ID" value="0"/> <arg name="fcu_url" default="udp://:14540@localhost:14580"/> ------------------------------------------------------------------------- ------------------------------------------------------------------------ <arg name="mavlink_udp_port" value="14560"/> <arg name="mavlink_tcp_port" value="4560"/> </group>
(2)multi_uav_mavros_sitl.launch调用rcS脚本设置不同ID和端口号
(此步骤由脚本自动完成,无需手动更改)
param set MAV_SYS_ID 1
为每一个 UAV 设置一个 ID 用来识别号码。
Param set SITL_UDP_PRT 14560
用于与 Gazebo 模拟器通信。
mavlink start -x -u 14556 -r 4000000 mavlink start -x -u 14557 -r 4000000 -m onboard -o 14540 mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u 14556 mavlink stream -r 50 -s LOCAL_POSITION_NED -u 14556 ······
关于 Mavlink 一系列端口设置(14556,1457,14540 等等)可以使用外部控制程序来控制 UAV 模型。
在 sdf 修改文件 Gazebo 模型参数如下:
<mavlink_udp_port>14560</mavlink_udp_port>