(六)lerobot开源项目的模型训练&模型测试(操作记录)

目录

《项目简介》

《环境配置》

一、​B站视频参考(推荐)

二、模型训练(在线采集数据)

1、前提准备

(1)激活环境 

(2)登录huggingface 

2、设置硬件权限并进行测试

3、采集数据(新的采集命令、新的数据集ID)

4、加载huggingface数据进行模型训练

三、模型测试

1、前提准备

(1)激活环境 

(2)登录huggingface  

2、设置硬件权限并进行测试

3、加载权重进行模型测试 

四、遇到问题(项目更新带来的一系列问题)

1、问题1:采集数据时,提示缺少lerobot

2、问题2:模型训练时,训练命令错误

3、问题3:模型训练时,提示数据不兼容

4、问题4:模型测试时,报错assert torch.cuda.is_available

5、问题5:模型测试时,模型路径报错


<<<<<项目环境建议:纯Linux或双系统的Linux环境,慎用虚拟机的Linux环境>>>>>

《项目简介》

项目地址:GitHub - huggingface/lerobot: 🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning

进入 full tutorial for SO-100,按照流程操作

​​

《环境配置》

git clone https://github.com/huggingface/lerobot.git ~/lerobot
conda create -y -n lerobot python=3.10
conda activate lerobot
cd lerobot && pip install -e ".[feetech]"
conda install -y -c conda-forge ffmpeg
pip uninstall -y opencv-python
conda install -y -c conda-forge "opencv>=4.10.0"

 注:项目更新后,原项目会报错缺少lerobot的模块,需重新更新环境

cd lerobot && pip install -e .
sudo apt-get install git-lfs
git lfs install

一、​B站视频参考(推荐)

强力推荐UP主:黑狗木

lerobot aloha 采集数据并且训练icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1aSUFYJE4P/?spm_id_from=333.999.0.0&vd_source=27c7aca66453fbf427614cc52d0f156alerobot aloha 如何用AutoDL平台租用服务器进行训练数据icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1C3UxY3Eq6/?spm_id_from=333.999.0.0&vd_source=27c7aca66453fbf427614cc52d0f156a

二、模型训练(在线采集数据)

1、前提准备

(1)激活环境 

conda activate lerobot
cd lerobot

(2)登录huggingface 

开启clash,再设置linux命令行代理

解决Linux访问HuggingFace的问题(操作记录)

解决Linux<云服务器>访问HuggingFace的问题(操作记录)

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

 用个人申请的Access Tokens代替${HUGGINGFACE_TOKEN}

huggingface-cli login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential
HF_USER=$(huggingface-cli whoami | head -n 1)
echo $HF_USER

2、设置硬件权限并进行测试

sudo chmod 777 /dev/ttyACM0
sudo chmod 777 /dev/ttyACM1
python lerobot/scripts/control_robot.py teleoperate \
    --robot-path lerobot/configs/robot/so100.yaml

测试硬件连接没问题就可以关掉 control_robot.py

3、采集数据(新的采集命令、新的数据集ID)

注:需将本地数据集上传1次,保证huggingface新建有该数据集ID

--resume 0表示创建一个新的空数据集或加载已有的数据集,重新录制

--resume 1表示加载现有的数据集,在现有数据集上继续录制。现有的数据集来源有两处,local_files_only 0会从远程仓库获取数据集,local_files_only 1只会使用本地数据集

--push-to-hub 0表示数据不上传

--push-to-hub 1表示数据上传

首先,新建一个叫“My1208_test”的本地数据集,并将该数据集上传到huggingface(第一次操作即可)

python lerobot/scripts/control_robot.py record \
    --robot-path lerobot/configs/robot/so100.yaml \
    --fps 30 \
    --root data \
    --repo-id ${HF_USER}/My1208_test \
    --tags so100 tutorial \
    --warmup-time-s 5 \
    --episode-time-s 40 \
    --reset-time-s 10 \
    --num-episodes 1 \
    --single-task "Pick up the white toy tiger and place it into the plate." \
    --resume 0 \
    --push-to-hub 1

 然后,在现有的本地数据集上继续录制,并将数据集也同步上传到huggingface(后续操作)

python lerobot/scripts/control_robot.py record \
    --robot-path lerobot/configs/robot/so100.yaml \
    --fps 30 \
    --root data \
    --repo-id ${HF_USER}/My1208_test \
    --tags so100 tutorial \
    --warmup-time-s 5 \
    --episode-time-s 40 \
    --reset-time-s 10 \
    --num-episodes 4 \
    --single-task "Pick up the white toy tiger and place it into the plate." \
    --resume 1 \
    --local-files-only 1 \
    --push-to-hub 1

至此,就在huggingface上新建了一个数据集My1208_test,且数据集存有5组数据 

4、加载huggingface数据进行模型训练

export HYDRA_FULL_ERROR=1
python lerobot/scripts/train.py   dataset_repo_id=${HF_USER}/My1208_test   policy=act_so100_real   env=so100_real   hydra.run.dir=outputs/train/act_so100_test   hydra.job.name=act_so100_test   device=cuda   wandb.enable=false

模型训练权重保存在outputs/train/act_so100_test 

三、模型测试

1、前提准备

(1)激活环境 

conda activate lerobot
cd lerobot

(2)登录huggingface  

 开启clash,再设置linux命令行代理

解决Linux访问HuggingFace的问题(操作记录)

解决Linux<云服务器>访问HuggingFace的问题(操作记录)

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
huggingface-cli login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential
HF_USER=$(huggingface-cli whoami | head -n 1)
echo $HF_USER

2、设置硬件权限并进行测试

sudo chmod 777 /dev/ttyACM0
sudo chmod 777 /dev/ttyACM1
python lerobot/scripts/control_robot.py teleoperate \
    --robot-path lerobot/configs/robot/so100.yaml

测试硬件连接没问题就可以关掉 control_robot.py 

3、加载权重进行模型测试 

模型训练完毕后,就会在outputs/train/act_so100_test 得到checkpoints文件

模型测试的代码与之前用于记录训练数据集的命令几乎相同,有两处不同: 

1、有一个额外的--pretrained-policy-name-or-path参数,以指示策略检查点路径( --pretrained-policy-name-or-path outputs/train/eval_so100_test/checkpoints/last/pretrained_model )

2、数据集名称以 eval 开头,反映正在运行推理( --repo-id ${HF_USER}/eval_act_so100_test )

 首先,新建一个叫“eval_act_so100_test”的本地推理数据集,并将该数据集上传到huggingface(第一次操作即可)

python lerobot/scripts/control_robot.py record \
  --robot-path lerobot/configs/robot/so100.yaml \
  --fps 30 \
  --repo-id ${HF_USER}/eval_act_so100_test \
  --tags so100 tutorial eval \
  --warmup-time-s 5 \
  --episode-time-s 40 \
  --reset-time-s 10 \
  --num-episodes 1 \
  --single-task "Pick up the white toy tiger and place it into the plate." \
  --resume 0 \
  --push-to-hub 1 \
  --pretrained-policy-name-or-path outputs/train/act_so100_test/checkpoints/last/pretrained_model

然后,在现有的本地推理数据集上继续录制,并将数据集也同步上传到huggingface(后续操作)

python lerobot/scripts/control_robot.py record \
  --robot-path lerobot/configs/robot/so100.yaml \
  --fps 30 \
  --repo-id ${HF_USER}/eval_act_so100_test \
  --tags so100 tutorial eval \
  --warmup-time-s 5 \
  --episode-time-s 40 \
  --reset-time-s 10 \
  --num-episodes 4 \
  --single-task "Pick up the white toy tiger and place it into the plate." \
  --resume 1 \
  --local-files-only 1 \
  --push-to-hub 1 \
  --pretrained-policy-name-or-path outputs/train/act_so100_test/checkpoints/last/pretrained_model

至此,就在huggingface上新建了一个推理数据集eval_act_so100_test,且数据集存有5组数据 

注:last不可用的话,可用checkpoints里的其他文件来替代。  --pretrained-policy-name-or-path outputs/train/act_so100_test/checkpoints/080000/pretrained_model 

四、遇到问题(项目更新带来的一系列问题)

1、问题1:采集数据时,提示缺少lerobot

  • 问题:旧项目的旧采集方式会报错

  • 解决:重新更新环境
pip install -e .

2、问题2:模型训练时,训练命令错误

  • 问题:复制粘贴了项目的原代码指令,执行时命令不完整

  • 解决:重新编排格式,正确命令格式见《3、加载huggingface数据进行模型训练》

3、问题3:模型训练时,提示数据不兼容

  • 问题:模型训练,数据不兼容,照着提示来修改,还是没有解决

  • 解决:重新下载新的项目,重新用新的采集指令,重新创建新的数据集 (不可新旧数据混用)

4、问题4:模型测试时,报错assert torch.cuda.is_available

  •  问题:Windows虚拟机VMware创建的Linux环境,无法使用显卡,导致报错

  • 解决:换系统,采用纯Linux系统或双系统的Linux即可解决该问题,慎用虚拟机Linux环境

5、问题5:模型测试时,模型路径报错

  •  问题:last已断开,导致报错

 

  • 解决:直接用具体文件代替,命令中的last可用checkpoints里的其他文件来替代。--pretrained-policy-name-or-path outputs/train/act_so100_test/checkpoints/080000/pretrained_model

### Windows 和 Lerobot 技术信息 对于希望了解有关 Windows 平台上的勒机器人 (Lerobot) 的技术文档、教程以及安装配置指南的用户来说,有多种资源可以提供帮助。 #### 获取官方技术支持资料 微软官方网站提供了丰富的开发者和技术支持资源。通过访问 Microsoft Docs 可以找到关于操作系统集成开发环境以及其他工具的相关说明[^1]。然而需要注意的是,&ldquo;Lerobot&rdquo;并非是一个广泛认可的标准术语,在标准的技术文献中可能不会直接提及此名称。因此建议确认具体的产品名或项目背景以便更精准定位所需的信息源。 #### 寻找社区贡献的内容 除了官方渠道外,GitHub 或其他开源平台也是寻找特定应用如勒机器人的良好去处。许多个人开发者会分享自己的经验心得,包括但不限于详细的设置向导、常见问题解答等。这些非正式但实用的文章往往能补充官方文档未尽之处[^2]。 #### 实际操作指导 假设这里提到的&ldquo;Lerobot&rdquo;是指某种基于Windows运行的服务端软件,则一般而言其基本的操作流程如下: - **下载**:前往项目的发布页面获取最新版本的应用程序包。 - **安装**:按照提示完成必要的系统准备和依赖项部署工作;部分情况下可以直接执行可执行文件(.exe),而对于需要编译源码的情况则要预先安装好相应的构建工具链。 - **配置**:编辑应用程序自带的配置文件来调整行为参数,比如监听地址、日志级别等等。这通常涉及到修改JSON/XML/YAML格式的文字记录。 ```json { &quot;server&quot;: { &quot;host&quot;: &quot;0.0.0.0&quot;, &quot;port&quot;: 8080, ... } } ``` - **启动服务并验证状态**:利用命令行界面或其他图形化管理面板开启该进程,并检查是否正常运作无误报错。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值