franka_gripper

该软件包包含用于与 Franka Hand 通信的 franka_gripper_node 节点。

动作与服务

franka_gripper_node 提供以下动作:

  • homing - 复位夹爪,并根据安装的手指更新最大张开宽度。

  • move - 以设定速度移动至目标宽度。

  • grasp - 以给定的速度闭合夹爪,并在目标宽度和目标力下尝试抓取。当夹爪两指间的距离 d 满足 width - epsilon.inner < d < width + epsilon.outer 时,抓取被认为成功。

  • gripper_action - 为 MoveIt 提供的专用抓取动作。

此外,还提供 stop 服务,用于中止夹爪动作并停止抓取。

使用方法

使用以下启动文件启动夹爪::

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

在另一个终端标签页中,可以执行复位操作并发送抓取命令::

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}"

默认情况下,内外侧的 epsilon 均为 0.005 米。您也可以显式设置 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}}"

要停止抓取,可使用 stop 服务::

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

与 franka_ros 的差异

  • 此前所有的主题与动作均以 franka_gripper 为前缀。该前缀已更名为 panda_gripper,以便未来可以基于 arm_id 来统一命名,从而轻松支持多机械臂配置。

  • 由于 stop 动作不可被抢占,因此现在将其实现为服务类型的动作。

  • gripper_action 外,所有动作均会返回当前夹爪宽度作为反馈。