StarAI——Lerobot机械臂使用教程之开箱即用篇

StarAI——Lerobot机械臂教程

本款机械臂为SeeedStudio公司基于Lerobot框架设计的具身智能机械臂,开箱即用!!

本教程面向新手级别,内容详细,带你一步一步操作绝对没问题!

图片

图片

一些可供参考的教程资料

StarAI官网教程
GitHub
Huggingface官方教程

01--安装Lerobot

使用anaconda和miniconda都可以

1.1对于Jetson设备

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
chmod +x Miniconda3-latest-Linux-aarch64.sh
./Miniconda3-latest-Linux-aarch64.sh
source ~/.bashrc

1.1对于 X86 Ubuntu 22.04:

mkdir -p ~/miniconda3
cd 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
source ~/miniconda3/bin/activate
conda init --all

1.2创建conda环境:
conda create -y -n lerobot python=3.10 && conda activate lerobot

Tips:如果想快速打开Lerobot环境,请在bashrc中配置:alias lerobot="conda activate lerobot",随后只需要在终端输入lerobot就可以快速开启对应环境

如果使用的是miniconda,需要安装ffmpeg:

什么是ffmpeg?

  • FFmpeg 是一个开源的、跨平台的多媒体处理工具和库集合,主要用于录制、转换、流式传输音频和视频。在Lerobot框架中使用到了ffmpeg

为什么在miniconda中需要安装ffmpeg?

  • Anaconda​ 是“全家桶”。它预先安装了超过 1500 个科学计算和数据分析领域最流行的包(包括 ffmpeg及其Python封装 imageio等依赖的库)。开箱即用,体积庞大。
  • Miniconda​ 是“最小化安装”。它只包含最核心的 conda 包管理器和 Python。你需要什么,就自己动手用 conda 命令安装什么。因此环境非常干净、小巧、灵活。

1.3克隆仓库:
git clone https://github.com/Seeed-Projects/lerobot.git

请不要克隆Huggingface的Lerobot仓库,因为那是针对Soarm101机械臂开发的,StarAI机械臂是基于Huggingface-Lerobot仓库的分支,二者在一些场景无法兼容

1.4 安装lerobot环境:

cd ~/lerobot && pip install -e .
sudo apt remove brltty
pip install lerobot_teleoperator_bimanual_leader
pip install lerobot_robot_bimanual_follower

1.5 查看pytorch和Torchvision
先在终端输入python3,然后输入

import torch
print(torch.cuda.is_available())

如果打印结果为“False”,您需要根据官方网站教程重新安装 Pytorch 和Torchvision

02-配置机械臂

2.1 确定USB 端口

将USB依次接入电脑,输入ls /dev/ttyUSB*,得到如下输出:
图片
此时要记住哪个USB对应的是主臂,哪个对应从臂
然后授予权限sudo chmod 666 /dev/ttyUSB*

2.2 校准机械臂

cd lerobot/
然后执行
(校准主臂Violin:)
lerobot-calibrate --teleop.type=lerobot_teleoperator_violin --teleop.port=/dev/ttyUSB0 --teleop.id=my_awesome_staraiviolin_arm

(校准从臂Vionla:)
lerobot-calibrate --robot.type=lerobot_robot_viola --robot.port=/dev/ttyUSB1 --robot.id=my_awesome_staraiviola_arm

注意:要记得我上一步所说,记住USB端口对应的机械臂

启动后,您将看到每个接头的编码器值。需要逐个手动校准每个接头:将每个接头旋转至最大和最小位置。对于无限停的接头,旋转范围不得超过顺时针方向180°或逆时针方向180°。校准所有接头后,请按 Enter 键保存设置。

image

注意:在校准过程中校准0号舵机(最底下的舵机,控制yaw方向)的时候应该先把臂微微抬起来,后者很容易使得1号舵机低于那个T型小平台!!!
否则会因为软限位不恰当,导致手臂一直处于堵转状态,持续升温损坏1号舵机!!

image

image

在后续的使用过程中,要经常留意舵机的温度,如果出现了异常的发烫,请立刻断电检查校准文件。或者联系技术支持!!

03-遥操作初体验

运行这个命令:

lerobot-teleoperate \
    --robot.type=lerobot_robot_viola \
    --robot.port=/dev/ttyUSB1 \
    --robot.id=my_awesome_staraiviola_arm \
    --teleop.type=lerobot_teleoperator_violin \
    --teleop.port=/dev/ttyUSB0 \
    --teleop.id=my_awesome_staraiviolin_arm

04-添加摄像头

为具身场景增加摄像头,以我为例——上帝视角和机械臂手腕视角。
0e21f219d0d3ea68008a228f0ae02c53

我这两个摄像头都是USB摄像头,运行lerobot-find-cameras opencv查找端号
图片
接着在/lerobot/outputs/captured_images中可以查看得到的视角对应的端口,以我为例——opencv__dev_video8对应手腕部视角,opencv__dev_video6对应全局视角。

体验带有摄像头视角的遥操:

lerobot-teleoperate \
    --robot.type=lerobot_robot_viola \
    --robot.port=/dev/ttyUSB1 \
    --robot.id=my_awesome_staraiviola_arm \
    --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video6, width: 640, height: 480, fps: 30, fourcc: "MJPG"},front: {type: opencv, index_or_path: /dev/video8, width: 640, height: 480, fps: 30, fourcc: "MJPG"}}" \
    --teleop.type=lerobot_teleoperator_violin \
    --teleop.port=/dev/ttyUSB0 \
    --teleop.id=my_awesome_staraiviolin_arm \
    --display_data=true

这里记得修改自己的摄像头端口号

05-录制数据集

lerobot-record \
    --robot.type=lerobot_robot_viola \
    --robot.port=/dev/ttyUSB1 \
    --robot.id=my_awesome_staraiviola_arm \
    --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video6, width: 640, height: 480, fps: 30, fourcc: "MJPG"},front: {type: opencv, index_or_path: /dev/video8, width: 640, height: 480, fps: 30, fourcc: "MJPG"}}" \
    --teleop.type=lerobot_teleoperator_violin \
    --teleop.port=/dev/ttyUSB0 \
    --teleop.id=my_awesome_staraiviolin_arm \
    --display_data=true \
    --dataset.repo_id=your_outputdir \
    --dataset.episode_time_s=15 \
    --dataset.reset_time_s=10 \
    --dataset.num_episodes=20 \
    --dataset.push_to_hub=False \
    --dataset.single_task="Pick up the yellow cube to the white box" \

其中:
--dataset.episode_time_s=15代表录制的时间
--dataset.reset_time_s=10代表恢复环境的时间
--dataset.num_episodes=20代表录制的次数
--dataset.repo_id=代表数据集存放的路径
--dataset.push_to_hub=False代表不上传到huggingface
--dataset.single_task="Pick up the yellow cube to the white box"代表任务的具体名称

运行完成指令后,会在你所指定的repo_id中生成对应的文件夹,如果需要重新录制,请删除对应的文件在执行指令,否则会报错。
如果你需要接着录制,请在指令参数后增加--resume=true

录制过程中,可以使用键盘来控制记录工作流程:

  • 按下右箭头键(→):提前停止当前行程或重置时间,然后移动到下一个。
  • 按下左箭头键(←):取消当前行程并重新录制。
  • ESC按下ESC:立即停止会话,对视频进行编码,然后上传数据集。

如果键盘无法正常工作,您可能需要安装其他版本的 pynput。

pip install pynput==1.6.8

06-重播数据集

你可以重播数据集来检查你的录制效果:

lerobot-replay \
    --robot.type=lerobot_robot_viola \
    --robot.port=/dev/ttyUSB1 \
    --robot.id=my_awesome_staraiviola_arm \
    --dataset.boot=starai/record-test \
    --dataset.episode=1
posted @ 2026-03-14 18:38  zzzking778  阅读(7)  评论(0)    收藏  举报