LeRobot 文件
Koch v1.1
並獲得增強的文件體驗
開始使用
Koch v1.1
在以下步驟中,我們將說明如何組裝 Koch v1.1 機器人。
訂購並組裝零件
請遵循此 README 中提供的採購與組裝說明。這將引導您設置從動臂(follower arm)與主動臂(leader arm),如下圖所示。
若需組裝過程的視覺化指南,您可以參考此教學影片。
自本影片製作以來,我們簡化了配置階段。因此,有兩點與影片中的說明有所不同:
- 請勿立即插入所有馬達電纜,請等到配置馬達 (Configure the motors) 章節指示時再進行操作。
- 請勿立即將控制器電路板 (PCB) 鎖在基座上,請等到配置馬達 (Configure the motors) 章節指示時再進行操作。
安裝 LeRobot 🤗
若要安裝 LeRobot,請遵循我們的安裝指南。
除了這些說明外,您還需要安裝 Dynamixel SDK。
pip install -e ".[dynamixel]"配置馬達
1. 找出與每支手臂相關聯的 USB 連接埠
若要為每個匯流排伺服馬達轉接器找到連接埠,請執行此腳本
lerobot-find-port
輸出範例
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 機械臂的設定過程。
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)
對主動臂執行相同的步驟,但請相應地修改指令或腳本。
lerobot-setup-motors \
--teleop.type=koch_leader \
--teleop.port=/dev/tty.usbmodem575E0031751 \ # <- paste here the port found at previous step校正
接下來,您需要校正您的機器人,以確保主控和從屬手臂在相同物理位置時具有相同的位置數值。校正過程非常重要,因為它能讓在一個機器人上訓練的神經網路在另一個機器人上運作。
從屬 (Follower)
執行以下指令或 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 範例
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恭喜 🎉,您的機器人已準備就緒,可以自行學習任務了。請依照此教學開始訓練它:開始使用真實世界機器人
在 GitHub 上更新如果您有任何問題或需要協助,請在 Discord 上聯繫我們。