当前位置: 首页 > news >正文

LeRobot 项目部署运行逻辑(二)—— Mobile Aloha 真机部署

LeRobot 在开源项目中详细说明了部署流程,所以首先看一下开源的内容,然后再逐步拆解

首先,LeRobot 开源的硬件是配全部在 examples 文件夹中

包括了 Stretch 3、Aloha and Aloha 2 stationary、SO-100、LeKiwi、Moss v1 等机器人

恰好实验室有一套 mobile aloha,对于其他的硬件部署,基本原理流程是一样的

由于实验室中的 mobile aloha 硬件配置不太一样,所以分多篇逐步梳理

本教程首先综述如何基于 LeRobot 使用 Aloha and Aloha 2 stationary

目录

1 硬件配置

2 环境安装

3 遥操作

4 数据采集

5 数据集可视化

6 动作回放

7 策略训练

8 策略评估

9 进阶指导


1 硬件配置

按照 documentation from Trossen Robotics 官方文档完成硬件组装,并将4个机械臂与4个摄像头连接至计算机

2 环境安装

在计算机上执行以下步骤:

1. Install Miniconda:

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash

2. 重启终端或执行 source ~/.bashrc

3. 创建并激活 Lerobot 专用 conda 环境:

conda create -y -n lerobot python=3.10 && conda activate lerobot

4. ​​​克隆LeRobot仓库:

git clone https://github.com/huggingface/lerobot.git ~/lerobot

5. 安装FFmpeg(Miniconda 环境):

conda install ffmpeg -c conda-forge

6. 安装 LeRobot 及 ALOHA 依赖(Dynamixel 电机 + Intel RealSense 摄像头):

cd ~/lerobot && pip install -e ".[dynamixel, intelrealsense]"

3 遥操作

*/!\ 安全须知 /!* 遥操作是通过手动操作主臂来控制从臂运动,请注意:

  1. 确保主从臂初始位置一致,避免从臂运动过快

  2. 代码默认使用预设校准文件(位于.cache/calibration/aloha_default)。更换电机时请严格遵循Trossen Robotics 的校准流程

执行以下命令开始安全模式操控:

python lerobot/scripts/control_robot.py \--robot.type=aloha \--robot.max_relative_target=5 \--control.type=teleoperate

NOTE:--control.display_data=true 可启用 rerun 实时数据可视化

参数 --robot.max_relative_target=5 通过限制运动幅度提升安全性(但会降低操作流畅度)。熟练后可通过 -robot.max_relative_target=null 取消限制:

python lerobot/scripts/control_robot.py \--robot.type=aloha \--robot.max_relative_target=null \--control.type=teleoperate

4 数据采集

熟悉操控后,可开始录制 Aloha 数据集:

若使用 Hugging Face Hub 上传数据集的功能,需配置写入权限,可从 Hugging Face settings 生成:

huggingface-cli login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential

将 Hugging Face 仓库名称存储到一个变量中,以便运行下面的命令:

HF_USER=$(huggingface-cli whoami | head -n 1)
echo $HF_USER

录制2个 episode 片段并上传:

python lerobot/scripts/control_robot.py \--robot.type=aloha \--robot.max_relative_target=null \--control.type=record \--control.fps=30 \--control.single_task="Grasp a lego block and put it in the bin." \--control.repo_id=${HF_USER}/aloha_test \--control.tags='["tutorial"]' \--control.warmup_time_s=5 \--control.episode_time_s=30 \--control.reset_time_s=30 \--control.num_episodes=2 \--control.push_to_hub=true

5 数据集可视化

通过 --control.push_to_hub=true 可以上传数据集,并通过仓库 id visualize your dataset online:

echo ${HF_USER}/aloha_test

即使没有上传(--control.push_to_hub=false),也可以本地数据集可视化:

python lerobot/scripts/visualize_dataset_html.py \--repo-id ${HF_USER}/aloha_test

6 动作回放

*/!\ 安全须知 /!*

回放功能将自动执行给定数据集 episode 中记录的一系列动作(例如电机的目标位置),请确保:

  • 机械臂初始位置与录制时相近

  • 建议首次添加 --robot.max_relative_target=5 限制运动幅度,以免使跟随机械臂移动过快而超过预期目标位置

回放第一个 episode:

python lerobot/scripts/control_robot.py \--robot.type=aloha \--robot.max_relative_target=null \--control.type=replay \--control.fps=30 \--control.repo_id=${HF_USER}/aloha_test \--control.episode=0

7 策略训练

要训练一个用于控制机器人行为的策略,使用脚本 python lerobot/scripts/train.py。该脚本需要传入几个参数。使用以下命令训练控制策略(关键参数说明):

python lerobot/scripts/train.py \--dataset.repo_id=${HF_USER}/aloha_test \--policy.type=act \--output_dir=outputs/train/act_aloha_test \--job_name=act_aloha_test \--policy.device=cuda \--wandb.enable=true

参数说明:

  • 通过 --dataset.repo_id=${HF_USER}/aloha_test 指定数据集

  • 通过 policy.type=act 指定策略类型,此选项将加载 configuration_act.py 中的配置。该策略会自动适应数据集中保存的机器人各电机状态、动作以及摄像头数量(e.g. 笔记本和手机)

  • 使用 policy.device=cuda 使用 Nvidia GPU 进行训练;如果在 Apple Silicon 平台上训练,可以使用 policy.device=mps

  • 参数 wandb.enable=true 用于启用 Weights and Biases 进行训练日志的可视化(请确保已执行 wandb login

更多 train 信息请参考之前的教程:examples/4_train_policy_with_script.md
训练过程可能需要几个小时,生成的检查点会保存在 outputs/train/act_aloha_test/checkpoints

8 策略评估

你可以使用 lerobot/scripts/control_robot.py 中的 record 功能,不过需要指定一个 policy checkpoint 作为输入。示例录制10个评估 episodes:

python lerobot/scripts/control_robot.py \--robot.type=aloha \--control.type=record \--control.fps=30 \--control.single_task="Grasp a lego block and put it in the bin." \--control.repo_id=${HF_USER}/eval_act_aloha_test \--control.tags='["tutorial"]' \--control.warmup_time_s=5 \--control.episode_time_s=30 \--control.reset_time_s=30 \--control.num_episodes=10 \--control.push_to_hub=true \--control.policy.path=outputs/train/act_aloha_test/checkpoints/last/pretrained_model \--control.num_image_writer_processes=1

和之前记录训练数据集时的命令几乎相同,主要有两处不同:

  1. 新增加了参数 --control.policy.path,该参数指定了 policy checkpoint 路径(例如 outputs/train/eval_act_aloha_test/checkpoints/last/pretrained_model)。如果已将模型检查点上传到 Hub,也可以直接使用模型仓库路径(如 ${HF_USER}/act_aloha_test)。

  2. 数据集的仓库名称变成了以 eval 开头(e.g. ${HF_USER}/eval_act_aloha_test),表示在进行推理或评估操作

  3. 参数 --control.num_image_writer_processes=1 表示使用专门的进程写入来自 4 个摄像头的图像到磁盘,可以达到稳定的 30 fps 评估速率。可以根据需求调整该值 --control.num_image_writer_processes

9 进阶指导

更详细说明可以参考 previous tutorial
更多帮助,可以登陆 Discord in the channel #aloha-arm

http://www.xdnf.cn/news/48979.html

相关文章:

  • Vue3 打印网页内容
  • 通过Dify快速搭建本地AI智能体开发平台
  • 高边开关和低边开关的区别
  • 前端工程化之自动化部署
  • MVCC介绍
  • 《AI大模型应知应会100篇》第28篇:大模型在文本创作中的应用技巧
  • Matlab FCM模糊聚类
  • AI 编程工具——使用cursor创建一个mcp服务,并在cursor中调用
  • 使用LSTM动态调整SIMPLE算法松弛因子的CFD仿真训练程序
  • 使用tshark命令解析tcpdump抓取的数据包
  • 2025年4月19日
  • 【第四十一周】文献阅读:HippoRAG:受神经生物学启发的大型语言模型长期记忆机制
  • STM32 CubeMx下载及安装(一)
  • 【leetcode100】一和零
  • HarmonyOS-ArkUI-动画分类简介
  • javaSE.链表
  • 前端知识深度学习
  • [论文阅读]Making Retrieval-Augmented Language Models Robust to Irrelevant Context
  • ClickHouse简介
  • TCP常见知识点整理
  • 【C语言】char unsigned char signed char
  • Centos7 ftp、sftp无法使用ftp连接虚拟机
  • vue3 excel文件导入
  • MAC-从es中抽取数据存入表中怎么实现
  • C语言状态字与库函数详解:概念辨析与应用实践
  • 2025-2030:视频联网平台的六大技术演进趋势
  • Java开发软件
  • 每日算法-250420
  • Java中的锁
  • 【C++】 —— 笔试刷题day_21