Skip to content
This repository was archived by the owner on Feb 26, 2026. It is now read-only.

Repository files navigation

Delto Gripper

This is Delto Gripper ROS 2 package.

Some of the new features are enabled by ROS2 and include decreased latency, improved security, and more flexibility regarding middleware configuration.

Check also Delto 3F Gripper

Check also Delto 2F Gripper

Build Status

ROS Distro ROS2 (22.04)
Branch Humble

⚠️ Notice: DG3FB (Firmware v2.3 or higher)

The DG3FB (Delto 3F Gripper B type) with firmware version 2.3 or higher uses a different communication protocol and is not compatible with this repository.

For DG3FB (firmware 2.3+), please use DELTO_M_ROS2 and refer to the example script dg3fb.py.

The new SDK and ROS2 bridge are supported.

Packages in the Repository:

  • delto_3f_description - URDF, mesh file

  • delto_3f_driver - Delto Gripper 3F ROS2 driver

  • delto_3f_moveit - example MoveIt configuration for Delto Gripper.

  • delto_2f_driver - Delto Gripper 2F ROS2 driver

Some physical measurements (like PID Gain, inertia) may not be accurate. Adjustments may be necessary for a perfect simulation or operation.

Getting Started

  1. ROS2 Install
  1. Gazebo Ign Install
sudo apt-get install ros-humble-ros-gz
  1. Moveit Install
sudo apt install ros-humble-moveit
  1. ROS2 Control Install
sudo apt install ros-humble-ros2-control ros-humble-ros2-controllers
  1. Create a new ROS2 workspace:
cd your_ros2_ws/src
git clone https://github.com/Tesollo-Delto/DELTO_ROS2
colcon build 

How to use Delto Gripper

Launch the driver with your gripper's IP and port:

ros2 launch delto_3f_driver delto_3f_bringup.launch.py delto_ip:=169.254.186.72 delto_port:=10000

ROS2 Topics

Published Topics (Gripper → ROS2)

Topic Type Description
gripper/joint_states sensor_msgs/JointState Current joint positions (12 joints)
gripper/electric_current std_msgs/Int16MultiArray Motor electric current for each joint (12 values)
gripper/response/gain std_msgs/Int16MultiArray PID gain response
gripper/response/grasp_mode std_msgs/Int32 Current grasp mode response

Subscribed Topics (ROS2 → Gripper)

Topic Type Description
gripper/target_joint std_msgs/Float32MultiArray Target joint positions (12 values)
gripper/grasp std_msgs/Bool Enable/disable grasp mode
gripper/grasp_mode std_msgs/Int32 Set grasp mode (1-6)
gripper/fixed_joint std_msgs/Int16MultiArray Set fixed joint positions
gripper/write_register std_msgs/Int16MultiArray Write raw Modbus register [address, value]
gripper/request/gain std_msgs/Int16MultiArray Request PID gain values

Pose Teaching Topics

Topic Type Description
gripper/save_current_pose std_msgs/Int32 Save current gripper position to slot (1-30)
gripper/save_target_pose std_msgs/Int32 Save target position to slot (1-30)
gripper/load_pose std_msgs/Int32 Load and move to saved pose (1-30)

Control Topics

Topic Type Description
gripper/set_free std_msgs/Bool Enable/disable free mode (hand teaching)
gripper/rom_write std_msgs/Bool Write settings to EEPROM
gripper/moving_average_filter std_msgs/Bool Enable/disable moving average filter
gripper/set_step std_msgs/Int32 Set motion step value
gripper/set_grasp_torque std_msgs/Int32 Set grasp torque (0-200) [0.1 N]
gripper/set_io_low_torque std_msgs/Int32 Set IO low torque threshold
gripper/set_io_high_torque std_msgs/Int32 Set IO high torque threshold
gripper/set_coil std_msgs/Int16MultiArray Generic coil control [address, value(0/1)]

Network Configuration Topics

Topic Type Description
gripper/set_ip std_msgs/String Set gripper IP address (e.g., "192.168.1.100")
gripper/set_subnet_mask std_msgs/String Set subnet mask (e.g., "255.255.255.0")
gripper/set_gateway std_msgs/String Set gateway address

Action Server

Action Type Description
delto_controller/follow_joint_trajectory control_msgs/FollowJointTrajectory Joint trajectory action for MoveIt integration

Example: Pose Teaching Workflow

# Terminal 1: Start the driver
ros2 launch delto_3f_driver delto_3f_bringup.launch.py

# Terminal 2: Enable free mode for hand teaching
ros2 topic pub --once /gripper/set_free std_msgs/Bool "data: true"

# Move the gripper by hand to desired position...

# Save current position to slot 1
ros2 topic pub --once /gripper/save_current_pose std_msgs/Int32 "data: 1"

# Disable free mode
ros2 topic pub --once /gripper/set_free std_msgs/Bool "data: false"

# Write to EEPROM (persistent storage)
ros2 topic pub --once /gripper/rom_write std_msgs/Bool "data: true"

# Later, load the saved pose
ros2 topic pub --once /gripper/load_pose std_msgs/Int32 "data: 1"

DG3F

How to Connect Delto Gripper with Robot Arm

Connecting Gripper URDF file with robot arm

make new joint (robot_arm_end_link - gripper_base_link)

**example Delto with robot-arm (Universal Robot)

...

</joint>
  <joint name="ee_joint" type="fixed">
    <origin rpy="0 1.57 0" xyz="0 0 0"/>
    <parent link="wrist_3_link"/>
    <child link="delto_base_link"/>
    <!-- <axis xyz="0.0 1.0 0.0"/> -->
 </joint>
 
 ...
  

visualizing delto gripper

ros2 launch delto_description dg3f_display.launch.py
ros2 launch delto_description dg2f_display.launch.py
ros2 launch delto_3f_driver delto_3f_bringup.launch.py delto_ip:=192.168.0.100 delto_port:=502

Feature Requests and Bug Reports

If you have any feature requests, modification suggestions, or encounter any bugs, please create an issue on GitHub or contact the maintainer at support@tesollo.com.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages