上篇ros发布者和订阅者的写法提到了ros的消息格式,数据要在ros中传输,就要保证ros能够辨别出这种数据。个人把ros消息格式类比成java中的类,有ros自动定义的格式,也可以自定义消息格式,比如说,上篇用到的std_msg格式,就是由c++的基本数据类型封装而成,其data属性就是String类型的 。
数据在ros框架进行传递,之前说过,只要指明数据的起点和终点还有数据类型,这里说的就是这个数据类型,下面我从三个方面来说一下数据类型。
- ros自带消息格式的查看
在编写话题订阅者和发布者时,难免要将ros的消息格式转换成为c++的基本数据类型,然后才能进行数据处理。比如说对相机的数据进行处理的时候,必须要知道相机数据由哪些基本数据组成,才能进行下一步的转换和处理。
可以通过查看ros api来确定这些数据
ros api地址:http://wiki.ros.org/APIs
也可以通过命令
rostopic type + 话题名 确定消息类型
然后通过命令
rosmsg show + 消息类型 查看基本数据组成 - 自定义消息格式
这个可以在创客智造上查看详细的教程,网址:https://www.ncnynl.com/archives/201702/1290.html
步骤: - 新建功能包,在包下新建msg路径,在msg下新建一个.msg文件
- 编辑msg文件<