我有一个项目,该项目涉及使用预定义的一小部分MAVLink和ROS / MAVROS消息与代理进行简单的串行通信。
我正在运行我自己的,没有基础操作系统的裸机嵌入式ARM Cortex F4硬件(除了我自己的支持串行通讯和其他硬件I / O的框架以外)。
关于此任务的MAVLink方面,该过程似乎相对简单。消息ID是预定义的,并且MAVLink头文件(从XML生成)包含打包和序列化功能。我已经成功实现并测试了这方面。
但是,我正在努力实现ROS和MAVROS的相同功能。
我注意到MAVROS分发包含一些头文件,这些头文件定义了MAVROS消息以及从MAVLink消息到/从MAVLink消息的转换。
以下要点概述了我要理解的过程。
最终,我要做的只是序列化和反序列化ROS / MAVROS消息的一小部分,而无需占用大量框架开销。尽管允许我使用MAVLink进行此操作的信息容易获得且易于实现,但我找不到与ROS / MAVROS消息实现相同功能所需的等效信息。
非常欢迎任何帮助或澄清!
非常感谢!
答案 0 :(得分:0)
我曾经和pixhawk合作过。我会尽力为您提供帮助。 据我所知,有关mavros的文档包括:
mavros基本上由两部分组成:
libmovcon是mavlink收发器,它从无线电/以太网/ wifi网络发送/接收消息,并将已编码(仍为MAVLINK格式)的消息发布/订阅到ROS消息分发系统。 mavros是发布/订阅消息的ENCODED版本并有选择地将其解码并转换为ROS消息的粘合剂。 (例如,将mavlink全局速度转换为ROS geometry_msgs / TwistStamped)
回到您的问题: