ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

LeRobot双臂机器人协作:从校準到自主执行的完整实战指南

2026/9/16 13:42:47 拓冰建站 浏览量
LeRobot双臂机器人协作:从校準到自主执行的完整实战指南 LeRobot双臂机器人协作从校準到自主执行的完整实战指南【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot想象这样一个场景你把一块红色积木放在两只机械臂之间左手臂负责抓取右手臂负责把碗递到旁边——全程不需要你写一行自定义控制代码。在开源项目 LeRobot 里这件事是标准工作流。LeRobot 是 Hugging Face 出品的端到端机器人学习库Making AI for Robotics more accessible它把 SO-101 等硬件抽象成统一的 Python 接口把你的遥操作演示录成数据集再用一条命令训练出可部署的策略模型。本文带你走通双臂遥操作 → 录数据 → 训策略 → 自主执行全链路顺带避开新手最常踩的坑。1. 先跑起来1小时内让两只SO-101动起来 看懂双臂协作最快的方式不是读论文而是先让手臂听话。下面 7 步从 0 到 1每步都能独立验证。装库执行pip install lerobot[core_scripts,feetech]core_scripts 覆盖录数据/回放/校准feetech 是 SO-101 舵机支持。验证跑lerobot-info能打印环境信息即成功。完整安装选项见 安装文档。找串口跑lerobot-find-port按提示拔掉 USB 再回车命令会打印对应端口。双臂系统一共 3 组口左臂、右臂、双臂主臂各一次。给舵机写 ID跑lerobot-setup-motors逐个连接舵机、设置唯一 ID 和波特率。这一步只写一次写在舵机 EEPROM 里。SO-101 装 6 个 STS3215 舵机的细节见 SO-101 装配指南。校准双臂跑lerobot-calibrate --robot.typebi_so_follower把双臂都摆到关节中位再按提示逐关节走完全行程。验证校准文件落盘后再次连接不再提示缺失。遥操作跑lerobot-teleoperate --robot.typebi_so_follower --teleop.typebi_so_leader端口参数换成你第 2 步找到的值。验证你动左主臂左随臂跟着动右臂同理两路互不串。加摄像头在 teleoperate 命令后追加--robot.cameras{ top: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30} } --display_datatrue实时看到画面与关节曲线。录数据把 teleoperate 换成lerobot-record并加上--dataset.repo_id等参数下一节展开。验证每完成一条演示终端提示 episode 已保存。校准为什么是关键一步校准做的事是让同样的物理姿态对应同样的数值。左臂和右臂的舵机批次不同、装配间隙不同数值天生就对不齐。只有校准后的数据训出的策略才能在一台机器上学的动作迁移到另一台机器上。这也是 LeRobot 官方强调校准只做一次、但 id 必须处处一致的原因。双臂和单臂的命令差在哪差别只在type单臂是so101_follower双臂是bi_so_follower主臂同理换成bi_so_leader。其余命令形态几乎不变这意味着你为单臂写的所有工作流脚本双臂大多能原样复用。2. 录下配合本身数据集是双臂协作的核心 策略模型学的是你演示中的配合哪只臂先动、哪只臂让位、两手距离如何保持。所以录数据时两只臂要同时完成完整任务而不是各干各的。一条命令接好两只臂下面这条命令就是双臂录数据的全部配置注释里标出了关键行lerobot-record \ --robot.typebi_so_follower \ # 双臂机器人内部拆成左右两只臂 --robot.idmy_bi_arm \ # 全程保持同一 id校准文件靠它定位 --robot.left_arm_config.port/dev/ttyACM0 \ # 左臂串口 --robot.right_arm_config.port/dev/ttyACM1 \ # 右臂串口 --robot.cameras{ top: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30} } \ --teleop.typebi_so_leader \ # 双臂主臂相当于你的手 --dataset.repo_id${HF_USER}/dual_arm_demo \ # 数据集仓库名录完自动上传 --dataset.num_episodes30 \ --dataset.single_taskpick up the red block and put it in the bowl运行前先用hf auth login登录账号运行中用键盘控制流程右键保存当前演示并进入下一条左键删除当前演示重录ESC 结束、编码视频并上传。存下来的到底是什么数据集采用LeRobotDataset格式Parquet MP4摄像头画面存成 MP4 视频关节角、动作等数值存成 Parquet 表格二者按时间戳逐帧对齐。双臂场景下左臂和右臂的 6 个关节各自占一列模型一次能看到12 个关节值加全部画面。格式细节可查 LeRobotDataset 文档所有命令参数汇总在 快捷指令表。3. 看懂原理LeRobot 如何让两只臂同频 能跑之后花 10 分钟看懂三件事你就掌握了双臂系统在代码里的全部秘密。BimanualMixin把两只臂包装成一个机器人双臂机器人的核心代码很短见 BiSOFollower 源码。它继承了 BimanualMixin一个双手操作混入类connect()、calibrate()、disconnect()这些生命周期方法统统是先对左臂做一遍再对右臂做一遍。也就是说一只双臂机器人在框架眼里就是一个普通 Robot 对象上层的数据录制、训练、部署代码完全不用知道它内部有两只臂。左右臂的数据如何不打架配置类 BiSOFollowerConfig 里有两份SOFollowerConfig左、右各一份各带各的串口加一份顶层摄像头。命名规则挂在某只臂上的摄像头会加left_/right_前缀而顶层共享摄像头保持原名。代码里还做了防冲突检查——顶层摄像头名和臂上摄像头名撞车会直接报错。这样策略网络拿到的输入结构清晰左右臂关节分开编码画面按名字各归各位。大脑选哪个策略模型对比表训策略前先看 VLA 架构图理解输入输出图像、语言指令进模型关节动作序列出模型。VLAVision-Language-Action视觉-语言-动作模型能听懂把碗递到左边这类自然语言泛化更好但训练更吃算力。选型的务实建议模型一句话定位输入训练开销双臂建议ACT行为克隆主力小数据也能出活图像关节低消费级显卡可跑第一个策略用它Diffusion扩散策略动作更平滑图像关节中需要精细连续动作时SmolVLA轻量级 VLA支持语言指令图像文本中高想让两只臂听口令分工时GR00T N1.7多本体 VLA跨硬件迁移强图像文本高多型号/多臂混编场景各模型说明见 SmolVLA 文档、GR00T 文档GPU 需求与训练耗时参考 硬件指南。4. 训出来、跑起来以及你会踩的 5 个坑 一条命令训练一条命令部署训练lerobot-train --policy.typeact --dataset.repo_id${HF_USER}/dual_arm_demo --steps20000 --policy.devicecuda。没有本地 GPU加--job.targeta10g-small命令会直接调度到云端 GPU 跑模型自动推回仓库。完整流程对照 真机模仿学习教程。部署lerobot-rollout --policy.path${HF_USER}/dual_arm_demo_policy --robot.typebi_so_follower --strategy.typebase --duration60。摄像头配置必须和录数据时完全一致模型才能认出眼前的画面。跑通后的效果类似下面这种策略接管硬件的画面双臂新手最常见的 5 个坑校准文件找不到--robot.id在校准、遥操作、录制、部署四步里写了四个不同名字。解法全局固定一个 id复制粘贴别手敲。左右臂串口对调两只臂长得一样插反了就会左臂动右臂不动。解法先用lerobot-find-port拔线确认或在桌面摆个标记。rollout 时动作抖动或呆住多半是摄像头编号/分辨率和训练时不一致。解法把 record 命令的 cameras 参数整段拷到 rollout。演示都成功、自主执行却乱抓30 条演示里背景、光照、物体位置全一样模型只背了这一局。解法每录 5 条就挪一次积木和碗的位置。训完只有单臂动录数据时另一只臂一直停在原位模型学到它不用动。解法删掉对应 episode补录双臂都参与的动作再重训。5. 接下来去哪从双臂走向更大的系统 双臂之上接口已经把路铺好了LeRobot 的 Robot 接口与硬件解耦任何新硬件只要实现connect / get_observation / send_action就自动接入录制、训练、可视化全套工具。社区插件按包名自动发现lerobot_robot_*前缀装完即可在 CLI 里直接用--robot.typename。第三方机器人清单与接入方式见 第三方硬件文档 和 硬件集成指南。想要多臂3 只以上系统思路与双臂一致更多串口、更多前缀命名的关节列、更大的动作向量——框架不需要为臂的数量改写。先上仿真再碰真机真机每次试错都费时间。LeRobot 内置 LIBERO、MetaWorld 等仿真基准lerobot-eval --env.typelibero --env.tasklibero_object --eval.n_episodes10就能批量评估策略成功率坏改动先在仿真里暴露。自己写仿真环境可参考 EnvHub 文档。收尾你的执行清单双臂lerobot-calibrate完成四步命令 id 完全一致录满 30 条双臂演示且至少换过 3 次场景布局ACT 策略训完仿真评测成功率达标lerobot-rollout在真机上跑通一个完整任务升级一次 SmolVLA用语言指令给左右臂分工按这个顺序走每一步都有明确的成功标志。下一只臂接入时你会发现除了多一个串口参数其余流程原样照旧——这就是把双臂当一个机器人来设计的全部回报。【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考