跳到主要内容

22. 硬件接口 — ros2_control 驱动插件

概述​

本示例通过 demo_xmake_hardware 包,演示如何用 xmake 构建 ros2_control 硬件接口插件。

ROS 2 知识点:ros2_control 架构、SystemInterface、hardware_interface 插件

xmake 知识点:install_ros_plugin() + 硬件抽象层

ROS 2 知识​

ros2_control 架构​

Controller Manager
│
├── Controllers (PID, Trajectory, etc.)
│
└── Hardware Interfaces
├── SystemInterface (完整系统)
├── ActuatorInterface (单个执行器)
└── SensorInterface (单个传感器)

硬件接口生命周期​

硬件接口是生命周期组件:

回调用途
on_init解析配置、分配资源
on_activate连接硬件、启动通信
on_deactivate停止通信
read读取传感器数据
write发送控制命令

示例代码​

xmake.lua 构建配置​

install_ros_plugin("plugin_description.xml", "hardware_interface")

target("demo_xmake_hardware")
set_kind("shared")
add_files("src/mock_robot_hardware.cpp")
add_ros_deps("rclcpp", "hardware_interface", "pluginlib", "rclcpp_lifecycle")

构建与运行​

colcon build --packages-select demo_xmake_hardware

硬件接口通过 ros2_control 配置文件加载,非独立运行。

内容扩展​

以下资源可帮助你深入了解本章涉及的技术领域。

开源项目​

文档与教程​

论文与技术报告​

  • D. Štogl et al., "ros2_control: A platform-agnostic framework", pedestrian workshop, 2022

参考​