首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LeRobot 机械臂操作教程

LeRobot 机械臂操作教程

原创
作者头像
GPUS Lady
发布2025-07-14 07:43:37
发布2025-07-14 07:43:37
4550
举报
文章被收录于专栏:LeRobotLeRobot

本教程基于 Linux 环境编写,假设用户已完成环境配置、机械臂组装与校准工作。教程中将 Leader 称为主臂,Follower 称为从臂。

训练环境:Ubuntu 22.10,RTX 4060 TI (16G)

准备工作

由于 LeRobot 迭代速度较快,建议切换到教程编写时的版本:

代码语言:javascript
复制
git checkout d2645cb19fc521e5b117fe03d90a84f698d3d3f6

1. 遥控操作

完成主从臂校准后,可以通过以下脚本控制主臂遥控从臂,同时显示相机画面和电机信息:

代码语言:javascript
复制
python -m lerobot.teleoperate \
 --robot.type=so101_follower \
 --robot.port=/dev/ttyACM1 \
 --robot.id=follower \
 --robot.cameras="{ front: {type: opencv, index_or_path: /dev/video2, width: 640, height: 480, fps: 30}}" \
 --teleop.type=so101_leader \
 --teleop.port=/dev/ttyACM0 \
 --teleop.id=leader \
 --display_data=true

参数说明:

  • robot.idteleop.id:应与校准时提供的机械臂唯一 ID 一致,用于读取校准时保存的电机信息
  • robot.cameras:相机配置信息,可运行 python -m lerobot.find_cameras opencv 查找可用相机。支持多机位配置,通过字典键区分和记录不同相机

2. 数据收集

基本收集命令

代码语言:javascript
复制
python -m lerobot.record \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM1 \
  --robot.id=follower \
  --robot.cameras="{ front: {type: opencv, index_or_path: /dev/video2, width: 640, height: 480, fps: 30}}" \
  --teleop.type=so101_leader \
  --teleop.port=/dev/ttyACM0 \
  --teleop.id=leader \
  --display_data=true \
  --dataset.num_episodes=20 \
  --dataset.push_to_hub=False \
  --dataset.repo_id=${HF_USER}/record-test \
  --dataset.single_task="Grab the black cube"

数据存储位置

  • 默认存储路径:~/.cache/huggingface/lerobot/{repo-id}
  • 自定义存储:设置 HF_LEROBOT_HOME 环境变量,数据将存储在 HF_LEROBOT_HOME/repo_id 路径下

数据收集控制

收集过程中可通过键盘控制流程:

  • 右箭头 (→):录制阶段完成当前录制并进入恢复阶段;恢复阶段进入下一轮录制
  • 左箭头 (←):重新录制当前数据
  • ESC:完成当前录制并退出

注意:该脚本使用 pynput 监听按键,因此在 SSH 或 Wayland 下可能无法工作。详见:pynput 平台限制

恢复中断的收集

如果收集过程中出错,可在原命令基础上添加 --resume=true 参数恢复。

数据上传

手动上传数据到 HuggingFace:

代码语言:javascript
复制
huggingface-cli upload ${HF_USER}/record-test ~/.cache/huggingface/lerobot/{repo-id} --repo-type dataset

注意:如果不设置 --dataset.push_to_hub=False,收集完成时默认会自动上传数据。

3. 模型训练

基本训练命令

代码语言:javascript
复制
python -m lerobot.scripts.train \
  --dataset.repo_id=${HF_USER}/record-test \
  --policy.type=act \
  --output_dir=outputs/train/act_so101_test \
  --job_name=act_so101_test \
  --policy.device=cuda \
  --wandb.enable=false \
  --policy.repo_id=${HF_USER}/my_policy \
  --policy.push_to_hub=false \
  --steps 50000 \
  --batch_size 32 \
  --save_freq 10000

训练脚本会从 HF_LEROBOT_HOME/dataset.repo_id 路径下读取数据进行训练。

恢复训练

从最新检查点恢复训练:

代码语言:javascript
复制
python -m lerobot.scripts.train \
  --config_path=outputs/train/act_so101_test/checkpoints/last/pretrained_model/train_config.json \
  --resume=true

4. 模型推理与评估

使用训练好的模型进行推理,同时记录评估片段:

代码语言:javascript
复制
python -m lerobot.record \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM1 \
  --robot.cameras="{ front: {type: opencv, index_or_path: /dev/video2, width: 640, height: 480, fps: 30}}" \
  --robot.id=follower \
  --display_data=true \
  --dataset.repo_id=${HF_USER}/eval_so101 \
  --dataset.single_task="Put lego brick into the transparent box" \
  --policy.path=outputs/train/act_so101_test/checkpoints/last/pretrained_model/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 1. 遥控操作
    • 参数说明:
  • 2. 数据收集
    • 基本收集命令
    • 数据存储位置
    • 数据收集控制
    • 恢复中断的收集
    • 数据上传
  • 3. 模型训练
    • 基本训练命令
    • 恢复训练
  • 4. 模型推理与评估
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档