文章目录
0. LeRobot介绍
https://github.com/huggingface/lerobot
LEROBOT:通过端到端学习使机器人技术更容易访问AI
面向现实世界机器人技术的先进机器学习
🤗 LeRobot 旨在使用 PyTorch 提供面向现实世界机器人技术的模型、数据集和工具。其目标是降低机器人技术的入门门槛,让每个人都能贡献力量,并从共享数据集和预训练模型中受益。
🤗 LeRobot 包含已被证明可迁移到现实世界的先进方法,重点是模仿学习和强化学习。
🤗 LeRobot 已经提供了一系列预训练模型、包含人工收集演示的数据集以及模拟环境,方便每个人都能快速上手。
🤗 LeRobot 在 LeRobot HuggingFace 页面上托管预训练模型和数据集。
前提准备
为了满足预训练模型和数据集的高性能需求,这边是准备一台性能比较好的主机。
- X86 Ubuntu 22.04 台式机,个人编写的双系统安装教程参考
- 4070tis显卡
1.安装LeRobot环境
- X86 Ubuntu 22.04 安装 Miniconda
mkdir -p ~/miniconda3
cd miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all
2.创建并激活一个新的 conda 环境用于 lerobot,并且需要注意一点:后续打开终端都要激活lerobot虚拟环境conda activate lerobot
。
conda create -y -n lerobot python=3.10 && conda activate lerobot
3.使用 miniconda 时,在环境中安装 ffmpeg:
conda install ffmpeg -c conda-forge
由于-c conda-forge
(官方 Anaconda) 仓库拉取包,国内访问速度会比较慢,所以会在 Collecting package metadata 那里卡很久。
临时指定清华镜像源
conda install ffmpeg -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
4.克隆 Lerobot 仓库:
有两种安装Lerobot,有源码编译或者是直接PyPi下载,下面介绍源码编译下载,想看PypI下载方式的看官方文档。
git clone https://github.com/huggingface/lerobot.git ~/lerobot
cd lerobot
安装Lerobot 仓库
pip install -e .
同样pip下载默认是国外下载源,国内访问速度很慢。可以改为下面指令
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
5.安装带有 feetech 电机依赖的 LeRobot:
pip install -e ".[feetech]"
6.python虚拟环境搭建好了,验证如下
2. 采购SO-101零件
SO-101 是 SO-100 机械臂的下一代版本,最初由 RobotStudio 与 Hugging Face 合作设计。它改进了接线,更易于组装(无需拆卸齿轮),并且为引臂使用更新的电机。
https://huggingface.co/docs/lerobot/so101
https://github.com/TheRobotStudio/SO-ARM100
有两个选择:获得您自己的 SO-101,爱折腾的就自己动手搭建。 怕麻烦直接从淘宝供应商那里购买。下面以专业版进行搭建。
2.1 专业版双臂物料清单
物料清单 | 数量 | Unit Cost (RMB) | Buy CN |
---|---|---|---|
STS3215 Servo 7.4V, 1/345 gear (C001) | 1 | ¥97.72 | TaoBao |
STS3215 Servo 7.4V, 1/191 gear (C044) | 2 | ¥97.72 | TaoBao |
STS3215 Servo 7.4V, 1/147 gear (C046) | 3 | ¥97.72 | TaoBao |
STS3215 Servo 12V, 1/345 gear (C018) | 6 | ¥108.19 | TaoBao |
总线舵机驱动板 | 2 | ¥27 | TaoBao |
USB-C 数据线 | 2 | ¥23.9 | TaoBao |
12V 5A电源适配器 | 1 | ¥19.21 | TaoBao |
5V 4A电源适配器 | 1 | ¥22.31 | TaoBao |
木工夹子固定器 | 4 | ¥5.2 | TaoBao |
螺丝刀套装 | 1 | ¥14.9 | TaoBao |
主从3D打印件(没3D打印机的情况下) | 1 | ¥186.19 | TaoBao |
2.2 使用3D 打印零件
2.2.1 有3D 打印机
步骤一:
提供的STL文件可以在许多FDM打印机上打印。 以下是经过测试和建议的设置,尽管其他设置可能有效。
1.材料:PLA+,关于耗材资料,关于常用的3D打印材料优缺点。
2.喷嘴直径和精度:0.4mm的喷嘴直径在0.2mm层高度或0.6毫米喷嘴处的0.4mm层高度。
3.填充密度:15%
4.3D打印机选购
步骤二:
调试使用的3D打印机,该步骤省略
步骤三:
检查你3D打印机精度,该步骤省略
步骤四:
开始打印
根据3D打印机,机床尺寸来确定打印件。
- 对于220mmx220mm的打印机床尺寸(例如Ender),请打印以下文件:
- 对于205mm x 250mm的打印机床尺寸(例如prusa/up):
Common Parts
Part | Link |
---|---|
Base_motor_holder_SO101.stl | Base_motor_holder_SO101.stl |
Base_SO101.stl | Base_SO101.stl |
Motor_holder_SO101_Base.stl | Motor_holder_SO101_Base.stl |
Motor_holder_SO101_Wrist.stl | Motor_holder_SO101_Wrist.stl |
Under_arm_SO101.stl | Under_arm_SO101.stl |
Upper_arm_SO101.stl | Upper_arm_SO101.stl |
Rotation_Pitch_SO101.stl | Rotation_Pitch_SO101.stl |
Wrist_Roll_Pitch_SO101.stl | Wrist_Roll_Pitch_SO101.stl |
WaveShare_Mounting_Plate_SO101.stl | WaveShare_Mounting_Plate_SO101.stl |
Leader‑Specific Parts
Part | Link |
---|---|
Handle_SO101.stl | Handle_SO101.stl |
Trigger_SO101.stl | Trigger_SO101.stl |
Wrist_Roll_SO101.stl | Wrist_Roll_SO101.stl |
Follower‑Specific Parts
Part | Link |
---|---|
Moving_Jaw_SO101.stl | Moving_Jaw_SO101.stl |
Wrist_Roll_Follower_SO101.stl | Wrist_Roll_Follower_SO101.stl |
步骤五:
将打印的零件从3D打印机中取下来,去除掉支撑件。
2.2.2 没有3D 打印机
LeRobot 在github文档中,说明可以使用PCBWay进行3D打印机。不推荐,要附加进口税,成本约95美元,约680元。
从供应商的淘宝购买组装好的臂或零件套件。成本:186.19元。
3 组装SO-101 Pro
3d打印后的零件如下:
3.1 固定舵机的id和串口波特率
需要注意SO101的Leader机械臂的前三个关节减速比与SO100不同,所以需要仔细区分并校准。建议方便起见,在每个电机上做好标记,注明是 Follower(用 F 表示)还是 Leader(用 L 表示),以及对应的编号从 1 到 6(例如 F1…F6 和 L1…L6)。后续我们用F1-F6来代表Follower机械臂的1到6的关节舵机,L1-L6来代表Leader机械臂从1到6的关节舵机,对应的舵机型号关节及减速比信息如下。
舵机型号 | 减速比 | 对应机械臂关节 |
---|---|---|
ST-3215-C044(7.4V) | 1:191 | L1 |
ST-3215-C001(7.4V) | 1:345 | L2 |
ST-3215-C044(7.4V) | 1:191 | L3 |
ST-3215-C046(7.4V) | 1:147 | L4–L6 |
ST-3215-C018(12V) | 1:345 | F1–F6 |
在开始组装前,建议先固定舵机的id和串口波特率,参考该链接
拿出一个总线舵机驱动板、通过type-c接到电脑上。对于linux电脑来说,这款串口芯片会识别成/dev/ttyACM*
设备。
ls /dev/tty*
会多出/dev/ttyACM0
串口设备
先给ttyACM*设置规则文件,防止插拔过程出现权限不够的情况。
sudo vim /etc/udev/rules.d/99-myserial.rules
串口规则文件编写如下,填写自己的用户名,GROUP=用户名。(ttyACM*只适用于Linux主机哦)
KERNEL=="ttyACM*",SUBSYSTEM=="tty",GROUP="lanni",MODE="0777"
然后保存串口规则,然后在终端重载规则并重启。后续怎么插拔设备,都是有权限的。
sudo udevadm control --reload
3.1.1 固定Leader舵机的id和串口波特率
Leader舵机的总线舵机驱动板
需要接入5V的电源适配器。
需要接入5V的电源适配器。
需要接入5V的电源适配器。
终端输入指令
lerobot-setup-motors \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM0
先从L6舵机开始固定id,将3PIN端子线接在舵机上。
L6舵机接完线后,在终端敲下回车。
弹出Connect the controller board to the 'gripper' motor only and press enter.
后回车,'gripper' motor id set to 6
就是设置了舵机L6
然后接线,接到舵机L5
继续终端输入回车,‘wrist_roll’ motor id set to 5就是设置了舵机L5
然后重复流程,完成设置L4、L3、L2、L1舵机。
3.1.2 固定Follower舵机的id和串口波特率
Follower舵机的总线舵机驱动板
需要接入12V的电源适配器。
需要接入12V的电源适配器。
需要接入12V的电源适配器。
先从F6舵机开始固定id,将3PIN端子线接在舵机上。
lerobot-setup-motors \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0
弹出Connect the controller board to the 'gripper' motor only and press enter.
后回车,'gripper' motor id set to 6
就是设置了舵机F6
然后接线,接到舵机F5
继续终端输入回车
然后重复流程,完成设置F6、F5、F4、F3、F2、F1舵机。
3.2 开始组装Leader机械臂舵机
lerobot安装视频参考链接。
推荐安装参考 seeed 组装视频
- Joint1
- 将L1电机(减速比1:191)放入底座。
- 安装两侧的金属舵盘,用一颗 M3x6mm 舵盘螺钉固定顶部金属舵盘。
- 用 4 颗 M2x6mm 螺钉(最小螺钉)固定电机。顶部两颗,底部两颗。
- 将第一个电机支架滑入底座,并用两颗 M2x6mm 螺钉(左右各一颗)固定。
- 安装肩部打印件。
- 用顶部 4 颗 M3x6mm 螺钉和底部 4 颗 M3x6mm 螺钉拧紧肩部。
- 安装肩部电机支架。
- Joint 2
- 从顶部安装第二个电机(L2减速比1:345)。
- 用 4 颗 M2x6mm 螺钉固定第二个电机。
- 将两个金属舵盘连接到 2 号电机上,同样使用 M3x6mm 舵盘螺钉固定。
- 用 4 颗 M3x6mm 螺钉分别固定上臂两侧。
- Joint 3
- 插入电机 3 (L3减速比1:191)并使用 4 颗 M2x6mm 螺钉固定。
- 将两个金属舵盘连接到电机 3 上,并用一颗 M3x6mm 舵盘螺钉固定一个。
- 将前臂连接到电机 3,每侧各使用 4 颗 M3x6mm 螺钉。
- Joint 4
- 安装电机支架打印件。
- 插入电机 4(L4减速比1:147)。
- 用 4 颗 M2x6mm 螺钉固定电机 4,并使用 M3x6mm 舵盘螺钉安装其电机金属舵盘。
- Joint 5
- 将电机 5 (L5减速比1:147)插入腕托,并用 2 颗 M2x6mm 前螺钉固定。
- 在腕托电机上仅安装一个带齿轮金属舵盘,并用一颗 M3x6mm 舵盘螺钉固定。
- 使用两侧各 4 颗 M3x6mm 螺钉将腕托固定到电机 4 上。
- Joint 6
- 将前导线固定器安装到手腕上,并用 4 颗 M3x6mm 螺钉固定。
- 使用 1 颗 M2x6mm 螺钉将手柄连接到 6 号电机(L6减速比1:147)。
- 插入夹持电机,在两侧各用 2 颗 M2x6mm 螺钉固定,并使用 1 颗 M3x6mm 螺钉安装电机舵盘。
- 使用 4 颗 M3x6mm 螺钉固定跟舵扳机。
意外
发现驱动板的这个3d打印版本,并不适配,只能用502胶水粘上去了。
3.3 开始组装Follower机械臂舵机
前五个步骤一样
F1~F5关节安装- Joint6
- 将L1电机(减速比1:191)放入底座。
- 安装两侧的金属舵盘,用一颗 M3x6mm 舵盘螺钉固定顶部金属舵盘。
- 用 4 颗 M2x6mm 螺钉(最小螺钉)固定电机。顶部两颗,底部两颗。
- 将第一个电机支架滑入底座,并用两颗 M2x6mm 螺钉(左右各一颗)固定。
- 安装肩部打印件。
- 用顶部 4 颗 M3x6mm 螺钉和底部 4 颗 M3x6mm 螺钉拧紧肩部。
- 安装肩部电机支架。
目前还在边看论文边学习实操中,待更新。。。
参考
lerobot官网文档
https://huggingface.co/docs/lerobot/so101
https://github.com/TheRobotStudio/SO-ARM100
huggingface/lerobot
https://github.com/huggingface/lerobot
SmolVLA: Efficient Vision-Language-Action Model trained on Lerobot Community Data
https://huggingface.co/blog/zh/smolvla#meet-smolvla
论文:https://huggingface.co/papers/2506.01844
seeed文档
如何从0搭建具身智能最新版Lerobot SO-ARM100和SO-ARM101机械臂并完成自定义抓取任务
https://wiki.seeedstudio.com/cn/lerobot_so100m_new/
https://wiki.seeedstudio.com/cn/lerobot_so100m/
Seeed-Projects/lerobot
https://github.com/Seeed-Projects/lerobot
硬件资料
Bus Servo Adapter (A)
https://www.waveshare.net/wiki/Bus_Servo_Adapter_(A)
aloha
huggingface/gym-aloha
https://github.com/huggingface/gym-aloha
论文
SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
https://arxiv.org/abs/2506.01844
ACT or ALOHA
https://tonyzhaozh.github.io/aloha/