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

Revision history [back]

I think this is your issue:

transform_listener.transformPointCloud ("/base", ros::Time::now(), input_pointcloud, "/right_hand", transformed_pointcloud);

Looking at the documentation for that method, you appear to be using the wrong method signature. The source frame comes from your point cloud message, i.e., argument 3. If I had to guess, if you look at the header on your point cloud message, it has an empty frame_id, or a frame_id of just "/". In the function call you used, "/right_hand" refers to the fixed frame, not the source frame. In other words, I think you used this:

http://docs.ros.org/indigo/api/tf/html/c++/classtf_1_1TransformListener.html#a15311ea62034e9e32386b001d88c23e3

...and you meant to use this:

http://docs.ros.org/indigo/api/tf/html/c++/classtf_1_1TransformListener.html#afccbdbc27da4dceff41b85580a48d0f3

I think this is your issue:

transform_listener.transformPointCloud ("/base", ros::Time::now(), input_pointcloud, "/right_hand", transformed_pointcloud);

Looking at the documentation for that method, you appear to be using the wrong method signature. The source frame comes from your point cloud message, i.e., argument 3. If I had to guess, if you look at the header on your point cloud message, it has an empty frame_id, or a frame_id of just "/". In the function call you used, "/right_hand" refers to the fixed frame, not the source frame. In other words, I think you used this:

http://docs.ros.org/indigo/api/tf/html/c++/classtf_1_1TransformListener.html#a15311ea62034e9e32386b001d88c23e3

...and you meant to use this:

http://docs.ros.org/indigo/api/tf/html/c++/classtf_1_1TransformListener.html#afccbdbc27da4dceff41b85580a48d0f3

EDIT: ...and you also need to fill out the frame_id in the header of your point cloud message.