跳到主要内容
Projects/SmolVLA 高反光与透明物体抓取复现教程:方案总览与核心改造 · 第 2 阶段

SmolVLA 高反光与透明物体抓取复现教程:方案总览与核心改造 · 第 2 阶段

基于双 奥比中光 相机、增强深度、B601-DM 主从臂和 SmolVLA,复现高反光桌面上透明瓶与香蕉模型的自主整理链路。

Apache-2.0 / MIT

01 / DOCUMENTATION 内容概述

系列教程第 2/7 阶段:完成 B601-DM、Jetson、Gemini 305/335L 的连接检查,并建立与项目匹配的 LeRobot 开发环境。

02 / DOCUMENTATION 3.1 硬件清单

类别本项目配置
主臂reBot Arm B601-DM,6 轴 + DM4310 夹爪
从臂reBot Arm B601-DM,6 轴 + DM4310 夹爪
边缘计算Jetson Orin NX 16GB
腕部相机Orbbec Gemini 305,RGB only
全局相机Orbbec Gemini 335L,RGB + depth
云端训练NVIDIA RTX 4090 24GB
任务物体黄色香蕉模型、透明塑料可乐瓶、两个固定目标位置
测试环境存在明显灯光高光和局部镜面反射的桌面,不使用专门降低难度的全哑光背景
安全设备急停、稳定底座、独立可靠电源、机械臂支撑措施

03 / DOCUMENTATION 3.2 物理连接建议

推荐优先级如下:

  1. 两台 Orbbec 相机分别接 Jetson 的独立 USB 3 高速路径。

  2. 如果必须使用扩展坞,选择外接供电的 USB 3 Hub,不要让两台 RGB-D 相机和大量低速设备挤在同一条不稳定链路上。

  3. 两台机械臂电源接到可靠、彼此独立的供电插座或电源支路。

  4. MotorBridge 串口线、机械臂内部 CAN/数据线保留完整活动余量,不能被底座、关节或桌沿压住。

  5. 无论软件多么完善,从臂首次测试时都要有物理支撑和随手可按的急停。

使用以下命令检查 USB 拓扑和串口归属:

代码块
Bash
lsusb -tls -l /dev/serial/by-id/udevadm info -q path -n /dev/ttyACM0udevadm info -q path -n /dev/ttyACM1sudo fuser -v /dev/ttyACM0 /dev/ttyACM1

/dev/ttyACM0 和 /dev/ttyACM1 的编号可能在重启或重新插拔后交换。正式运行建议用 /dev/serial/by-id/ 下的稳定链接,至少也要在每次开机后确认主从臂端口。

04 / DOCUMENTATION 3.3 软件版本原则

本项目实际工作流使用 Python 3.10。最重要的不是盲目追求“最新版”,而是保证以下组件彼此匹配:

  • 当前修改版 LeRobot 源码。

  • PyTorch、TorchVision 与 Jetson CUDA 环境。

  • OrbbecSDK v2、对应扩展库、model.sm4、CUDA/TensorRT 运行时。

  • 写入相机设备的 LingBot-Depth 许可。

EnhancedDepthFilter 对 SDK、扩展、模型、TensorRT 与许可组合非常敏感。不要把其他版本的 model.sm4 随手替换进来,也不要把公开 Python 版 LingBot-Depth 权重当作 SDK 私有 filter 的直接替代品。

05 / DOCUMENTATION 4.1 认识代码来源

本项目基于:

如果你正在本项目仓库中阅读本文,修改版代码已经包含在当前 checkout 中。不要只拉取 Seeed 官方原仓库后直接运行本文脚本,因为原仓库不包含本文所述的 Orbbec C++ bridge、同型号 B601 leader、深度数据格式修复和安全状态机。

如需从官方基线开始对比:

代码块
Bash
mkdir -p ~/ws/rebot_lerobotcd ~/ws/rebot_lerobotgit clone https://github.com/Seeed-Projects/lerobot.git

06 / DOCUMENTATION 4.2 安装 LeRobot 环境

代码块
Bash
conda create -y -n lerobot python=3.10conda activate lerobot
cd ~/ws/rebot_lerobot/lerobotpython -m pip install --upgrade pippython -m pip install -e ".[smolvla]"conda install -y ffmpeg -c conda-forge

不要用无版本约束的 pip install transformers 临时补包。当前仓库要求 transformers>=4.57.1,<5.0.0 和 huggingface-hub>=0.34.2,<0.36.0;直接安装最新主版本可能顺带升级 Hub 与 tokenizer,导致已经能采集数据的环境出现新的依赖冲突。若 Jetson 只缺 SmolVLA 推理栈,又不希望重装整套 PyTorch/CUDA,可按仓库约束修复:

代码块
Bash
python -m pip install --upgrade   'transformers>=4.57.1,<5.0.0'   'huggingface-hub[cli,hf-transfer]>=0.34.2,<0.36.0'   'accelerate>=1.10.0,<2.0.0'   'num2words>=0.5.14,<0.6.0'   'safetensors>=0.4.3,<1.0.0'

始终确认当前终端加载的是当前 checkout:

代码块
Bash
python -c 'import lerobot; print(lerobot.__file__)'

输出路径必须位于当前仓库。如果它指向旧目录,重新执行 editable install。

07 / DOCUMENTATION 4.3 拉取 Seeed 重力补偿依赖

代码块
Bash
cd ~/wsgit clone https://github.com/Seeed-Projects/reBot-DevArm-Grasp.git rebot_grasp

默认期望路径:

代码块
纯文本
/home/r/ws/rebot_grasp/sdk/reBotArm_control_py

如果放在其他目录,需要在配置中指定:

代码块
Bash
--teleop.gravity_comp_sdk_root=/你的路径/rebot_grasp/sdk/reBotArm_control_py

硬件

软件应用和在线服务

实现步骤

01

核对硬件清单

确认两台 B601-DM、Jetson Orin NX、Gemini 305、Gemini 335L、训练 GPU 和安全设备齐全

02

完成物理连接

两台相机优先连接独立 USB 3 高速路径,机械臂使用可靠供电并预留线束活动余量

03

确认 USB 与串口归属

使用 lsusb、/dev/serial/by-id、udevadm 和 fuser 检查拓扑、设备名与占用进程

04

建立 Python 环境

创建 Python 3.10 环境并以 editable 模式安装当前修改版 LeRobot 和 SmolVLA 依赖

05

固定依赖版本

按仓库约束安装 Transformers、Hugging Face Hub、Accelerate、Num2words 和 Safetensors

06

安装重力补偿依赖

拉取 reBot-DevArm-Grasp,并配置 gravity_comp_sdk_root

07

验证当前 checkout

通过 import lerobot 输出路径,确认终端没有加载旧仓库或旧环境

项目结果

SmolVLA 高反光与透明物体抓取复现教程:方案总览与核心改造 · 第 2 阶段 项目结果
SmolVLA 高反光与透明物体抓取复现教程:方案总览与核心改造 · 第 2 阶段

完成硬件、供电、USB 和串口拓扑检查,建立 Python 3.10 的可编辑 LeRobot 环境并确认当前 checkout 生效。此时尚未联调双相机 Bridge 和主从臂运动。

Bladewin Smith
我成功复现了

评论

0 comments