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
/left
hand_type
- defines the type of the hand. Allowed options:hand_e
/hand_g
/hand_c
hand_version
- defines version for particular type of hand.fingers
- defines which fingers does the hand have, can beall
or 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_type
right_hand_version
right_fingers
right_tip_sensors
right_mid_sensors
right_prox_sensors
right_palm_sensor
left_hand_type
left_hand_version
left_fingers
left_tip_sensors
left_mid_sensors
left_prox_sensors
left_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
/ur5e
initial_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
/ur5e
arm_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:=true
Xacro 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.