详细分析 ▾
运行时依赖
版本
同步最新ROS1通用能力更新:增强启动/运行健康检查与脚本工具
安装命令
点击复制技能文档
本 skill 用于与具体项目无关的 ROS1 Noetic 任务,不限于四足机器人。典型触发句式包括:
- "启动机器狗"
- "启动 ROS 程序"
- "启动 ROS"
- "帮我看一下 ROS"
- "帮我编译一下这个 ROS 项目"
- "检查这个 catkin 工作区"
- "帮我把这个 launch 跑起来"
- "看看这个 ROS 节点为什么没起来"
- "build this ROS package"
- "start this ROS launch"
- "check this ROS workspace"
- "debug this ROS node"
- "use rosskill"
本 skill 内部路由规则:
- 若请求主要为通用 ROS 知识(概念、术语、架构、最佳实践),先给出 ROS 指导。
- 若请求涉及本地文件、本地工作区状态、本地命令、构建/启动/launch/运行/监控/停止动作或运行时诊断,使用本 skill 的脚本与执行流程。
- 若用户明确说
使用 rosskill、用 ros skill或use rosskill,即使请求也可被更一般地回答,也强烈优先使用本 skill。
当请求提到 OpenClaw、rosbridge、websocket ROS 控制 或 远程意图映射 时,及早加载 references/ros1-openclaw-adapter.md。
工作流
- 解析执行上下文与捆绑资源路径。
- 验证 ROS1 环境及活跃图。
- 将请求归类为某一项目画像。
- 执行画像专属检查清单。
- 应用安全上线与验证。
- 报告结果,附带可复现命令。
步骤 1:先解析执行上下文
捆绑脚本位于本 skill 目录内。不要假定当前 shell 目录就是 skill 根目录。
- 在使用前,相对于本
SKILL.md文件解析scripts/...与references/...。 - 若执行捆绑脚本,优先使用脚本的绝对路径。
- 若主机运行时已提供等效 ROS 检查命令,可直接使用。
示例模式:
SKILL_DIR=""
zsh "$SKILL_DIR/scripts/ros1_shell_detect.sh"
zsh "$SKILL_DIR/scripts/ros1_env_check.sh"
步骤 2:验证环境
运行:
zsh "$SKILL_DIR/scripts/ros1_shell_detect.sh"
zsh "$SKILL_DIR/scripts/ros1_env_check.sh"
zsh "$SKILL_DIR/scripts/ros1_graph_probe.sh" topic
若缺少 ROS 命令,根据 shell 检测器输出判断机器需要 setup.bash 还是 setup.zsh,然后先 source ROS。
典型模式:
source /opt/ros/noetic/setup.zsh
若存在工作区叠加,先 source 基础,再 source 叠加。
步骤 3:选择项目画像
- A. 启动/构建:catkin 工作区、包依赖、launch 文件。
- B. 运行时调试:topic/service/action、tf 树、节点健康。
- C. 运动控制:速度/关节命令并带反馈检查。
- D. 数据管道:rosbag 录制/回放、离线分析。
- E. OpenClaw 集成:rosbridge websocket 适配与意图映射。
- F. 架构/性能:nodelet、回调线程、message_filters、dynamic_reconfigure。
- G. 迁移规划:ROS1 遗留维护与 ROS1→ROS2 过渡策略。
详细命令见 references/project-profiles.md。如需完整 ROS1 覆盖(核心图、launch、tf/tf2、action、bag、诊断、网络),加载 references/ros1-full-scope.md。
步骤 4:按画像执行
A) 启动/构建
bringup指将 ROS 系统启动到可运行状态:source ROS、识别工作区、按需构建、查找 launch 文件、启动节点、确认图健康。- 验证工作区结构与包可发现性。
- 先用
scripts/ros1_workspace_probe.sh检测工作区/构建策略。 - 启动或重建项目前运行
scripts/ros1_bringup_check.sh。 - 对于 OpenClaw 风格工具,使用运行时循环:
ros1_start_target.sh→ros1_runtime_health_check.sh→ros1_stop_target.sh。 - 使用检测到的 catkin 命令构建,首次报错即停止。
- 运行前发现并验证 launch 文件。
最小运行时循环示例:
zsh "$SKILL_DIR/scripts/ros1_start_target.sh" \ --workspace /path/to/ws \ --package my_pkg \ --launch demo.launchzsh "$SKILL_DIR/scripts/ros1_runtime_health_check.sh" \ --state-file /tmp/ros1_skill_runtime//state.env \ --expect-topic /rosout
zsh "$SKILL_DIR/scripts/ros1_stop_target.sh" \ --state-file /tmp/ros1_skill_runtime//state.env
B) 运行时调试
- 确认图可见性(
rosnode list、rostopic list)。 - 检查关键 topic 的类型/频率/带宽。
- 验证 tf 可用性与坐标系一致性。
C) 运动控制
- 验证命令 topic 类型及活跃订阅者。
- 用
scripts/ros1_interface_check.sh显式校验关键接口类型。 - 若请求距离/角度,优先采用闭环运动。
- 保持保守默认值,始终发送显式停止。
先用接口/类型检查,再运行运动脚本(移动底盘画像):
zsh "$SKILL_DIR/scripts/ros1_interface_check.sh" topic /cmd_vel geometry_msgs/Twist
python3 "$SKILL_DIR/scripts/move_forward_by_odom.py" \ --cmd-topic /cmd_vel \ --odom-topic /odom \ --distance 1.0 \ --speed 0.2
D) 数据管道
- 仅录制必需 topic(除非要求,否则避免“全部录制”)。
- 回放场景下确认时钟/时间行为。
- 记录 bag 元数据与重放命令,确保可复现。
E) OpenClaw 集成(ROS1)
rosbridge是 websocket 桥,让 OpenClaw 或其他外部客户端无需编写原生rospy/roscpp即可向 ROS 图发布/订阅/调用。- 启动 ROS1 rosbridge websocket。
- 在将任何端点暴露给 OpenClaw 前,先做 ROS 图预检。
- 用显式模板将高级意图映射到 ROS1 topic/service/action 操作。
- 对每个运动意图强制执行安全停止语义、超时与断开行为。
见 references/ros1-openclaw-adapter.md。
F) 架构 / 性能
- 强制单一职责节点边界。
- 高频率传感器 topic 要有意设置队列长度。
- 使用
message_filters做传感器时间同步。 - 采用回调线程模式(
MultiThreadedSpinner/工作队列)。 - 大进程内数据且零拷贝重要时,使用 nodelet。
- 使用
dynamic_reconfigure运行时调参,而非硬编码常数。
见 references/ros1-engineering-patterns.md。
G) 迁移规划(ROS1 → ROS2)
- 迁移前先捕获当前 ROS1 接口(topic/service/action/参数)。
- 优先从叶节点向内分阶段迁移。
- 需要混合 ROS1/ROS2 运行时使用桥接期规划。
见 references/ros1-engineering-patterns.md 迁移章节。
步骤 5:安全与质量关卡
- 函数退出时绝不让机器人/控制器继续运动。
- 每个长时命令都加超时。
- 遥测陈旧或缺失时快速失败。
- 报告实测结果(不仅是“成功”)。
- 启动长进程时,持久化 pid/日志/状态元数据,以便后续健康检查与停止动作使用同一句柄。
- 对安装包、需
sudo、更改系统配置或真实世界移动硬件的命令,先征求确认。 - 任何具破坏性或状态化的 ROS 动作前,优先干运行检查。
步骤 6:参考资料
- 官方 ROS 文档与包索引链接:
references/official-docs.md - 完整 ROS1 能力映射与命令矩阵:
references/ros1-full-scope.md - 工程模式与迁移手册:
references/ros1-engineering-patterns.md - 项目画像检查清单与命令模板:
references/project-profiles.md - OpenClaw↔ROS1 适配蓝图:
references/ros1-openclaw-adapter.md - ROS1 知识库来源清单(已审核官方页面):
references/ros1-knowledge-base-sources.md
若官方站点无法直接抓取,使用主机运行时实际暴露的任何浏览或浏览器自动化工具。不要假定主机未提供的工具名称。