Skip to content

Commit b581360

Browse files
authored
Merge pull request #1 from ROBOTIS-GIT/main
Modified the description of package
2 parents 944c8e2 + de43d91 commit b581360

File tree

3 files changed

+25
-57
lines changed

3 files changed

+25
-57
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ Changelog for package dynamixel_hardware_interface
44

55
1.0.0 (2024-12-04)
66
------------------
7-
* updated the CHANGELOG
7+
* First release of dynamixel_hardware_interface package
88
* Contributors: Hye-Jong Kim, Sungho Woo

README.md

Lines changed: 22 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,28 @@
22

33
## **1. Introduction**
44

5-
ROS 2 package providing a hardware interface for controlling [Dynamixel](https://www.robotis.us/dynamixel/) motors via the ros2_control framework. This repository includes the **dynamixel_hardware_interface plugin** for seamless integration with ROS 2 control, along with the dynamixel_interfaces package containing custom message definitions used by the interface
5+
ROS 2 package providing a hardware interface for controlling [Dynamixel](https://www.dynamixel.com/) motors via the [ros2_control framework](https://github.com/ros-controls/ros2_control). This repository includes the **dynamixel_hardware_interface plugin** for seamless integration with ROS 2 control, along with the [dynamixel_interfaces](https://github.com/ROBOTIS-GIT/dynamixel_interfaces) package containing custom message definitions used by the interface
66

7-
---
87

98
## 2. **Prerequisites**
109

1110
![ROS 2 Humble](https://img.shields.io/badge/ROS2-Humble-blue)
11+
1212
This package currently supports ROS 2 Humble only. Ensure that ROS 2 Humble is properly installed (ROS 2 Humble installation guide).
1313

14-
- Dynamixel SDK: Install the Dynamixel SDK using the following command:
14+
- [Dynamixel SDK](https://github.com/ROBOTIS-GIT/DynamixelSDK):
15+
- Install the Dynamixel SDK using the following command:
1516

16-
```bash
17-
sudo apt install ros-humble-dynamixel-sdk
18-
```
17+
```bash
18+
sudo apt install ros-humble-dynamixel-sdk
19+
```
1920

2021
- Hardware Requirements:
2122

2223
- Dynamixel servos
2324
- USB2 Dynamixel or U2D2 adapter
24-
- Proper power supply for Dynamixel motors.
25+
- Proper power supply for Dynamixel motors
2526

26-
---
2727

2828
## **3. Installation**
2929

@@ -48,7 +48,6 @@ This package currently supports ROS 2 Humble only. Ensure that ROS 2 Humble is p
4848
source ~/${WORKSPACE}/install/setup.bash
4949
```
5050

51-
---
5251

5352
## 4. Currently Used Packages
5453

@@ -60,9 +59,6 @@ This project integrates with the following ROS 2 packages to provide extended fu
6059
- **[open_manipulator_y](https://github.com/ROBOTIS-GIT/open_manipulator_y)**
6160
A ROS-based package tailored for the **Open Manipulator-Y**, a 6-DOF robotic arm. This package offers enhanced compatibility and extended functionalities for advanced manipulator control and operations.
6261

63-
----
64-
65-
6662

6763
## 5. Configuration
6864

@@ -83,8 +79,6 @@ These parameters define how the interface communicates with the Dynamixel motors
8379

8480
- **`error_timeout_sec`**: Timeout for communication errors.
8581

86-
------
87-
8882
#### **2. Hardware Configuration**
8983

9084
These parameters define the hardware setup:
@@ -95,8 +89,6 @@ These parameters define the hardware setup:
9589

9690
- **Transmission Matrices**: Define joint-to-transmission mappings.
9791

98-
------
99-
10092
#### **3. Joint Configuration**
10193

10294
Joints define the control and state interfaces for robot movement:
@@ -122,22 +114,19 @@ Joints define the control and state interfaces for robot movement:
122114
<state_interface name="effort"/>
123115
```
124116

125-
---
126117

127-
### **4. GPIO Configuration**
118+
#### **4. GPIO Configuration**
128119

129120
The GPIO tag is used to define the configuration of Dynamixel motors in a robotics system. It serves as a declarative structure to set up motor-specific parameters, command interfaces, and state monitoring capabilities. This allows seamless integration of Dynamixel hardware with software frameworks.
130121

131-
------
132122

133-
#### **Key Attributes**
123+
##### **Key Attributes**
134124

135125
- **`name`**: A unique identifier for the motor configuration (e.g., `dxl1`).
136126
- **`ID`**: The unique ID assigned to the motor in the Dynamixel network (e.g., `11`).
137127

138-
------
139128

140-
#### **Sub-Elements**
129+
##### **Sub-Elements**
141130

142131
1. **`<param>`**: Specifies motor-specific settings. These parameters correspond to the properties of the Dynamixel motor, such as its type, control mode, or PID gain values.
143132

@@ -159,9 +148,7 @@ The GPIO tag is used to define the configuration of Dynamixel motors in a roboti
159148
<state_interface name="Present Current"/>
160149
```
161150
162-
------
163-
164-
#### **Example GPIO Configuration**
151+
##### **Example GPIO Configuration**
165152
166153
Below is an example of a fully defined GPIO configuration for a Dynamixel motor. This example demonstrates how to configure a motor with ID `11`, define command interfaces, monitor state data, and set additional parameters such as PID gains and drive mode.
167154
@@ -180,9 +167,7 @@ Below is an example of a fully defined GPIO configuration for a Dynamixel motor.
180167
</gpio>
181168
```
182169
183-
------
184-
185-
#### **Dynamixel Control Table Reference**
170+
##### **Dynamixel Control Table Reference**
186171
187172
The Dynamixel hardware interface uses control tables, defined in model-specific files such as `xm430_w350.model`, to configure and interact with the motor's internal settings. These control tables map hardware parameters to specific memory addresses and data types, enabling fine-grained control and monitoring.
188173
@@ -208,24 +193,21 @@ These settings can be defined within the GPIO configuration or dynamically updat
208193
This professional explanation highlights the flexibility and precision of the Dynamixel hardware interface, empowering developers to fully utilize their motor's capabilities within a structured framework. For further details, refer to the [official Dynamixel e-Manual](https://emanual.robotis.com/docs/en/dxl/x/xm430-w350/#control-table-of-eeprom-area).
209194
210195
211-
212196
## **6. Usage**
213197
214198
Ensure the parameters are configured correctly in your `ros2_control` YAML file or XML launch file.
215199
216200
- Example Parameter Configuration
217201
218-
```xml
219-
<ros2_control>
220-
<param name="dynamixel_state_pub_msg_name">dynamixel_hardware_interface/dxl_state</param>
221-
<param name="get_dynamixel_data_srv_name">dynamixel_hardware_interface/get_dxl_data</param>
222-
<param name="set_dynamixel_data_srv_name">dynamixel_hardware_interface/set_dxl_data</param>
223-
<param name="reboot_dxl_srv_name">dynamixel_hardware_interface/reboot_dxl</param>
224-
<param name="set_dxl_torque_srv_name">dynamixel_hardware_interface/set_dxl_torque</param>
225-
</ros2_control>
226-
```
227-
228-
------
202+
```xml
203+
<ros2_control>
204+
<param name="dynamixel_state_pub_msg_name">dynamixel_hardware_interface/dxl_state</param>
205+
<param name="get_dynamixel_data_srv_name">dynamixel_hardware_interface/get_dxl_data</param>
206+
<param name="set_dynamixel_data_srv_name">dynamixel_hardware_interface/set_dxl_data</param>
207+
<param name="reboot_dxl_srv_name">dynamixel_hardware_interface/reboot_dxl</param>
208+
<param name="set_dxl_torque_srv_name">dynamixel_hardware_interface/set_dxl_torque</param>
209+
</ros2_control>
210+
```
229211

230212
#### Topic and Service Descriptions
231213

@@ -235,51 +217,37 @@ Ensure the parameters are configured correctly in your `ros2_control` YAML file
235217

236218
- **Default Value**: `dynamixel_hardware_interface/dxl_state`
237219

238-
------
239220

240221
##### 2. **get_dynamixel_data_srv_name**
241222

242223
- **Description**: Specifies the service name for retrieving Dynamixel data.
243224

244225
- **Default Value**: `dynamixel_hardware_interface/get_dxl_data`
245226

246-
------
247-
248227
##### 3. **set_dynamixel_data_srv_name**
249228

250229
- **Description**: Specifies the service name for setting Dynamixel data.
251230

252231
- **Default Value**: `dynamixel_hardware_interface/set_dxl_data`
253232

254-
------
255-
256233
##### 4. **reboot_dxl_srv_name**
257234

258235
- **Description**: Specifies the service name for rebooting Dynamixel motors.
259236

260237
- **Default Value**: `dynamixel_hardware_interface/reboot_dxl`
261238

262-
------
263-
264239
##### 5. **set_dxl_torque_srv_name**
265240

266241
- **Description**: Specifies the service name for enabling or disabling torque on Dynamixel motors.
267242

268243
- **Default Value**: `dynamixel_hardware_interface/set_dxl_torque`
269244

270245

271-
272-
---
273-
274246
## **7. Contributing**
275247

276248
We welcome contributions! Please follow the guidelines in [CONTRIBUTING.md](CONTRIBUTING.md) to submit issues or pull requests.
277249

278-
---
279250

280251
## **8. License**
281252

282253
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
283-
284-
---
285-

package.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
<name>dynamixel_hardware_interface</name>
44
<version>1.0.0</version>
55
<description>
6-
ROS2 package for dynamixel_hardware_interface
6+
ROS 2 package providing a hardware interface for controlling Dynamixel motors via the ROS 2 control framework.
77
</description>
88
<maintainer email="[email protected]">Pyo</maintainer>
9-
<license>ROBOTIS</license>
9+
<license>Apache 2.0</license>
1010
<author email="[email protected]">Hye-Jong KIM</author>
1111
<author email="[email protected]">Sungho Woo</author>
1212

0 commit comments

Comments
 (0)