最近由于需求,需要自定义一些topic格式进行数据的处理。基于常见的数据类型:int32 flosat32 bool 等可以定义出需要的消息格式。 如:example.msg  

int32  a
float32  b
bool  c

  则在终端查看消息类型为example.msg定义的example_topic时  

rostopic echo /example_topic

  有类似如下显示:  

a: 1
b: 1.0
c: true
---
a: 1
b: 1.0
c: true
---
a: 1
b: 1.0
c: true
---
a: 1
b: 1.0
c: true
---

  但在一些特殊条件下需要消息中的数据为数组形式,以存储更多的数据,则数组形式的自定义消息为(以bool型数据为例): example_bool_array.msg  

bool[3] bool_array_data

  创建该消息格式的数据对象,并赋值。  

package_name::example_bool_array bool_data;

bool_data.bool_array_data[0] = true;
bool_data.bool_array_data[1] = false;
bool_data.bool_array_data[2] = true;

  将该消息对象发布出去,并打印发布的example_bool_topic  

rostopic echo /example_bool_topic

 

example_bool_topic: [True, False,True]
---
example_bool_topic: [True, False,True]
---
example_bool_topic: [True, False,True]

  在终端显示的数据以数组的形式被包含到中括号"[]"中。