跳到正文

Wiki

Jazzy版本

约 9 分钟阅读

本教程面向 Ubuntu 24.04 和 ROS 2 Jazzy。通过完整实例、运行现象、执行顺序和源码阅读,学习硬件接口、控制器、物理仿真与设备通信。

1.学习路线

运行官方 RRBot
  → 自己创建双关节学习工程
  → GenericSystem 与自编模拟硬件
  → 接口、生命周期、控制周期与轨迹
  → Harmonic 机械臂与差速底盘
  → 自编控制器与管理器源码
  → Asio 虚拟串口与模拟下位机
  → 根据实际设备完成实物适配

工作区从创建目录、功能包和文件开始,随着实践逐步完善。前半部分不需要真实机器人;实物阶段按具体设备协议实现,不把模拟协议直接当作设备驱动。

2.环境与写法约定

普通用户使用 Ubuntu Bash 终端,系统安装使用 sudo,工作区构建和程序运行不提权。~ 是当前用户主目录。每个新终端 source 系统 Jazzy 和当前使用的一个工作区。

代码以 C++17 为基础,自编回调优先用 std::bind,官方源码保留原写法。每个例子讲清目标、文件位置、必要完整代码、编译运行、预期现象、关键函数及常见问题。

仿真统一采用 Gazebo Harmonic 与 gz_ros2_control。图形桌面中可运行 RViz 和 Gazebo 窗口,无界面方式可通过接口、Topic、时钟和世界位姿检查后台链路。

3.章节目录

  1. 环境准备与源码地图
  2. ros2_control整体工作过程
  3. 运行第一个RRBot实例
  4. 从零创建学习工作区
  5. URDF与控制接口
  6. YAML与spawner启动过程
  7. 从零编写模拟硬件插件
  8. 状态接口与命令接口源码
  9. 硬件与控制器生命周期
  10. read-update-write控制周期
  11. 状态广播与机器人显示
  12. 命令转发与控制模式
  13. Joint-Trajectory-Controller
  14. Harmonic机械臂物理仿真
  15. DiffBot与差速底盘控制
  16. Harmonic差速底盘仿真
  17. 多接口与硬件类型
  18. 从零编写控制器
  19. 管理器与资源管理源码
  20. 实时循环与异步通信
  21. 虚拟串口与模拟下位机
  22. 单执行器实物适配
  23. 完整机器人与进阶实例
  24. 综合工程与系统排错

4.三个目录分别做什么

路径 用途
~/ros2_control_jazzy_demos_ws 固定提交的官方实例
~/ros2_control_jazzy_ws 自己逐步编写的学习工程
~/ros2_control_jazzy_reference 框架与控制器源码阅读

不要在同一终端叠加不相关的机器人工作区。同一 ROS domain 一次只运行一个本教程机器人,避免管理器和状态发布者相互干扰。

5.源码参考版本

仓库 标签或提交
ros2_control 4.48.1 / b7f1a5d420443c7a079f4c81e80d5e39759acf4c
ros2_controllers 4.42.1 / aacd842600a09d556b983ac3d53a0983e9ebcbb1
realtime_tools 3.13.0 / 459776c99f1f80606f7b9616496166ccaf207cf8
gz_ros2_control 1.2.20 / 89ca76ed20842377f879c711c756d444c5b7c20b
ros2_control_demos 34933be69fc76c33b5889f4d8993eb0f3a92e20f

这些版本用于对应具体源码与配置。Jazzy 的子包会随维护更新;类型或参数不符时,先核对实际包版本、头文件和共享库路径,再检查代码。主线硬件插件采用框架自动创建接口及 HardwareComponentInterfaceParams 的写法。

6.各阶段验收

阶段 应观察到什么
环境与官方实例 包可找到,模型与控制器可启动
自建模拟硬件 接口创建正常,反馈向目标收敛
生命周期与切换 状态明确,命令资源按预期借用与释放
轨迹 Action 目标接受,按容差完成或给出可解释结果
自编控制器 合法目标生效,非法目标被拒绝
Harmonic 机械臂 模型生成、时钟前进、关节反馈变化
Harmonic 底盘 轮子与车体运动,里程计与世界位姿可对照
虚拟串口 命令、反馈与超时链路可观察
实物适配 身份、单位、方向、模式、故障与停止逐项确认

RViz 是显示工具,教学模型不是物理动力学,反馈里程计不是世界真值。示例输出说明现象,实际数值会受参数、执行时长和调度影响。设备专用实现需要实际硬件独立验收。

7.官方资料