|
myactuator_rmd_hardware package from myactuator_rmd_ros repomyactuator_rmd_bringup myactuator_rmd_description myactuator_rmd_hardware myactuator_rmd_ros |
Package Summary
| Tags | No category tags. |
| Version | 0.0.1 |
| License | MIT |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS 2 integration for MyActuator RMD-X series actuators |
| Checkout URI | https://github.com/2b-t/myactuator_rmd_ros.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-01-10 |
| Dev Status | UNMAINTAINED |
| CI status | No Continuous Integration |
| Released | UNRELEASED |
| Tags | robotics description urdf rmd xacro actuator ros2 urdf-models x8 xacro-urdf rmd-x8 myactuator |
| Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Tobit Flatscher
Authors
MyActuator RMD X-series Hardware
Author: Tobit Flatscher (2024)
Overview
This package holds the ros2_control integration for the MyActuator RMD-X actuator series in the form of a hardware component. The hardware interface is based on the C++ driver that I have written for these actuators.
For using it add the following lines to your URDF refering to the joint of interest joint_name:
<ros2_control name="${some_name}" type="actuator">
<hardware>
<plugin>myactuator_rmd_hardware/MyActuatorRmdHardwareInterface</plugin>
<param name="ifname">${ifname}</param>
<param name="actuator_id">${actuator_id}</param>
<param name="torque_constant">${torque_constant}</param>
<!-- Optional: Low-pass filters for velocity and effort (0 < alpha <= 1); defaults to no filter -->
<param name="velocity_alpha">0.1</param>
<param name="effort_alpha">0.1</param>
<!-- Optional: Cycle time of the asynchronous thread; defaults to 1ms (1000Hz) -->
<param name="cycle_time">1</param>
</hardware>
<joint name="${joint_name}">
<command_interface name="position"/>
<command_interface name="velocity"/>
<command_interface name="effort"/>
<state_interface name="position"/>
<state_interface name="velocity"/>
<state_interface name="effort"/>
</joint>
</ros2_control>
The ifname has to correspond to the name of the CAN interface as shown by $ ifconfig (e.g. can0) and the actuator_id to the ID of the actuator (e.g. 1). The torque_constant is required for controlling the actuator over its effort interface and depends on the actuator type. Furthermore optional low-pass filters (by means of the filter coefficient alpha) for the read velocity and effort can be activated. The correlation between the ratio of sample (in our case the update rate of the hardware interface) and cut-off frequency is given by sample_frequency/cutoff_frequency = (1-alpha)*2*pi/alpha. For alpha = 0.07 this ratio corresponds to 125, meaning if the hardware interface is running at 1000 Hz any oscillations with a higher frequency than around 8 Hz will be filtered out.
Without low pass filter (corresponds to alpha = 1.0) |
With low pass filter (alpha = 0.07) |
|---|---|
![]() |
![]() |
Similarly the cycle-time for the asynchronous thread interfacing the actuator through CAN can be specified. For examples refer to the myactuator_rmd_description package.
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| myactuator_rmd_bringup | |
| myactuator_rmd_ros |

