6.7 Mavros通信测试
(一)创建MAVLink通信需要的bat启动脚本。
- 去
“C:\PX4PSP\RflySimAPIs”
目录,复制粘贴“HITLRun.bat”
和“SITLRun.bat”
重命名加入_Broadcast
后缀得到“HITLRun_Broadcast.bat”
和“SITLRun_BroadCast.bat”
两个文件。 - 修改这两个文件的几个关键地方:
“SET IS_BROADCAST=0”
改成“SET IS_BROADCAST=1”
,采用广播的方式(也可以指定IP地址);“SET UDPSIMMODE=0”
改成“SET UDPSIMMODE=2”
,采用完整的MAVLink消息转发模式。
(二) RflySim电脑主机下开启仿真
插入
Pixhawk
飞控,运行“HITLRun_Broadcast.bat”
,输入飞控串口号开启硬件在环仿真;或者运行“SITLRun_BroadCast.bat”
并输入1开启软件在环仿真。等待
CopterSim
上显示GPS3DFixed
滤波器初始化完毕
(三)Linux机载电脑下开始Mavros通信
- 打开一个终端,运行以下脚本
roslaunch mavros px4.launch fcu_url:="udp://:20101@255.255.255.255:20100"
注:上面脚本的端口号对应了CopterSim
端口;IP地址这里采用广播,也可以使用指定IP方式。注:如果报错,一直提示“plugin service call failed!”
之类的,关闭窗口,重新执行本命令即可。 - 重新打开一个终端窗口,运行以下
Mavros
命令,看是否能控制飞机起飞rosrun mavros mavcmd takeoffcur 0 0 5
rosservice call /mavros/cmd/arming "value: true"
- 从
Mavros
中订阅飞机的状态 输入以下指令,查看是否有数据实时返回更新,如果高度与QGC
高度一样说明数据正确。rostopic echo /mavros/local_position/pose
- 通过串口连接
Pixhawk
打开一个终端,连上数传到Pixhawk
,记录串口号(例如“/dev/ttyUSB0”
),运行以下脚本roslaunch mavros px4.launch fcu_url:="serial://dev/ttyUSB0:57600"
其余测试与上面相同。 C++/mavros
图像读取接口例子 代码和步骤见https://github.com/KennethYangle/RflySim_ws