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

