Hi everybody, I have a question about frames , transforms and TF. I would like to extend the simples Turtle tf tutorials ( http://www.ros.org/wiki/tf/Tutorials) based on a 2D space but I'm having a lot of troubles doing it. Unfortunately I didn't find (yet) something on the mailing list or on ros-answers... I have this 3 frames: - world_frame - odom_frame (with a fixed transform respect to world) - cart_frame (I move this frame with the odometry data Here is the code: static tf::TransformBroadcaster br; > static tf::TransformListener tf_; > and this while (ros::ok()){ > transform.setOrigin(tf::Vector3(3,3,0)); > transform.setRotation(tf::createQuaternionFromRPY(0.0,0.0,0.0)); > br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), > "/world", "/odom")); > here, with updateOdom I calculate the x,y,theta position from the odometry (like the tutorial ) > updateOdom(1); try { transform.setOrigin(tf::Vector3(x,y,0)); transform.setRotation(tf::createQuaternionFromRPY(0.0,0.0,th)); br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "/odom", > "/cart_frame")); } catch(tf::TransformException e) { ROS_WARN("errore transformpose (%s)", e.what()); } Now what I'm trying to do is move the cart_frame not only with the x+y+th params but with a full 6-dof transform, as if the the cart_frame was moving on a circular garage car ramp, and here starts my question: the simplest way is to add the information to the odometry, so I can call the sendtransform() directly, but what if I had a situation where the odometer always sends only 2D transforms? In the example I tried to send a transform with a small pitch at the beginning of the while (ros ok()) transform.setOrigin(tf::Vector3(3,3,0)); > transform.setRotation(tf::createQuaternionFromRPY(0.0,0.4,0.0)); > br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), > "/world", "/odom")); and this is the outcome http://www.youtube.com/watch?v=d4ktwwukCV0, not properly what I want... Ok, probably I am very tired and confused today but if someone can tell me where I'm wrong I'll be infinitely grateful =) Thank you Augusto