语音控制 SO-ARM 机械臂 - 1

语音控制 SO-ARM 机械臂

用语音控制 SO-ARM101 六自由度机械臂。语音链路完全本地化 —— Paraformer/Matcha 语音识别合成 + Qwen3-4B-AWQ(TensorRT-Edge-LLM)—— 跑在 Jetson Orin NX。提供 HTTP 观测接口供其他方案集成读取机械臂实时状态。

中级30min语音 AI
语音robotso-armlerobotJetsonrespeakerlocal-llmqwen3edge-llmasrttsoffline

这个方案做什么

这个方案把 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 J4012Jetson Orin NX 16GB,跑语音 + 机械臂容器
reSpeaker Flex XVF38004 麦圆形阵列,远场语音采集
音箱输出助手语音回复
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。部署完成后进 设备管理 → 软件大脑 → 配置 即可编辑。

集成接口

http

Latest robotic-arm observation (flat JSON map of joint positions and gripper state)

/observation · Port: 8765 · Method: GET
{"shoulder_pan.pos":0.12,"shoulder_lift.pos":-0.34,"elbow_flex.pos":0.45,"wrist_flex.pos":0.0,"wrist_roll.pos":0.0,"gripper.pos":0.1}
http

Field-type schema for the observation endpoint (drives the robot_inspect verify panel)

/observation/schema · Port: 8765 · Method: GET
{"shoulder_pan.pos":{"type":"float","range":[-1.0,1.0]}}

使用说明

audio

reSpeaker Flex XVF3800 USB microphone array for voice capture

audio

Speaker for TTS voice feedback

usb

SO-ARM101 6-DoF follower arm connected via USB serial (typically /dev/ttyACM0)

network

Internet on first boot to pull the voice + LLM container images and warm up the TensorRT engine. Online API access is NOT required at runtime — inference is fully local.

部署方案

联系我们
获取方案参考设计与产品选型支持。
下一步
语音控制 SO-ARM 机械臂