ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Publish an length unknown vector message on a topic

asked 2013-02-26 04:30:08 -0600

mateo_7_7 gravatar image

hi, i'm trying to publish a self-defined message composed by 4 vector whose length is unknown. my .cpp code (incomplete) could be the following:

std::vector <int> l,d,r,u;
   data_pub_ = it_.advertise<rd_ctrl::proc_data>("data", 1);
//vectors u,d,l,r computation

if it works (i don't know...if there are errors please tell me), how can i define the .msg file? thank you very much for your help!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-02-26 05:18:11 -0600

For creating a msg file,create a folder "msg" in ur package directory. In directory create msg file name.msg with following content:

int32[] l

int32[] d

int32[] r

int32[] u

Also make changes in CMakelist.txt for compiling msg files. If u ur not sure of vector size u can just declare a variable of message type and publish it without assigning them a value.

edit flag offensive delete link more



I followed this way to create a message containing an array with unknown size.

But when I assigned some value to the array in the program and publish, it gave "Segmentation fault (core dumped)" when running.

Should I have to declare the size of the array in the program? How can it be done?

shan333 gravatar image shan333  ( 2013-02-27 21:09:54 -0600 )edit

I followed this way to create a message containing an array with unknown size.

shan333 gravatar image shan333  ( 2013-02-27 21:09:55 -0600 )edit

U need to first allot memory. Do it using msg.a.resize(size of vector) or u can push elements into it using " msg.a.push_back(integer value) .

ayush_dewan gravatar image ayush_dewan  ( 2013-02-27 21:57:01 -0600 )edit

Question Tools


Asked: 2013-02-26 04:30:08 -0600

Seen: 1,363 times

Last updated: Feb 26 '13