一键导入
claw-object-track
目标追踪技能。流程:检查状态 -> 停止旧追踪 -> 拍照 -> 图像分析获取归一化坐标 -> 发送目标 -> 确认状态。追踪节点名字前缀为 /claw_object_track。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
目标追踪技能。流程:检查状态 -> 停止旧追踪 -> 拍照 -> 图像分析获取归一化坐标 -> 发送目标 -> 确认状态。追踪节点名字前缀为 /claw_object_track。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
快递盒和果篮夹取运输技能。支持两种模式的 AprilTag 识别夹取:快递盒 (exp) 和果篮 (basket)。节点:/apriltag_control_node,通过状态轮询完成夹取和放置任务。
控制机械臂执行预设动作组。通过话题 /claw_arm_group_control/arm_group_control 发送字符串命令。适用于单一目的、明确指令的场景,如夹萝卜、拿给我、初始化、抬机械臂等。
控制ROS2机器人底盘移动。通过话题 /claw_move_control/chassis_command 发送字符串命令,支持单动作和多动作连续执行。/ Control ROS2 robot chassis movement via topic /claw_move_control/chassis_command (std_msgs/msg/String). Supports single and multi-action sequences.
机器人导航管理技能。支持普通导航(navigation_position.yaml)、智能工厂导航(smart_factory.yaml)、智能社区导航(smart_community.yaml)三种模式。通过获取导航模式、查询状态、获取位置列表、发送导航目标、等待到达等流程完成导航任务。
机械臂追踪夹取技能。根据夹取方式(obj_track/color_track)执行追踪和夹取任务。节点: /claw_track_and_grab,支持两种模式:AI物体追踪和颜色追踪。
订阅ROS2摄像头图像话题并保存单帧图像到本地。用于:(1)订阅指定的图像话题 (2)获取并保存单帧图像 (3)如果指定话题不存在,自动检索环境中的rgb/image相关话题 (4)图像命名包含时间戳、话题名,便于追溯 (5)支持定位追踪模式,自动识别物体并发布xyxy坐标到追踪话题 / Subscribe to ROS2 camera image topics and save single frames locally. Features: (1) subscribe to specified image topic (2) capture and save single frame (3) auto-detect rgb/image topics (4) filename includes timestamp (5) support locate & track mode with automatic object detection and xyxy publishing.
| name | claw_object_track |
| description | 目标追踪技能。流程:检查状态 -> 停止旧追踪 -> 拍照 -> 图像分析获取归一化坐标 -> 发送目标 -> 确认状态。追踪节点名字前缀为 /claw_object_track。 |
追踪节点必须已启动:
ros2 run openclaw_controller object_track --ros-args -p enable_tracking:=true -p debug:=true
| 类型 | 名字 | 用途 |
|---|---|---|
| 服务 | /claw_object_track/stop_track | 停止追踪 |
| 服务 | /claw_object_track/track_status | 查状态 |
| 话题 | /claw_object_track/get_box | 发新目标坐标 |
| 话题 | /claw_object_track/track_center | 追踪中心点 |
track_ready = 可以接收新目标track_running = 正在追踪中ros2 service call /claw_object_track/track_status std_srvs/srv/Trigger {}
ros2 service call /claw_object_track/stop_track std_srvs/srv/Trigger {}
# 等待0.5秒后确认状态变成 track_ready
~/.openclaw/workspace/skills/ros2-cam-subscribe/scripts/cam_subscribe.sh \
--topic /depth_cam/rgb0/image_raw \
--output-dir ~/.openclaw/workspace/images \
--timeout 5
[xmin, ymin, xmax, ymax],范围0-1ros2 topic pub --once /claw_object_track/get_box std_msgs/msg/String \
"{data: '{\"object\": \"目标名称\", \"box\": [xmin, ymin, xmax, ymax]}'}"
ros2 service call /claw_object_track/track_status std_srvs/srv/Trigger {}
# 应返回 track_running
# 查看状态
python3 ~/.openclaw/workspace/skills/claw_object_track/scripts/track.py --status
# 停止追踪
python3 ~/.openclaw/workspace/skills/claw_object_track/scripts/track.py --stop
# 追踪目标(需要先分析好坐标)
python3 ~/.openclaw/workspace/skills/claw_object_track/scripts/track.py \
--target "红色方块" --box "[0.5,0.5,0.8,0.8]"
如果框选不准,可能是图像分辨率不匹配。需要实际查询ROS2话题获取真实分辨率:
# 查询摄像头实际分辨率
ros2 topic echo /depth_cam/rgb0/camera_info --once | grep -E "width:|height:"
当前记录分辨率:640x400
图像分析时必须使用实际分辨率,否则归一化坐标会偏差。
1. 先查 track_status 确认状态
ros2 service call /claw_object_track/track_status std_srvs/srv/Trigger {}
- track_ready = 可以接收新目标
- track_running = 正在追踪中
2. 如果是 track_running,必须先 stop_track
ros2 service call /claw_object_track/stop_track std_srvs/srv/Trigger {}
3. 确认状态变成 track_ready 后,再发新目标坐标
4. 发送后确认状态变成 track_running
❌ 没先 stop 就发新坐标 → 新目标被忽略,追踪的还是旧目标
✅ 正确流程: stop → 确认track_ready → 发坐标 → 确认track_running
当与 claw_track_and_grab 配合使用时: