Wiki
完整机器人与进阶实例
约 3 分钟阅读
从单执行器扩展为完整机器人时,保留接口契约,显式管理每个设备的映射和有效性。
1.示例 1:多关节映射
joint1 → 设备 A → 方向、零点、范围 A
joint2 → 设备 B → 方向、零点、范围 B
不能把先收到的帧当作第一个关节。通信快照应保留设备身份、时间和故障状态;部分设备过期时,要按整机策略决定是否允许继续控制。
整机一次收发更适合统一 System;独立执行器则结合 Actuator 的生命周期与故障边界组织。
2.示例 2:真实差速底盘
沿用轮子 velocity 命令与 position/velocity 反馈,统一转换到输出轮轴单位。先分别校验方向,再验证同号目标是否前进,随后标定轮半径与有效轮距。
open_loop=false 表示里程计使用反馈,但仍可能因轮胎、接触和打滑漂移。定位融合属于后续系统集成,不能仅凭 odom Topic 存在就认定完成定位。
3.Jazzy 进阶实例地图
| 实例 | 阅读目标 |
|---|---|
| example_4、5 | 集成与外部传感器 |
| example_6、14 | 独立执行器与附加状态 |
| example_7 | 六自由度工程组织 |
| example_8 | 传动与电机侧、关节侧变量 |
| example_10 | GPIO 接口 |
| example_12 | 控制器串联和 reference 接口 |
| example_13、15 | 多机器人、namespace 和多管理器 |
| example_16 | 差速底盘与串联控制 |
| example_17 | 硬件状态与诊断发布 |
基础章节只选择构建部分实例。进阶实例需按固定提交的实际目录和说明,另行安装依赖、构建和验证。不存在于所用提交的实例,应先核对版本,不能直接混入其它分支文件。
4.示例 3:按需构建
以传动实例为例:
source /opt/ros/jazzy/setup.bash
cd ~/ros2_control_jazzy_demos_ws
rosdep install --from-paths src --ignore-src -r -y --rosdistro jazzy
colcon build --symlink-install --packages-up-to ros2_control_demo_example_8 \
--cmake-args -DBUILD_TESTING=OFF
source install/setup.bash
ls $(ros2 pkg prefix ros2_control_demo_example_8)/share/ros2_control_demo_example_8/launch
再按实际文件名运行,先查看 --show-args。阅读一个实例时记录“增加了什么接口、组件或管理边界”,然后再决定怎样引入自己的工程。
4.1.框架异步组件与通信线程
框架异步 read/write 或不同更新频率,和 Asio 线程处理字节流不是同一功能。前者调度组件,后者完成协议与设备 IO;两者仍要解决快照、时效和资源生命周期。
4.2.诊断与控制循环
get_node 等扩展能力应以固定源码版本为准。低频状态发布放在非实时回调中,不能在每轮 read 中构造大量字符串并无限制发布。
官方入口:Jazzy demos。
返回 Jazzy 总览 · 上一篇:单执行器实物适配 · 下一篇:综合工程与系统排错