Skip to main content

如何在 Lerobot 中使用 Lekiwi

tip

本教程仓库代码保持为2025年6月5日之前的Lerobot经过测试的稳定版本,目前Huggingface对Lerobot进行了非常庞大的升级,增加了非常多的新功能,如果需要体验最新的教程请跟随官方文档进行操作

简介

Lekiwi 是由 SIGRobotics-UIUC 发起的一个完全开源的机器人小车项目。它包含详细的 3D 打印文件和操作指南,设计上与 LeRobot 模仿学习框架兼容。它支持 SO101 机器人手臂,从而实现完整的模仿学习流程。

主要特点

  1. 开源且低成本Lekiwi 提供了一种开源、低成本的机器人小车解决方案。
  2. 与 LeRobot 集成: 专为与 LeRobot 平台 集成而设计。
  3. 丰富的学习资源: 提供全面的开源学习资源,包括组装和校准指南,以及测试、数据收集、训练和部署的教程,帮助用户快速入门并开发机器人应用。
  4. 兼容 Nvidia: 可与 reComputer Mini J4012 Orin NX 16 GB 搭配使用。
  5. 多场景应用: 适用于教育、科学研究、自动化生产和机器人领域,帮助用户在各种复杂任务中实现高效且精准的机器人操作。
caution

Seeed Studio 仅对硬件本身的质量负责。教程严格按照官方文档更新。如果您遇到无法解决的软件问题或环境依赖问题,请及时向 LeRobot 平台LeRobot Discord 频道 报告问题。

danger
  • Lekiwi 底盘中的所有舵机需要 12V 电源供电。对于使用 5V 机器人手臂的用户,我们提供了 12V 转 5V 降压转换模块。请注意,您需要自行进行电路修改。

  • 12V 电源 - 如果需要,您可以在结账时选择此选项。如果您已经拥有 12V 电源,只需将电源输出接口转换为 5521 DC 插头即可。

  • 树莓派控制器和摄像头 - 这些需要通过订单界面单独购买。

规格

类型Lekiwi
舵机电机3个 12V STS3215 1:345 齿轮比
电源12V DC 或电池
角度传感器12位磁性编码器
推荐工作温度范围0℃~40℃
通信方式UART
控制方式PC

物料清单 (BOM)

部件数量包含
STS3215 1:345 12V 舵机电机3
全向轮/万向轮3
Lekiwi 3D打印外壳1
DC-DC 降压电源模块 - 24V/12V 转 5V1
电机控制板1
DC公头转双DC公头5521 Y型电缆1
USB线缆;Type C 2.0 转 Type C 2.0-黑色;长度150mm1
USB 3.1 Type C 转 A线缆 0.5米1
插头电源适配器;黑色-12V-2A AC/DC1
M2 M3 M4 混合螺丝足量
树莓派1可选
USB摄像头1可选
深度摄像头2可选
SO-ARM101 Pro1可选
12V 高容量锂离子电池组 E326S1可选

初始系统环境

对于 Ubuntu x86:

  • Ubuntu 22.04
  • CUDA 12+
  • Python 3.10
  • Torch 2.6

对于 Jetson Orin:

  • Jetson JetPack 6.2
  • Python 3.10
  • Torch 2.6

对于树莓派:

  • 树莓派5 4G~16G

目录

[A. 3D打印指南]

[B. 安装 LeRobot]

[C. 配置电机]

[D. 组装]

[E. 校准]

[F. 遥控操作]

[G. 添加摄像头]

[H. 记录数据集]

[I. 可视化数据集]

[J. 回放一个操作序列]

[K. 训练策略]

[L. 评估你的策略]

3D打印指南

部件

我们提供以下3D打印部件的可打印STL文件。这些部件可以使用通用PLA耗材在消费级FDM打印机上打印。我们在Bambu Lab P1S打印机上进行了测试。对于所有组件,我们只需加载到bambuslicer中,自动旋转和排列,启用任何推荐的支撑,然后打印。

项目数量备注
底板顶部1
底板底部1
驱动电机支架3
舵机轮毂3使用支撑
树莓派外壳顶部1
树莓派外壳底部1
Arducam 底座支架腕部支架1兼容 此摄像头
网络摄像头 底座支架夹持器插入件腕部支架1兼容 此摄像头

打印参数

提供的STL文件可以在许多FDM打印机上直接打印。以下是测试和建议的设置,其他设置也可能有效。

  • 材料:PLA+
  • 喷嘴直径和精度:0.2mm喷嘴直径,层高0.2mm
  • 填充密度:15%
  • 打印速度:150 mm/s
  • 如果需要,将G代码(切片文件)上传到打印机并打印

安装 LeRobot

在您的 Raspberry Pi 上:

1. 安装 Miniconda:

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

2. 重启 Shell

在您的 Shell 中复制粘贴以下命令:source ~/.bashrc 或对于 Mac 用户:source ~/.bash_profilesource ~/.zshrc(如果您使用的是 zshell)

3. 为 LeRobot 创建并激活一个新的 Conda 环境

conda create -y -n lerobot python=3.10

然后激活您的 Conda 环境(每次打开 Shell 使用 LeRobot 时都需要执行此操作!):

conda activate lerobot

4. 克隆 LeRobot:

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

5. 在您的环境中安装 ffmpeg:

如果使用 miniconda,请在您的环境中安装 ffmpeg

conda install ffmpeg -c conda-forge

6. 安装带有 feetech 电机依赖的 LeRobot:

cd ~/lerobot && pip install -e ".[feetech]"

C. 在笔记本电脑上安装 LeRobot

如果您已经在笔记本电脑上安装了 LeRobot,可以跳过此步骤,否则请按照我们在 Raspberry Pi 上的相同步骤进行操作。

[!提示] 我们会频繁使用命令提示符 (cmd)。如果您对使用 cmd 不熟悉,或者想复习命令行的使用,可以参考这里:命令行速成课程

在您的电脑上:

1. 安装 Miniconda:

2. 重启 Shell

在您的 Shell 中复制粘贴以下命令:source ~/.bashrc 或对于 Mac 用户:source ~/.bash_profilesource ~/.zshrc(如果您使用的是 zshell)

3. 为 LeRobot 创建并激活一个新的 Conda 环境

conda create -y -n lerobot python=3.10

然后激活您的 Conda 环境(每次打开 Shell 使用 LeRobot 时都需要执行此操作!):

conda activate lerobot

4. 克隆 LeRobot:

git clone https://gitee.com/Marlboro1998/lerobot_seeed_version.git ~/lerobot

5. 在您的环境中安装 ffmpeg:

如果使用 miniconda,请在您的环境中安装 ffmpeg

conda install ffmpeg -c conda-forge

6. 安装带有 feetech 电机依赖的 LeRobot:

cd ~/lerobot && pip install -e ".[feetech]"

配置电机

查找与机械臂相关联的 USB 端口 要找到单个电机的正确端口,请运行以下实用脚本两次:

python lerobot/scripts/find_motors_bus_port.py

示例输出(例如,在 Mac 上为 /dev/tty.usbmodem575E0031751,或在 Linux 上可能为 /dev/ttyACM0):

示例输出(例如,在 Mac 上为 /dev/tty.usbmodem575E0032081,或在 Linux 上可能为 /dev/ttyACM1):

故障排除:在 Linux 上,您可能需要通过以下命令授予 USB 端口访问权限:

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

配置您的电机

插入您的第一个电机并运行以下脚本,将其 ID 设置为 7-9。此脚本还会将当前位置设置为 2048,因此电机会旋转:

python lerobot/scripts/configure_motor.py \
--port /dev/ttyACM0 \
--brand feetech \
--model sts3215 \
--baudrate 1000000 \
--ID 7

注意:这些电机目前有一定限制。它们只能接受 0 到 4096 之间的值,这对应于一次完整的旋转。它们无法旋转超过这个范围。2048 是该范围的中间值,因此我们可以向负方向移动 -2048 步(逆时针 180 度)达到最大范围,或者向正方向移动 +2048 步(顺时针 180 度)达到最大范围。配置步骤还会将归位偏移设置为 0,因此如果您组装机械臂时出现偏差,您可以随时更新归位偏移以补偿最多 ±2048 步(±180 度)的偏移。

然后拔下您的电机,插入第二个电机并将其 ID 设置为 8 和 9。

python lerobot/scripts/configure_motor.py \
--port /dev/ttyACM0 \
--brand feetech \
--model sts3215 \
--baudrate 1000000 \
--ID 8

组装

组装 Lekiwi

您可以参考官方的组装教程

收到打印部件后,所有打印组件如下图所示。

A. 使用 12 个 m2x6 自攻螺钉将驱动电机固定到电机支架上。

步骤 1步骤 2
图1图2

B. 使用 12 个 m3x16 机器螺钉将驱动电机支架固定到底部底板上。

tip

记住 ID 排列:8 代表后轮,7 和 9 分别对应左前轮和右前轮。

步骤 1步骤 2
图1图2

C. 将轮毂安装到全向轮上。

步骤 1 和步骤 2:拆下三个螺钉。

步骤 1步骤 2
图1图2

步骤 3 和步骤 4:使用 9 个 m4x18 机器螺钉将轮毂固定到全向轮上。

步骤 3步骤 4
图1图2

D. 使用 6 个 m3x16 机器螺钉将舵机舵盘固定到轮毂上。

步骤 1步骤 2步骤 3
图1图2图3

E. 使用 3 个 m3x10 机器螺钉将舵机舵盘固定到驱动电机上。

步骤 1步骤 2步骤 3
图1图2图3

H. 添加舵机驱动器并连接所有电路。

步骤 1步骤 2步骤 3步骤 4
图1图2图3图4
步骤 5步骤 6步骤 7步骤 8
图1图2图3图4

电源输入直接连接到电源,如步骤 8 所示,而 USB-C 接口为树莓派提供 5V 电源。

对于额外的 2 针端子(5V 和 12V)

  • 如果使用 7.4V SO10x 机械臂,通过 5V 输出舵机电机板供电。
  • 如果使用 12V 机械臂,直接从 DC 电源分配器舵机电机板供电,如步骤 8 所示。

I. 现在可以将树莓派安装到车辆的第二层顶板上。在此之前,请连接 USB-C 电源线USB-C 舵机通信线,然后将它们从车辆顶板的开口处引出。

步骤 1 将电源线连接到树莓派,并通过顶板中心的开口引出。

图1图2图3

步骤 2 在底盘的三个舵机中,有一个舵机仅连接了一根电缆。如果需要安装 SO10x 机械臂,请:移除机械臂的 ID1 电缆。将其连接到底盘电机。通过顶板引出作为备用电缆。

图1图2图3

步骤 3 现在可以将舵机驱动板的 USB-C 连接到树莓派的 USB 接口。

图1图2

J. 现在需要使用 12 M3×16 螺钉固定树莓派和顶板的其余部分。

图1图2图3

K. 现在您可以使用 1个 M3x16 和 4个 M5×25 螺钉安装 USB 摄像头和跟随臂

| | |:---------:|:---------:|:---------:|:---------:|:---------:|:---------:| | fig1 | fig2 | fig2 | fig2 | fig2 | fig2 |

并确保伺服控制电缆和 USB 摄像头都已连接到树莓派。

fig1

更新配置

LeKiwi LeRobot 和笔记本电脑上的配置文件应保持一致。首先,我们需要找到移动机械臂的树莓派的 IP 地址。这与用于 SSH 的 IP 地址相同。我们还需要找到笔记本电脑上主臂控制板的 USB 端口以及 LeKiwi 上控制板的端口。可以通过以下脚本找到这些端口。

在 Linux 上,您可能需要通过运行以下命令来授予 USB 端口的访问权限:

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

重要提示:现在您已经获得了主臂和跟随臂的端口以及移动机械臂的 IP 地址,请在网络配置中更新 ip,在主臂配置中更新 port,并在 LeKiwi 配置中更新 port。在 LeKiwiRobotConfig 文件中,您会看到如下内容:

@RobotConfig.register_subclass("lekiwi")
@dataclass
class LeKiwiRobotConfig(RobotConfig):
# `max_relative_target` 限制了相对位置目标向量的大小,以确保安全。
# 将其设置为一个正标量以对所有电机使用相同的值,或者设置为一个列表,其长度与跟随臂中的电机数量相同。
max_relative_target: int | None = None

# 网络配置
ip: str = "172.17.133.91"
port: int = 5555
video_port: int = 5556

cameras: dict[str, CameraConfig] = field(
default_factory=lambda: {
"mobile": OpenCVCameraConfig(camera_index="/dev/video0", fps=30, width=640, height=480),
"mobile2": OpenCVCameraConfig(camera_index="/dev/video2", fps=30, width=640, height=480),
}
)

calibration_dir: str = ".cache/calibration/lekiwi"

leader_arms: dict[str, MotorsBusConfig] = field(
default_factory=lambda: {
"main": FeetechMotorsBusConfig(
port="/dev/tty.usbmodem585A0077581",
motors={
# 名称: (索引, 型号)
"shoulder_pan": [1, "sts3215"],
"shoulder_lift": [2, "sts3215"],
"elbow_flex": [3, "sts3215"],
"wrist_flex": [4, "sts3215"],
"wrist_roll": [5, "sts3215"],
"gripper": [6, "sts3215"],
},
),
}
)

follower_arms: dict[str, MotorsBusConfig] = field(
default_factory=lambda: {
"main": FeetechMotorsBusConfig(
port="/dev/ttyACM0",
motors={
# 名称: (索引, 型号)
"shoulder_pan": [1, "sts3215"],
"shoulder_lift": [2, "sts3215"],
"elbow_flex": [3, "sts3215"],
"wrist_flex": [4, "sts3215"],
"wrist_roll": [5, "sts3215"],
"gripper": [6, "sts3215"],
"left_wheel": (7, "sts3215"),
"back_wheel": (8, "sts3215"),
"right_wheel": (9, "sts3215"),
},
),
}
)

teleop_keys: dict[str, str] = field(
default_factory=lambda: {
# 移动
"forward": "w",
"backward": "s",
"left": "a",
"right": "d",
"rotate_left": "z",
"rotate_right": "x",
# 速度控制
"speed_up": "r",
"speed_down": "f",
# 退出遥控
"quit": "q",
}
)

mock: bool = False

有线版本

对于有线的 LeKiwi 版本,您配置的 IP 地址应指向您自己的笔记本电脑(127.0.0.1),因为在这种情况下,主控臂和 LeKiwi 都连接到自己的笔记本电脑。以下是此有线设置的示例配置:

@RobotConfig.register_subclass("lekiwi")
@dataclass
class LeKiwiRobotConfig(RobotConfig):
# `max_relative_target` 限制了相对位置目标向量的大小,以确保安全。
# 将其设置为一个正标量以为所有电机设置相同的值,或者设置为一个列表,其长度与从动臂中的电机数量相同。
max_relative_target: int | None = None

# 网络配置
ip: str = "127.0.0.1"
port: int = 5555
video_port: int = 5556

cameras: dict[str, CameraConfig] = field(
default_factory=lambda: {
"front": OpenCVCameraConfig(
camera_index=0, fps=30, width=640, height=480, rotation=90
),
"wrist": OpenCVCameraConfig(
camera_index=1, fps=30, width=640, height=480, rotation=180
),
}
)

calibration_dir: str = ".cache/calibration/lekiwi"

leader_arms: dict[str, MotorsBusConfig] = field(
default_factory=lambda: {
"main": FeetechMotorsBusConfig(
port="/dev/tty.usbmodem585A0077581",
motors={
# 名称: (索引, 型号)
"shoulder_pan": [1, "sts3215"],
"shoulder_lift": [2, "sts3215"],
"elbow_flex": [3, "sts3215"],
"wrist_flex": [4, "sts3215"],
"wrist_roll": [5, "sts3215"],
"gripper": [6, "sts3215"],
},
),
}
)

follower_arms: dict[str, MotorsBusConfig] = field(
default_factory=lambda: {
"main": FeetechMotorsBusConfig(
port="/dev/tty.usbmodem58760431061",
motors={
# 名称: (索引, 型号)
"shoulder_pan": [1, "sts3215"],
"shoulder_lift": [2, "sts3215"],
"elbow_flex": [3, "sts3215"],
"wrist_flex": [4, "sts3215"],
"wrist_roll": [5, "sts3215"],
"gripper": [6, "sts3215"],
"left_wheel": (7, "sts3215"),
"back_wheel": (8, "sts3215"),
"right_wheel": (9, "sts3215"),
},
),
}
)

teleop_keys: dict[str, str] = field(
default_factory=lambda: {
# 移动
"forward": "w",
"backward": "s",
"left": "a",
"right": "d",
"rotate_left": "z",
"rotate_right": "x",
# 速度控制
"speed_up": "r",
"speed_down": "f",
# 退出遥控
"quit": "q",
}
)

mock: bool = False

校准

现在我们需要校准主控臂和从动臂。轮子电机无需校准。

校准从动臂(安装在移动底座上)

在您的电脑上运行以下命令以校准主控机器人臂。注意:这里显示的图片是 SO101 型号的示例。

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--robot.cameras='{}' \
--control.type=calibrate \
--control.arms='["main_leader"]'
主控中间位置主控零位位置主控旋转位置主控休息位置
fig8fig4fig5fig6

现在在您的 Raspberry Pi 上运行以下命令以校准 LeKiwi 上的从动臂。忽略它当前在桌上的位置——正常校准应在安装到车辆上时进行。

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--robot.cameras='{}' \
--control.type=calibrate \
--control.arms='["main_follower"]'
从动中间位置从动零位位置从动旋转位置从动休息位置
fig7fig1fig2fig3

F. 远程操作

[!TIP] 如果您使用的是 Mac,可能需要授予终端访问键盘的权限。请前往系统偏好设置 > 安全与隐私 > 输入监控,并勾选终端的选项。

要进行远程操作,请通过 SSH 登录到您的 Raspberry Pi,并运行以下命令激活环境 conda activate lerobot,然后运行以下脚本:

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--control.type=remote_robot

接着,在您的笔记本电脑上,也运行以下命令激活环境 conda activate lerobot,然后运行以下脚本:

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--control.type=teleoperate \
--control.fps=30

注意: 如果需要可视化数据,请启用 --control.display_data=true。这将使用 rerun 流式传输数据。对于 --control.type=remote_robot,您还需要设置 --control.viewer_ip--control.viewer_port

您应该在笔记本电脑上看到类似以下的信息:[INFO] Connected to remote robot at tcp://172.17.133.91:5555 and video stream at tcp://172.17.133.91:5556. 现在,您可以移动主控臂并使用键盘(w,a,s,d)进行前进、左转、后退、右转操作。使用(z,x)进行左转或右转。使用(r,f)来增加或减少移动机器人的速度。机器人有三种速度模式,详见下表:

速度模式线速度 (m/s)旋转速度 (度/秒)
快速0.490
中速0.2560
慢速0.130
按键动作
W前进
A左移
S后退
D右移
Z左转
X右转
R增加速度
F减少速度

[!TIP] 如果您使用不同的键盘,可以在 LeKiwiRobotConfig 中更改每个命令的按键设置。

有线版本

如果您使用的是 有线 LeKiwi 版本,请在笔记本电脑上运行所有命令,包括这两个远程操作命令。

通信故障排查

如果您在连接移动机器人 SO100 时遇到问题,请按照以下步骤诊断并解决问题。

1. 验证 IP 地址配置

确保配置文件中设置了正确的 Raspberry Pi IP 地址。要检查 Raspberry Pi 的 IP 地址,请运行以下命令(在 Pi 的命令行中):

hostname -I

2. 检查笔记本电脑/PC 是否能访问 Pi

尝试从笔记本电脑 ping Raspberry Pi:

ping <your_pi_ip_address>

如果 ping 失败:

  • 确保 Pi 已开机并连接到同一网络。
  • 检查 Pi 上是否启用了 SSH。

3. 尝试 SSH 连接

如果无法通过 SSH 登录到 Pi,可能是连接不正确。请使用以下命令:

ssh <your_pi_user_name>@<your_pi_ip_address>

如果出现连接错误:

  • 确保 Pi 上启用了 SSH,可以运行以下命令:
    sudo raspi-config
    然后导航到:Interfacing Options -> SSH 并启用它。

4. 配置文件一致性

确保笔记本电脑/PC 和 Raspberry Pi 上的配置文件完全一致。

G. 记录数据集

在熟悉远程操作后,您可以使用 LeKiwi 记录您的第一个数据集。

要在 LeKiwi 上启动程序,请通过 SSH 连接到您的 Raspberry Pi,并运行以下命令以激活环境并启动脚本:

conda activate lerobot
python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--control.type=remote_robot

如果您希望使用 Hugging Face hub 功能上传数据集,并且之前尚未登录,请确保使用写入权限的令牌登录,该令牌可以从 Hugging Face 设置 中生成:

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

将您的 Hugging Face 仓库名称存储在变量中以运行以下命令:

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

然后在您的笔记本电脑上运行以下命令以记录 2 个回合并将数据集上传到 hub:

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--control.type=record \
--control.fps=30 \
--control.single_task="抓取一个乐高积木并将其放入垃圾桶。" \
--control.repo_id=${HF_USER}/lekiwi_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

注意:您可以通过添加 --control.resume=true 来继续记录。

有线版本

如果您使用的是 有线 LeKiwi 版本,请在您的笔记本电脑上运行所有命令,包括上述记录数据集的命令。

H. 可视化数据集

如果您使用 --control.push_to_hub=true 上传了数据集,可以通过 在线可视化您的数据集,复制并粘贴以下命令生成的仓库 ID:

echo ${HF_USER}/lekiwi_test

如果您没有使用 --control.push_to_hub=false 上传数据集,也可以在本地进行可视化(浏览器窗口可以通过 http://127.0.0.1:9090 打开可视化工具):

python lerobot/scripts/visualize_dataset_html.py \
--repo-id ${HF_USER}/lekiwi_test \
--local-files-only 1

I. 回放一个回合

现在尝试在您的机器人上回放第一个回合:

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--control.type=replay \
--control.fps=30 \
--control.repo_id=${HF_USER}/lekiwi_test \
--control.episode=0

J. 训练策略

要训练控制机器人策略,请使用 python lerobot/scripts/train.py 脚本。需要提供一些参数。以下是示例命令:

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

以下是命令的解释:

  1. 我们通过 --dataset.repo_id=${HF_USER}/lekiwi_test 提供了数据集作为参数。
  2. 我们通过 policy.type=act 提供了策略。这会从 configuration_act.py 加载配置。重要的是,该策略会自动适应您的机器人(例如 laptopphone)的数据集中保存的电机状态、电机动作和摄像头数量。
  3. 我们通过 policy.device=cuda 指定在 Nvidia GPU 上训练,但您也可以使用 policy.device=mps 在 Apple Silicon 上训练。
  4. 我们通过 wandb.enable=true 启用了 Weights and Biases 用于可视化训练图表。这是可选的,但如果您使用它,请确保通过运行 wandb login 登录。

训练可能需要几个小时。您将在 outputs/train/act_lekiwi_test/checkpoints 中找到检查点文件。

K. 评估你的策略

你可以使用 lerobot/scripts/control_robot.py 中的 record 函数,但需要提供策略检查点作为输入。例如,运行以下命令记录 10 个评估回合:

python lerobot/scripts/control_robot.py \
--robot.type=lekiwi \
--control.type=record \
--control.fps=30 \
--control.single_task="驱动到红色方块并拾取它" \
--control.repo_id=${HF_USER}/eval_act_lekiwi_test \
--control.tags='["教程"]' \
--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_lekiwi_test/checkpoints/last/pretrained_model

如你所见,这几乎与之前用于记录训练数据集的命令相同。两点有所不同:

  1. 增加了一个 --control.policy.path 参数,用于指示策略检查点的路径(例如 outputs/train/eval_act_lekiwi_test/checkpoints/last/pretrained_model)。如果你已将模型检查点上传到 Hub,也可以使用模型仓库路径(例如 ${HF_USER}/act_lekiwi_test)。
  2. 数据集的名称以 eval 开头,以反映你正在运行推理(例如 ${HF_USER}/eval_act_lekiwi_test)。

帮助 🙋‍

对于硬件问题,请联系客户服务。对于使用问题,请加入 Discord。

LeRobot 平台

LeRobot Discord 频道

技术支持与产品讨论

感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时体验顺畅。我们提供多个沟通渠道,以满足不同的偏好和需求。

Loading Comments...