0x00 前言

承接前文进度,快速进入正题。在《LeRobot 实战系列(二)——SO101 机械臂 3D 打印组装与中位校准》中,我们已完成两台机械臂本体的组装工作;接下来的核心任务,是安装 LeRobot 软件、测试相机功能,并控制机械臂完成数据采集。
本篇将围绕以下内容展开讲解:

  • LeRobot 嵌入式平台选型、
  • 嵌入式平台安装 LeRobot 及问题解决、
  • 通过串口完成机械臂校准、
  • 相机遥操作测试、
  • 单回合数据录制。

0x01 LeRobot嵌入式平台选型

LeRobot 官方推荐运行环境为 Linux Ubuntu 系统,但我既没有专门安装该系统的电脑,也未配置双系统。因此我首先思考:LeRobot 软件能否在 Windows 11 系统中直接运行?或是通过 “Windows 11 + Ubuntu 虚拟机” 的组合环境运行?

  • 在 Windows 11 系统中测试时,首先遇到 CMD 命令与官方文档不一致的问题,需额外进行换行符转换;后续数据录制环节又出现权限不足的报错,影响功能正常使用。
  • 切换到 “Windows 11 + Ubuntu 20.04 虚拟机” 环境测试后,问题并未得到解决:不仅仍出现权限不足的报错,且尝试多种解决方案后均未突破;另一个明显问题是,将真机的 USB 摄像头映射到虚拟机后,会产生通信延迟,不符合实时性需求。

由于该项目需兼容 LeWiki 移动底盘,核心诉求是 “可随设备移动”,因此需要选型一套 “嵌入式平台 + 电池” 的完整解决方案。目前我手中已有的备选板卡包括:Orange Pi 5 Pro(香橙派 5 Pro)、Orange Pi AI Pro(香橙派 AI Pro)、Raspberry Pi 4B(树莓派 4B)以及旭日 X3 派,后续将基于这些硬件展开适配测试。

因旭日 X3 派不慎遗落在老家,目前仅完成了 Orange Pi 5 Pro、Orange Pi AI Pro、Raspberry Pi 4B 三块板卡的测试工作。不过若后续时间允许,笔者也计划对 RDK X3 派进行补充测试 —— 这块板卡的机器人生态尤为完善,且自带免安装 ROS 的便捷特性,不仅能减少环境配置的工作量,对 LeRobot 与 LeWiki 移动底盘的适配效率或许还能带来额外助力,值得进一步验证其适配表现。

0x02 嵌入式平台安装Lerobot软件及遇到的问题

1、Lerobot的安装需要miniconda环境,嵌入式平台一般为ARM64位的架构,所以我们通过一下脚本安装miniconda;
安装 Miniconda — Anaconda 文档

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

安装后,关闭并重新打开您的终端应用程序,或通过运行以下命令刷新它

source ~/miniconda3/bin/activate

conda init --all

2、使用 Python 3.10 创建一个虚拟环境,使用 Miniconda

conda create -y -n lerobot python=3.10

然后激活你的 conda 环境,每次打开 shell 使用 lerobot 时都必须这样做

conda activate lerobot

3、在您的环境中安装 ffmpeg

这里笔者按照官方文档安装遇到了版本号不正确的问题,查阅issue后发现有人遇到过这个问题,修改位正确的版本号后安装成功,有关视频流的错误可能是因为这个库安装错误导致的;

conda install ffmpeg -c conda-forge

4、从git下载lerobot源码

使用以下命令安装lerobot所需库,如果遇到下载问题可能需要科学上网;

pip install -e .

随后安装电机驱动库

pip install -e ".[feetech]"

5、遇到的问题

ERROR: Failed to build installable wheels for some pyproject.toml based projects (evdev)

笔者在安装过程中遇到这个问题,折腾了半天,找到的解决方案是直接通过Conda安装:

Evdev | Anaconda.org

conda install conda-forge::evdev

6、板卡系统安装过程对比

所有的板卡均使用其官方推荐的镜像在此基础上进行安装;

Orange PI 5 Pro 、树莓派4B经过一些折腾安装成功;

Orange PI AI pro 这块板镜像自带miniconda,安装过程比较简单;

但都遇到了 evdev 的问题;

笔者最后采用了Orange PI 5 PRO 完成了本次实验,
树莓派4B在测试时发热严重,Orange PI AI pro 因为USB端口不足使用USB hub有延迟而放弃使用;

0x03 通过串口完成机械臂的校准

将主机和从机的电机驱动板接入电源,并通过USB线将其连接到开发板;

进入lerobot文件夹执行以下命令:

lerobot-find-port

或者
python3 find_port.py

此时会出现多个串口,拔掉主机或从机的USB线,这时脚本会自动检测出那个USB端口断开了,从而识别出主机或从机对应的USB端口号;

示例输出

Finding all available ports for the MotorBus.
['/dev/ttyACM0', '/dev/ttyACM1']
Remove the usb cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/ttyACM1
Reconnect the USB cable.

找到的端口是:/dev/ttyACM1,对应于您的主控臂或从动臂。

接下来需要对USB端口设置权限:

sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1

我们在之前已经对舵机进行了回中位、设置舵机ID、设置软件限位。我们还需要对舵机进行校准;

接下来,需要校准机器人,以确保主动机臂和从动机臂在处于相同物理位置时具有相同的位置值(编码器值)。校准过程非常重要,因为它允许在一个机器人上训练的神经网络在另一个机器人上工作。

LeRobot 的机械臂校准核心目标是建立 “物理位置” 与 “设备内部位置值” 的统一映射关系,确保不同机械臂(主动机臂与从动机臂)在相同物理姿态下输出一致的位置数据,为跨设备模型迁移(如神经网络训练成果复用)提供基础。其校准原理可结合代码逻辑与机械臂校准的通用逻辑拆解如下:

机械臂的关节电机、传感器等硬件存在个体差异(如零位偏差、传动误差),导致相同物理位置下,不同设备的内部位置值(如关节角度、末端坐标)可能不一致。LeRobot 的校准本质是通过采集 “已知物理基准点” 的位置数据,计算并存储校准参数(如偏移量、转换矩阵),最终实现 “同一物理位置→统一位置值” 的映射。

  • 引导用户或自动控制机械臂移动到预设的校准基准点(如机械臂的零位、特定关节角度组合对应的物理位置);
  • 采集每个基准点的硬件原始位置数据(如电机编码器读数、传感器反馈);
  • 计算校准参数(如零位偏移、关节耦合系数等),并将其保存到设备配置中,用于后续位置值的修正。

校准后,当机械臂运动时,设备会自动加载校准参数对原始位置数据进行修正。例如:若 A 机械臂在物理零位的原始读数是 “5”,B 机械臂是 “3”,校准后会将两者的零位统一修正为 “0”。这样,无论使用哪台设备,相同物理位置都会输出一致的位置值,从而保证在 A 设备上训练的神经网络(依赖位置数据作为输入 / 标签)能直接在 B 设备上生效。

简言之,LeRobot 通过 “指定设备→采集基准点数据→计算修正参数→统一位置值映射” 的流程,解决了机械臂硬件个体差异导致的位置数据不一致问题,为跨设备的模型迁移提供了基础保障。

  • 运行以下命令或 API 示例来校准从动臂点击链接
     

LeRobot 实战系列(三):SO101 机械臂摄像头遥操作与数据采集指南(上)阅读原文

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐