SO101 硬件与 Leader/Follower 结构
SO101 Hardware & Leader/Follower
认识 SO101 机械臂硬件结构、串口连接和 Leader-Follower 工作模式
未开始
完成后会同步到学习路径和首页统计
你订的机械臂到了,拆开箱子 —— 里面是两条一模一样的机械臂,不是一条。
一开始很多人会愣住:为什么是两条?哪条是哪条?
答案是 SO101 的核心设计:一条给你手动操作(Leader / 主臂),另一条实时复制你的动作(Follower / 从臂)。你拿着 Leader 演示「怎么拿杯子」,电脑一边让 Follower 跟着动给你看效果,一边把 Leader 每一刻的关节角度记录下来 —— 这些记录就是第 1 章说的 (s, a) 演示数据。
这一章我们把硬件彻底搞清楚:6 个关节是什么、两条臂怎么连电脑、怎么在系统里认出它们、以及第一个一定会撞上的权限报错怎么修。
搞不清硬件,后面每一步都会卡。
- 不知道哪条是 Leader、哪条是 Follower → 第 4 章配置端口时一头雾水
- 不理解"角色由接线决定" → 重启后串口顺序变了就慌
- 不会修
Permission denied→ 80% 的人第一次连机械臂就卡在这
这一章是纯硬件认知,没有机械臂也能读懂,等硬件到手能直接上手。
- 了解 SO101 机械臂的硬件组成
- 理解 Leader-Follower 双臂协作模式
- 掌握串口连接和识别方法
- 1SO101 是低成本 6 自由度机械臂,适合模仿学习研究
- 2Leader 臂由人类操作,Follower 臂实时跟随
- 3通过 USB 串口与电脑通信,每个电机有独立 ID
Leader → 电脑 → Follower 的数据链路
flowchart LR
H["👋 你的手"] -->|"扳动关节"| L["🦾 Leader 主臂"]
L -->|"USB 读关节角"| PC["💻 电脑"]
PC -->|"USB 发指令"| F["🦾 Follower 从臂"]
PC -->|"同步录入"| D["📦 数据集 (s, a)"]
style L fill:#7c5cff,stroke:#7c5cff,color:#fff
style F fill:#0ea5e9,stroke:#0ea5e9,color:#fff
style PC fill:#22c55e,stroke:#22c55e,color:#fff认识 6 个自由度
SO101 一条臂有 6 个关节,每个关节一个电机,可独立转动:底座旋转、肩、肘、腕部两个自由度、爪子开合。
6 个自由度是工业机械臂的标配 —— 足以让末端(爪子)到达三维空间的任意位置(x/y/z)加任意姿态(俯仰/偏航/翻滚)。
这也解释了为什么第 1 章说状态 s 是 6 维:一个关节贡献一维角度读数。
两条臂硬件完全相同,所以合起来的状态/动作维度是 6 + 6 = 12 维。
把两条臂接上电脑,认出串口
机械臂通过 USB 转串口连接电脑。在 Linux / macOS 上,每条臂会变成一个设备文件,名字形如 /dev/ttyUSB0。
最稳的分辨方法是「拔一根看哪个消失」:先看一次列表,拔掉 Leader 的 USB,再看一次,少掉的那个就是 Leader。
列出所有串口设备
ls /dev/tty*/dev/tty /dev/ttyS0 /dev/ttyUSB0 /dev/ttyUSB1
ttyUSB0 / ttyUSB1 就是你的两条机械臂;ttyS0、tty 是系统自带的,忽略。
理解"角色由配置决定,不是出厂决定"
两条臂出厂时完全一样,没有贴"我是 Leader"的标签。哪条是 Leader、哪条是 Follower,是你在配置文件里写哪个端口对应哪个角色决定的(第 4 章会做)。
所以你只要记住:插上之后认出哪个 ttyUSB 是哪条臂,剩下的在软件里指定即可。
重启电脑或重新插拔后,ttyUSB0 / ttyUSB1 的编号可能对调 —— 这是 Linux 串口的老问题。每次开机最好用"拔一根"法快速确认一下,或用 udev 规则固定(高级话题)。
查看串口设备
ls /dev/tty*查看 USB 设备信息
lsusb查看串口详细信息
dmesg | grep tty「两条臂长得一样,我是不是买错了/多发了一条?」
根本原因
不知道 SO101 本来就是双臂主从设计。
正确认识
没买错。两条是配套协同的:Leader 给人操作,Follower 复现。这正是采集演示数据的方式。
一连机械臂就报 `Permission denied: /dev/ttyUSB0`。
根本原因
你的账号不在能访问串口的用户组(Ubuntu 的 dialout / Arch 的 uucp)里。
正确认识
sudo usermod -a -G dialout $USER,然后注销重新登录(或重启)。这是几乎人人都会撞一次的坑。
`ls /dev/tty*` 根本看不到 ttyUSB。
根本原因
USB 线是充电线没有数据、或缺 CH340 串口驱动。
正确认识
换一条带数据的 USB 线;dmesg | tail 看插入时有没有识别信息;必要时装 CH340 驱动。
- 能够识别 Leader 和 Follower 的串口
- 理解双臂协作的工作原理
- 完成硬件连接检查
分辨 Leader 和 Follower
两条 USB 都插上后:
- 跑
ls /dev/tty*记下出现了哪几个 ttyUSB - 拔掉其中一条(你打算当 Leader 的那条)的 USB
- 再跑一次
ls /dev/tty*
哪个 ttyUSB 消失了,说明它是哪条臂?
算一算数据维度
两条 SO101 臂协同工作,每条 6 个关节。一帧"状态 + 动作"合起来总共多少维?
Permission denied: /dev/ttyUSB0
- 原因:
- 当前用户没有串口访问权限
- 解决:
- 将用户添加到 dialout 组
sudo usermod -a -G dialout $USER- SO-ARM100 硬件项目(GitHub)
BOM、3D 打印件、装配指南。想自己拼一台或了解机械结构看这里。
- Linux 串口权限与 dialout 组说明
理解 ttyUSB 权限模型,遇到串口报错时有用。
SO101 是两条一样的臂:Leader 你手动操作,Follower 实时复现,电脑同步记录 Leader 的关节角作为演示数据。
角色不是出厂定的,是你接线 + 配置决定的。机械臂在系统里是 /dev/ttyUSB* 文件;第一次连大概率撞 Permission denied,加进 dialout 组 + 重新登录即可。
下一章我们装软件环境(不需要硬件),把 LeRobot 跑起来。
本章讨论区
登录后即可参与讨论 —— 点击右上角的 登录 按钮
加载中…