语音抓取机械臂
对着麦克风说 "Hey Jarvis, grab the water bottle" —— 机械臂通过腕部 RGB-D 相机观察桌面,找到瓶子、规划抓取并拿起来,然后语音播报结果。唤醒词、语音识别、意图解析 LLM、目标检测、抓取规划、语音合成全部跑在 Jetson 本地。不依赖云端,没有在线 API。
能抓什么
| 物体 | 策略 | 状态 |
|---|---|---|
| 纸箱/纸盒 | 侧面几何抓取(多帧中值,1.0 N·m 夹持力) | 已验证 |
| 水杯(不透明、矮) | 侧面抓取,自适应力控 | 已验证 |
| 直立的瓶子(不透明) | 圆柱路线:水平侧向接近、抓中段、固定 0.8 N·m | 已验证 |
| 香蕉 | 细长路线(横跨长轴抓取) | 已验证 |
| 橙子 | 圆球路线:水平接近、赤道高度抓取 | 已验证 |
| 透明瓶子 | — | 无法实现:双目深度看不见透明塑料和水 |
超过 0.100 m 开口的物体会语音播报拒绝:物体太大,夹不住(英文提示类似 "The box is too big for me to grip")。检测通过预编译的原生 TensorRT engine 跑在 GPU 上:单帧感知 0.6–1.6 秒,从语音指令到带回的完整抓取周期约 11 秒。
工作原理
reSpeaker 麦克风 ─▶ 唤醒词 ─▶ 流式 ASR ─▶ Qwen3.5-4B(TensorRT-Edge-LLM)
│ grasp_object("water bottle")
▼
Orbbec Gemini2 ─▶ YOLOE 开放词表检测器(10 类)
│ 实例掩码
▼
深度点云 ─▶ PCA 形状描述子(细长度/平面度/脊线弯曲)
─▶ 路由:盒面 | 圆柱 | 细长 | 圆球 ─▶ 6-DoF 抓取位姿
│
▼
reBot B601-DM:接近 ─ 力控闭合 ─ 抬起 ─ 带回 ─▶ TTS 播报
四个容器,一个 compose 文件:
- rebot-arm —— agent:唤醒词、相机、检测、抓取流水线、臂控、面板(
:8776)与观测 API(:8775) - seeed-voice —— 流式 ASR + TTS(CUDA)
- edge-llm —— Qwen3.5-4B-AWQ,TensorRT-Edge-LLM,带 MTP 投机解码,约 45 token/s(
:8000)
检测器把类别词表作为运行时输入,而不是烤进权重 —— 想扩展可识别物体清单,改配置即可,无需重导模型,更无需重新训练。
唯一的手动步骤
手眼标定(一次性,约 30 分钟):抓取需要毫米级的相机-臂几何关系,每台设备物理上都不同。指南会带你用打印的 ArUco 标定板采集约 16 个位姿并求解变换。完成之前,语音对话、检测、面板都可用 —— 只有抓取需要等标定。
硬件要求
- reComputer J4012 / Jetson Orin NX 16 GB(JetPack 6)—— compose 文件挂载宿主机 CUDA/TensorRT
- reBot B601-DM 机械臂(USB 串口)+ 腕装 Orbbec Gemini 2(USB 3.0)
- reSpeaker USB 麦克风 + 任意音箱
- 首次启动需下载约 8.5 GB 模型(LLM 引擎、语音引擎、检测器),另有约 1.4 GB 容器镜像

