franka_gripper

This package contains the franka_gripper_node for interfacing with the Franka Hand.

Actions and Services

The franka_gripper_node provides the following actions:

  • homing - homes the gripper and updates the maximum width given the mounted fingers.

  • move - moves to a target width with the defined speed.

  • grasp - tries to grasp at the desired width with the desired force while closing with the given speed. The operation is successful if the distance d between the gripper fingers is width - epsilon.inner < d < width + epsilon.outer

  • gripper_action - a special grasping action for MoveIt.

Also, there is a stop service that aborts gripper actions and stops grasping.

Usage

Use the following launch file to start the gripper:

ros2 launch franka_gripper gripper.launch.py robot_ip:=<fci-ip>

In a different tab you can now perform the homing and send a grasp command.:

ros2 action send_goal /fr3_gripper/homing franka_msgs/action/Homing {}
ros2 action send_goal -f /fr3_gripper/grasp franka_msgs/action/Grasp "{width: 0.00, speed: 0.03, force: 50}"

The inner and outer epsilon are 0.005 meter per default. You can also explicitly set the epsilon:

ros2 action send_goal -f /fr3_gripper/grasp franka_msgs/action/Grasp "{width: 0.00, speed: 0.03, force: 50, epsilon: {inner: 0.01, outer: 0.01}}"

To stop the grasping, you can use stop service.:

ros2 service call /fr3_gripper/stop std_srvs/srv/Trigger {}

Changes from franka_ros

  • All topics and actions were previously prefixed with franka_gripper. This prefix was renamed to panda_gripper to enable, in the future, a workflow where all prefixes are based on the arm_id to effortlessly enable multi arm setups.

  • The stop action is now a service action as it is not preemptable.

  • All actions (apart from the gripper_action) have the current gripper width as feedback.