LeRobot documentation

Koch v1.1

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

Koch v1.1

以下の手順で、Koch v1.1 ロボットの組み立て方法を説明します。

パーツを注文して組み立てる

このREADMEに記載されている調達および組み立ての手順に従ってください。これにより、以下の画像に示されているように、followerアームとleaderアームのセットアップが案内されます。

アセンブリプロセスのビジュアルな解説については、この動画チュートリアルを参照してください。

この動画の制作以降、設定フェーズが簡素化されました。そのため、以下の2点について、動画内の手順と異なります。

  • すべてのモーターケーブルをすぐには接続せず、モーターの構成で指示があるまでお待ちください。
  • コントローラーボード(PCB)をベースにすぐにはネジ止めせず、モーターの構成で指示があるまでお待ちください。

LeRobot🤗のインストール

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

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

pip install -e ".[dynamixel]"

モーターを設定

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

各バスサーボアダプタのポートを見つけるには、このスクリプトを実行します:

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とボーレートが一致しない可能性が高いため、この手順も実行する必要があるでしょう。

フォロワー

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

モーターIDの設定方法の視覚的な参考として、SO101アームのプロセスを追ったこの動画を参照してください。

コマンド
APIの例
lerobot-setup-motors \
    --robot.type=koch_follower \
    --robot.port=/dev/tty.usbmodem575E0031751 # <- 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=koch_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751

キャリブレーション

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

フォロワー

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

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

ほとんどのロボットについて、キャリブレーション方法を統一しました。そのため、このKochアームのキャリブレーション手順は、SO100およびSO101の手順と同じです。まず、各関節が可動範囲の中央にある位置にロボットを移動し、Enterキーを押します。次に、すべての関節を可動範囲全体にわたって動かします。SO101の同じプロセスの参考動画は、こちらで確認できます。

リーダー

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

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

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

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

Update on GitHub