4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ロボットアーム "SO-Arm 100" を作ってみた

Last updated at Posted at 2025-03-26

ロボットアームを自作した過程を詳しく紹介していきます。日本語の記事が少なかったので、同じように挑戦したい人の参考になればと思います!

そもそも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円
      ※日本のサイトでは売られていなかったのでアリエクで注文しました

その他

  • 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_armsport=の部分を先ほどコピーした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" を押すと、キーボードでロボットアームを操作できるようになります。

最後に

初めてのロボットアーム作りは大変でしたが、完成した時の喜びはひとしおでした!
ぜひ皆さんも挑戦してみてください!

参考リンク

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?