驱动层

本节记录 ros2_control 驱动层 — 对接总线、厂商 SDK 或仿真的插件。中文 驱动层 就是这一层。

公开插件在 arms_ros2_control hardwares/ 下(另有树内 topic_based_ros2_control)。插件类以该机型 xacro/ros2_control/*.xacro 为准。每个公开驱动页含简介(插件类、仓库)及其 <param> 表。

术语对照

完整对照:术语对照。

中文

英文

驱动层

Hardware Interface (ros2_control official)

控制器

Controller

分体控制

Split body

全身控制

Full body / WBC

夹爪

gripper

灵巧手

dexterous hand

仿真路径

mock_components / isaac / gz(launch 键,不是 hardwares/ 软件包)

插件类名、type / left_type / right_type 和 hardware:= 保持代码写法。

概述

驱动层把 ROS 2 控制器接到总线或厂商 SDK:

Controller Manager
       ↓
Hardware Interface Plugin
       ↓
CAN / TCP / Serial / Vendor SDK

launch 的 hardware:= 决定机型 xacro 实例化哪个插件:本栈中的 ros2_control。

真实硬件可用

ARX Lift 2S(全身)和 Acone / AC One(双臂)使用 arx-ros2-control(CAN)。HighTorque Panthera HT 使用 ht-ros2-control(串口)。见 ARX Lift 2S 与 HighTorque Panthera HT。

如何读这些表

这些是 <ros2_control><hardware> 下的 URDF / xacro <param>,在插件 on_init 加载。它们不是控制器节点上 ros2 param list 的同一套 API,除非该插件也 declare_parameter 了同名项(ARX、HighTorque、Marvin、部分灵巧手)。

仅启动 vs 运行时 在每张表里只出现一次:混合表用 时机 列,或用分节标题(Startup / Runtime),或在整表均为同一类时写在表前一行。含义只写参数本身的意思,不再重复该标记。

标记

依据

仅启动

在 on_init 从 info_.hardware_parameters 读取。没有 add_on_set_parameters_callback(或 README 未声明可热更新)。改 xacro 并重启硬件 / controller_manager。

运行时

add_on_set_parameters_callback,或 README + 源码路径表明 ros2 param set 无需重载即可生效(HighTorque 的 kp/kd 轮询)。

树内 hardwares/README.md 只讲编译(colcon build --packages-up-to …)。各驱动页上的名称来自对应公开 README,以及该仓库的 on_init / 插件 XML。

如何查看:配置 ROS 2 控制器参数。

仿真键

mock_components、gz、isaac 是 launch / xacro 键,不是 arms_ros2_control/hardwares/ 下的 gitmodule。

hardware:=

插件

所在位置

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

树内 hardwares/topic_based_ros2_control(不是嵌套的厂商仓库)

操作指南:Gazebo 仿真、Isaac Sim。关节布局与话题名来自该机型 xacro/ros2_control/*.xacro。Isaac 话题 <param> 表:topic_based_ros2_control。

本节内容

公开驱动层

软件包

总线

插件 / 机型

topic_based_ros2_control

ROS 2 话题

Isaac(hardware:=isaac)

unitree-ros2-control

unitree_sdk2

Unitree G1 / 四足

dobot-cr-ros2-control

TCP

Dobot CR

arx-ros2-control

CAN

方舟无限 X5、Acone(双臂)、Lift 2S

ht-ros2-control

串口(ttyACM)

高擎 Panthera HT

marvin-ros2-control

Marvin SDK + RS485/CAN 工具

Tianji Marvin

modbus-ros2-control

RS485 / Modbus RTU

夹爪、灵巧手、KWR75

can-ros2-control

SocketCAN / CAN FD

LinkerHand、Freedom V1、Inspire RH56

juxie-ros2-control

CAN FD

JX CSP

私有驱动层

仅列名称 — 配置键、API 细节与 SDK 环境变量见开通后该仓库 README。

需要访问权限

这些软件包需要私有仓库访问权限。请联系团队负责人申请访问。

软件包

总线

机器人

rokae-ros2-control

TCP

珞石协作臂

eyou-ros2-control

CANopen

Eyou 谐波减速器

eyou_canfd_ros2_control

CAN FD

PHU CSP

inex-ros2-control

自定义

iNexus + LinkerHand

wuji-ros2-control

以太网

Wuji Hand2

dexcap-ros2-control

自定义

DexCap V4

fairino-ros2-control

ART SDK

Fairino 机械臂

fairino-ros2-control 封装 Fairino ART SDK(安装与组网见开通后该 README)。

常用操作

ros2 control list_hardware_interfaces
ros2 control list_controllers
ros2 topic echo /joint_states

硬件 <param> 不会出现在 ros2 param list 上,除非该插件也 declare_parameter 了同名项。按 配置 ROS 2 控制器参数 核对插件和 xacro。

{robot}_description/config/ocs2/*.info 是 OCS2 任务 / 模型文件,不是 ROS 2 参数。启动时由 robot_name 选择描述包 — 控制器 ROS 2 参数。