Only released in EOL distros:  


Assisted grasping has been developed to allow safe and robust grasping of unknown or unrecognized objects by SDH gripper equipped with tactile sensors. It has separated API definition (actionlib interface), code and GUI in form of RVIZ plugin.

When calling grasp action there is possibility to specify target configuration (angles) for all joints of the gripper, grasp duration and maximum forces for all tactile pads. Then, for each joint, velocities with acceleration and deceleration ramps are calculated in a way, that all joints will reach target configuration at the same time. If the measured force on a pad will exceed requested maximal force, movement of a corresponding joint will be stopped. With different target configurations and appropriate forces, a wide range of objects can be grasped.

Assisted grasping package also offers node for preprocessing of tactile data by median and Gaussian filter with configurable parameters and node for simulation of velocity mode of SDH.

Grasping node

Topics, parameters

Subscribed Topics

tact_in (schunk_sdh/TactileSensor)
  • Data for tactile feedback.
state_in (pr2_controllers_msgs/JointTrajectoryControllerState)
  • Data for position feedback.

Published Topics

velocity_out (brics_actuator/JointVelocities)
  • Velocity commands.


~max_force (double, default: "1000.0")
  • Maximal allowed force. Higher values will be limited to this value.
~max_velocity (double, default: "1.5")
  • Maximal velocity (rad/s).
~a_ramp (double, default: "10.0")
  • Length of acceleration ramp in percents of whole trajectory.
~d_ramp (double, default: "20.0")
  • Length of deceleration ramp in percents of whole trajectory.
~rate (double, default: "20.0")
  • Rate of internal controller. Also commands are published at this rate.

Node also requires list of joints with some additional information. This can be done easily in YAML file:

  joint: sdh_knuckle_joint
  has_tactile_pad: false
  static: true
  joint: sdh_thumb_2_joint
  has_tactile_pad: true  
  static: false
  joint: sdh_thumb_3_joint
  has_tactile_pad: true
  static: false
  joint: sdh_finger_12_joint
  has_tactile_pad: true
  static: false
  joint: sdh_finger_13_joint
  has_tactile_pad: true
  static: false
  joint: sdh_finger_22_joint
  has_tactile_pad: true
  static: false
  joint: sdh_finger_23_joint
  has_tactile_pad: true
  static: false

Actionlib API

Action Subscribed Topics

/reactive_grasping_action/goal (srs_assisted_grasping_msgs/ReactiveGraspingActionGoal)

  • Target configuration of joints, maximal allowed force for each tactile pad and time to reach target configuration.
/reactive_grasping_action/cancel (actionlib_msgs/GoalID)
  • A request to cancel given goal.

Action Published Topics

/reactive_grasping_action/feedback (srs_assisted_grasping_msgs/ReactiveGraspingActionFeedback)

  • Feedback is empty.
/reactive_grasping_action/status (actionlib_msgs/GoalStatusArray)
  • Status.
/reactive_grasping_action/result (srs_assisted_grasping_msgs/ReactiveGraspingActionResult)
  • Current joint values, forces and real time to stop for all joints.

Tactile filter


Simulated velocity mode


Wiki: srs_assisted_grasping (last edited 2013-04-04 13:30:37 by ZdenekMaterna)