顾名思义, mavros就是mavlink+ros。mavros是PX4官方提供的一个运行于ros下收发mavlink消息的工具,利用mavros可以发送mavlink消息给飞控(可以控制飞机),并且可以从飞控中接受数据(例如:飞控的位置速度 IMU数据等等)。在px4中,mavlink模块负责接收和发送mavlink消息。(比如和QGC地面站通信)在机载电脑中,mavros底层代码负责接收和发送mavlink消息。我们利用plugin发布的ros话题去编写代码,实现功能,然后发布控制相关的ros话题,plugin接收我们的话题,替我们发送给飞控。
ROS与PX4通讯关系如下图:
如需要进行上层开发则在ROS中编写代码,订阅或发布MAVROS话题,从而订阅无人机的状态,及发布无人机的期望位置或期望速度,px4飞控追踪此期望运动。因此无论上层控制程序多么复杂,最后都是分解成为控制无人机的位置,速度或姿态等,通过mavros发布给飞控进行跟踪。若进行底层飞控的开发,需研读px4开发手册,修改px4代码。其中MAVROS与MAVLink不需修改。因此学习MAVROS是ROS控制无人机需要首先学习的。
PX4无人机消息
1、uorb理解
uORB(Micro Object Request Broker,微对象请求代理器)是PX4/Pixhawk系统中非常重要且关键的一个模块,它肩