can't use push_back for a array ros message in arduino
Arduino code:
#include <ros.h>
#include <geometry_msgs/Pose.h>
#include <geometry_msgs/PoseArray.h>
ros::NodeHandle nh;
geometry_msgs::PoseArray array;
ros::Publisher p("array", &array);
void setup()
{
pinMode(13, OUTPUT);
nh.initNode();
nh.advertise(p);
}
void loop()
{
geometry_msgs::Pose pose;
pose.position.x=1;
pose.position.y=1;
pose.position.z=1;
array.poses.push_back(pose);
p.publish(&array);
nh.spinOnce();
delay(10);
}
Here is simple test to publish a PoseArray. When I compile it, I got the errors like:
/Users/Crazymumu/Desktop/array_test_1/array_test_1.ino: In function 'void loop()': array_test_1:37: error: request for member 'push_back' in 'array.geometry_msgs::PoseArray::poses', which is of pointer type 'geometry_msgs::Pose' (maybe you meant to use '->' ?)
array.poses.push_back(pose); ^ exit status 1 request for member 'push_back' in 'array.geometry_msgs::PoseArray::poses', which is of pointer type 'geometry_msgs::Pose' (maybe you meant to use '->' ?)
I am not sure. This should be all right in original ROS environment. Any suggestions? Thanks
Have you tried what the error suggest? I am not familiar with ROS Arduino, but it says that you must use
array.poses->push_back
yes, I tried.