一步一步
SO-101 设置指南
从零件到首次数据收集。 预计时间:约 3-4 小时(不包括 3D 打印时间)。
1
集会
约 60 分钟 + 打印时间SO-101 是一款完全开源的手臂。 所有部件都是 3D 打印的,或者作为 HuggingFace 上的 LeRobot BOM 中列出的现成硬件提供。
您需要的零件
- 6× Feetech STS3215 伺服电机
- 3D 打印结构部件(SO-101 GitHub 存储库中的 STL 文件)
- USB转串口转接线(CH340或CP2102芯片)
- 12V电源(最小3A)
- 伺服电缆和连接器硬件(每个 BOM)
装配清单
- 打印所有结构部件(底座、连杆、末端执行器)
- 将 STS3215 伺服系统安装到各自的连接外壳中
- 将伺服电缆穿过印刷电缆通道
- 按正确顺序菊花链伺服系统(从底座到尖端的 ID 1–6)
- 通电前将底座固定在稳定的表面上
- 阅读 安全页面 通电前
从哪里获取 BOM 和 STL 文件: 完整的物料清单和可打印零件保存在 HuggingFace LeRobot 存储库中。 在上搜索“SO-101” 乐机器人GitHub.
1b
3D 打印零件
约 8–16 小时打印时间SO-101 的所有结构部件均可使用标准桌面打印机进行 FDM 打印。 STL 文件被组织成每个手臂的单文件打印,使切片变得简单。
推荐的切片器设置
STL 文件 — 要打印的文件
预先安排的单文件打印可用于常见的床尺寸:
- 220×220毫米床(Ender 3):
- 追随者:
STL/SO101/Follower/Ender_Follower_SO101.stl - 领导者:
STL/SO101/Leader/Ender_Leader_SO101.stl
- 追随者:
- 205×250毫米地板(Prusa/UP):
- 追随者:
STL/SO101/Follower/Prusa_Follower_SO101.stl - 领导者:
STL/SO101/Leader/Prusa_Leader_SO101.stl
- 追随者:
首先验证尺寸精度。 在打印整个手臂之前,先打印仪表 STL
STL/Gauges/ 并针对乐高积木或 STS3215 伺服系统进行测试。 仪表正确配合可确认您的打印机校准准确。 在进行完整打印之前,根据需要调整缩放比例。
2
软件安装
约 15 分钟HuggingFace LeRobot 原生支持 SO-101。 不需要额外的插件——只需安装乐机器人即可。
安装乐机器人
# Using pip
pip install lerobot
# Or with uv (recommended)
uv pip install lerobot
Linux串口权限
在 Linux 上,串行端口位于 /dev/ttyACM* 要求用户处于 dialout 团体。 运行一次并注销并重新登录:
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
先决条件
- Python 3.10+
- Linux(推荐 Ubuntu 22.04)或 macOS
- 已安装 USB 转串口驱动程序(macOS 上的 CH340 驱动程序;通常在 Linux 上预安装)
3
端口检测和校准
约20分钟找到手臂正确的USB串口,然后运行乐机器人校准脚本来设置舵机零位。
找到串口
python lerobot/scripts/find_motors_bus_port.py
出现提示时插拔 USB 电缆。 该脚本识别手臂连接到哪个端口。 典型值:
# Linux: /dev/ttyACM0 (or ttyUSB0 for CH340 adapters)
# macOS: /dev/tty.usbmodem* or /dev/tty.usbserial-*
运行校准
出现提示时,将手臂移动到其整个运动范围:
python lerobot/scripts/calibrate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
重新组装后重新校准。 校准数据存储在本地。 如果拆卸并重新组装接头,请重新运行校准以恢复准确的零位置。
4
第一次运动测试
约 15 分钟在单臂模式下运行远程操作脚本,以在连接引导臂之前验证所有关节是否正确响应。
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
要验证什么
- 所有 6 个关节均响应命令,不跳跃
- 终端无伺服失速或过载警告
- 夹具在全范围内打开和关闭
- 任何接头位置均不会卡住电缆
紧急停止
断开 USB 电缆,立即切断与手臂的通信。 通电操作期间,请保持双手远离工作空间。
5
远程操作
约 30 分钟SO-101 可作为独立手臂或作为带有引导臂的跟随手臂进行远程操作。 使用第二只手臂作为领导者可以产生更高质量的模仿学习演示。
独立模式(键盘/编程)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
带引导臂(例如 DK1 引导臂)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101 \
--teleop.port=/dev/ttyACM1
双手设置: SO-101 可与 DK1 引导臂一起用作从动臂。 两者都是 LeRobot 原生的,并通过 USB 串行通信。 请参阅 DK1页面 了解完整的双手设置详细信息。
6
数据收集
进行中使用录制演示 record.py。 数据以LeRobot格式保存,可以直接推送到HuggingFace Hub进行训练。
基本录音
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
带 USB 摄像头
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--robot.cameras.top.type=opencv \
--robot.cameras.top.index=0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
记录最佳实践
- 训练前每项任务至少记录 50 次演示
- 不同场景中不同物体的位置和方向
- 使用描述性的
--dataset.task供以后过滤的名称 - OAK-D 或英特尔实感摄像头非常适合深度数据收集
- 每次会话后验证数据集上传到 HuggingFace Hub
后续步骤
收集数据后,使用 LeRobot 的训练脚本训练 ACT 或扩散策略模型。 阅读全文 SO-101学习路径 从设置到模型部署的结构化进程。