ROS 2 gripper drivers that expose a common action-based API for opening/closing a custom built gripper.
gripper_msgs: ROS 2 action definitions (OpenGripper,CloseGripper).gripper_dynamixel: DynamixelSDK (Protocol 2.0) based action server (Python).gripper_feetech: Feetech STS/SCS based action server (C++).gripper_ros: launch files + centralized parameter YAMLs.
All implementations aim to expose the same action names:
/open_gripper(gripper_msgs/action/OpenGripper)/close_gripper(gripper_msgs/action/CloseGripper)
See docs/action_interface.md for goal/result/feedback fields and CLI examples.
sudo apt update
sudo apt install -y \
python3-colcon-common-extensions \
python3-rosdep \
python3-pip \
python3-serialIf you are adding this repo into a ROS 2 colcon workspace:
mkdir -p ~/colcon_ws/src
cd ~/colcon_ws/src
git clone --recurse-submodules https://github.com/CollaborativeRoboticsLab/grippers.gitFrom the root of your colcon workspace:
cd ~/colcon_ws
rosdep update
rosdep install --from-paths src --ignore-src -r -y --rosdistro "$ROS_DISTRO"Most USB serial adapters require your user to be in dialout:
sudo usermod -a -G dialout $USERLog out/in after changing groups.
cd ~/colcon_ws
source /opt/ros/$ROS_DISTRO/setup.bash
colcon build --symlink-install
source install/setup.bash- Config:
gripper_ros/config/dynamixel.yaml - Launch:
ros2 launch gripper_ros dyanmixel.launch.pyOverride params file:
ros2 launch gripper_ros dyanmixel.launch.py params_file:=/abs/path/to/dynamixel.yamlSee docs/dynamixel.md for motor model presets and parameter details.
- Config:
gripper_ros/config/feetech.yaml - Launch:
ros2 launch gripper_ros feetech.launch.pyOverride params file:
ros2 launch gripper_ros feetech.launch.py params_file:=/abs/path/to/feetech.yamlSee docs/feetech.md for parameter details.