LeRobot 文件
SO-101
並獲得增強的文件體驗
開始使用
SO-101
在以下步驟中,我們將解釋如何組裝我們的旗艦機器人 SO-101。
採購零件
請遵循此 README。其中包含物料清單、採購零件的連結、3D 列印零件的說明,以及針對首次列印或沒有 3D 印表機使用者的建議。
安裝 LeRobot 🤗
要安裝 LeRobot,請遵循我們的 安裝指南
除了這些說明,你還需要安裝 Feetech SDK
pip install -e ".[feetech]"
分步組裝說明
從動機臂使用 6 個 STS3215 電機,減速比為 1/345。而主動機臂則使用三種不同減速比的電機,以確保它既能支撐自身重量,又能在不需要很大力氣的情況下移動。下表顯示了每個關節需要哪種電機。
主動機臂關節 | 電機 | 減速比 |
---|---|---|
基座 / 肩部平移 | 1 | 1 / 191 |
肩部升降 | 2 | 1 / 345 |
肘部屈伸 | 3 | 1 / 191 |
腕部屈伸 | 4 | 1 / 147 |
腕部旋轉 | 5 | 1 / 147 |
夾爪 | 6 | 1 / 147 |
清理零件
移除 3D 列印零件上的所有支撐材料。最簡單的方法是使用小螺絲刀撬起支撐材料。
建議在繼續組裝之前,先將一根 3 針電纜安裝到放置好的電機上。
關節 1
- 將第一個電機放入基座。
- 用 4 顆 M2x6mm 螺絲(最小的螺絲)固定電機。頂部兩顆,底部兩顆。
- 滑入第一個電機支架,並用兩顆 M2x6mm 螺絲(每側一顆)固定。
- 安裝兩個電機舵盤,用一顆 M3x6mm 螺絲固定頂部舵盤。
- 連線肩部零件。
- 用 4 顆 M3x6mm 螺絲從頂部,4 顆 M3x6mm 螺絲從底部擰緊肩部零件。
- 新增肩部電機支架。
關節 2
- 從頂部滑入第二個電機。
- 用 4 顆 M2x6mm 螺絲固定第二個電機。
- 將兩個電機舵盤安裝到電機 2 上,同樣使用 M3x6mm 舵盤螺絲。
- 用 4 顆 M3x6mm 螺絲在兩側連線上臂。
關節 3
- 插入電機 3 並用 4 顆 M2x6mm 螺絲固定。
- 將兩個電機舵盤安裝到電機 3 上,並再次用一顆 M3x6mm 舵盤螺絲固定其中一個。
- 用 4 顆 M3x6mm 螺絲在兩側將前臂連線到電機 3。
關節 4
- 滑入電機支架 4。
- 滑入電機 4。
- 用 4 顆 M2x6mm 螺絲固定電機 4,並安裝其電機舵盤,使用一顆 M3x6mm 舵盤螺絲。
關節 5
- 將電機 5 插入腕部支架,並用 2 顆 M2x6mm 前螺絲固定。
- 僅在腕部電機上安裝一個電機舵盤,並用一顆 M3x6mm 舵盤螺絲固定。
- 用 4 顆 M3x6mm 螺絲在兩側將腕部固定到電機 4。
夾爪 / 手柄
- 將夾爪連線到電機 5,用 4 顆 M3x6mm 螺絲將其連線到腕部的電機舵盤上。
- 插入夾爪電機,並用 2 顆 M2x6mm 螺絲在兩側固定。
- 安裝電機舵盤,並再次使用一顆 M3x6mm 舵盤螺絲。
- 安裝夾爪並用 4 顆 M3x6mm 螺絲在兩側固定。
配置電機
1. 查詢與每個機械臂關聯的 USB 埠
要查詢每個匯流排伺服介面卡的埠,請透過 USB 和電源將 MotorBus 連線到您的計算機。執行以下指令碼,並在提示時斷開 MotorBus。
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
,對應於您的主控臂或從動臂。
2. 設定電機的 ID 和波特率
每個電機都透過總線上的唯一 ID 進行識別。全新電機通常帶有一個預設 ID 為 `1`。為了讓電機和控制器之間正常通訊,我們首先需要為每個電機設定一個唯一的、不同的 ID。此外,總線上傳輸資料的速度由波特率決定。為了相互通訊,控制器和所有電機都需要配置相同的波特率。
為此,我們首先需要單獨連線每個電機和控制器來設定這些引數。由於我們會將這些引數寫入電機內部儲存器的非易失性部分(EEPROM),所以我們只需要做一次。
如果您正在重複使用來自其他機器人的電機,您可能也需要執行此步驟,因為 ID 和波特率可能不匹配。
下面的影片展示了設定電機 ID 的步驟順序。
電機設定影片
從動機臂
將計算機的 USB 電纜和電源連線到從動機臂的控制器板上。然後,執行以下命令或使用您在上一步中獲得的埠執行 API 示例。您還需要使用 `id` 引數給您的主動機臂命名。
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 和波特率。
故障排除
如果此時出現錯誤,請檢查您的電纜並確保它們已正確插入。
- 電源
- 電腦和控制器板之間的 USB 電纜
- 從控制器板到電機的 3 針電纜
如果您使用的是 Waveshare 控制器板,請確保兩個跳線都設定在 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 的‘肩部平移’電機)的電纜連線到控制器板,該板現在可以安裝在機械臂的基座上。
主動機臂
對主動機臂執行相同的步驟。
lerobot-setup-motors \
--teleop.type=so101_leader \
--teleop.port=/dev/tty.usbmodem575E0031751 # <- paste here the port found at previous step
校準
接下來,您需要校準您的機器人,以確保主動機臂和從動機臂在處於相同物理位置時具有相同的位置值。校準過程非常重要,因為它允許在一個機器人上訓練的神經網路在另一個機器人上工作。
從動機臂
執行以下命令或 API 示例來校準從動臂
lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
--robot.id=my_awesome_follower_arm # <- Give the robot a unique name
下面的影片展示瞭如何執行校準。首先,您需要將機器人移動到所有關節都處於其活動範圍中間的位置。然後,在按 Enter 鍵後,您必須移動每個關節使其透過其完整的運動範圍。
校準影片
主動機臂
執行相同的步驟來校準主控臂,執行以下命令或 API 示例
lerobot-calibrate \
--teleop.type=so101_leader \
--teleop.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
--teleop.id=my_awesome_leader_arm # <- Give the robot a unique name
恭喜 🎉,您的機器人已準備好自主學習任務。請按照本教程開始訓練它:真實世界機器人入門
如果你有任何問題或需要幫助,請在 Discord 上聯絡我們。