SO-ARM101 - 产品介绍

SO-ARM101 开源机械臂 - 产品介绍
语言

SO-ARM101是一款面向教育、研究和爱好者的高性能开源机械臂平台,完美兼容Hugging Face LeRobot生态系统,支持机器人操作学习、数据采集、模型训练和AI推理全流程,是学习机器人技术、开发AI机器人应用的理想选择。

📋 核心特点

  • 6自由度设计,支持灵活的运动控制
  • 完全开源硬件和软件,可自由定制扩展
  • 完美兼容LeRobot框架,支持多种机器人学习算法(ACT、Diffusion、Pi0、SmolVLA等)
  • 配套完整的教程和示例,零基础也能快速上手
  • 支持主从遥操作、多相机视觉反馈、数据集录制和模型训练全流程

🔧 硬件规格

参数 详情
自由度 6轴 + 夹爪
负载 500g
重复定位精度 ±0.1mm
工作半径 520mm
舵机类型 串行总线舵机
电源要求 主动臂:5V6A,被动臂:12V5A
通信方式 USB-C

🚀 快速开始

1. 环境准备

SO-ARM101支持Ubuntu x86和Jetson Orin两种平台:

Ubuntu x86环境要求:

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

Jetson Orin环境要求:

  • JetPack 6.0+
  • Python 3.10
  • Torch 2.5.0a0+

2. 安装依赖


# 安装 Miniconda (Ubuntu x86 版本)
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

# 创建并激活环境
conda create -y -n lerobot python=3.10
conda activate lerobot

# 克隆代码仓库
git clone https://github.com/Juxi-Technology/lerobot.git

# 安装依赖
conda install ffmpeg -c conda-forge
cd ~/lerobot && pip install -e ".[feetech]"
            

3. 机械臂控制

端口查找


# 查找机械臂对应的USB端口
lerobot-find-port
            

按照提示插拔机械臂USB线,获取对应的端口号(通常为/dev/ttyACM0和/dev/ttyACM1)

端口授权


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

机械臂校准


# 校准从动臂
lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm

# 校准主控臂
lerobot-calibrate \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm
            

按照提示将机械臂移动到中位,然后完成各关节的量程校准。

🎮 核心功能示例

1. 主从遥操作


# 基本遥操作 (无摄像头)
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm

# 带摄像头显示的遥操作
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true
            

2. 数据集录制


# 本地录制数据集
lerobot-record \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}, side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true \
    --dataset.repo_id=juxi/so101_test \
    --dataset.num_episodes=5 \
    --dataset.single_task="Put the blue cube on the black box" \
    --dataset.push_to_hub=false \
    --dataset.episode_time_s=30 \
    --dataset.reset_time_s=30
            

录制的数据将保存在~/.cache/huggingface/lerobot目录下。

3. 模型训练(ACT算法)


# 使用本地数据集进行训练
lerobot-train \
  --dataset.repo_id=juxi/so101_test \
  --policy.type=act \
  --output_dir=outputs/train/act_so101_test \
  --job_name=act_so101_test \
  --policy.device=cuda \
  --wandb.enable=false \
  --policy.push_to_hub=false \
  --steps=300000
            

训练完成的模型权重保存在outputs/train/act_so101_test/checkpoints目录下。

4. AI推理运行


# 使用训练好的模型控制机械臂
lerobot-record \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"},   side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30,fourcc: \"MJPG\"}}" \
  --robot.id=my_awesome_follower_arm \
  --display_data=false \
  --dataset.repo_id=juxi/eval_test \
  --dataset.single_task="Put the blue cube on the black box" \
  --policy.path=outputs/train/act_so101_test/checkpoints/last/pretrained_model
            

📚 相关资源

🛠️ 常见问题

Q: 运行时提示GPU不可用?
A: 请确保安装了与CUDA版本匹配的PyTorch,Jetson平台需要安装专门的Jetson版本PyTorch。
Q: 遥操作时键盘无响应?
A: 尝试降级pynput版本到1.6.8:pip install pynput==1.6.8
Q: 校准失败怎么办?
A: 检查串口权限是否正确,删除~/.cache/huggingface/lerobot/calibration目录下的旧校准文件后重新尝试。

SO-ARM101机械臂为机器人学习和开发提供了完整的生态支持,无论是教育、研究还是个人爱好者,都能快速上手开发属于自己的机器人应用。

本文为概述。请阅读维基上的完整技术文档。

阅读维基百科上的完整文章 →

在飞书知识库中打开