ロボットアームを自作した過程を詳しく紹介していきます。日本語の記事が少なかったので、同じように挑戦したい人の参考になればと思います!
そもそもSO-Arm 100って何?
Standard Open Arm 100(SO-Arm 100)は、LeRobotという団体が誰もが手軽にAIロボットを活用できるように開発した模倣学習用のロボットアームです。
日本ではまだキットが市販されていないので、今回は必要な部品を集めて一から作っていきます。
ロボットアームの種類について
このプロジェクトには2種類のアームがあります:
- Leader arm:人が操作するためのコントローラー的なアーム
- Follower arm:実際に物を掴んだり動かしたりするアーム
今回はFollower armのみ作ります
必要な部品 (2025年3月28日現在)
-
サーボモーター(STS3215) × 6個
- 秋月電子にて購入:6個で約18,000円
-
ACアダプター(5V 4A) × 1個
- 秋月電子にて購入:約1,500円
-
モーター制御基板 × 1個
- AliExpressにて購入:約1,500円
※日本のサイトでは売られていなかったのでアリエクで注文しました
- AliExpressにて購入:約1,500円
その他
- USB-Cケーブル × 1本
- Cクランプ × 2個(100均で調達)
- 精密用プラスドライバー
費用の合計
- モーターと電源:約20,000円
- 制御基板:約1,500円
- 合計:約22,000円
Leader armも作る場合は、同じ部品をもう1セット購入してください。
3Dプリンターでパーツを印刷
今回はBumbulab A1 miniという3Dプリンターを使ってパーツを印刷しました。
GitHubのリポジトリの中のstl_files_for_3dprintingにSTLファイルが入っています。
Follower arm用のstlファイルをPCアプリで開いてからエクスポートし、SDカードに移して印刷します。(詳しい使い方)
印刷時間と設定
- Bumbulab A1 mini用のファイルは2つに分かれています
- 印刷速度は50%に設定
- 印刷時間:part_1で約6時間、part_2で約7時間
環境構築 (M2 MacBook Airの場合)
1. Minicondaをインストール
mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all
2. LeRobot用の仮想環境を作成
conda create -y -n lerobot python=3.10 && conda activate lerobot
3. LeRobot をgit clone
git clone https://github.com/huggingface/lerobot.git ~/lerobot
4. Feetechモーター用の依存パッケージをインストール
cd ~/lerobot && pip install -e ".[feetech]"
5. データ記録ツールをインストール
conda install -y -c conda-forge ffmpeg
pip uninstall -y opencv-python
conda install -y -c conda-forge "opencv>=4.10.0"
モーターのセットアップ
モーター制御基板をPCと電源、モーター1個に接続します。
USBポート名の確認:
python lerobot/scripts/find_motors_bus_port.py
指示に従ってケーブルを外し、Enterを押すとUSBの名前が表示されます。その表示された名前(例:/dev/tty.usbmodem58FA0432123
)をコピーしておきます。
設定ファイルを編集:
lerobot/lerobot/common/robot_devices/robots/configs.py
上記のファイルを開いて、follower_arms
のport=
の部分を先ほどコピーしたUSBポート名に変更します。
各モーターにIDを設定:
python lerobot/scripts/configure_motor.py \
--port /dev/tty.usbmodemXXXXXXXXXXX \ # 自分の環境のポート名を入れる
--brand feetech \
--model sts3215 \
--baudrate 1000000 \
--ID 1
実行すると、以下のような出力が出ます:
Connected on port /dev/tty.usbmodem58FA0432123
Scanning all baudrates and motor indices
100%|███████████████████████| 9/9 [00:00<00:00, 16.45it/s]
Motor index found at: 1
Setting its index to desired index 1
Present Position [2049]
Offset [0]
モーター6個それぞれにIDを1から6まで割り当ててください。
組み立て
組み立てには約3時間ほどかかります。
組み立て時のポイント
- モーターは先に配線してから組み込むとスムーズです
- 印刷したパーツがきつくてはまりにくい場合、多少割れても問題ありません
- YouTubeで動画を見ながら組み立てるとわかりやすいです
おすすめの参考動画
キャリブレーションと実際の操作
Follower arm単体でキャリブレーションを行う場合はエラーが出るので、
lerobot/lerobot/common/robot_devices/robots/configs.py
の430行あたりにあるleader_arms
の部分をコメントアウトしておきます。
以下のスクリプトでキャリブレーションを実行します。
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--robot.cameras='{}' \
--control.type=calibrate \
--control.arms='["main_follower"]'
完成!
Phosphobotを使って動かす
LeaderアームなしでFollowerアームを動かすには、Phospho_botというツールを使うのがおすすめです。
インストール:
brew tap phospho-app/phosphobot
brew install phosphobot
実行:
phosphobot run
Phosphobot dashboardを開いて、必ずキャリブレーションを行ってください。
(自分はキャリブレーションせずに遊んでグリップのパーツが割れました笑)
キャリブレーション後、dashboardの "keyboard control" から "start robot" を押すと、キーボードでロボットアームを操作できるようになります。
最後に
初めてのロボットアーム作りは大変でしたが、完成した時の喜びはひとしおでした!
ぜひ皆さんも挑戦してみてください!

参考リンク