LeRobot documentation

SO-101

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SO-101

SO-101 SO-101

以下の手順で、フラッグシップロボットであるSO-101の組み立て方法について説明します。

部品を調達する

このREADMEに従ってください。部品表(BOM)と部品の入手先へのリンク、および部品の3Dプリント手順が含まれています。 また、初めて3Dプリントを行う場合や、3Dプリンタを持っていない場合のアドバイスも記載されています。

LeRobot🤗のインストール

LeRobotをインストールするには、インストールガイドに従ってください。

これらの手順に加えて、Feetech SDKのインストールが必要です(PyPIからLeRobotをインストールした場合は、代わりにpip install 'lerobot[feetech]'を実行してください):

pip install -e ".[feetech]"

ステップバイステップの組み立て手順

フォロワーアームには1/345の減速比を持つSTS3215モーターが6個使用されています。一方、リーダーには、自身の重量を支えつつ、大きな力なしで動かせるように、異なる減速比のモーターが3個使用されています。各関節にどのモーターが必要かは、以下の表に示されています。

リーダーアーム軸モーターギア比
ベース / ショルダーパン11 / 191
ショルダーリフト21 / 345
肘の屈曲31 / 191
Wrist Flex41 / 147
Wrist Roll51 / 147
Gripper61 / 147

モーターを設定

1. 各アームに関連付けられたUSBポートを特定します

各バスサーボアダプタのポートを確認するには、MotorBusをUSBと電源でコンピュータに接続します。以下のスクリプトを実行し、プロンプトが表示されたらMotorBusを切断してください。

lerobot-find-port
Mac
Linux

出力例:

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.

検出されたポートは、リーダーアームまたはフォロワーアームに対応する/dev/tty.usbmodem575E0032081です。

2. モーターの ID とボーレートを設定します

各モーターはバス上で一意のidによって識別されます。新品のモーターは通常、デフォルトのidが1に設定されています。モーターとコントローラー間の通信を正常に行うためには、まず各モーターに一意で異なるidを設定する必要があります。また、バス上でデータが送信される速度はbaudrateによって決定されます。互いに通信するためには、コントローラーとすべてのモーターに同じbaudrateを設定する必要があります。

そのために、まずこれらの設定を行うため、コントローラーを介して各モーターに個別に接続する必要があります。これらのパラメータはモーターの内部メモリ(EEPROM)の非揮発性セクションに書き込まれるため、この操作は一度だけ行えば済みます。

別のロボットからモーターを流用する場合は、IDとボーレートが一致しない可能性が高いため、この手順も実行する必要があるでしょう。

以下の動画は、モーターIDを設定するための手順を示しています。

モーターのセットアップ動画

フォロワー

コンピューターと電源からUSBケーブルをフォロワーアームのコントローラーボードに接続します。その後、前回のステップで取得したポート番号を指定して、以下のコマンドを実行するか、APIの例を実行してください。また、idパラメーターでフォロワーアームに名前を付ける必要があります。

コマンド
APIの例
lerobot-setup-motors \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem585A0076841  # <- paste here the port found at previous step

次の指示が表示されるはずです

Connect the controller board to the 'gripper' motor only and press enter.

指示に従い、グリップのモーターを接続してください。ボードに接続されているモーターがこれのみであり、かつそのモーター自体が他のモーターとデイジーチェーン接続されていないことを確認してください。[Enter]を押すと、スクリプトがそのモーターのidとbaudrateを自動的に設定します。

Troubleshooting

その時点でエラーが発生した場合は、ケーブルを確認し、正しく接続されていることを確認してください:

  • 電源
  • コンピューターとコントローラーボードを接続するUSBケーブル
  • コントローラーボードからモーターへの3ピンケーブル

Waveshareのコントローラーボードを使用している場合は、2つのジャンパーがBチャネル(USB)に設定されていることを確認してください。

次に、以下のメッセージが表示されるはずです。

'gripper' motor id set to 6

次に、次の指示が続きます。

Connect the controller board to the 'wrist_roll' motor only and press enter.

コントローラーボードから3ピンケーブルを抜くことができますが、もう一方の端のグリップモーターには接続したままにしてください。すでに正しい位置にあるためです。次に、別の3ピンケーブルをリストロールモーターに接続し、コントローラーボードに接続します。前のモーターと同様に、ボードに接続されているモーターがこれのみであること、およびモーター自体が他のモーターに接続されていないことを確認してください。

指示に従って、各モーターに対して操作を繰り返します。

Enterキーを押す前に、各ステップで配線を確認してください。例えば、ボードを操作している間に電源ケーブルが外れる可能性があります。

完了すると、スクリプトは正常に終了し、モーターが使用可能な状態になります。次に、各モーターの3ピンケーブルを次のモーターに、そして最初のモーター(id=1の‘shoulder pan’)のケーブルをコントローラーボードに接続します。このボードは、アームのベースに取り付けることができます。

リーダー

リーダーアームにも同じ手順を実行します。

コマンド
APIの例
lerobot-setup-motors \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751  # <- paste here the port found at previous step

パーツのクリーンアップ

3Dプリントされた部品からすべてのサポート材を取り除きます。最も簡単な方法は、小さなドライバーを使用してサポート材の下に入り込むことです。

組み立てを続ける前に、モーターに配置した後に1本の3ピンケーブルを接続しておくことをお勧めします。

ジョイント 1

  • モーターホーンを2つ取り付けます。上部のホーンはM3x6mmのネジで固定します。下部のホーンにはネジは不要です。
  • 最初のモーターをベースに配置します。
  • モーターを4本のM2x6mmネジ(最小のネジ)で固定してください。上から2本、下から2本です。
  • 最初のモーターホルダーをスライドさせて、M2x6mmのネジ2本(左右それぞれ1本ずつ)で固定してください。
  • 肩の部分を取り付けます。
  • 肩の部分を、上側と下側にそれぞれ4本ずつのM3x6mmネジで固定してください
  • ショルダーモーターホルダーを追加します。

ジョイント 2

  • モーターホーンを2つ取り付けます。上部のホーンはM3x6mmのネジで固定します。下部のホーンにはネジは不要です。
  • 上から2番目のモーターをスライドさせて挿入します。
  • 2番目のモーターをM2x6mmのネジ4本で固定してください。
  • 上腕を、左右それぞれ4本のM3x6mmネジで取り付けます。

ジョイント 3

  • モーターホーンを2つ取り付けます。上部のホーンはM3x6mmのネジで固定します。下部のホーンにはネジは不要です。
  • モーター3を挿入し、4本のM2x6mmネジで固定します。
  • 4 M3x6mmのネジを左右それぞれに使用して、前腕をモーター3に接続します。

ジョイント 4

  • モーターホーンを2つ取り付けます。上部のホーンはM3x6mmのネジで固定します。下部のホーンにはネジは不要です。
  • スライドオーバーモーターホルダー4。
  • モーター4をスライドインします。
  • モーター4を4本のM2x6mmネジで固定してください。

ジョイント 5

  • モーター5をリストホルダーに挿入し、M2x6mmのフロントネジ2本で固定します。
  • 手首モーターにはモーターホーンを1つだけ取り付けて、M3x6mmのホーンネジで固定してください。
  • 4 のモーターに、両側で M3x6mm のネジを4本使用して手首を固定してください。

グリップ / ハンドル

フォロワー
リーダー
  • モーター5にグリップアタッチメントを取り付け、手首部のモーターホーンに4本のM3x6mmネジで固定します。
  • グリップモーターを挿入し、両側にそれぞれ2本のM2x6mmネジで固定します。
  • gripper motorに、モーターホーンを2つ取り付けます。上部のホーンはM3x6mmのネジで固定し、下部のホーンにはネジは不要です。
  • gripper clawを取り付け、両側にM3x6mmのネジ4本で固定します。

キャリブレーション

次に、リーダーアームとフォロワーアームが同じ物理的な位置にあるときに、同じ位置の値を持つようにロボットをキャリブレーションする必要があります。 キャリブレーションのプロセスは非常に重要であり、1つのロボットで学習したニューラルネットワークを別のロボットでも動作させることを可能にします。

フォロワー

以下のコマンドまたはAPIの例を実行して、フォロワーアームをキャリブレーションします。

コマンド
APIの例
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

以下の動画では、キャリブレーションの実行方法を示しています。まず、すべての関節がそれぞれの可動範囲の中央にある位置にロボットを移動する必要があります。その後、Enterキーを押して、各関節を可動範囲全体にわたって動かします。

キャリブレーション動画

リーダー

リーダーアームのキャリブレーションには、同じ手順を実行し、以下のコマンドまたはAPIの例を実行します。

コマンド
APIの例
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

おめでとうございます🎉。ロボットがタスクを独自に学習する準備が整いました。このチュートリアルに従ってトレーニングを開始してください: 実世界のロボットで始める

ご質問やご支援が必要な場合は、Discordまでご連絡ください。

Update on GitHub