Robot descriptions (URDF)
We currently have modular xacro files for our robots including hands and arms setups, allowing the robots to start in various configurations. They can be found in our sr_description and sr_interface packages.
Shadow Hands
Unimanual
The main xacro file to use is sr_hand.urdf.xacro when you are using only one of our hands.
The following arguments are available:
side- defines the side of the hand. Allowed options:right/lefthand_type- defines the type of the hand. Allowed options:hand_e/hand_g/hand_chand_version- defines version for particular type of hand.fingers- defines which fingers does the hand have, can beallor a string in a format ofth,ff,mf,rf,lf
Current allowed configurations are the following:
Dexterous Hand |
Dexterous Hand Lite |
Dexterous Hand Extra Lite |
Muscle_hand (deprecated) |
|
|---|---|---|---|---|
hand_type |
hand_e |
hand_g |
hand_g |
hand_c |
hand_version |
E3M5, E2M3 |
G1M5 |
G1M5 |
C6M2 |
fingers |
all |
all |
all |
all |
th,ff,mf,rf,lf |
th,ff,mf,rf |
th,ff,mf |
th,ff,mf,rf,lf |
There are also arguments that define where and which sensors are located on the hand. It allows placement of sensors on tip, mid and proximal parts of the fingers as well as the palm. Argument names: tip_sensors, mid_sensors, prox_sensors, palm_sensor. Currently, only sensors at the fingertips are available. There are three fingertip sensor types: pst/bt_sp/bt_2p.
PST |
Syntouch Biotacs |
||
|---|---|---|---|
2p |
sp |
||
tip_sensors |
pst |
bt_2p |
bt_sp |
Bimanual
If you have a setup with two robot hands, this is the xacro to use: sr_hand_bimanual.urdf.xacro
The following arguments are available (similar to the hand-only scenario but with the side prefix to specify every configuration):
right_hand_typeright_hand_versionright_fingersright_tip_sensorsright_mid_sensorsright_prox_sensorsright_palm_sensorleft_hand_typeleft_hand_versionleft_fingersleft_tip_sensorsleft_mid_sensorsleft_prox_sensorsleft_palm_sensor
Shadow Hands mounted on UR arms
The main xacros for Universal Robot Arms and Shadow hand systems are:
Unimanual
Additional parameters:
robot_model- defines which robot model is used. Allowed options:ur10/ur10e/ur5/ur5einitial_z- defines how high above the ground the robot is spawned
Bimanual
Bimanual arms: bimanual_ur.urdf.xacro
Bimanual arms and hands; bimanual_srhand_ur.urdf.xacro
Additional parameters:
robot_model- defines which robot model is used. Allowed options:ur10/ur10e/ur5/ur5earm_1_z- defines how high above the ground the right robot arm is spawnedarm_2_z- defines how high above the ground the left robot arm is spawnedarm_x_separation- x separation of the left arm with respect to the right armarm_y_separation- y separation of the left arm with respect to the right arm
Usage
For usage example, refer to the xacro files themselves or the unimanual and bimanual launchfiles that use them. When used with Shadow Hands all the hand parameters are automatically set for you with the autodetection. However, if you are running in simulation or just want to omit the autodetection and set them manually, you can pass the args directly to the launchfile or xacro command. The following are examples on how to use them.
Launch file:
roslaunch sr_robot_launch srhand.launch side:=right hand_type:=hand_g hand_version:=G1M5 fingers:=th,ff,mf,rf,lf tip_sensors:=ff=bt_2p,lf=bt_sp,mf=pst,rf=pst,th=bt_sp mid_sensors:=none prox_sensors:=none palm_sensor:=none sim:=trueXacro command:
xacro <xacro file> side:=right hand_type:=hand_g hand_version:=G1M5 fingers:=th,ff,mf,rf,lf tip_sensors:=ff=bt_2p,lf=bt_sp,mf=pst,rf=pst,th=bt_sp mid_sensors:=none prox_sensors:=none palm_sensor:=none
As far as SRDF’s are concerned, all necessary ones are autogenerated from robot_description ros parameters spawned to the parameter server.
Autodetection parameters
For each of the hands, there is a general_info.yaml file that contains information about the hand and will be used to pass correct arguments to the launchfiles, and further to the xacros. When hand is being autodetected, the script will look into that file, extract all necessary arguments and provide them to the launchfile as a command suffix. All of the “general info” files can be found in sr_hand_config repository, inside hand serial folder corresponding to each particular hand.