Skip to content

Repository files navigation

  • for low-level servo control and gripper-level open/close control.

Packages

  • gripper_servo_dynamixel: low-level DynamixelSDK (Protocol 2.0) servo/action package (Python).
  • gripper_servo_feetech: low-level Feetech STS/SCS servo/action package (C++).
  • gripper_two_fingers: gripper-level two-finger Dynamixel wrapper (Python).
  • gripper_feetech_test: gripper-level Feetech test wrapper (C++).
  • gripper_ros: launch files + centralized motor/gripper parameter YAMLs.

Action API

This ros packages use two action layers:

  • low-level servo control: /servo_control
  • gripper-level control: /gripper_command using control_msgs/action/GripperCommand

See docs/servo/ros2-interface.md for low-level servo ros2 specifications and examples. See docs/gripper/ros2-interface.md for gripper level ros2 specifications and examples.

Installation and Setup

Follow the Setup instructions in docs/installation.md to install dependencies and build the workspace.

Servo-level launch and testing

See gripper_servo_dynamixel/README.md for testing Dynamixel servos. See gripper_servo_feetech/README.md for testing Feetech servos.

Gripper-level launch:

Two-finger Dynamixel gripper

source install/setup.bash
ros2 launch gripper_ros gripper_soft_two_fingers.launch.py

load the visualization for the two-finger gripper:

source install/setup.bash
ros2 launch gripper_ros gripper_sim.launch.py model:=two-finger-gripper-standalone

This starts the gripper URDF in robot_state_publisher and rviz2 only. Run it alongside gripper_soft_two_fingers.launch.py when you want RViz to reflect live /joint_states from the gripper node.

Gripper control

Use the action CLI to send gripper goals (see docs/gripper/ros2-interface.md for details):

To open gripper:

source install/setup.bash
ros2 action send_goal /gripper_command control_msgs/action/GripperCommand "{command: {position: 0.09, max_effort: 0.0}}"

To close gripper:

source install/setup.bash
ros2 action send_goal /gripper_command control_msgs/action/GripperCommand "{command: {position: 0.0, max_effort: 0.0}}"

For calibration/debugging only, the gripper wrapper also exposes a bypass_max_effort parameter. When enabled, gripper-level max_effort bypasses max_effort_to_torque_factor and is treated directly as low-level torque.

Gripper calibration

See docs/gripper/force_estimations.md for the following calibration workflows:

  • Gripping-force calibration workflow
  • Retention-force Arduino measurement workflow

Read the gripper action interface docs for more details on GripperCommand goal fields and CLI usage. Read the servo action interface docs for direct low-level servo commands.

Additional documentation

About

A collection of ROS2 nodes to control custom grippers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages