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 の 2 つのプラットフォームに対応しています:

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 はロボットの学習と開発に完全なエコシステムサポートを提供します。教育、研究、個人のホビーを問わず、誰でもすぐに独自のロボットアプリケーションを開発できます。

この記事は要約です。完全な技術ドキュメントは Wiki でお読みください。

Wiki で全文を読む →

Feishu Wiki で開く