The Unified Robot Description Format (URDF) is the standard ROS XML representation of the robot model (kinematics, dynamics, sensors) describing Baxter
Baxter generates his URDF dynamically on robot startup. This model is updated when any gripper is attached or detached, an object is 'grasped' or released and its mass is compensated for, and when new urdf segments are provided/commanded to the gripper plugins. As of SDK versions >= 1.0.0 Baxter's internal robot model, is loaded to the parameter server on the topic
The default URDF for Baxter is available in the baxter_common repository. The package
baxter_description contains the URDF and accompanying meshes.
Getting a Copy of the URDF from the parameter server
You can now get the current URDF describing your Baxter.
From a properly initialized Baxter environment, export the URDF from the
/robot_description parameter on the ROS parameter server where it is stored, to a file of your choice (ex:
$ rosparam get -p /robot_description | tail -n +2 > baxter_urdf.xml
-p outputs the parameter using pretty print. The output urdf is piped through the
tail command first to remove a dummy first line - an artifact of the pretty print.
Tip: You can check that you now have a proper URDF by running:
$ rosrun urdfdom check_urdf baxter_urdf.xml
Robot State Publisher
- robot_ref_publisher: publishes transforms that reflect the commanded robot state
- robot_state_publisher: publishes transforms that reflect the measured state of the robot
These robot publishers live internal to Baxter and are accessible to the RSDK over ROS. The "ref" tfs are used by the robot internals, but you may find them useful to see where the robot will move at the next timestep. Otherwise, be sure to use the non-"ref" transforms if you're only interested in the Baxter's current state.