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

仿真路径

mock_components / isaac / gz (launch keys, not hardwares/ packages)

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 on_init from info_.hardware_parameters. No add_on_set_parameters_callback (or README does not claim a hot update). Change the xacro and restart the hardware / controller_manager.

Runtime

add_on_set_parameters_callback, or a README + source path that re-reads ros2 param set without reload (HighTorque kp/kd poll).

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/.

hardware:=

Plugin

Where it lives

mock_components

mock_components/GenericSystem

ros2_control; Acone xacro

gz

gz_ros2_control/GazeboSimSystem

ros-jazzy-gz-ros2-control

isaac

topic_based_ros2_control/TopicBasedSystem

in-tree under hardwares/topic_based_ros2_control (not a nested vendor repo)

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

topic_based_ros2_control

ROS 2 topics

Isaac (hardware:=isaac)

unitree-ros2-control

unitree_sdk2

Unitree G1 / quadruped

dobot-cr-ros2-control

TCP

Dobot CR

arx-ros2-control

CAN

ARX X5, Acone (dual-arm), Lift 2S

ht-ros2-control

Serial (ttyACM)

HighTorque Panthera HT

marvin-ros2-control

Marvin SDK + RS485/CAN tools

Tianji Marvin

modbus-ros2-control

RS485 / Modbus RTU

Grippers, 灵巧手, KWR75

can-ros2-control

SocketCAN / CAN FD

LinkerHand, Freedom V1, Inspire RH56

juxie-ros2-control

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

wuji-ros2-control

Ethernet

Wuji Hand2

dexcap-ros2-control

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.