这个方案做什么
这个方案把 SO-ARM101 六自由度机械臂变成一个能听懂人话的机械臂。说一句"Hey Jarvis"加上自然语言指令,机械臂就会执行预设的姿态或动作序列,同时通过音箱用语音回复你。
整套语音链路完全跑在 Jetson Orin NX 16GB 本地。会同时部署三个容器:流式 ASR + TTS(Paraformer + Matcha)、OpenAI 兼容的 LLM 服务(Qwen3-4B-AWQ on TensorRT-Edge-LLM),以及把它们串起来并驱动 SO-ARM 的 voice-arm 容器。没有云端 API Key、没有调用次数上限、运行时不依赖互联网。动作姿态库(actions.yaml,按名字索引的关节角度集)和 LLM 系统提示词(prompt.yaml)都暴露为可编辑的 YAML 文件,非开发同学也能加新动作、改 LLM 对短语的理解方式,不用重新构建镜像。容器还顺带跑了一个小型 HTTP 服务,任何其他方案都能轮询拿到实时关节状态。
核心价值
- 解放双手控制机械臂 — 说"挥手"/"抓取"/"归位"机械臂就动,不用示教器、不用打开 Python
- 无需写代码就能定制 — 动作姿态(
actions.yaml)和 LLM 提示词(prompt.yaml)都是普通 YAML,从设备配置就能改 - 可被集成 —
GET /observation提供实时关节状态,供其他方案(数字孪生、动作录制、安全监控等)消费 - 语音反馈 — Matcha-TTS 通过音箱回复确认信息和问答内容,全部在 Jetson GPU 上本地合成
- 完全本地、无调用限额 — 语音和 LLM 推理都跑在设备上,镜像拉完之后任何数据都不出 Jetson
集成场景
| 场景 | 说明 |
|---|---|
| 语音驱动的演示 | 展会 / 实验室无人值守的交互演示 |
| 机器人教育 | 配合课程,让学生上手就能跟机器人对话,一个项目同时学语音 AI 和机械臂 |
| 监督控制层 | 上层轨迹规划器之外,用语音下达监督级指令 |
| 多方案组合 | 其他方案消费 GET /observation,可以做动作录制、数字孪生可视化、安全监控 |
| 可访问性研究 | 无障碍辅助操控研究方向 |
对外接口
| 端点 | 作用 |
|---|---|
GET http://<jetson-ip>:8765/observation | 最新关节位置 + 夹爪状态,扁平 JSON |
GET http://<jetson-ip>:8765/observation/schema | 观测字段的类型描述 |
部署期间会通过 verify 面板轮询这两个端点,同时局域网内任何系统都可以直接读取。
需要准备
硬件
| 部件 | 作用 |
|---|---|
| SO-ARM101 从动机械臂 | 六自由度机械臂,接收容器的 send_action 调用 |
| reComputer Super J4012 | Jetson Orin NX 16GB,跑语音 + 机械臂容器 |
| reSpeaker Flex XVF3800 | 4 麦圆形阵列,远场语音采集 |
| 音箱 | 输出助手语音回复 |
| USB-C 线 | Jetson ↔ SO-ARM、Jetson ↔ reSpeaker |
软件 & 账号
- Docker(JetPack 6.x
l4t-jetpack:r36.x已经内置 NVIDIA runtime) - Jetson 仅在首次启动时需联网 —— 用来拉取语音 + LLM 镜像(约 10 GB)以及下载 Qwen3 TensorRT 引擎文件。之后完全离线可用。
使用须知
- 首次启动需 5-10 分钟 —— 镜像拉取、模型下载和 Qwen3 TensorRT 引擎预热只在第一次启动时发生,之后重启都是秒级。
- 单臂范围 —— 一个容器实例通过一条 USB 串口控制一条机械臂。多臂部署 = 多容器 + 多串口。
- 全部本地推理,无 API Key —— ASR / LLM / TTS 都在 Jetson 上的容器里跑,不需要任何云账号,没有调用费用,也没有限额。
- 必须接音箱 —— 语音反馈是核心体验,机械臂会先回话再动作。
- 不重构镜像就能定制 —— 想加新动作改
actions.yaml,想让 LLM 理解新短语改prompt.yaml。部署完成后进 设备管理 → 软件大脑 → 配置 即可编辑。
