lerobot官网代码库:

https://github.com/huggingface/lerobot/tree/main

可参考资料:

https://wiki.seeedstudio.com/lerobot_so100m_new/

 lerobot官方代码库更新太快了,以下命令针对于2025年10月29日下载的代码调试

为什么官方给了还要自己整理呢,因为官方改动太快了,很多命令的修改没跟上,导致官方给的命令跑不起来,自己摸索挺费时间的,有些需要去扒代码才能找到正确的命令参数,所以把自己整理的分享出来供大家参考

命令对应的脚本基本都在 src/lerobot/scripts 路径下 可以对应看一下代码实现

目前持续更新中……

find robot:

$ lerobot-find-port

记录一下自己的主从臂的端口后面要用

follow  '/dev/ttyACM0'

leader  '/dev/ttyACM1'

find camera:

# opencv or realsense for Intel Realsense cameras

$ lerobot-find-cameras realsense 

$ lerobot-find-cameras opencv

授权:

$ sudo chmod 666 /dev/ttyACM0

$ sudo chmod 666 /dev/ttyACM1

or

$ sudo chmod 666 /dev/ttyACM*

Calibrate:

$ lerobot-calibrate \

--robot.type=so100_follower \

--robot.port=/dev/ttyACM0 \

# --robot.id=haribit_follower_arm # <- Give the robot a unique name 实际没有这个字段

$ lerobot-calibrate \

--teleop.type=so100_leader \

--teleop.port=/dev/ttyACM1 \ # <- The port of your robot

teleoperate:

$ lerobot-teleoperate \

--robot.type=so100_follower \

--robot.port=/dev/ttyACM0 \

--teleop.type=so100_leader \

--teleop.port=/dev/ttyACM1

带视频主从控制

# opencv 的参数  "/dev/video6"从find camera里的输出找

$ lerobot-teleoperate \

--robot.type=so101_follower \

--robot.port=/dev/ttyACM0 \

--robot.cameras="{ front: {type: opencv, index_or_path: "/dev/video6", width: 640, height: 480, fps: 30, fourcc: "MJPG"}}" \

--teleop.type=so101_leader \

--teleop.port=/dev/ttyACM1 \

--display_data=true

# 使用realsense调用相机的参数

$ lerobot-teleoperate \

--robot.type=so101_follower \

--robot.port=/dev/ttyACM0 \

--robot.cameras="{ front: {type: intelrealsense, serial_number_or_name: 348522070526, width: 640, height: 480, fps: 30}}" \

--teleop.type=so101_leader \

--teleop.port=/dev/ttyACM1 \

--display_data=true

record the dataset:

# 控制台输出 Recording episode 开始采数据 采集一条数据结束点击向右键-> 结束一个loop,或者等到设定的时间episode_time_s结束会自动结束一个loop

# 输出 Reset the environment 环境初始化,初始化完毕点击向右键或者等待设定的reset_time_s时间结束会自动结束这个阶段,之后可以看到进度条在储存数据

# 本条数据采集过程中发现数据质量不好可以点击向左键<-删除本条记录

$ lerobot-record \

--robot.type=so101_follower \

--robot.port=/dev/ttyACM0 \

--robot.cameras="{ front: {type: opencv, index_or_path: "/dev/video6", width: 640, height: 480, fps: 30, fourcc: "MJPG"}}" \

--teleop.type=so101_leader \

--teleop.port=/dev/ttyACM1 \

--display_data=true \

--dataset.repo_id=so100/classify \

--dataset.num_episodes=5 \

--dataset.single_task="Classify the items" \

--dataset.push_to_hub=false \

--dataset.episode_time_s=30 \

--dataset.reset_time_s=30

visualize dataset:

# 本地数据集

$ lerobot-dataset-viz \

--repo-id so100/classify \

--episode-index 0

resume recording the dataset:

# 在之前采集的数据集上继续采集数据

lerobot-record \

--robot.type=so101_follower \

--robot.port=/dev/ttyACM0 \

--robot.cameras="{ front: {type: opencv, index_or_path: "/dev/video6", width: 640, height: 480, fps: 30, fourcc: "MJPG"}}" \

--teleop.type=so101_leader \

--teleop.port=/dev/ttyACM1 \

--display_data=true \

--dataset.repo_id=so100/classify \

--dataset.num_episodes=5 \

--dataset.single_task="Classify the items" \

--dataset.push_to_hub=false \

--dataset.episode_time_s=40 \

--dataset.reset_time_s=30 \

--resume=true

模型训练:

lerobot训练act:


lerobot-train \
  --dataset.repo_id=so100/pnp\
  --policy.type=act \
  --output_dir=./outputs/train/act_your_dataset \
  --job_name=act_so100  \
  --policy.device=cuda \
  --wandb.enable=true \
  --policy.push_to_hub=false

lerobot训练pi0.5


python src/lerobot/scripts/lerobot_train.py\
    --dataset.repo_id=so100/pnp \
    --policy.type=pi05 \
    --output_dir=./outputs/pi05_so100 \
    --job_name=pi05_so100_classify \
    --policy.pretrained_path=lerobot/pi05_base \
    --policy.compile_model=true \
    --policy.gradient_checkpointing=true \
    --wandb.enable=true \
    --policy.dtype=bfloat16 \
    --steps=3000 \    #  总共训练的步数
    --policy.device=cuda \
    --batch_size=32  \
    --policy.push_to_hub=false

报错:
ValueError: Failed to instantiate processor step 'tokenizer_processor' with config: {'max_length': 200, 'task_key': 'task', 'padding_side': 'right', 'padding': 'max_length', 'truncation': True, 'tokenizer_name': 'google/paligemma-3b-pt-224'}. Error: You are trying to access a gated repo.
Make sure to have access to it at https://huggingface.co/google/paligemma-3b-pt-224.
401 Client Error. (Request ID: Root=1-69155b8c-1be0425b23925b043886a9e0;3f77abf3-0196-4498-aa8d-22e0d1887ca8)

Cannot access gated repo for url https://huggingface.co/google/paligemma-3b-pt-224/resolve/main/config.json.
Access to model google/paligemma-3b-pt-224 is restricted. You must have access to it and be authenticated to access it. Please log in.

---------------------------
解决方法终端登陆huggingface  $huggingface-cli login
输入huggingface登陆后生成的token

pi0.5在之前checkpoint之后继续训练,--policy.pretrained_path改为之前的训练出来的checkpoint路径:
python src/lerobot/scripts/lerobot_train.py\
    --dataset.repo_id=so100/classify \
    --policy.type=pi05 \
    --output_dir=./outputs/pi05_so100_classify1 \
    --job_name=pi05_so100_classify \
    --policy.pretrained_path=./outputs/pi05_so100_classify/checkpoints/003000/pretrained_model \
    --policy.compile_model=true \
    --policy.gradient_checkpointing=true \
    --wandb.enable=true \
    --policy.dtype=bfloat16 \
    --steps=10000 \
    --policy.device=cuda \
    --batch_size=32  \
    --policy.push_to_hub=false

训练smolvla:


lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=so100/classify \
  --batch_size=64 \
  --steps=100000 \
  --output_dir=./outputs/smolvla_so100_classify \
  --job_name=smolvla_so100_classify \
  --policy.device=cuda \
  --wandb.enable=true  \
  --policy.push_to_hub=false  \
  --rename_map='{"observation.images.front": "observation.images.camera2"}'

evaluation:

lerobot-record \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: "/dev/video6", width: 640, height: 480, fps: 30}}" \
  --display_data=true \
  --dataset.repo_id=so100/eval_act_so100_classify \
  --dataset.num_episodes=10 \
  --dataset.single_task="eval_act_so100_classify" \
  --policy.path="./outputs/train/act_your_dataset/checkpoints/100000/pretrained_model" \
  --dataset.episode_time_s=30 \
  --dataset.reset_time_s=20

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐