在NVIDIA Jetson上实现端到端机器人学习:HuggingFace LeRobot实战指南

在NVIDIA Jetson上实现端到端机器人学习:HuggingFace LeRobot实战指南

在NVIDIA Jetson上实现端到端机器人学习:HuggingFace LeRobot实战指南

在这里插入图片描述

引言

让我们一起在NVIDIA Jetson上运行HuggingFace的LeRobot,训练基于Transformer的动作扩散策略和ACT策略。这些模型从视觉输入和先前的轨迹(通常在遥操作或模拟中收集)中学习预测特定任务的动作。

本教程将详细介绍如何在Jetson设备上为真实世界的机器人(以低成本的Koch v1.1为例)设置完整的端到端学习流程,从硬件配置、数据收集到模型训练和评估。

环境与硬件要求

所需设备

  1. Jetson设备
    • Jetson AGX Orin (64GB)
    • Jetson AGX Orin (32GB)
    • Jetson Orin NX (16GB)
    • Jetson Orin Nano (8GB) ⚠️ (内存可能受限)
  2. JetPack版本
    • JetPack 6 GA (L4T r36.3)
    • JetPack 6.1 (L4T r36.4)
  3. 存储:强烈推荐使用NVMe SSD
    • lerobot容器镜像需要16.5GB
    • 模型和数据集需要>2GB

基础设置:克隆并设置jetson-containers

# 克隆仓库git clone https://github.com/dusty-nv/jetson-containers # 运行安装脚本bash jetson-containers/install.sh 

真实机器人工作流程:容器启动前

本节将指导您在Jetson上完成LeRobot官方示例《真实世界机器人入门》的全部流程。

💡 提示: 建议在显示器连接模式下操作Jetson。lerobot设计用于显示摄像头视图窗口并在捕获数据集时播放TTS音频,因此连接显示器和扬声器会更方便。

a. 检查jetson-containers目录位置

由于lerobot工作流会产生大量数据,请确保您的jetson-containers目录位于SSD上,而不是eMMC或microSD卡。

# 如果目录位置不正确,使用rsync迁移rsync -aHAX /home/jetson/jetson-containers/ /ssd/jetson-containers/ # 重新运行安装程序bash /ssd/jetson-containers/install.sh 

b. 在主机上创建lerobot目录

为了使数据持久化,我们将在主机上创建lerobot目录并挂载到容器中。

# 进入jetson-containers目录cd jetson-containers # 克隆lerobot目录到data文件夹下 ./packages/robots/lerobot/clone_lerobot_dir_under_data.sh # 复制覆盖文件 ./packages/robots/lerobot/copy_overlay_files_in_data_lerobot.sh 

c. PulseAudio音频设置

LeRobot的数据捕获流程使用Speech Dispatcher通过espeak TTS提供音频提示。我们需要配置PulseAudio以允许root用户访问socket文件。

重启PulseAudio服务:

pulseaudio --kill pulseaudio --start 

找到加载module-native-protocol-unix的部分,并添加auth-anonymous=1

### Load several protocols .ifexists module-esound-protocol-unix.so load-module module-esound-protocol-unix auth-anonymous=1 .endif 

编辑/etc/pulse/default.pa

sudovi /etc/pulse/default.pa 

d. 为ACM设备设置udev规则

为了让程序能以唯一的名称找到leader和follower机械臂,我们设置udev规则。

  • /dev/ttyACM_kochleader: Leader arm
  • /dev/ttyACM_kochfollower: Follower arm

对follower臂重复此过程,然后将规则文件复制到/etc/udev/rules.d/并重启Jetson。

sudocp ./99-usb-serial.rules /etc/udev/rules.d/ sudoreboot

编辑99-usb-serial.rules文件,填入序列号:

SUBSYSTEM=="tty", ATTRS{idVendor}=="2f5d", ATTRS{idProduct}=="2202", ATTRS{serial}=="BA98C8C350304A46462E3120FF121B06", SYMLINK+="ttyACM_kochleader" SUBSYSTEM=="tty", ATTRS{idVendor}=="2f5d", ATTRS{idProduct}=="2202", ATTRS{serial}=="<YOUR_FOLLOWER_ARM_SERIAL>", SYMLINK+="ttyACM_kochfollower" 

仅连接leader臂,记录其序列号:

ll /dev/serial/by-id/ # 输出示例: lrwxrwxrwx 1 root root 13 Sep 24 13:07 usb-ROBOTIS_OpenRB-150_BA98C8C350304A46462E3120FF121B06-if00 -> ../../ttyACM1

e. 增加交换文件大小

为了防止在训练ACT模型时内存不足,建议增加交换空间。

# 增加8GB交换空间 swapoff -a -v sudorm /swfile sudo systemctl disable nvzramconfig sudo fallocate -l 8G /ssd/8GB.swap sudochmod600 /ssd/8GB.swap sudomkswap /ssd/8GB.swap sudosh -c 'echo "/ssd/8GB.swap swap swap defaults 0 0" >> /etc/fstab'sudoreboot

f. 启动lerobot容器

# 进入jetson-containers目录cd jetson-containers # 启动容器,并将主机上的lerobot目录挂载进去 ./run.sh \ -v ${PWD}/data/lerobot/:/opt/lerobot/ \$(./autotag lerobot)

真实机器人工作流程:容器内操作

💡 JupyterLab提示: lerobot容器启动后,JupyterLab服务也会启动。您可以通过http://localhost:8888/访问,其中包含与官方教程各部分对应的notebooks。

1. 组装Koch v1.1机械臂

您可以从ROBOTIS订购Koch v1.1套件(注意:不包含3D打印部件)。

2. 配置电机、校准机械臂、进行遥操作

请跟随Jupyter notebook 7-2_real-robot_configure-motors.ipynb中的步骤操作。

3. 记录并可视化您的数据集

💡 Bash历史提示: 在容器的控制台中,您可以按Up键滚动浏览预注册的常用命令。
# 登录wandb wandb login # 设置HuggingFace用户名exportHF_USER=<your_username># 运行数据记录脚本 python lerobot/scripts/control_robot.py record \ --robot-path lerobot/configs/robot/koch.yaml \ --fps 30\ --root data \ --repo-id ${HF_USER}/koch_test_$(date +%Y%m%d_%H%M%S)\ --tags tutorial \ --warmup-time-s 5\ --episode-time-s 30\ --reset-time-s 30\ --num-episodes 10

4. 在您的数据上训练一个策略

# 登录wandb wandb login # 运行训练脚本DATA_DIR=data python lerobot/scripts/train.py \dataset_repo_id=${HF_USER}/koch_test \policy=act_koch_real \env=koch_real \ hydra.run.dir=outputs/train/act_koch_test \ hydra.job.name=act_koch_test \device=cuda \ wandb.enable=true 

5. 评估您的策略

# 运行评估脚本,-p参数指向训练好的模型 python lerobot/scripts/control_robot.py record \ --robot-path lerobot/configs/robot/koch.yaml \ --fps 30\ --root data \ --repo-id ${HF_USER}/eval_koch_test_01 \ --tags tutorial eval\ --warmup-time-s 5\ --episode-time-s 30\ --reset-time-s 30\ --num-episodes 10\ -p outputs/train/act_koch_test/checkpoints/last/pretrained_model \ --run-compute-stats 0# 可视化评估结果 python lerobot/scripts/visualize_dataset.py \ --root data \ --repo-id ${HF_USER}/eval_koch_test 

基础演练(无需真实机器人)

可视化数据集

LeRobot使用rerun.io进行可视化。

# 在主机上安装并运行rerun pip3 install rerun-sdk rerun # 在容器中运行可视化脚本 jetson-containers run -w /opt/lerobot $(autotag lerobot)\ python3 lerobot/scripts/visualize_dataset.py \ --repo-id lerobot/pusht \ --episode-index 0

评估预训练的扩散策略

此命令将下载并在PushT环境上运行一个预训练的扩散模型。

jetson-containers run -w /opt/lerobot $(autotag lerobot)\ python3 lerobot/scripts/eval.py \ -p lerobot/diffusion_pusht \ eval.n_episodes=10\ eval.batch_size=10

训练您自己的ACT策略

接下来,在Aloha操作环境上训练ACT策略。

jetson-containers run -w /opt/lerobot $(autotag lerobot)\ python3 lerobot/scripts/train.py \policy=act \env=aloha \ env.task=AlohaInsertion-v0 \dataset_repo_id=lerobot/aloha_sim_insertion_human 

结论

本教程展示了在NVIDIA Jetson上使用LeRobot进行端到端机器人学习的完整流程。从硬件设置到数据收集、训练和评估,开发者可以利用Jetson强大的计算能力,在边缘设备上快速迭代和部署机器人学习模型。无论是使用低成本的Koch v1.1进行真实世界实验,还是在模拟环境中进行快速验证,LeRobot都提供了一套强大而灵活的工具。

Read more

前端编程三剑客HTML、CSS、JavaScript 三者的关系详解

前端编程三剑客HTML、CSS、JavaScript 三者的关系详解

作为程序员,如果你是想单纯学习HTML,JavaScript或者CSS,其实它们是一家的三兄弟。你了解 HTML、CSS、JavaScript三者的关系吗,我们可以用“网页的三层架构”来通俗理解,三者分工明确、协同工作,共同构建出完整且交互丰富的网页。         精美的网页如果比作是一栋功能完备的房屋,那么 HTML 就是这栋房子坚实的砖混框架与墙体结构,它划定了房间的格局、门窗的位置,是房屋能立起来的基础骨架;CSS 是房屋的装修装饰 —— 从墙面的乳胶漆、地板的材质,到家具的风格、软装的搭配,让房屋拥有美观的样貌和舒适的视觉体验;而 JavaScript,就是让这栋房屋真正 “活” 起来的水电系统、智能设备与安防设施,是控制灯光的开关、调节温度的空调、感应开合的门窗,让房屋不再是冰冷的建筑,而是能响应需求、具备交互功能的宜居空间。         下面从核心定位、分工对比、协同关系三个维度详细讲解。         文章最后,举例说明了三者结合实现一个表格的功能,你能分清程序中哪个部分是CSS吗? 一、三者定位 把网页比作一座“房

Axum: Rust 好用的 Web 框架

Axum: Rust 好用的 Web 框架

Axum 是 Rust 生态中基于 Tokio 异步运行时和 Tower 中间件体系打造的高性能 Web 框架,以“类型安全、无宏入侵、轻量高效”为核心优势,广泛应用于云原生、微服务、API 网关等场景。它摒弃了传统 Web 框架的宏魔法,完全依赖 Rust 的类型系统实现路由匹配、请求解析、响应处理,兼顾了开发效率与运行性能。 本文将从环境搭建、核心概念、路由设计、请求处理、中间件开发到生产级实战,全方位拆解 Axum 的使用技巧,每个知识点均配套可运行的示例代码,帮助开发者从入门到精通,快速构建高性能的 Rust Web 应用。 一、环境准备与项目初始化 1.1 前置条件 * 安装 Rust 环境:

2025前端必备:10款HTML生成器实测,小白也能速建网页

2025前端必备:10款HTML生成器实测,小白也能速建网页

作为写了8年前端的程序员,我太懂新手写HTML的痛:标签记不全、CSS样式调崩、响应式布局反复踩坑,哪怕是简单的个人主页都要折腾大半天。而2025年的HTML代码生成器早已不是“套模板”那么简单——AI驱动的智能生成、全场景适配的代码输出、零门槛的可视化操作,让小白5分钟就能搞定可用的网页代码,就连资深前端也能靠它提升3倍开发效率。本文结合我的实测体验,从功能、效率、扩展性三个维度筛选出10款免费工具,附上具体操作流程和代码示例,不管是新手入门还是职场提效都能用。 AI智能型:代码生成“懂需求”,小白也能写规范代码 2025年的主流HTML生成器核心优势是AI理解能力,不用死记标签,只需输入自然语言需求,就能生成结构规范、兼容多端的代码。这类工具特别适合零基础小白,也能帮前端开发者快速搭建页面骨架。 1. ChatGPT Code Interpreter(全能王者) 优势:结合上下文理解需求,生成代码可直接运行,支持实时修改优化;支持HTML+CSS+JS全栈生成,还能解释代码逻辑。 实测场景:生成“响应式个人简历页面”,输入需求“黑色简约风格,包含个人信息、

深入解析WebView的概念、功能、应用场景以及使用过程中的优势与挑战

深入解析WebView的概念、功能、应用场景以及使用过程中的优势与挑战

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_ZEEKLOG博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》 文章目录 * * 一、引言 * 二、WebView概述 * 三、WebView的功能与应用场景 * 四、WebView的优势与挑战 * 五、WebView的使用示例 * 六、总结 摘要: 本文详细介绍了App中WebView的概念、功能、应用场景以及使用过程中的优势与挑战。通过对WebView的深入剖析,帮助开发者更好地理解和运用这一技术,在App开发中实现更丰富的功能和更好的用户体验。 一、引言 在移动应用开发领域,为了在App中展示网页内容、集成Web应用或实现与网页的交互功能,WebView是一种常用的技术手段。它为开发者提供了一种在原生App中嵌入Web内容的