实验室 · 自己玩 001.2

SO-101 校准教程

先说结论:正确顺序是识别端口 → 逐个配置舵机 → 完成装配 → 分别校准。 Follower 使用 --robot.type=so101_follower,Leader 使用 --teleop.type=so101_leader;两者的 calibration id 必须在后续命令里保持一致。

核验边界:本页根据LeRobot SO-101 官方教程、官方安装文档与发布说明整理,核对日期 2026-08-10;最新稳定版为v0.6.1。这是资料核验与操作清单,不是本站实机测试记录。

正确角色

robot ≠ teleop

Follower 与 Leader 参数不同

最常见的命令错误,是把 Leader 写进 --robot.type。

正确顺序

先配置,再校准

ID、波特率和活动范围缺一不可

新舵机默认 ID 可能相同,不能跳过逐个配置直接串联。

BEFORE POWER ON

先确认电压和供电,不要只插 USB

USB 不给舵机供电:控制板必须同时连接电脑 USB 和外部电源,否则端口可能出现,但舵机不会正常响应。

不要混用电压:官方资料要求 7.4V STS3215 使用对应的 5V 供电方案,12V STS3215 使用 12V 5A+ 方案;SO-101 Leader 始终使用 7.4V 舵机。

出现异常发热、异味、持续抖动或机械卡死时立即停止。本文没有替代万用表检查、控制板说明书或现场电气安全判断。

SIX STEPS

从空白舵机到校准文件

下面是官方流程的中文验收顺序;每一步通过后再进入下一步。

  1. 01

    安装 LeRobot 与 Feetech 依赖

    先按官方安装文档建立独立环境,并安装 Feetech 电机依赖。本文命令按 LeRobot v0.6.1 与 2026-08-10 的当前官方文档核对。

  2. 02

    给两臂和 12 个舵机贴标签

    把 Follower、Leader 分开,并提前标记关节 1–6。配置舵机时一次只连接一个舵机,避免多个默认 ID=1 的新舵机同时挂在总线上。

  3. 03

    识别两块控制板的 USB 端口

    控制板需要同时连接电脑 USB 与匹配的外部电源。运行 lerobot-find-port,按提示拔下对应控制板的 USB,再记录 Follower 和 Leader 各自的端口。

  4. 04

    分别写入舵机 ID 与波特率

    先配置 Follower,再配置 Leader。脚本会从夹爪开始提示你逐个连接舵机,并把关节 ID 与通信波特率写入舵机的非易失存储。

  5. 05

    装配后分别校准 Follower 与 Leader

    先把各关节放在大致中位,按回车后逐一走完完整活动范围。Follower 用 --robot 参数,Leader 用 --teleop 参数。

  6. 06

    固定并复用 calibration id

    把 my_follower_arm 与 my_leader_arm 换成自己的稳定命名;后续遥操作、采集和评估必须复用同一 id,LeRobot 才能找到对应校准文件。

COPY-READY COMMANDS

SO-101 配置与校准命令

把示例端口和 id 换成你的实际值。macOS、Linux、Windows 的端口写法不同,以 lerobot-find-port 输出为准。

1. 找到每块 MotorBus 控制板的端口

lerobot-find-port

2. 配置 Follower 的舵机 ID 与波特率

lerobot-setup-motors \
  --robot.type=so101_follower \
  --robot.port=<FOLLOWER_PORT>

3. 配置 Leader 的舵机 ID 与波特率

lerobot-setup-motors \
  --teleop.type=so101_leader \
  --teleop.port=<LEADER_PORT>

4. 校准 Follower

lerobot-calibrate \
  --robot.type=so101_follower \
  --robot.port=<FOLLOWER_PORT> \
  --robot.id=my_follower_arm

5. 校准 Leader

lerobot-calibrate \
  --teleop.type=so101_leader \
  --teleop.port=<LEADER_PORT> \
  --teleop.id=my_leader_arm

ACCEPTANCE CHECK

怎样算校准完成

端口映射可复述

你能明确说出哪个端口属于 Follower、哪个属于 Leader,而不是靠交换参数碰运气。

舵机配置完整结束

脚本按关节顺序写入 1–6 的 ID,没有在某个舵机上反复报连接错误。

活动范围全部记录

校准时每个关节都从中位出发并走完合理范围,没有用蛮力越过机械限位。

id 已固定保存

Follower 与 Leader 的 id 被记录下来,后续遥操作和采集命令会继续复用。

TROUBLESHOOTING

SO-101 找不到端口或校准失败怎么排查

从供电、线缆和参数角色开始,不要先怀疑模型或训练代码。

现象优先原因下一步
lerobot-find-port 没有找到端口控制板未同时接 USB 与外部电源、USB 线只有充电功能,或系统没有串口访问权限先换数据线并核对供电;Linux 再检查设备权限。端口名以工具实际输出为准,不要照抄示例。
配置停在 Connect ... motor only当前舵机不是唯一连接到控制板的设备,或 3 针线、USB、电源松动只保留提示中的一个舵机,断开它与其他舵机的串联,再逐项检查三类线缆。
Waveshare 控制板连不上舵机跳线没有切到官方教程要求的 B 通道(USB)断开操作并按控制板说明核对跳线位置;不要在电压或接线不确定时继续反复重试。
invalid choice: so101_leader把 Leader 当成 robot,误用了 --robot.typeLeader 是 teleoperator:改用 --teleop.type=so101_leader;Follower 才使用 --robot.type=so101_follower。
校准完成后仍提示缺少 calibration后续命令使用了不同的 --robot.id 或 --teleop.id复用校准时的 id;不要把端口名、设备角色和 calibration id 混为一谈。
旧教程下 wrist_roll 对不上历史版本曾有 SO-101 wrist_roll 校准与电机配置问题先记录当前版本;官方 v0.6.0 已列出相关修复,本文核对基线为 v0.6.1。升级前先查看发布说明。

以上是依据官方教程、速查表和发布说明整理的排查顺序,不代表本站已复现每一种硬件故障。涉及烧毁、异味或物理损坏时应停止通电并联系硬件供应商或官方社区。

SO-101 FAQ

配置与校准常见问题

SO-101 配置舵机和校准是一回事吗?

不是。lerobot-setup-motors 负责为舵机写入唯一 ID 与一致的波特率,通常只在新舵机或改作其他机械臂时执行;lerobot-calibrate 负责记录关节中位、活动范围与映射,让同一套动作值在机械臂上可复用。

SO-101 每次开机都要重新校准吗?

通常不需要。官方速查表说明多数情况下每台 robot 和 teleoperation device 只需校准一次。更换舵机、改变机械结构、丢失校准文件或动作范围明显异常时,应重新检查并校准。

为什么 Leader 不能使用 --robot.type=so101_leader?

在当前 LeRobot 命令体系中,Follower 是被控制的 robot,Leader 是 teleoperator。因此 Follower 使用 --robot.type=so101_follower,Leader 使用 --teleop.type=so101_leader。

SO-101 校准时关节应该放在哪里?

先把所有关节放在各自活动范围的大致中位;开始记录后,再依次让每个关节走完完整活动范围。不要用蛮力越过机械限位。

Windows 上应该填写哪个 SO-101 端口?

不要照抄 macOS 的 /dev/tty.usbmodem 或 Linux 的 /dev/ttyACM0。运行 lerobot-find-port,以本机实际返回的端口为准;如果没有返回结果,先排查数据线、供电、驱动与串口权限。

校准命令里的 id 可以随便改吗?

第一次可以自定义,但之后不应随意变化。id 是 LeRobot 查找校准文件的键;遥操作、录制数据和评估同一套硬件时要复用相同 id。

VERIFY AGAINST YOUR VERSION

执行前再对照一次官方教程

LeRobot 的命令、参数和硬件支持会随版本变化。本文保留可搜索的中文答案与排错顺序,真正执行时仍以你安装版本的帮助输出和官方文档为准。