ROS 2 工程技能
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/ros2-engineering-skills-png。
技能介绍
解决什么问题
ROS 2 的 API 面很大:同一个需求往往有多种写法,不同发行版之间还存在默认行为差异。选错 QoS 会导致“消息发了但没人收到”,用错执行器会掩盖回调阻塞,发行版选错则可能从第一天就背上 EOL 包袱。这个技能的价值在于把容易踩的坑提前摆出来:它明确自己只做 API 参考与代码模板,不涉及 CI/CD 编排、事故响应或部署自动化,那些属于其它技能。
核心能力
- 渐进式披露:始终加载的
SKILL.md只保留路由表、核心工程原则、陷阱与反模式;详细模式放在references/*.md,按需读取 1~2 个文件,而不是一次全读。 - 决策路由:按任务类型分流,例如节点与执行器看
nodes-executors.md,通信与 QoS 看communication.md,机器人状态看tf2-urdf.md。 - 工程约束:参数必须在构造函数中声明类型、范围与默认值;错误不能被静默吞掉;QoS 从传感器流、指令速度、地图、心跳等默认配置起步再调整。
- 语言选型:
rclcpp用于高频率控制环、确定性内存分配与硬件驱动;rclpy用于编排、监控和参数管理。混合栈是常态。 - 发行版意识:Humble、Jazzy、Kilted、Lyrical、Rolling 在默认 DDS、type description、ros2_control 接口和 CMake 建议上并不一致,需要先确认目标发行版。
- 可运行脚本:
scripts/是脚手架、QoS 检查和 launch 校验工具,而不是阅读材料。
使用注意
- 跨域任务(如 Nav2 与
ros2_control交叉)要同时读两份参考;当建议冲突时,优先级为 safety > determinism > simplicity。 - 安全、错误处理和 QoS 是横切关注点,不局限于单个参考文件:当数据路径跨越信任边界、节点持有硬件或通信可靠性重要时,必须自行判断并应用。
.skill-runs.log与 hook 自动执行是 Claude Code 专属;在其它平台手动运行校验脚本即可。只读会话不会改动工作树。
使用场景
- 搭建首个 ROS 2 工作区与包结构,需要配置 CMake、launch、参数文件和测试目录
- 编写节点与回调时不确定执行器和回调组如何选,担心阻塞或丢消息
- 发布传感器数据却收不到订阅,需要按 QoS 兼容性排查话题配置
- 为机械臂整合 MoveIt 2 与 ros2_control,需要理清组件加载与控制器接口
适合人员
- 编写机器人控制节点的 C++ 工程师,希望按频率、确定性和硬件接口选择 rclcpp 或 rclpy
- 负责系统集成的机器人工程师,需要统一参数声明、错误处理和 QoS 配置
- 从 ROS 1 迁移到 ROS 2 的团队,要确认 ros1_bridge、混合运行与发行版差异