Skip to content

Repository files navigation

EZGripper ROS2 Driver

ROS2 driver for SAKE Robotics EZGripper. This driver provides standard ROS2 integration for EZGripper control.

⚠️ Protocol 2.0 Required

Your EZGripper servos must be upgraded to Protocol 2.0 to use this driver.

How to Check: If your servos are using Protocol 1.0, this driver will not work.

How to Upgrade: See Servo Upgrade Guide

Architecture

This driver depends on the generic EZGripper DDS interface for hardware communication:

┌─────────────────────────────────────────────────┐
│        Generic EZGripper DDS Interface          │
│  (Protocol 2.0 Hardware + Generic DDS)         │
└─────────────────────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────────────────────┐
│        ROS2 Driver (This Repo)                │
│  - ROS2 Topics: /ezgripper_{side}/gripper_cmd  │
│  - ROS2 Actions: control_msgs/GripperCommand   │
│  - ROS2 Services: calibration                 │
└─────────────────────────────────────────────────┘

Requirements

  • EZGripper with Protocol 2.0 servos
  • ROS2 Humble or newer
  • Python 3.8+

Need to upgrade servos? See Servo Upgrade Guide

Installation

# Clone into your ROS2 workspace
cd ~/ros2_ws/src
git clone https://github.com/SAKErobotics/ezgripper_ros2_v2.git

# Install dependencies (automatically installs generic interface)
rosdep install --from-paths src --ignore-src -r -y

# Build
cd ~/ros2_ws
colcon build --symlink-install
source install/setup.bash

Quick Start

Single Gripper

# Launch driver
ros2 launch ezgripper_ros2_v2 single_gripper.launch.py

# Control gripper (close)
ros2 action send_goal /ezgripper_left/gripper_cmd control_msgs/action/GripperCommand "{command: {position: 0.0, max_effort: 0.5}}"

# Control gripper (open)
ros2 action send_goal /ezgripper_left/gripper_cmd control_msgs/action/GripperCommand "{command: {position: 0.1, max_effort: 0.5}}"

Multiple Grippers

For multiple grippers, launch independent instances:

# Terminal 1: Left gripper
ros2 launch ezgripper_ros2_v2 single_gripper.launch.py side:=left servo_id:=1

# Terminal 2: Center gripper
ros2 launch ezgripper_ros2_v2 single_gripper.launch.py side:=center servo_id:=2

# Terminal 3: Right gripper
ros2 launch ezgripper_ros2_v2 single_gripper.launch.py side:=right servo_id:=3

Benefits of Independent Instances:

  • Better isolation and fault tolerance
  • Independent gripper control
  • Flexible configuration per gripper
  • Easier debugging and maintenance

Configuration

Change Serial Port

ros2 launch ezgripper_ros2_v2 single_gripper.launch.py port:=/dev/ttyUSB1

Change Servo ID

ros2 launch ezgripper_ros2_v2 single_gripper.launch.py servo_id:=2

Change Gripper Name

ros2 launch ezgripper_ros2_v2 single_gripper.launch.py side:=right

ROS2 Interface

Topics

  • /ezgripper_{side}/joint_states (sensor_msgs/JointState) - Current gripper positions
  • /diagnostics (diagnostic_msgs/DiagnosticArray) - Hardware status and errors

Actions

  • /ezgripper_{side}/gripper_cmd (control_msgs/GripperCommand) - Gripper control

Services

  • /ezgripper_{side}/calibrate (std_srvs/Empty) - Calibrate gripper zero position

Integration

With MoveIt

This driver is compatible with MoveIt and ros2_control. The standard ROS2 interfaces allow seamless integration with existing MoveIt configurations.

With Other ROS2 Packages

The driver uses standard ROS2 messages and interfaces, making it compatible with:

  • ros2_control
  • Navigation stacks
  • Custom ROS2 applications
  • Visualization tools (RViz, RQt)

Troubleshooting

Permission Denied

sudo adduser $USER dialout
# Then reboot

Gripper Not Responding

# Check serial port
ls -la /dev/ttyUSB*

# Check diagnostics
ros2 topic echo /diagnostics

# Calibrate gripper
ros2 service call /ezgripper_left/calibrate std_srvs/Empty

Import Errors

# Reinstall generic interface
pip uninstall ezgripper-dds-interface
pip install git+https://github.com/SAKErobotics/ezgripper-dds-interface.git

# Rebuild ROS2 driver
cd ~/ros2_ws
colcon build --symlink-install --packages-select ezgripper_ros2_v2
source install/setup.bash

Advanced Documentation

Support

License

BSD License - See LICENSE file

Acknowledgments

This driver uses the generic EZGripper DDS interface as its foundation and adds ROS2-specific integration.

About

EZGripper ROS2 driver for Dynamixel Protocol 2

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages