ARTICLE DETAIL

建站实战干货

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

LeRobot实战:从SO100搭建到ACT策略复现全流程解析

2026/8/3 9:49:59 拓冰建站 浏览量
LeRobot实战:从SO100搭建到ACT策略复现全流程解析

1. SO100机械臂硬件搭建全攻略

第一次接触LeRobot机械臂时,我被SO100模块化设计惊艳到了。这种开箱即用的机械臂套件特别适合像我这样的机器人爱好者,不需要从零开始设计机械结构,又能完整体验机器人学习全流程。不过实际组装过程中还是踩了不少坑,这里把经验完整分享给大家。

硬件准备阶段最容易出问题的就是3D打印件。虽然官方提供了STL文件,但不同打印机的公差会导致装配困难。我强烈建议准备以下工具包:

  • 小型锉刀套装(处理打印件毛边)
  • M3规格的各种长度螺丝(原装配件可能不够)
  • 带磁性的精密螺丝刀(狭小空间操作必备)
  • 数字游标卡尺(验证关键尺寸)

电机配置是第一个技术难点。在Windows系统下,需要先运行find_motors_bus_port.py定位串口。这里有个隐藏技巧:断开USB线后一定要等待5秒再敲空格,否则可能漏检设备。配置六个舵机时,波特率必须统一设为1000000,ID则按1-6顺序递增。如果遇到电机抖动问题,很可能是电源功率不足,建议使用12V/5A以上的稳压电源。

主从臂安装有个关键差异点:主臂的顶部齿轮需要拆除。这是因为遥操作模式下主臂不需要动力输出,拆除后能减少齿轮磨损。安装时切记先用手转动各关节测试顺畅度,我遇到过谐波减速器卡死的情况,后来发现是轴向预紧力没调好。

2. 机械臂配准与遥操作配置

完成硬件组装后,配准环节直接决定后续操作精度。校准脚本会引导机械臂完成三个关键位姿:

  1. Zero Position(所有关节归零)
  2. Rotated Position(各轴90度位置)
  3. Rest Position(工作待机姿态)

实测发现最容易出错的是舵机朝向。SO100的第六轴舵机安装方向与其他轴相反,如果校准时报"Joint limit exceeded"错误,大概率是这个问题。建议准备手机水平仪APP,确保每个关节的物理角度与软件显示一致。

遥操作测试时有个实用技巧:先用--control.type=test模式检查各轴响应。这个模式会依次驱动单个关节运动,比直接全轴操作更容易发现问题。我遇到过主从臂运动方向相反的情况,后来发现是config.py里的invert_axis参数需要调整。

摄像头配置直接影响后续数据集质量。经过多次测试,推荐双摄像头布局方案:

  • 摄像头A:45度俯视角,覆盖工作台全域
  • 摄像头B:侧视特写,聚焦夹爪动作 在config.py中需要正确设置camera_resolutionfps,建议先用OpenCV测试帧率,避免后续录制掉帧。

3. 高效数据集采集实战

数据集采集是机器人学习最耗时的环节。经过多次迭代,我总结出高效录制三原则:

  1. 任务描述要具体(如"抓取红色乐高块放入蓝色盒子")
  2. 环境背景保持一致性
  3. 包含10%的失败操作样本

Hugging Face登录环节容易遇到SSL证书问题。如果huggingface-cli报错,可以尝试先执行:

git config --global http.sslVerify false

录制命令中的几个关键参数需要特别注意:

  • warmup_time_s:建议设为5秒以上,避免机械臂刚启动时的抖动
  • reset_time_s:根据任务复杂度调整,简单抓取30秒足够
  • single_task:描述要包含物体特征和动作目标

遇到视频编码问题时,除了安装x264,还需要检查FFmpeg环境变量。在conda环境下建议用:

conda install -c conda-forge ffmpeg=4.3.1

4. ACT策略训练技巧

在AutoDL服务器训练时,三个配置技巧能大幅提升效率:

  1. 开启学术加速后,在~/.bashrc添加:
alias hf='HF_ENDPOINT=https://hf-mirror.com'
  1. 使用wandb监控时,设置--wandb.tags=so100方便分类
  2. 训练中断后,添加--resume_from_checkpoint=last继续训练

ACT策略的超参数调优很关键,推荐初始配置:

policy: learning_rate: 3e-4 num_epochs: 200 batch_size: 32 hidden_dim: 256 mlp_depth: 3

训练过程常见问题排查:

  • Loss不下降:检查数据集是否包含足够多的动作变化
  • GPU内存不足:减小batch_size或降低图像分辨率
  • 过拟合:添加weight_decay=0.01正则化

5. 策略评估与部署要点

本地评估时最容易忽略的是环境一致性。建议:

  1. 保持与训练时相同的照明条件
  2. 使用相同型号的摄像头
  3. 固定机械臂底座防止晃动

评估命令中的几个实用参数:

  • --control.headless=true无图像模式提升性能
  • --control.debug_plots=true实时显示决策热图
  • --control.max_retries=3自动重试失败任务

遇到策略执行卡顿时,可以尝试量化模型:

from transformers import AutoModel model = AutoModel.from_pretrained("your_model").to('cuda') model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)

最后提醒大家定期检查机械臂的螺丝紧固情况和线材磨损度,我在连续运行两周后发现第4轴编码器线有断裂迹象,及时更换避免了数据漂移问题。