SO-ARM101 - 產品介紹

SO-ARM101 開源機械手臂 - 產品介紹
Language

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. 安裝依賴


# Install Miniconda (Ubuntu x86 version)
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

# Create and activate environment
conda create -y -n lerobot python=3.10
conda activate lerobot

# Clone code repository
git clone https://github.com/Juxi-Technology/lerobot.git

# Install dependencies
conda install ffmpeg -c conda-forge
cd ~/lerobot && pip install -e ".[feetech]"
            

3. 機械手臂控制

埠查找


# Find USB port corresponding to the robotic arm
lerobot-find-port
            

按照提示插拔機械手臂 USB 線,取得對應的埠號(通常為 /dev/ttyACM0 和 /dev/ttyACM1)

埠授權


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

機械手臂校準


# Calibrate slave arm
lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm

# Calibrate master arm
lerobot-calibrate \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm
            

按照提示將機械手臂移動到中位,然後完成各關節的量程校準。

🎮 核心功能範例

1. 主從遙操作


# Basic teleoperation (without camera)
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

# Teleoperation with camera display
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. 資料集錄製


# Record dataset locally
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 演算法)


# Train with local dataset
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 推理運行


# Control robotic arm with trained model
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 機械手臂為機器人學習和開發提供了完整的生態支持,無論是教育、研究還是個人愛好者,都能快速上手開發屬於自己的機器人應用。

這篇文章是摘要。請在維基上閱讀完整的技術文件。

在維基百科上閱讀全文 →

在飛書知識庫中開啟