Hardware Interfaces¶
This section documents ros2_control hardware interfaces — plugins that talk to the bus, vendor SDK, or simulation. Chinese 驱动层 is this same layer.
Public plugins live under arms_ros2_control hardwares/ (plus in-tree topic_based_ros2_control). Use the plugin class from that robot’s xacro/ros2_control/*.xacro. Each public driver page has the intro (plugin class, repo) and its <param> tables.
Terminology¶
Full mapping: Terminology.
Chinese |
English |
|---|---|
驱动层 |
Hardware Interface (ros2_control official) |
控制器 |
Controller |
分体控制 |
Split body |
全身控制 |
Full body / WBC |
夹爪 |
gripper |
灵巧手 |
dexterous hand |
仿真路径 |
|
Plugin class names, type / left_type / right_type, and hardware:= stay as code.
Overview¶
Hardware interfaces bridge ROS 2 controllers to the bus or vendor SDK:
Controller Manager
↓
Hardware Interface Plugin
↓
CAN / TCP / Serial / Vendor SDK
Launch hardware:= chooses which plugin the robot xacro instantiates: ros2_control in This Stack.
Real hardware ready
ARX Lift 2S (full-body) and Acone / AC One (dual-arm) use arx-ros2-control (CAN). HighTorque Panthera HT uses ht-ros2-control (serial). See ARX Lift 2S and HighTorque Panthera HT.
How to read the tables¶
These are URDF / xacro <param> entries under <ros2_control><hardware>, loaded in the plugin on_init. They are not the same API as ros2 param list on a controller node, unless that plugin also declare_parameters them (ARX, HighTorque, Marvin, some 灵巧手).
Startup only vs Runtime appears once per table: a When column on mixed tables, a section heading (Startup / Runtime), or a one-line note above a uniform table. Meaning is the parameter’s actual meaning — not a repeat of that tag.
Tag |
Evidence |
|---|---|
Startup only |
Read in |
Runtime |
|
The in-tree hardwares/README.md is build-only (colcon build --packages-up-to …). Names on the driver pages come from each public README and from on_init / plugin XML in that repository.
How to inspect: Configure ROS 2 controller parameters.
Simulation keys¶
mock_components, gz, and isaac are launch / xacro keys. They are not gitmodules under arms_ros2_control/hardwares/.
|
Plugin |
Where it lives |
|---|---|---|
|
|
ros2_control; Acone xacro |
|
|
|
|
|
in-tree under |
How-to: Gazebo Simulation, Isaac Sim. Joint layout and topic names come from that robot’s xacro/ros2_control/*.xacro. Isaac topic <param> table: topic_based_ros2_control.
In This Section¶
Public Hardware Interfaces¶
Package |
Bus |
Plugins / robots |
|---|---|---|
ROS 2 topics |
Isaac ( |
|
unitree_sdk2 |
Unitree G1 / quadruped |
|
TCP |
Dobot CR |
|
CAN |
ARX X5, Acone (dual-arm), Lift 2S |
|
Serial ( |
HighTorque Panthera HT |
|
Marvin SDK + RS485/CAN tools |
Tianji Marvin |
|
RS485 / Modbus RTU |
Grippers, 灵巧手, KWR75 |
|
SocketCAN / CAN FD |
LinkerHand, Freedom V1, Inspire RH56 |
|
CAN FD |
JX CSP |
Private Hardware Interfaces¶
Names only — configuration keys, API details, and SDK env vars stay in that repository’s README after access.
Access Required
These packages require private repository access. Contact your team lead for access.
Package |
Bus |
Robots |
|---|---|---|
rokae-ros2-control |
TCP |
Rokae collaborative arms |
eyou-ros2-control |
CANopen |
Eyou harmonic drives |
eyou_canfd_ros2_control |
CAN FD |
PHU CSP |
inex-ros2-control |
Custom |
iNexus + LinkerHand |
Ethernet |
Wuji Hand2 |
|
Custom |
DexCap V4 |
|
fairino-ros2-control |
ART SDK |
Fairino arms |
fairino-ros2-control wraps the Fairino ART SDK (install and network setup are in that README after access).
Common operations¶
ros2 control list_hardware_interfaces
ros2 control list_controllers
ros2 topic echo /joint_states
Hardware <param> values do not appear on ros2 param list unless that plugin also declare_parameters them. Confirm the plugin and xacro as in Configure ROS 2 controller parameters.
{robot}_description/config/ocs2/*.info are OCS2 task / model files, not ROS 2 parameters. robot_name chooses the description package at startup — Controller ROS 2 parameters.