ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从单臂到双臂:用 LeRobot 让两条 SO-100 机械臂一起干活的最小上手指南

从单臂到双臂:用 LeRobot 让两条 SO-100 机械臂一起干活的最小上手指南 从单臂到双臂用 LeRobot 让两条 SO-100 机械臂一起干活的最小上手指南【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobotLeRobot 是 HuggingFace 的机器人学习框架你用一条机械臂leader示范动作另一条follower跟着学几轮录制加训练后机器人就能自主复现抓取、放置这类任务。它帮你把买机械臂→写控制代码→录数据→训练策略这条完整链路压缩成十几条标准命令覆盖 SO-100/SO-101、Koch、OpenArm 等开源硬件也内置 ACT、pi0 等现成策略。先跑起来从装包到双臂跟随只需要 3 条命令假设你已经按 SO-100 文档 把两条 SO-100一条 leader 臂、一条 follower 臂装好、配好电机那看到效果就是三条命令的事。# 1. 装 LeRobot 及 Feetech 舵机驱动 pip install -e .[feetech] # 2. 找到两条臂各自的 USB 串口拔掉再插上程序会锁定对应口 lerobot-find-port # 3. 启动主从遥操作动 leaderfollower 实时跟随 lerobot-teleoperate \ --robot.typebi_so_follower \ --robot.left_arm_config.port/dev/ttyACM1 \ --robot.right_arm_config.port/dev/ttyACM0 \ --robot.idmy_bi_arm \ --teleop.typebi_so_leader \ --teleop.left_arm_config.port/dev/ttyACM3 \ --teleop.right_arm_config.port/dev/ttyACM2 \ --teleop.idmy_bi_leader如果你只想先试单臂把bi_so_*换成so100_follower/so100_leader各配一个--robot.port/--teleop.port即可。命令能直接跑通说明串口、舵机 ID、波特率、校准这几环都通了——后面所有数据录制和训练命令都复用同一套参数。想省事的话仓库里的 quickstart 笔记本 能替你填好这些配置、直接生成可粘贴的命令。拆透一个机制leader-follower 主从映射到底怎么把动作传过去遥操作时你可能注意到一个现象leader 臂明明是哑的——它只报位置、不受力控制但 follower 跟得又快又稳两条臂还不会打架。这背后是一个被刻意设计得薄的映射层。打开 遥操作示例 里的 API 写法核心循环只有两行while True: action teleop_device.get_action() # 读 leader 各关节的目标位置 robot.send_action(action) # 原样发给 follower 舵机leader 的每个舵机被拆掉了减速齿轮、只保留位置编码器你手推它它只是报坐标。这些坐标被当作动作action直接写进 follower 的舵机目标寄存器——舵机驱动芯片自己完成平滑运动。所以两条臂之间没有运动学解算、没有轨迹规划器映射函数就是一个字典拷贝。这个机制值得你利用两次。第一它是天然的数据格式预览get_action()输出的键就是录制数据集里的 action 字段也是训练时策略要预测的东西三者键名一致不会出现录的和学的对不上。第二双臂扩展时它是自动的BiSOFollower 源码 里get_observation()给左臂所有键加left_前缀、右臂加right_send_action()再按前缀拆开分别下发。12 个关节就这样被一个前缀规则分清楚你在写代码或配策略时只需要记住带left_/right_前缀的键各归各臂这一条。完整实战案例录 30 次拿起积木放进盒子训练出自主策略场景桌面上放一盒乐高积木和一个收纳盒任务是把积木从盒子左边抓起来放到右边。下面用单臂 SO-101 走完整闭环双臂把类型参数换成bi_*即可流程相同。第 1 步录制演示。复用遥操作命令再套一层lerobot-record它会按--dataset.fps默认 20节拍采集每帧的图像和关节状态lerobot-record \ --robot.typeso101_follower \ --robot.port/dev/tty.usbmodem58760431541 \ --robot.idmy_follower_arm \ --teleop.typeso101_leader \ --teleop.port/dev/tty.usbmodem58760431551 \ --teleop.idmy_leader_arm \ --dataset.root~/data/lerobot \ --dataset.repo_idmy-pick-and-place录制时用方向键或n/r切换n保存当前 episode 并开始下一轮r丢弃重录q退出。建议每次抓取前把 leader 摆回同一个起始姿态30 条 episode 通常够 ACT 这类策略学到七八成成功率。第 2 步训练策略。数据落盘后直接训lerobot-train \ --dataset.repo_idmy-pick-and-place \ --policy.typeact \ --batch_size8第 3 步验证结果分两层。先在数据层用lerobot-dataset-viz --dataset.repo_idmy-pick-and-place播放录制的轨迹检查有没有录进空帧或中途停顿再在真机层用lerobot-replay或 rollout 脚本加载训练好的模型让它自主执行 10 次数一下成功率。低于预期时优先检查录制质量起始位姿一致性、抓取是否成功再考虑加数据量——顺序反了会浪费很多训练时间。单臂 SO-100、SO-101 还是双臂配置怎么选维度单臂 SO-100单臂 SO-101双臂 bi_so_follower自由度6含夹爪6含夹爪12两臂各 6电机配置6 个舵机逐个设 ID6 个连接器更易触达12 个两条臂各配一遍动作键名无前缀无前缀自动带left_/right_前缀适合任务单点抓取、放置同 SO-100装配更省事双手协同一手固定、一手操作上手成本低低中多一套串口和校准选择逻辑先用单臂把一个任务跑通确认录制→训练→复现闭环没坑再上双臂。双臂不是单臂的简单翻倍——两条臂共享同一张操作台后工作空间重叠区就是碰撞高发区这也是为什么官方文档建议从 2 臂最小系统起步。避坑问答这几处几乎人人踩过问lerobot-find-port找到了串口但lerobot-teleoperate连不上舵机答Linux 下先给串口开权限sudo chmod 666 /dev/ttyACM*然后逐个检查三条线电源、USB 线、控制器到舵机的 3 针线。SO-100 还有一个高频坑电机配置必须在装臂前做因为装好后电机接口就摸不到了见 so100.mdx 的 Note。问leader 动了follower 跟着抖或偏转方向不对答十有八九是校准没做或没对齐。lerobot-calibrate要求先让臂摆到每个关节行程的中间点按回车再逐个关节走完整个行程。leader 和 follower 要分别校准且全程用同一个id参数——校准文件按id存取ID 一变等于重新来过。问双臂录制时动作键里的left_/right_前缀是我自己加的吗答不用加也不用减。BiSOFollower在观测端自动加前缀、在下发端自动剥离前缀见 源码 的get_observation/send_action。你唯一要做的是确认数据集里确实出现left_*和right_*两组键。问录制时帧率达不到设定的 20fps 怎么办答lerobot-record结束时会打印每轮实际达成的帧率摘要先对照它定位是相机拖后腿还是串口超时。相机端把分辨率降下来如 640x480→320x240通常立刻见效串口端检查波特率是否全链一致。问单臂训好的模型能直接用到双臂上吗答不能直接加载因为动作维度从 6 变成 12键名也不同。正确做法是用双臂重新录数据、以bi_*配置重新训练单臂阶段的价值在于验证流程不在于模型直接迁移。往前走从行为克隆走向视觉语言策略单臂闭环跑通后官方文档里有三条明确的进阶路径在 il_robots.mdx 继续深化多任务录制与评估在 async.mdx 把策略推理搬到独立机器上降低真机延迟在 pi0.mdx 换用带语言指令的 VLA 策略——到那一步你的双臂系统就不只是复现轨迹而是能听懂把红色积木放进左边的盒子这类指令。仓库的 docs 目录 和examples/下各硬件的配套脚本record.py/evaluate.py/rollout.py都是现成的参考实现。主从映射 前缀分发是 LeRobot 把两条臂当一个机器人管这件事做得轻量的全部秘密——看懂这两个点后面加相机、换策略、上语言指令都只是配置层面的事。现在就克隆仓库git clone https://gitcode.com/GitHub_Trending/le/lerobot从lerobot-find-port开始跑通第一条命令。【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表