LeRobot 机器人框架实操SO-100 从录数据到跑通 ACT 策略【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot给 SO-100 机械臂接上摄像头想录一批演示数据结果被串口冲突、电机 ID 冲突、数据格式各占一个山头拖了三天——LeRobot框架就是为解决这类问题做的它把机器人硬件、LeRobotDataset 数据集格式、模仿学习与 VLA 策略放进同一套 PyTorch 工具链让机械臂从接到串口到跑出策略变成一条可复现的流水线。它到底是什么LeRobot 是 Hugging Face 出品的开源机器人学习框架定位可以概括为一句话硬件无关的 Python 接口 标准数据集格式 现成策略模型。仓库里既有各硬件的驱动实现src/robots/也有 ACT、Diffusion 这类模仿学习模型和 Pi0、GR00T 这类 VLA 模型视觉-语言-动作模型直接吃图像和指令文本输出动作src/policies/从数据采集到训练、真机部署都走同一套 CLI。核心机制拆解Robot 接口硬件差异被收敛成三个方法各家机器人的通信协议、观测结构各不相同LeRobot 用一个Robot基类把差异压到接口层控制逻辑不碰硬件细节robot SO100Follower(config) robot.connect() obs robot.get_observation() # 关节角 图像 action policy.predict(obs) robot.send_action(action)对使用者意味着换硬件只需换配置和驱动训练、评估、可视化脚本一行不用改。LeRobotDatasetParquet 存数值MP4 存画面机器人数据最头疼的是碎片化LeRobot 的解法是把每帧数据拆成两类状态、动作、时间戳这些数值进 Parquet图像序列按 episode 编码成 MP4两者按帧对齐。dataset LeRobotDataset(lerobot/aloha_mobile_cabinet) print(dataset[0][action].shape) # 自动处理视频解码数值部分支持精确随机访问视觉部分交给硬件解码器训练时的 dataloader 直接流式读 MP4不必先解码成图片目录。策略即配置一行命令训练现成模型LeRobot 把策略实现注册成可切换的type训练入口是统一的lerobot-train切换模仿学习、强化学习、VLA 只是换参数不用改代码。一条主线走通SO-100 录数据、训 ACT、真机策略 用 lerobot-find-port 找到双臂串口SO-100 的每根臂通过 USB 舵机总线连接插拔交互的方式确认哪个口属于哪根臂lerobot-find-port # 拔下其中一根臂的 USB 线再回车剩下没消失的就是另一根臂的端口输出的/dev/ttyACM*或/dev/tty.usbmodem*会直接填进下一步的--robot.port。 配置电机 ID 与波特率拿lerobot-setup-motors给每个舵机分配唯一 ID 并统一波特率否则总线上会互相干扰lerobot-setup-motors --robot.typeso100_follower --robot.port/dev/ttyACM0SO-100 的舵机接口装好后就不好拆文档特别提示要先配完再组装。 遥操作录制 LeRobotDatasetleader-follower 模式下主臂的动作被从臂跟随数据按 LeRobotDataset 格式写入本地仓库lerobot-record \ --robot.typeso100_follower --robot.port/dev/ttyACM0 \ --robot.cameras{laptop: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}} \ --teleop.typeso100_leader --teleop.port/dev/ttyACM1 \ --dataset.repo_idlerobot/so100_pick \ --dataset.num_episodes10 --dataset.single_taskGrab the cube 用 ACT 策略训练录好的数据集直接作为训练输入--policy.type决定用哪个模型lerobot-train --policy.typeact \ --dataset.repo_idlerobot/so100_pick \ --train.batch_size64 --train.num_epochs50 lerobot-rollout 把策略部署回机械臂训练产出的 checkpoint 路径直接作为 rollout 的策略参数lerobot-rollout --strategy.typebase \ --policy.pathoutputs/train/lerobot/so100_pick/checkpoints/last/pretrained_model \ --robot.typeso100_follower --robot.port/dev/ttyACM0 \ --taskGrab the cube --duration60一个真实产出双 SO-100 协作抓取SO-100 双臂在 LeRobot 控制下完成抓取、交接与放置SO-100 双臂协作演示里两根臂各自独立总线、各挂摄像头靠同一套send_action接口做同步协调。从lerobot-record录到的演示到 ACT 策略在真机上复现抓取-交接-放置中间没有任何手写胶水代码。仓库内置策略覆盖模仿学习、VLA、世界模型与奖励模型容易卡住的点电机连不上或上电抖动现象串口打开后无响应或上电瞬间所有舵机乱动。原因总线上的多个舵机 ID 冲突或波特率不一致。处理先lerobot-find-port确认端口再逐台跑lerobot-setup-motors重新分配 ID 并统一波特率装好臂之前完成配置。录制出的视频与关节数据对不上现象回放时画面明显落后于动作轨迹。原因摄像头 fps 与机器人控制频率不一致或编码缓冲积压。处理把--robot.cameras的 fps 设为 30 对齐控制频率录制时加--dataset.streaming_encodingtrue边录边编码避免事后重编。VLA 模型真机推理太慢现象机械臂动作一顿一顿跟不上控制节奏。原因Pi0、SmolVLA 这类 VLA 单步推理耗时超过控制周期。处理rollout 时切 RTCReal-Time Chunking动作分块提前推理、在线执行后端--inference.typertc或先用 ACT、Diffusion 这类轻量策略把流程跑通再换大模型。Linux 下设备文件打不开现象ls /dev/ttyACM*可见但打开报错Permission denied。原因当前用户不在 dialout 组里。处理sudo usermod -aG dialout $USER后重新登录再跑lerobot-find-port验证。周边生态与延伸HF Hub 社区数据集src/datasets/第三方硬件插件src/robots/LIBERO / MetaWorld 仿真基准src/envs/硬件接入文档docs/source/写在最后建议从 SO-100 文档起步先跑lerobot-find-port定位串口再按 docs/source/so100.mdx 配完电机用lerobot-record录一个 10 条 episode 的小数据集——有了这份数据后面的训练和部署都有东西可以验证。【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考