How do I use collision_object.header.frame_id? Can I use it for frame transformations?
I want to add collision objects to the world using a frame that is broadcast by a node. Setting
collision_object.header.frame_id = "task_frame"
results in the planner responding that
Unable to transform from frame 'task_frame' to frame '/base_link'. Returning identity.
I tried setting my
collision_object.header.stamp = ros::Time::now();
but no luck. I know task_frame exists, because I can run through tf_echo just fine. I can also manually transform poses, but the code will soon become really ugly as the list of objects increases.
Am I using collision_object.header wrong?
Can you upload on image of the tf using `$ rosrun tf view_frames $ evince frames.pdf` ? And I know its working but could you add the output of `rosrun tf tf_echo /map /odom` ?
I don't have /map or /odom transforms, are they required? I'm transforming directly from the base_link of the robot (which is stationary), to a particular configuration of the end_effector. I'll edit my question to include an image of the tf.
Weird, it suddenly stared working, I didn't change anything. I suppose there might be some suboptimal way I've set up my transforms/timing/planning_scene somewhere.
And now it is back where I started. I even added a wait for transform before setting my collision_object.header to prove to myself that the frame is coming through. Every node that I can think of can see "task_frame" except my planner. I'm out of ideas.
It's probably a typo somewhere but when I look at your image, I don't see any task_frame, I see task_space...
Yeah, it's a type in the question. But everything is spelled correctly in the code. I imagine it has to do with the timestamp, embedded in the collision_object, but I can't find a solution that works.
Ok osrry it's the end of my knowledge. I have no idea why it does not work :/