ROS话题通信自定义msg
在ROS通信协议中,数据载体是比较重要的组成部分,ROS中通过封装了一些原生的数据类型,比如String、Int32等等,但是这些数据只包含了一个data字段,如果需要传输一些复杂的数据,比如:激光雷达的信息,这种场景下可以使用自定义的消息类型,msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有:
int8, int16, int32, int64 (或者无符号类型: uint*)
float32, float64
string
time, duration
other msg files
variable-length array[] and fixed-length array[C]
ROS中还有一种特殊类型:Header,标头包含时间戳和ROS中常用的坐标帧信息。
需求:创建自定义消息,该消息包含犯人的信息:姓名、身高、年龄、犯罪内容等。
流程:
①按照固定格式创建msg文件
②编辑配置文件,包括package.xml和CMakeLists.txt两个文件的配置
③编译生成可以被Python或C++调用的中间文件
1、定义msg文件
功能包下新建msg目录,添加文件criminal.msg
string name
uint16 age
float64 height
2、编辑配置文件
package.xml中添加编译依赖于执行依赖