SO-101 セットアップガイド

パーツから最初のデータ収集まで。 推定時間: ~3 ~ 4 時間 (3D プリント時間は含まれません)。

1

組み立て

約 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)
  • 電源を入れる前にベースを安定した面に固定してください
  • 読んでください 安全ページ 電源を入れる前に
BOM および STL ファイルの入手場所: 完全な部品表と印刷可能な部品は、HuggingFace LeRobot リポジトリに保管されています。 で「SO-101」を検索してください。 ルロボット GitHub.
1b

パーツの 3D プリント

印刷時間は約 8 ~ 16 時間

SO-101 のすべての構造コンポーネントは、標準のデスクトップ プリンタを使用して FDM 印刷可能です。 STL ファイルはアームごとに単一ファイルのプリントに編成されているため、スライスが簡単になります。

推奨されるスライサー設定

設定 価値
材料 人民解放軍+
ノズル径 0.4mm(または0.6mm)
レイヤーの高さ 0.2mm(0.6mmノズルの場合は0.4mm)
充填密度 15%
サポート どこでも。 45°を超える傾斜を無視します
ベッドの接着 PEI またはガラス上の標準スティック接着剤
テスト済みのプリンター Prusa MINI+、Creality Ender 3、Bamboo Lab A/P/X

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 を印刷します。 STL/Gauges/ そして、レゴ ブロックまたは STS3215 サーボに対してテストします。 ゲージが正しく適合していると、プリンターのキャリブレーションが正確であることが確認されます。 完全な印刷を実行する前に、必要に応じてスケーリングを調整します。
プリンターをお持ちではありませんか? を参照してください。 3DPRINT.md ガイド 印刷サービス オプションについては、SO-ARM100 リポジトリにあります。 印刷済みキットも次のサイトから入手できます。 パルタボット (私たち)、 シードスタジオ (国際)、および 自動検出 (欧州連合)。
2

ソフトウェアのインストール

~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 ではプリインストールされています)
3

ポートの検出とキャリブレーション

~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
再組み立て後は再調整してください。 校正データはローカルに保存されます。 ジョイントを分解して再組み立てした場合は、キャリブレーションを再実行して正確なゼロ位置を復元してください。
4

最初の動作テスト

~15分

リーダー アームを接続する前に、シングルアーム モードで遠隔操作スクリプトを実行して、すべてのジョイントが正しく反応することを確認します。

python lerobot/scripts/teleoperate.py \
  --robot.type=so101 \
  --robot.port=/dev/ttyACM0

何を確認するか

  • 6 つの関節すべてがスキップすることなくコマンドに応答します
  • ターミナルにサーボストールや過負荷の警告が表示されない
  • グリッパーは全範囲にわたって開閉します
  • どの接続位置でもケーブルの引っかかりがありません
非常停止 USB ケーブルを外すと、アームへの通信が直ちに切断されます。 通電操作中は作業スペースに手を近づけないでください。
5

遠隔操作

~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
両手セットアップ: SO-101はDK1リーダーアームと併用してフォロワーアームとして使用できます。 どちらも LeRobot ネイティブであり、USB シリアル経由で通信します。 を参照してください。 DK1ページ 完全な両面手動セットアップの詳細については、
6

データ収集

進行中

を使用してデモンストレーションを録画する 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 学習パス セットアップからモデルのデプロイまでの体系的な進行を実現します。

セットアップは完了しましたか?

コミュニティに参加して結果を共有し、高度な構成に関するサポートを受けてください。