欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MAVROS二次开发(五)进行测试

程序员文章站 2022-05-21 21:21:44
...

MAVROS二次开发

五、进行测试

1、测试环境

  • PX4:v1.10.1(含自定义mavlink消息收发)
  • ROS:Kinetic
  • Ubuntu:16.04LTS
  • QGC:STABLE_V3.5.6(含自定义mavllink消息收发及界面显示)

2、PX4运行在Ubuntu的相关配置

(1)/boards/px4/sitl/default.cmake

​ 将PX4中自己编写的mavlink消息发布接收的线程加入sitl编译。

EXAMPLES
		crawl_control #add 

(2)/ROMFS/px4fmu_common/init.d-posix/rcS

​ 配置MAVLINK自定义消息流,发送频率为2Hz(如果在mavlink_messages.cpp中配置了消息流就不用再配置了)

mavlink stream -r 2  -s CRAWL_CONTROL_STATUS -u $udp_gcs_port_local

(3)/ROMFS/px4fmu_common/init.d-posix/rcS

​ 开启PX4中相关mavlink消息发布接收的线程。

crawl_control start

3、运行PX4

cd <Firmware-clone> #px4源码路径
no_sim=1 make px4_sitl_default gazebo

在运行编译过程中,发现源码有报错,检查后发现当前版本源码中/Tools/sitl_gazebo/include/gazebo_opticalflow_plugin.h文件里有个宏定义写错了,布尔类型的宏定义错误的写为大写,改为小写即可,如下图。
MAVROS二次开发(五)进行测试

4、使用MAVROS连接PX4

  • 本地连接
roslaunch mavros px4.launch fcu_url:="udp://:aaa@qq.com:14557"
  • 远程连接
roslaunch mavros px4.launch fcu_url:="udp://:aaa@qq.com:14557"

连接时可以看到控制台输出中,我们自定义的消息处理插件已经存在并且初始化成功。
MAVROS二次开发(五)进行测试

5、运行ROS节点

rosrun offboard_example offb_node

6、测试rostopic

(1)检测自定义mavros消息是否存在

rostopic list

MAVROS二次开发(五)进行测试
(2)接收PX4发送的自定义MAVLINK消息

​ 可以在节点中订阅此topic消息并且使用ROS_INFO函数将其打印至控制台。

7、测试rosservice

(1)检测自定义mavros消息是否存在

rosservice list

MAVROS二次开发(五)进行测试
(2)向server发送请求信息使两个电机停转

rosservice call mavros/crawl_control/send 0 0 0 0

MAVROS二次开发(五)进行测试
地面站将接收到的消息进行显示,可以看见电机状态发生了改变。
MAVROS二次开发(五)进行测试
(3)向server发送请求信息使两个电机运行

rosservice call mavros/crawl_control/send 1 1 0 0

MAVROS二次开发(五)进行测试
地面站将接收到的消息进行显示,可以看见电机状态发生了改变。
MAVROS二次开发(五)进行测试

相关标签: 自动驾驶