Frame id / does not exist!
Hey,
I am getting an error when transforming a pointcloud, after a couple of hours, I am still not sure why..
Below is the code I used. I hardcoded the frame's names and the times to transform them to as present time.
transform_listener.waitForTransform("/base", "/right_hand", ros::Time::now(), ros::Duration(3.0));
transform_listener.transformPointCloud ("/base", ros::Time::now(), input_pointcloud, "/right_hand", transformed_pointcloud);
The transform_listener is created as a private variable inside a class object, of which one instance is created in the main function of my program. The ros::init function is called first in the main function, thereafter the class instance is created.
I read about scoping issues with the TF here which tells me:
We create a TransformListener object. Once the listener is created, it starts receiving tf transformations over the wire, and buffers them for up to 10 seconds. The TransformListener object should be scoped to persist otherwise it's cache will be unable to fill and almost every query will fail. A common method is to make the TransformListener object a member variable of a class.
However, as far as I know my tf::TransformListener
is in scope?
And this is the error during runtime.
[ WARN] [1415383382.159412441]: Could not transform received slam pointcloud from '/right_hand' to '/base' frame : Frame id / does not exist! Frames (101):
Also see : Image with all the frames and relations