ROS Noetic Navigation

v1.0.0

通过rosbridge与ROS Noetic导航系统交互,支持地图读取、航点管理、单点导航和多点巡航,基于AMCL定位。

0· 66·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for threelevelchord/ros-noetic-nav.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "ROS Noetic Navigation" (threelevelchord/ros-noetic-nav) from ClawHub.
Skill page: https://clawhub.ai/threelevelchord/ros-noetic-nav
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install ros-noetic-nav

ClawHub CLI

Package manager switcher

npx clawhub@latest install ros-noetic-nav
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
技能名/描述是“ROS Noetic Navigation via rosbridge”。包含的脚本(连接 rosbridge、发布/订阅话题、读取地图、管理航点)与描述完全匹配。没有要求与任务无关的 binaries、环境变量或外部服务。
Instruction Scope
SKILL.md 的运行指令只涉及启动 rosbridge、运行本地脚本、读取本地地图文件和管理本地航点文件。没有指示读取与导航无关的系统配置或将数据发送到非-ROS 的远端端点。注意:脚本会读写本地 waypoint/map 文件(默认在技能工作区),这是导航功能所需且在文档中列出。
Install Mechanism
这是一个 instruction-only/包含脚本的包,没有 install spec,也没有从非信任 URL 下载或解压任意二进制。所列依赖(Pillow、NumPy、rosbridge)与脚本的图像处理和网络通信需求一致。
Credentials
技能不要求任何秘密或凭据。连接参数(rosbridge_host/port、话题名、文件路径)是合理且与功能直接相关。没有看到请求与导航无关的环境变量或敏感凭证。
Persistence & Privilege
技能不会把自己设置为 always 或修改其它技能。它会在其工作区(默认 waypoints.json)读写航点数据;这是正常但用户应注意会写入/覆盖本地航点文件(可以改变路径以避免覆盖已有数据)。
Assessment
这项技能看起来与其说明一致且没有请求凭据或从不可信源安装代码,但在安装/运行前请注意: - 验证你打算连接的 rosbridge 主机(默认 localhost:9090);不要将 rosbridge 暴露到互联网或不受信任的主机。若在 TOOLS.md 中填入远程 host,确保网络和访问受控。 - 脚本会读取地图文件并在技能工作区写入/覆盖 waypoints.json;如有现有航点备份请先保存。你可以在调用时指定不同路径以避免覆盖。 - 依赖为 Pillow、NumPy 和 rosbridge_server,先在受控环境中安装并运行。若有安全顾虑,可在隔离的容器或机器人开发机上先测试。 - 虽然当前代码未发现将数据发送到非-ROS 端点或外部收集敏感信息的行为,仍建议在生产机器人上运行前审阅脚本并在受控网络中测试。

Like a lobster shell, security has layers — review code before you run it.

amclvk974asaag7c884d7bfx419xp2n8526d4latestvk974asaag7c884d7bfx419xp2n8526d4navigationvk974asaag7c884d7bfx419xp2n8526d4noeticvk974asaag7c884d7bfx419xp2n8526d4rosvk974asaag7c884d7bfx419xp2n8526d4rosbridgevk974asaag7c884d7bfx419xp2n8526d4
66downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

ROS Noetic Navigation Skill

通过rosbridge与ROS Noetic导航系统交互,支持地图读取、航点管理、单点导航和多航点巡航。适用于使用AMCL定位的ROS导航系统。

🚨 重要:前置条件

必须启动 rosbridge_server

source /opt/ros/noetic/setup.bash
roslaunch rosbridge_server rosbridge_tcp.launch

如果没有运行rosbridge,所有导航命令都会失败!

文件结构

ros-noetic-nav/
├── SKILL.md                      # 说明文档
├── waypoints.json                # 保存的命名航点
└── scripts/
    ├── read_map.py               # 读取解析地图
    ├── waypoints_manager.py      # 航点管理
    ├── nav.py                    # 导航脚本(单点+巡航)
    ├── get_pose.py               # 读取小车位置
    └── publish_goal.py           # 发布单个航点

配置

TOOLS.md 中添加:

### ROS Noetic Navigation (AMCL)

- rosbridge_host: localhost
- rosbridge_port: 9090
- pose_topic: /amcl_pose
- goal_topic: /move_base_simple/goal
- waypoints_file: ~/.openclaw/workspace/skills/ros-noetic-nav/waypoints.json
- map_path: ~/catkin_ws/src/wpr_simulation/maps/map.pgm

使用方法

1. 读取地图

# 基本读取
python3 scripts/read_map.py --map /path/to/map.pgm

# 输出四象限航点
python3 scripts/read_map.py --map /path/to/map.pgm --quadrants

# JSON格式输出
python3 scripts/read_map.py --map /path/to/map.pgm --json

2. 航点管理

# 列出所有航点
python3 scripts/waypoints_manager.py list

# 保存航点
python3 scripts/waypoints_manager.py add 客厅 --x 3.0 --y 2.0 --yaw 0
python3 scripts/waypoints_manager.py add 卧室 --x -2.5 --y -3.0 --yaw 90
python3 scripts/waypoints_manager.py add 厨房 --x 1.5 --y -2.0

# 获取航点
python3 scripts/waypoints_manager.py get 客厅

# 删除航点
python3 scripts/waypoints_manager.py remove 厨房

# 导出/导入
python3 scripts/waypoints_manager.py export --output backup.json
python3 scripts/waypoints_manager.py import --input backup.json

3. 导航

单点导航

# 直接坐标
python3 scripts/nav.py goto --x 3.0 --y 2.0 --yaw 0 --name "客厅门口"

# 命名航点
python3 scripts/nav.py named 客厅

多航点巡航

# 使用保存的命名航点
python3 scripts/nav.py cruise --waypoints 客厅 卧室 厨房

# 使用坐标列表
python3 scripts/nav.py cruise --coords 3.0,2.0 -2.5,-3.0 1.5,-2.0

4. 基础功能

# 读取当前位置
python3 scripts/get_pose.py

# 发布单个航点
python3 scripts/publish_goal.py --x 3.0 --y 2.0 --yaw 0

参数说明

参数说明默认值
--hostrosbridge主机localhost
--portrosbridge端口9090
--thresh到达阈值 (米)1.0
--timeout导航超时 (秒)60
--map地图文件路径必填
--yamlYAML配置文件自动检测
--wp-file航点文件路径默认waypoints.json

示例工作流

首次设置

# 1. 启动rosbridge
roslaunch rosbridge_server rosbridge_tcp.launch

# 2. 读取地图,了解环境
python3 scripts/read_map.py --map ~/catkin_ws/src/wpr_simulation/maps/map.pgm --quadrants

# 3. 保存常用航点
python3 scripts/waypoints_manager.py add 充电座 --x 0.0 --y 0.0
python3 scripts/waypoints_manager.py add 客厅 --x 3.0 --y 2.0
python3 scripts/waypoints_manager.py add 卧室 --x -2.5 --y -3.0

# 4. 测试导航
python3 scripts/nav.py named 客厅

日常使用

# 去某个地方
python3 scripts/nav.py named 客厅

# 巡航多个地方
python3 scripts/nav.py cruise --waypoints 客厅 卧室 充电座

依赖

  • Python 3
  • Pillow (pip install Pillow)
  • NumPy (pip install numpy)
  • rosbridge_server (TCP, 默认端口9090)

注意事项

  1. rosbridge检查:每次使用前确保rosbridge已启动
  2. 航点可达性:发布的航点需要在costmap的可通行区域内
  3. 坐标系统:使用ROS世界坐标系,原点在地图左下角
  4. 朝向角度:使用度数,0°=正东,90°=正北,180°=正西,-90°=正南
  5. 导航失败:如果目标不可达,尝试更近的中间点

故障排查

rosbridge连接失败

# 检查rosbridge是否运行
curl http://localhost:9090

# 启动rosbridge
roslaunch rosbridge_server rosbridge_tcp.launch

导航无响应

# 检查move_base状态
rostopic echo /move_base/status

# 检查目标是否发布
rostopic echo /move_base_simple/goal

扩展

可以扩展的功能:

  • 从配置文件批量加载航点
  • 支持相对位置("充电座左边2米")
  • 路径规划和避障状态查询
  • 与语音助手集成

Comments

Loading comments...