1. 程式人生 > >帶有 陣列格式的自定義ros message

帶有 陣列格式的自定義ros message

最近由於需求,需要自定義一些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]

在終端顯示的資料以陣列的形式被包含到中括號"[]"中。