Skip to content
Joker.Yun
Go back

从 0 到 1 搭建机械臂 VLA 数据采集系统

约 4 分钟读完Edit page

背景

具身智能的瓶颈不在模型,在数据闭环。VLA(视觉-语言-动作)模型需要真实机器人的 操作轨迹数据——这要求先把硬件、采集、格式三层全部打通。

本项目是这条链路的完整实践:Piper 六轴机械臂 + Orbbec 深度相机 + Jetson 边缘设备, 实现自动抓取与 LeRobot 格式的 VLA 数据采集。

硬件栈

组件型号角色
机械臂Piper(六轴)执行器
深度相机OrbbecRGB + 深度感知
上位机Jetson边缘推理 + 控制
通信CAN 总线(USB-CAN 转接)臂控制通道

机械臂走 CAN 总线而不是网口——这是和大多数教程不同的地方,也是踩坑的起点。

三个核心工程问题

1. CAN 总线:内核模块的坑

Jetson 默认内核可能没有 gs_usb 模块(USB-CAN 适配器驱动)。排查路径:

# 检查内核配置
zcat /proc/config.gz | grep CONFIG_CAN_GS_USB
# 输出 "# CONFIG_CAN_GS_USB is not set" → 需要编译内核模块

需要编译与当前内核完全匹配的 gs_usb 模块,设置开机自动加载。另一个高频故障是 CAN 发送失败(Message NOT sent)——标准解法是关接口、卸载驱动、物理重插 USB-CAN、 机械臂断电重启,再重新激活接口。物理层的问题要用物理方法解决,软件重试没用。

2. 手眼标定:2D 单应性就够

相机在固定位置俯视工作台,不需要复杂的 6D 手眼标定——2D 单应性矩阵足够把 图像坐标映射到机械臂工作平面坐标:

采集/抓取前必须校验,否则”抓偏”会一路污染数据。

3. 数据格式对齐 LeRobot

采集的数据必须对齐 HuggingFace LeRobot 的数据格式,才能直接进 VLA 训练栈:

功能全景

模块说明
YOLO 自动分类抓取检测目标 → 手眼标定映射 → 抓取放置
半自动采集键盘控制臂,人遥操作录制轨迹
VLA 推理部署数据对齐后加载模型推理,回放动作
LLM 视觉识别抓取OpenAI 兼容 VLM 判断类别 → 匹配放置位置
中国象棋识别棋盘 → 抓子落子
主从臂跟随主臂示教,从臂跟随

工程教训

  1. 物理层问题用物理方法解决——CAN 断了就是断电重插,别在软件里绕
  2. 手眼标定是数据质量的第一道闸——标定不准,采集越多垃圾数据越多
  3. 数据格式要对齐主流训练栈——LeRobot 格式让数据直接可训练,这是”数据闭环”的闭环点
  4. 断点续采是刚需——真实采集不可能一次成功,没有续采就得从头再来

代码

完整硬件配置、环境搭建、标定流程、故障排查: github.com/cloud666666666/AIIT-Roboarm


Edit page
Share this post:

Previous Post
猫头部震颤的量化分析:CSRT追踪 + 光流 + FFT 的工程实践
Next Post
openpi 适配 Piper 机械臂:VLA 训练栈的实战改造