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

Revision history [back]

click to hide/show revision 1
initial version

On the command line: rosrun tf tf_echo source_frame target_frame

In Python:

import tf
listener = tf.TransformListener()
p_joint = geometry_msgs.msg.PoseStamped()
p_joint.header.frame_id = "your_joint"
p_joint_in_world = listener.transformPose("world", p_joint)
q = p_joint_in_world.pose.orientation  # Quaternion
rpy = tf.transformations.euler_from_quaternion(q.x, q.y, q.z, q.w)

In C++, I don't have boilerplate code on hand, but you could convert the geometry_msg.msg.Quaternion a Tf::Quaternion, convert it to a Matrix3x3 and call getRPY.

This answer assumes that you meant "Roll Pitch Yaw", because this is the standard in robotics. If you really need the YPR Euler angles, use the euler_from_quaternion function's axes parameter in Python, or the getEulerYPR function in C++.