Arm DescriptionsView Package on GitHub
This package contains the URDFs and meshes for the many X-Series Interbotix Arms. The STL files for each robot are located in a unique folder inside the meshes directory. Also in the ‘meshes’ directory is the interbotix_black.png picture. The appearance and texture of the robots come from this picture. Next, the URDFs for the robot are located in the urdf directory. They are written in ‘xacro’ format so that users have the ability to customize what parts of the URDF get loaded to the parameter server (see the ‘Usage’ section below for details). Note that all the other Interbotix X-Series Arms core ROS packages in the sub-repo reference this package to launch the robot description.
This package contains the xsarm_description.launch file responsible for loading parts or all of the robot model. It launches up to four nodes as described below:
- joint_state_publisher - responsible for parsing the ‘robot_description’ parameter to find all non-fixed joints and publish a JointState message with those joints defined.
- joint_state_publisher_gui - does the same thing as the ‘joint_state_publisher’ node but with a GUI that allows a user to easily manipulate the joints.
- robot_state_publisher - uses the URDF specified by the parameter robot_description and the joint positions from the joint_states topic to calculate the forward kinematics of the robot and publish the results via tf.
- rviz - displays the virtual robot model using the transforms in the ‘tf’ topic.
To run this package, type the line below in a terminal. Note that the
robot_model argument must
be specified as the name of one of the URDF files located in the urdf directory (excluding the
‘.urdf.xacro’ part). For example, to launch the ReactorX-150 arm, type:
$ roslaunch interbotix_xsarm_descriptions xsarm_description.launch robot_model:=rx150 use_joint_pub_gui:=true
This is the bare minimum needed to get up and running. Take a look at the table below to see how to further customize with other launch file arguments.
|robot_model||model type of the Interbotix Arm such as ‘wx200’ or ‘rx150’||“”|
|robot_name||name of the robot (typically equal to
|base_link_frame||name of the ‘root’ link on the arm; typically ‘base_link’, but can be changed if attaching the arm to a mobile base that already has a ‘base_link’ frame||base_link’|
|show_ar_tag||if true, the AR tag mount is included in the ‘robot_description’ parameter; if false, it is left out; set to true if using the AR tag mount in your project||false|
|show_gripper_bar||if true, the gripper_bar link is included in the ‘robot_description’ parameter; if false, the gripper_bar and finger links are not loaded to the parameter server. Set to false if you have a custom gripper attachment||true|
|show_gripper_fingers||if true, the gripper fingers are included in the ‘robot_description’ parameter; if false, the gripper finger links are not loaded to the parameter server. Set to false if you have custom gripper fingers||true|
|use_world_frame||set this to true if you would like to load a ‘world’ frame to the ‘robot_description’ parameter which is located exactly at the ‘base_link’ frame of the robot; if using multiple robots or if you would like to attach the ‘base_link’ frame of the robot to a different frame, set this to false||true|
|external_urdf_loc||the file path to the custom urdf.xacro file that you would like to include in the Interbotix robot’s urdf.xacro file||“”|
|load_gazebo_configs||set this to true if Gazebo is being used; it makes sure to include Gazebo related configs in the ‘robot_description’ parameter so that the robot models show up black in Gazebo||false|
|use_joint_pub||launches the joint_state_publisher node||false|
|use_joint_pub_gui||launches the joint_state_publisher GUI||false|
|rvizconfig||file path to the config file RViz should load||refer to xsarm_description.launch|
|model||file path to the robot-specific URDF including arguments to be passed in||refer to xsarm_description.launch|