Skills radar-collision-warning
雷达防撞预警 — 调用树莓派上 ROS2 节点的雷达预警服务。当用户说"雷达防撞预警"、"开启雷达监控"、"检查障碍物"等时使用。通过 rosbridge WebSocket 向树莓派发送 ROS2 Service 请求,获取最近障碍物距离并给出预警。依赖 Node.js 18+(内置 WebSocket,无需安装任何包)。
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/33-code/radar-collision-warning" ~/.claude/skills/clawdbot-skills-radar-collision-warning && rm -rf "$T"
manifest:
skills/33-code/radar-collision-warning/SKILL.mdsource content
雷达防撞预警 Skill
配置
在
~/.openclaw/workspace/TOOLS.md 中添加树莓派的 IP 地址:
### 雷达预警 - 树莓派 IP: <你的树莓派IP> - rosbridge 端口: 8080(默认)
或通过环境变量传入:
export RADAR_HOST=192.168.137.100 # 树莓派 IP export RADAR_PORT=8080 # rosbridge 端口(默认)
架构概览
OpenClaw (本机) └── skill: call_radar_service.js └── rosbridge WebSocket (ws://<树莓派IP>:8080) └── 树莓派 rosbridge_server └── ROS2 Service: /radar_collision_warning (std_srvs/Trigger) └── radar_collision_warning_node └── 订阅 /scan (LaserScan) ← 乐动激光雷达
rosbridge WebSocket 端口:
8080
ROS2 Service 名称: /radar_collision_warning
碰撞阈值: 默认 0.05m(5cm),调用时可用 -t/--threshold 覆盖
使用方式
依赖: Node.js 18+(
globalThis.WebSocket 为内置,无需安装任何包)
单次查询
当用户说"雷达防撞预警"、"检查障碍物距离"、"开启雷达监控"时,调用:
node ~/.openclaw/workspace/skills/radar-collision-warning/scripts/call_radar_service.js
可加参数覆盖阈值(单位:米):
node ~/.openclaw/workspace/skills/radar-collision-warning/scripts/call_radar_service.js --threshold 0.10
持续监控模式
当用户要求"持续监控"、"实时雷达监控"时,在 后台 启动轮询:
node ~/.openclaw/workspace/skills/radar-collision-warning/scripts/call_radar_service.js --monitor --interval 2.0
使用
exec 工具的 background:true 模式运行,后台运行时按 Ctrl+C 或发信号停止。
返回格式(JSON stdout)
{ "success": true, "distance_m": 0.032, "distance_cm": 3.2, "warning": true, "message": "⚠️ 碰撞危险!距离仅 3.2cm", "threshold_m": 0.05 }
或安全状态:
{ "success": true, "distance_m": 1.234, "distance_cm": 123.4, "warning": false, "message": "✅ 安全,最近障碍物距离 1.23m", "threshold_m": 0.05 }
连接失败时:
{ "success": false, "error": "无法连接到 rosbridge 服务器", "message": "⚠️ 雷达服务不可用,请检查树莓派是否开机" }
树莓派侧准备(首次配置时参考)
1. 安装 rosbridge
sudo apt install ros-jazzy-rosbridge-suite
2. ROS2 包配置
在树莓派上创建雷达预警包:
cd ~/ros_ws/src ros2 pkg create radar_pkg --build-type ament_python # 将 radar_collision_warning_node.py 复制到: # ~/ros_ws/src/radar_pkg/radar_pkg/ # 添加 setup.py 入口点: # 'radar_collision_warning_node = radar_pkg.radar_collision_warning_node:main' cd ~/ros_ws && colcon build && source install/setup.bash
3. 一键启动
bash ~/ros_ws/start_radar_rosbridge.sh
返回值解读
→ 距离 < 阈值,应提醒用户"注意防撞"warning: true
→ 距离正常warning: false
→ 连接失败或服务异常success: false