MAVROS的进一步理解
发布时间:2024年01月13日
一、Mavros简介
顾名思义, 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系统中非常重要且关键的一个模块,它肩负了整个系统的数据传输任务,所有的传感器数据、GPS、PPM信号等都要从芯片获取后通过uORB进行传输到各个模块进行计算处理。实际上uORB是一套跨「进程」 的IPC通讯模块。在Pixhawk中, 所有的功能被独立以进程模块为单位进行实现并工作。而进程间的数据交互就由为重要,必须要能够符合实时、有序的特点。
PX4中所有消息都有自己对应的uorb消息名称。
2、Mavlink协议理解
https://www.cnblogs.com/daxuezhidao/p/5750143.html
3、ros通信原理
四、Plugin理解
plugins:可以理解为是mavros包提供给我们的一些接口,如果需要用到某 个plugin,建议可以看看plugin的源码,有的时候它默认的方向定义和一些 细节可以自己修改一下,方便使用。有些plugin对于我们的任务是用不到的, 可以将它添加到黑名单中禁用
五、Mavros中的Plugin的作用
1、读取飞控发送出来的封装成mavlink的消息,解码后转为ROS消息类型的话题或者服务消息,提供给ROS上层进行订阅和调用
2、订阅我们发布的话题,封装成mavlink消息,编码,然后发送给飞控
六、飞控mavlink模块的作用
1、接收:读取ROS机载电脑发送过来的消息,转为uorb消息,提供底层飞控使用
2、发布:订阅飞控中的uorb消息,封装成mavlink消息发布出去
3、开发过程:我们利用plugin发布的ros话题去编写代码,实现功能,然后发布控制相关的ros话题,plugin接收我们的话题,替我们发送给飞控
文章来源:https://blog.csdn.net/qq_35598561/article/details/135574656
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!