The ROS API provided by the rdl_ros_tools
package provides a ROS service interface for performing a number of kinematic operations such as coordinate transforms for twists, wrenches, 3D vectors, and points. There are a number of other services provided for computing other quantities that are often useful in robotics. Below each service will be described in detail. In order to not duplicate documentation, this page will not go into detail on the definition of a twist, etc. For this information please look at the documentation for the rdl_dynamics package or refer to the book Rigid Body Dynamics Algorithms by Roy Featherstone.
The rdl_kinematics_interface
node is a ROS node that provides ROS services for doing common kinematics operations such as frame changes, computing twsts, etc.
The following are necessary for up-to-date, kinematically correct results from the rdl_kinematics_interface node,
By default, the node will look at rdl_kinematics_interface/robot_description
for an urdf string from which it will build a RobotDynamics::Model object for doing kinematic operations. The rdl_kinematics_interface
node subscribes to the following topics for updating the state of the robot,
rdl_kinematics_interface/joint_states
rdl_kinematics_interface/robot_state
The following list details the services provided by this node and a brief description of the provided functionality,
change_frame_point
: Change the reference frame a point is expressed inchange_frame_point_array
: Change the reference frame an array of points are expressed inchange_frame_3dvector
: Change the reference frame a 3d vector is expressed inchange_frame_3dvector_array
: Change the reference frame an array of 3d vectors are expressed inchange_frame_wrench
: Change the reference frame a wrench is expressed inchange_frame_wrench_array
: Change the reference frame an array of wrenches is expressed inchange_frame_twist
: Change the reference frame a twist is expressed inchange_frame_twist_array
: Change the reference frame an array of twists are expressed inget_twist
: Compute a twistget_transform
: Compute a spatial transformget_robot_com
: Get a robots center of mass position and velocityget_body_grav_wrench
: Get the gravity wrench for a given bodyIf no remapping is desired and you have the appropriate rosparam parameters set, you may run this node by running the following command in the console,