LeRobot 文件

Koch v1.1

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Koch v1.1

在以下步驟中,我們將說明如何組裝 Koch v1.1 機器人。

訂購並組裝零件

請遵循此 README 中提供的採購與組裝說明。這將引導您設置從動臂(follower arm)與主動臂(leader arm),如下圖所示。

若需組裝過程的視覺化指南,您可以參考此教學影片

自本影片製作以來,我們簡化了配置階段。因此,有兩點與影片中的說明有所不同:

安裝 LeRobot 🤗

若要安裝 LeRobot,請遵循我們的安裝指南

除了這些說明外,您還需要安裝 Dynamixel SDK。

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,這對應到您的主控 (leader) 或從屬 (follower) 機械手臂。

2. 設定馬達 ID 和傳輸速率 (Baudrate)

每個馬達在匯流排上都有一個唯一的 ID。全新馬達通常預設 ID 為 1。為了讓馬達與控制器之間能正常通訊,我們首先需要為每個馬達設定一個唯一且不同的 ID。此外,資料在匯流排上的傳輸速度由鮑率決定。為了互相溝通,控制器和所有馬達必須配置為相同的鮑率。

為此,我們首先需要透過控制器單獨連接到每個馬達以進行設定。由於我們將把這些參數寫入馬達內部記憶體 (EEPROM) 的非揮發性區域,因此我們只需執行此操作一次。

如果您是從其他機器人重複使用馬達,您可能也需要執行此步驟,因為其 ID 和鮑率 (baudrate) 很可能不匹配。

從屬 (Follower)

將電腦的 USB 傳輸線及 5V 電源供應器連接至從動臂的控制器電路板。接著,執行以下指令,或使用您在上一步取得的埠口 (port) 執行 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.

依照指示,插入夾爪馬達。請確保它是唯一連接到控制器板的馬達,並且馬達本身尚未與任何其他馬達菊花鏈 (daisy-chained) 連接。當您按下 [Enter] 時,腳本會自動為該馬達設定 ID 和鮑率。

疑難排解

如果在該點發生錯誤,請檢查您的線材,確保它們已正確插好

  • 電源
  • 電腦與控制器板之間的 USB 線
  • 從控制器板到馬達的 3 針腳線材

如果您使用的是 Waveshare 控制器板,請確保兩個跳線 (jumper) 都設定在 B 通道 (USB)。

接著您應該會看到以下訊息

'gripper' motor id set to 6

隨後是下一條說明

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

您可以從控制器電路板上拔下 3 針電纜,但可以將其保持連接在另一端的夾爪馬達 (gripper motor) 上,因為它已經處於正確的位置。現在,將另一條 3 針電纜插入手腕旋轉馬達 (wrist roll motor) 並將其連接至控制器電路板。如同之前的馬達,請確保它是唯一連接到電路板的馬達,並且馬達本身沒有連接到任何其他設備。

依照指示對每個馬達重複上述操作。

在按下 Enter 鍵前,請在每個步驟檢查您的接線。例如,當您操作控制板時,電源線可能會斷開。

完成後,腳本將會結束,此時馬達已準備就緒。現在您可以將每個馬達的 3 針腳線材串聯起來,並將第一個馬達(ID=1 的「肩部水平旋轉」馬達)的線材連接到控制器板,該控制器板現在可以安裝在手臂基座上。

主控 (Leader)

對主動臂執行相同的步驟,但請相應地修改指令或腳本。

指令
API 範例
lerobot-setup-motors \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751 \  # <- paste here the port found at previous step

校正

接下來,您需要校正您的機器人,以確保主控和從屬手臂在相同物理位置時具有相同的位置數值。校正過程非常重要,因為它能讓在一個機器人上訓練的神經網路在另一個機器人上運作。

從屬 (Follower)

執行以下指令或 API 範例來校正從屬手臂

指令
API 範例
lerobot-calibrate \
    --robot.type=koch_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
    --robot.id=my_awesome_follower_arm  # <- Give the robot a unique name

我們統一了大多數機器人的校準方法。因此,此 Koch 機械臂的校準步驟與 SO100 和 SO101 的步驟相同。首先,我們必須將機器人移動到每個關節都處於其活動範圍中間的位置,然後按下 Enter。其次,我們將所有關節移動過它們的完整活動範圍。作為參考,該流程在 SO101 上的操作影片可以在這裡找到。

主控 (Leader)

對主控手臂執行相同的校正步驟,執行以下指令或 API 範例

指令
API 範例
lerobot-calibrate \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
    --teleop.id=my_awesome_leader_arm  # <- Give the robot a unique name

恭喜 🎉,您的機器人已準備就緒,可以自行學習任務了。請依照此教學開始訓練它:開始使用真實世界機器人

如果您有任何問題或需要協助,請在 Discord 上聯繫我們。

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.