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
📚 相關資源
- JuxiTechnology GitHub - 取得最新的開源程式碼和硬體資料
- Lark Wiki - 查看完整的官方文件和教學
🛠️ 常見問題
- 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 機械手臂為機器人學習和開發提供了完整的生態支持,無論是教育、研究還是個人愛好者,都能快速上手開發屬於自己的機器人應用。

