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
| ROS Distro | ROS2 (22.04) |
|---|---|
| Branch | Humble |
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.
-
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.
- ROS2 Install
- Check this ROS 2 Humble installation site.
- Gazebo Ign Install
- Check this Gazebo installation site.
sudo apt-get install ros-humble-ros-gz
- Moveit Install
sudo apt install ros-humble-moveit
- ROS2 Control Install
sudo apt install ros-humble-ros2-control ros-humble-ros2-controllers
- Create a new ROS2 workspace:
cd your_ros2_ws/src
git clone https://github.com/Tesollo-Delto/DELTO_ROS2
colcon build 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| 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 |
| 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 |
| 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) |
| 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)] |
| 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 | Type | Description |
|---|---|---|
delto_controller/follow_joint_trajectory |
control_msgs/FollowJointTrajectory |
Joint trajectory action for MoveIt integration |
# 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"- Check this Delto Driver
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>
...
ros2 launch delto_description dg3f_display.launch.pyros2 launch delto_description dg2f_display.launch.pyros2 launch delto_3f_driver delto_3f_bringup.launch.py delto_ip:=192.168.0.100 delto_port:=502If 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.
