如何让双臂机械臂完成抓取:LeRobot 与 SO-100 协作机械臂实战指南
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
让两条小臂配合把盒子抓起、再交到对面,是很多创客的第一课。LeRobot 是一个开源机械臂学习框架,它为双 SO-100 这类协作机械臂提供统一控制接口、标准化数据集格式与完整训练入口,本文给出从环境安装到抓起真物体的完整路径。
项目定位:LeRobot 是什么
LeRobot 是开源机械臂框架,用人类示范数据让机器学会完成任务,这个方向叫模仿学习(imitation learning,机器从示范数据中学会动作策略)。它的技术路线分三层:把舵机、相机、控制循环统一到一个硬件抽象层,用标准化的 LeRobotDataset 数据集格式存数据,再配一批现成实现的策略模型(ACT、Diffusion、pi0、SmolVLA 等)。适合有 Python 基础、想用低成本硬件做双机械臂协同控制验证的创客和工程学生。
落地三步走
环境准备与最小示例
从源码安装,并加上 Feetech 驱动扩展(SO-100 使用 Feetech STS3215 舵机):
git clone https://gitcode.com/GitHub_Trending/le/lerobot cd lerobot pip install -e ".[feetech]"用lerobot-info确认安装无误。接上一主臂(leader)和一从臂(follower)后运行遥操作脚本(teleoperation,从臂模仿主臂的动作),双臂跟手就说明链路通了:
lerobot-teleoperate --robot.type=bi_so_follower --teleop.type=bi_so_leader接入真实硬件与演示采集
录制前先用内置工具确认端口与关节极限,并对每条臂做校准,步骤见 SO-100 文档。然后用主臂示范 10 到 20 次抓取动作,录制脚本会自动把相机画面与关节角度按时间戳同步进 LeRobotDataset。
训练策略并上真机评估
lerobot-record --robot.type=bi_so_follower --teleop.type=bi_so_leader lerobot-train --policy.type=act --dataset.repo_id=<你的数据集>ACT 是动作分块策略:一次预测一小段关节目标序列而不是单帧,动作因此更连贯。它轻量、单卡可跑,适合作为抓取任务的第一选择。
核心能力拆解:三个最值得看的设计
双臂协同控制:BiSOFollower 接口
- 解决什么问题:舵机品牌、USB 端口、校准数据各不相同,自写控制代码要为每条臂重写一遍。
- 关键机制:每个机器人在 robot.py 里抽象成 Robot 类,固定 connect、get_observation、send_action 三件套;BiSOFollower 再继承双臂混入类 BimanualMixin,把左右两臂的观测与动作拼成一个整体。
- 对使用者意味着什么:双机械臂协同控制不用自己拼接数据流,配好两条臂的端口,采集、训练、评估代码与单臂完全复用。
机械臂数据标准化:LeRobotDataset
- 解决什么问题:视频和关节角度散在不同目录,格式五花八门,训练卡在数据整理上。
- 关键机制:画面存 MP4、状态与动作存 Parquet,同一数据集内按时间戳对齐;数据集工具 支持删片段、切分、合并。
- 对使用者意味着什么:录完数据直接把数据集传给训练,可视化、筛选、分享共用一套工具,不必自己维护格式。
策略库:从 ACT 起步,数据多了再升级
- 解决什么问题:模仿学习的模型选型繁杂,每换一篇论文都要自己实现训练。
- 关键机制:ACT、Diffusion、pi0、SmolVLA 等策略全部用 PyTorch 实现,共用
lerobot-train入口,靠--policy.type参数切换,完整清单见 策略文档。 - 对使用者意味着什么:先用轻量策略跑通全流程,数据量上来后换成更强的模型,数据与硬件代码一行不改。
效果与边界
| 维度 | 自写单臂控制 | LeRobot 双臂流水线 |
|---|---|---|
| 硬件接入 | 自写端口扫描、校准、驱动适配 | 内置 find-port、calibrate、setup-motors |
| 数据格式 | 自定义目录与格式 | LeRobotDataset 统一存储 |
| 策略训练 | 自建训练循环与数据加载 | 单条命令,策略可切换 |
| 双臂协同 | 自实现动作拼接与同步 | BiSOFollower 内置 |
适用场景:教学抓取演示、模仿学习验证、中小规模(数百条片段)数据采集、SO-100/SO-101 硬件。
不适用场景:有严格节拍要求的工业高速分拣、毫米级精度的装配、大负载作业。这类需求需要专用工控与精密标定,不是该框架的目标。
现场问题清单:四个常见故障
| 现象 | 原因 | 处理办法 |
|---|---|---|
| 找不到电机 | 端口未确认或串口权限不足 | 用lerobot-find-port定位,Linux 上给串口授权 |
| 连接后手臂漂移、抖动 | 电机 id 或波特率不一致,校准过期 | 重跑lerobot-setup-motors与lerobot-calibrate |
| 双臂只有单臂动 | 左右臂端口没有分开配置 | 在 BiSOFollower 的左右臂配置中分别填端口 |
| 训练后策略抓不起来 | 示范数量不足,采集与评估场景差异大 | 增加示范条数,保持采集与评估的机位、工作台一致 |
资源入口
以下相对路径构成完整的机械臂抓取实战资料:
- 安装文档
- SO-100 组装与电机配置
- 双臂 SO 示例
- 数据集工具教程
- ACT 策略文档
- 遥操作入口
收尾
先跑通lerobot-teleoperate让双臂跟手,再录下第一批抓取示范。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考