实验室 · 自己玩 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 ≠ teleopFollower 与 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
从空白舵机到校准文件
下面是官方流程的中文验收顺序;每一步通过后再进入下一步。
- 01
安装 LeRobot 与 Feetech 依赖
先按官方安装文档建立独立环境,并安装 Feetech 电机依赖。本文命令按 LeRobot v0.6.1 与 2026-08-10 的当前官方文档核对。
- 02
给两臂和 12 个舵机贴标签
把 Follower、Leader 分开,并提前标记关节 1–6。配置舵机时一次只连接一个舵机,避免多个默认 ID=1 的新舵机同时挂在总线上。
- 03
识别两块控制板的 USB 端口
控制板需要同时连接电脑 USB 与匹配的外部电源。运行 lerobot-find-port,按提示拔下对应控制板的 USB,再记录 Follower 和 Leader 各自的端口。
- 04
分别写入舵机 ID 与波特率
先配置 Follower,再配置 Leader。脚本会从夹爪开始提示你逐个连接舵机,并把关节 ID 与通信波特率写入舵机的非易失存储。
- 05
装配后分别校准 Follower 与 Leader
先把各关节放在大致中位,按回车后逐一走完完整活动范围。Follower 用 --robot 参数,Leader 用 --teleop 参数。
- 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-port2. 配置 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_arm5. 校准 Leader
lerobot-calibrate \
--teleop.type=so101_leader \
--teleop.port=<LEADER_PORT> \
--teleop.id=my_leader_armACCEPTANCE 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.type | Leader 是 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 的命令、参数和硬件支持会随版本变化。本文保留可搜索的中文答案与排错顺序,真正执行时仍以你安装版本的帮助输出和官方文档为准。