LeRobot 文件
SO-100
並獲得增強的文件體驗
開始使用
SO-100
在以下步驟中,我們將說明如何組裝 SO-100 機械手臂。
取得零件
請遵循此 README。其中包含物料清單 (BOM)、零件採購連結,以及 3D 列印零件的說明。如果您是第一次列印或沒有 3D 印表機,請參考相關建議。
安裝 LeRobot 🤗
若要安裝 LeRobot,請遵循我們的 安裝指南
除了這些說明之外,您還需要安裝 Feetech SDK
pip install -e ".[feetech]"配置馬達
注意:與 SO-101 不同,SO-100 在組裝完成後將難以觸及馬達接頭,因此必須事先完成配置步驟。
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 和傳輸速率很可能不匹配。
從屬 (Follower)
將 USB 線從電腦連接到從動手臂 (Follower arm) 的控制器板,並接上電源。接著,執行以下指令,或使用上一步中取得的連接埠執行 API 範例。您還需要使用 id 參數為您的主動手臂 (Leader arm) 命名。
關於如何設定馬達 ID 的視覺化參考,請參閱此影片,我們在該影片中示範了 SO101 手臂的設定過程。
lerobot-setup-motors \
--robot.type=so100_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.依照指示,插入夾爪馬達。請確保它是唯一連接到控制器板的馬達,並且馬達本身尚未與任何其他馬達菊花鏈 (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 針接頭從控制器板上斷開,但可以將其保持連接到另一端的夾爪馬達,因為它已經位於正確位置。現在,插入另一條 3 針線到手腕旋轉馬達並連接到控制器板。與之前的馬達一樣,確保它是唯一連接到板上的馬達,且該馬達本身沒有連接到任何其他馬達。
依照指示對每個馬達重複上述操作。
在按下 Enter 鍵前,請在每個步驟檢查您的接線。例如,當您操作控制板時,電源線可能會斷開。
完成後,腳本將會結束,此時馬達已準備就緒。現在您可以將每個馬達的 3 針腳線材串聯起來,並將第一個馬達(ID=1 的「肩部水平旋轉」馬達)的線材連接到控制器板,該控制器板現在可以安裝在手臂基座上。
主控 (Leader)
對主動手臂執行相同的步驟。
lerobot-setup-motors \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem575E0031751 # <- paste here the port found at previous step逐步組裝說明
拆除 6 個主動馬達的齒輪
拆除齒輪影片
請依照影片指示拆除齒輪。您需要拆除主動手臂馬達上的齒輪。如此一來,您將僅使用馬達的位置編碼並減少摩擦力,以便更輕鬆地操作主動手臂。
清潔零件
移除 3D 列印零件上的所有支撐材料。最簡單的方法是使用小螺絲起子深入支撐材料下方進行清理。
額外指南
手臂組裝影片
注意:此影片提供了組裝手臂的視覺指導,但並未詳細說明何時或如何進行接線。提前插入纜線比事後再做要簡單得多。第一支手臂的組裝時間可能需要 1 小時以上,但一旦熟悉了,您可以在 1 小時內組裝好第二支手臂。
第一個馬達
步驟 2:插入線材
- 將兩條線插入第一個馬達。
步驟 3:安裝至底座
- 將第一個馬達放入底座中。
步驟 4:固定馬達
- 用 4 顆螺絲固定馬達。底部 2 顆,頂部 2 顆。
步驟 5:安裝馬達支架
- 套上第一個馬達支架,並用兩顆螺絲(每側一顆)將其固定。
步驟 6:安裝馬達搖臂 (Motor Horns)
- 安裝兩個馬達搖臂,並用螺絲固定頂部搖臂。安裝搖臂時盡量不要移動馬達位置,對於已拆除齒輪的主動手臂尤其重要。
新增馬達搖臂影片
步驟 7:安裝肩部零件
- 將一條線引導至機器人後方,另一條線引導至左側或朝向您(參見照片)。
- 安裝肩部零件。
步驟 8:固定肩部
- 用 4 顆頂部螺絲和 4 顆底部螺絲鎖緊肩部零件(轉動肩膀以接觸底部螺絲孔)。
第二個馬達組裝
步驟 9:安裝馬達 2
- 從上方滑入第二個馬達,並將馬達 1 的線連接到馬達 2。
步驟 10:安裝肩部支架
- 加上肩部馬達支架。
- 確保從馬達 1 到馬達 2 的線位於支架後方,而另一條線則向上引導(參見照片)。
- 此部件可能組裝較緊,您可以使用如圖所示的工作台或類似的裝置將零件推入馬達周圍。

步驟 11:固定馬達 2
- 用 4 顆螺絲固定第二個馬達。
步驟 12:安裝馬達搖臂
- 將兩個馬達搖臂安裝到馬達 2 上,同樣使用搖臂螺絲。
步驟 13:安裝底座
- 使用 2 顆螺絲安裝底座配件。
步驟 14:安裝上臂
- 在每側用 4 顆螺絲固定上臂。
第三個馬達組裝
步驟 15:安裝馬達 3
- 將馬達電纜從馬達 2 經由電纜支架引導至馬達 3,然後用 4 顆螺絲固定馬達 3。
步驟 16:安裝馬達搖臂
- 將兩個馬達搖臂安裝到馬達 3 上,並再次使用搖臂螺絲固定其中一個。
步驟 17:安裝前臂
- 在每側用 4 顆螺絲將前臂連接到馬達 3。
第四個馬達組裝
步驟 18:安裝馬達 4
- 滑入馬達 4,連接馬達 3 的線,並用一顆螺絲將電纜固定在支架中。

步驟 19:安裝馬達支架 4
- 安裝第四個馬達支架(組裝較緊)。確保一條線向上引導,而來自馬達 3 的線向下引導(參見照片)。
步驟 20:固定馬達 4 並安裝搖臂
- 用 4 顆螺絲固定馬達 4 並安裝其馬達搖臂,其中一個需使用搖臂螺絲。
手腕組裝
步驟 21:安裝馬達 5
- 將馬達 5 插入手腕支架,並用 2 顆前部螺絲固定。
步驟 22:安裝手腕
- 將來自馬達 4 的線連接至馬達 5。並預先插入用於夾爪的另一條線。
- 用每側 4 顆螺絲將手腕固定至馬達 4。
步驟 23:安裝手腕搖臂
- 僅在手腕馬達上安裝一個馬達搖臂,並用搖臂螺絲固定。
從動裝置配置
步驟 24:安裝夾爪
- 將夾爪安裝到馬達 5 上。
步驟 25:安裝夾爪馬達
- 插入夾爪馬達,連接從馬達 5 到馬達 6 的電纜,並用每側 3 顆螺絲固定。
步驟 26:安裝夾爪搖臂與爪子
- 安裝馬達搖臂,同樣使用搖臂螺絲。
- 安裝夾爪並用每側 4 顆螺絲固定。
步驟 27:安裝控制器
- 將馬達控制器安裝到機器人後方。

組裝完成 – 繼續進行主動手臂的組裝。
主動裝置配置
對於主動裝置配置,請執行 步驟 1–23。確保您已從馬達上拆除了馬達齒輪。
步驟 24:安裝主動支架
- 將主動支架安裝到手腕上,並用一顆螺絲固定。
步驟 25:安裝把手
- 用 4 顆螺絲將把手安裝到馬達 5 上。
步驟 26:安裝夾爪馬達
- 插入夾爪馬達,用每側 3 顆螺絲固定,使用搖臂螺絲安裝馬達搖臂,並連接馬達電纜。
步驟 27:安裝扳機
- 用 4 顆螺絲安裝從動扳機。
步驟 28:安裝控制器
- 將馬達控制器安裝到機器人後方。

校正
接下來,您需要校正您的機器人,以確保主控和從屬手臂在相同物理位置時具有相同的位置數值。校正過程非常重要,因為它能讓在一個機器人上訓練的神經網路在另一個機器人上運作。
從屬 (Follower)
執行以下指令或 API 範例來校正從屬手臂
lerobot-calibrate \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
--robot.id=my_awesome_follower_arm # <- Give the robot a unique name我們統一了大多數機器人的校準方法。因此,這款 SO100 手臂的校準步驟與 Koch 和 SO101 相同。首先,我們必須將機器人移動到每個關節處於其運動範圍中間的位置,然後按下 Enter 鍵。其次,我們將所有關節移動過其完整的運動範圍。有關相同過程的 SO101 參考影片,請參閱這裡
主控 (Leader)
對主控手臂執行相同的校正步驟,執行以下指令或 API 範例
lerobot-calibrate \
--teleop.type=so100_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 上聯繫我們。