ROS Robotics skill 面向 ROS 1 / ROS 2 机器人开发、迁移与联调场景。当用户请求涉及机器人软件工程相关主题时可使用本 skill。
一、适用主题范围(何时使用) 当用户请求涉及以下任一主题时使用本 skill:catkin_ws、colcon_ws、src/CMakeLists.txt、package.xml、setup.py;ROS 1 / ROS 2 package 新建、移植、构建、测试、调试;launch / launch.py、参数 YAML、URDF/Xacro、RViz、TF;topic / service / action / msg / srv / QoS;底盘、IMU、LiDAR、相机、定位、SLAM、Navigation2、ros2_control;Gazebo / Ignition 仿真、传感器仿真、ros_gz_bridge;Docker 容器化 ROS 开发、docker-compose 多节点编排;Lifecycle 节点、rclcpp_components 组件化、进程内通信;rosbag2 录制回放、mcap、离线诊断;SLAM 建图(Cartographer、SLAM Toolbox、ORB-SLAM);DDS / QoS 配置、ROS_DOMAIN_ID、RMW 选择、多机网络;自定义 msg / srv / action 接口定义与生成;多机器人系统、命名空间隔离、跨机通信;MoveIt 2 运动规划、SRDF、运动学插件;ROS 2 CI/CD(GitHub Actions、colcon test、ament_lint);Foxglove Studio / PlotJuggler 数据可视化与离线分析;MCU / RTOS / UART / CAN / micro-ROS 协同开发。
二、建议的处理流程
- 先识别工作区:python scripts/detect_ros_workspace.py <workspace-path>
- 再做一致性检查:python scripts/check_ros_workspace_consistency.py <workspace-path>
- 按问题加载最少必要文档:ROS 1 参见 references/ros1-catkin.md;ROS 2 参见 references/ros2-colcon.md;混合/迁移参见 references/interop-and-migration.md;模型/TF 参见 references/robot-description-and-tf.md;导航参见 references/navigation2.md;控制参见 references/ros2-control.md;嵌入式参见 references/micro-ros-and-embedded.md;仿真参见 references/gazebo-simulation.md;Lifecycle/组件参见 references/lifecycle-and-components.md;DDS/QoS/网络参见 references/dds-qos-networking.md;录制回放/诊断参见 references/rosbag-diagnostics.md;SLAM/建图参见 references/slam-mapping.md;Docker 参见 references/docker-ros.md;自定义接口参见 references/custom-interfaces.md;多机器人参见 references/multi-robot.md;MoveIt 2 参见 references/moveit2.md;CI/CD 参见 references/ros2-cicd.md;可视化参见 references/foxglove-visualization.md;排障参见 references/debug-playbooks.md;审查参见 references/review-checklist.md。
三、必须遵守的原则 先识别构建系统,再改代码;先修 package.xml / CMakeLists.txt 一致性,再谈重构;先看 TF、时间戳、frame、单位,再怪算法;先证据链,再修改,构建输出、topic、TF、参数、日志必须可验证;ROS 1 → ROS 2 先桥接或分层,不要一口气推倒重来;MCU / micro-ROS 先判断是否真的需要进入 ROS 图。
四、常见任务处理方式 新增或修复 package:先判定包类型(catkin、ament_cmake、ament_python);先补依赖声明,再补构建逻辑,再补安装规则;自定义 msg / srv / action 优先检查生成顺序和依赖闭环(详见 references/custom-interfaces.md)。 构建失败:先跑 rosdep;再核对 package.xml 与构建脚本;再看环境是否正确 source;再看系统依赖、ABI、发行版兼容。 运行正常但机器人表现不对:先看 launch、namespace、remap、参数;再看 topic 名称、频率、时间戳、单位、frame_id;再看 TF 是否单根、静态/动态是否分清;最后再怀疑算法本身。 Nav2 / ros2_control:Navigation2 优先排 /cmd_vel 链路、定位质量、控制频率和底盘单位;ros2_control 优先排硬件接口类型、控制器 YAML、读写周期和 active 状态。 MCU / micro-ROS:先判断 Linux 侧桥接节点是否足够;若 MCU 必须进入 ROS 2 图,再考虑 micro-ROS;严格检查字节序、校验、超时、重连、时间源和失连保护。
五、反模式(应避免) 同一个包混写 catkin 与 ament;只改 CMakeLists.txt 不改 package.xml;忽略 TF、时间戳、单位、坐标轴定义;把驱动、协议、滤波、控制、诊断全塞进一个大节点;迁移 ROS 1 → ROS 2 时只做 API 替换,不做系统验证。
六、输出要求 使用本 skill 处理任务时,优先输出:当前工作区和包类型判断;关键依据与假设;修改点与原因;最小构建/测试/运行命令;风险点与回归检查点。
本资料未提供该 skill 的收费方式、价格、平台限制、具体性能指标或效果承诺,相关信息暂未提供。