array的添加,使用 arry[i]赋值时会出现段错误,需要使用array.push_back添加到数据中,在ros中array数组是以vector方式存储的。
例如:
包含数组的msg定义为:
hbgArray.msg
std_msgs/Header header
hbg_std_msgs/KeyPose[] keyposes
包含数组元素的定义为:
KeyPose.msg
double x
double y
doube z
以上两个文件定义在包hbg_std_msgs中
编译后使用,编写程序时:
int main(int argc, char **argv)
{
hbg_std_msgs::hbgArray pArray;
hbg_std_msgs::KeyPoe pKey;
for(int i = 0; i< size; i++)
{
// 填充pKey;
.....
// 添加到array 中
pArray.push_back(pKey);
}
// 发布
XX.publish(pArray);
}