SO-101 セットアップガイド
パーツから最初のデータ収集まで。 推定時間: ~3 ~ 4 時間 (3D プリント時間は含まれません)。
組み立て
約 60 分 + 印刷時間SO-101 は完全にオープンソースのアームです。 すべての部品は 3D プリントされるか、HuggingFace の LeRobot BOM にリストされている既製のハードウェアとして入手できます。
必要な部品
- Feetech STS3215 サーボモーター x 6
- 3D プリントされた構造部品 (SO-101 GitHub リポジトリ内の STL ファイル)
- USB-シリアル アダプタ ケーブル (CH340 または CP2102 チップ)
- 12V電源(最小3A)
- サーボ ケーブルとコネクタ ハードウェア (BOM ごと)
組み立てチェックリスト
- すべての構造コンポーネント (ベース、リンク、エンドエフェクター) を印刷します。
- STS3215 サーボをそれぞれのリンク ハウジングに取り付けます
- 印刷されたケーブルチャネルを通してサーボケーブルを配線します。
- 正しい順序でデイジーチェーン サーボを接続します (ベースから先端まで ID 1 ~ 6)
- 電源を入れる前にベースを安定した面に固定してください
- 読んでください 安全ページ 電源を入れる前に
パーツの 3D プリント
印刷時間は約 8 ~ 16 時間SO-101 のすべての構造コンポーネントは、標準のデスクトップ プリンタを使用して FDM 印刷可能です。 STL ファイルはアームごとに単一ファイルのプリントに編成されているため、スライスが簡単になります。
推奨されるスライサー設定
STL ファイル — 印刷するファイル
事前に手配された単一ファイルのプリントは、一般的なベッド サイズで利用できます。
- 220×220 mm ベッド (エンダー 3):
- フォロワー:
STL/SO101/Follower/Ender_Follower_SO101.stl - リーダー:
STL/SO101/Leader/Ender_Leader_SO101.stl
- フォロワー:
- 205×250 mm ベッド (Prusa / UP):
- フォロワー:
STL/SO101/Follower/Prusa_Follower_SO101.stl - リーダー:
STL/SO101/Leader/Prusa_Leader_SO101.stl
- フォロワー:
STL/Gauges/ そして、レゴ ブロックまたは STS3215 サーボに対してテストします。 ゲージが正しく適合していると、プリンターのキャリブレーションが正確であることが確認されます。 完全な印刷を実行する前に、必要に応じてスケーリングを調整します。
ソフトウェアのインストール
~15分SO-101 は、HuggingFace LeRobot によってネイティブにサポートされています。 追加のプラグインは必要ありません。LeRobot をインストールするだけです。
LeRobot をインストールする
# Using pip
pip install lerobot
# Or with uv (recommended)
uv pip install lerobot
Linux シリアル ポートのアクセス許可
Linux では、シリアル ポートは次のとおりです。 /dev/ttyACM* ユーザーが dialout グループ。 これを一度実行し、ログアウトして再度ログインします。
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
前提条件
- Python 3.10+
- Linux (Ubuntu 22.04 を推奨) または macOS
- USB-シリアルドライバーがインストールされています(macOS では CH340 ドライバー、通常 Linux ではプリインストールされています)
ポートの検出とキャリブレーション
~20分アームに適した USB シリアル ポートを見つけて、LeRobot キャリブレーション スクリプトを実行してサーボのゼロ位置を設定します。
シリアルポートを見つける
python lerobot/scripts/find_motors_bus_port.py
プロンプトが表示されたら、USB ケーブルを抜き差しします。 スクリプトはアームがどのポートに接続されているかを識別します。 典型的な値:
# Linux: /dev/ttyACM0 (or ttyUSB0 for CH340 adapters)
# macOS: /dev/tty.usbmodem* or /dev/tty.usbserial-*
キャリブレーションの実行
プロンプトが表示されたら、腕を可動範囲全体に動かします。
python lerobot/scripts/calibrate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
最初の動作テスト
~15分リーダー アームを接続する前に、シングルアーム モードで遠隔操作スクリプトを実行して、すべてのジョイントが正しく反応することを確認します。
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
何を確認するか
- 6 つの関節すべてがスキップすることなくコマンドに応答します
- ターミナルにサーボストールや過負荷の警告が表示されない
- グリッパーは全範囲にわたって開閉します
- どの接続位置でもケーブルの引っかかりがありません
遠隔操作
~30分SO-101 は、スタンドアロン アームとして、または遠隔操作用のリーダー アームを備えたフォロワー アームとして機能します。 2 番目のアームをリーダーとして使用すると、模倣学習のためのより質の高いデモンストレーションが生成されます。
スタンドアロン モード (キーボード / プログラム)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
リーダーアーム付き (例: DK1 リーダー)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101 \
--teleop.port=/dev/ttyACM1
データ収集
進行中を使用してデモンストレーションを録画する record.py。 データは LeRobot 形式で保存され、トレーニングのために HuggingFace Hub に直接プッシュできます。
基本的な録音
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
USBカメラ付き
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--robot.cameras.top.type=opencv \
--robot.cameras.top.index=0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
ベストプラクティスの記録
- トレーニング前にタスクごとに少なくとも 50 件のデモンストレーションを記録する
- エピソード間でオブジェクトの位置と向きを変える
- 説明的なものを使用する
--dataset.task後でフィルタリングするための名前 - OAK-D または Intel RealSense カメラは、深度対応のデータ収集に適しています。
- 各セッション後にデータセットが HuggingFace Hub にアップロードされていることを確認します
次のステップ
データを収集したら、LeRobot のトレーニング スクリプトを使用して ACT または拡散政策モデルをトレーニングします。 全文を読む SO-101 学習パス セットアップからモデルのデプロイまでの体系的な進行を実現します。