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 键保存设置。

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


在后续的使用过程中,要经常留意舵机的温度,如果出现了异常的发烫,请立刻断电检查校准文件。或者联系技术支持!!
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-添加摄像头
为具身场景增加摄像头,以我为例——上帝视角和机械臂手腕视角。

我这两个摄像头都是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

StarAI机械臂教程,它来啦!!
浙公网安备 33010602011771号