LeRobot 文件

LeKiwi

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

LeKiwi

LeKiwi

在下面的步驟中,我們將解釋如何組裝 LeKiwi 行動機器人。

取得零件

請遵循此 README。它包含物料清單,附有零件來源的連結,以及 3D 列印零件的說明。並針對初次列印或沒有 3D 印表機的使用者提供建議。

有線版本

如果您有 **有線** 版本的 LeKiwi,您可以跳過樹莓派的安裝和 SSH 的設定。您也可以直接在您的電腦上執行所有指令,無論是 LeKiwi 腳本還是用於遙控操作的主動臂腳本。

在樹莓派上安裝軟體

現在我們必須設定將在 LeKiwi 機器人上運行的遠端電腦。這通常是樹莓派,但也可以是任何能夠在 5V 下運行並擁有足夠 USB 連接埠 (2 個或更多) 用於攝影機和馬達控制板的電腦。

安裝作業系統

要設定樹莓派及其 SD 卡,請參閱:樹莓派設定。這裡解釋了如何下載 Imager 以安裝 Raspberry Pi OS 或 Ubuntu。

設定 SSH

設定您的樹莓派後,您應該啟用並設定 SSH(安全殼層協定),以便您可以從筆記型電腦登入樹莓派,而無需在樹莓派上連接螢幕、鍵盤和滑鼠。關於如何執行此操作的絕佳教學可以在這裡找到。您可以在命令提示字元 (cmd) 中登入您的樹莓派,或者如果您使用 VS Code,您可以使用擴充功能。

在樹莓派上安裝 LeRobot 🤗

在您的樹莓派上使用我們的安裝指南安裝 LeRobot

除了這些說明之外,您還需要在您的樹莓派上安裝 Feetech SDK 和 ZeroMQ

pip install -e ".[lekiwi]"

在本機安裝 LeRobot

如果您已在筆記型電腦/個人電腦上安裝了 LeRobot,則可以跳過此步驟;否則,請按照我們在樹莓派上執行的相同步驟進行操作。

請遵循我們的安裝指南

除了這些說明之外,您還需要在您的筆記型電腦/個人電腦上安裝 Feetech SDK 和 ZeroMQ

pip install -e ".[lekiwi]"

太棒了 :hugs:!您現在已經完成了 LeRobot 的安裝,我們可以開始組裝 SO100/SO101 機械手臂和行動底座 :robot:。現在每次您想使用 LeRobot 時,都可以前往我們安裝 LeRobot 的 ~/lerobot 資料夾並執行其中一個指令。

逐步組裝說明

首先,我們將組裝兩個 SO100/SO101 機械手臂。一個連接到行動底座,另一個用於遙控操作。然後我們將組裝行動底座。組裝說明可以在這兩頁找到

尋找與馬達板相關聯的 USB 連接埠

若要為每個匯流排伺服馬達轉接器找到連接埠,請執行此腳本

lerobot-find-port
Mac
Linux

輸出範例

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081']
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,對應到您的板子。

設定馬達

設定馬達的說明可以在 SO101 文件中找到。除了機械手臂馬達的 ID 外,我們還需要設定行動底座的馬達 ID。這些 ID 需要按照特定的順序才能正常運作。下方是行動底座的馬達 ID 和馬達安裝位置的圖片。請注意,LeKiwi 只使用一個馬達控制板。這表示輪胎馬達的 ID 是 7、8 和 9。

您可以執行此指令來設定 LeKiwi 的馬達。它會先設定機械手臂的馬達(ID 6..1),然後設定輪胎馬達(9,8,7)。

lerobot-setup-motors \
    --robot.type=lekiwi \
    --robot.port=/dev/tty.usbmodem58760431551 # <- paste here the port found at previous step
Motor ID's for mobile robot

通訊疑難排解

如果您在連接到 Mobile SO100 時遇到問題,請遵循以下步驟來診斷和解決問題。

1. 驗證 IP 位址配置

確保在指令或程式碼中使用了正確的樹莓派 IP。要檢查樹莓派的 IP 位址,請在樹莓派命令列上執行:

hostname -I

2. 檢查筆記型電腦/個人電腦是否能連上樹莓派

嘗試從您的筆記型電腦 ping 樹莓派

ping <your_pi_ip_address>

如果 ping 失敗

  • 確保樹莓派已開機並連接到相同的網路。
  • 檢查 SSH 是否在樹莓派上啟用。

3. 嘗試 SSH 連線

如果您無法透過 SSH 連接到樹莓派,可能表示它沒有正確連接。請使用:

ssh <your_pi_user_name>@<your_pi_ip_address>

如果您收到連線錯誤

  • 透過執行以下指令,確保樹莓派上已啟用 SSH:
    sudo raspi-config
    然後導覽至:介面選項 -> SSH 並啟用它。

校準

現在我們必須校準主動臂和從動臂。輪胎馬達不需要校準。校準過程非常重要,因為它允許在一個機器人上訓練的神經網路在另一個機器人上運作。

校準從動臂 (在行動底座上)

確保機械手臂已連接到樹莓派,並執行此腳本或 API 範例 (透過 SSH 在樹莓派上) 以啟動從動臂的校準。

lerobot-calibrate \
    --robot.type=lekiwi \
    --robot.id=my_awesome_kiwi # <- Give the robot a unique name

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

有線版本

如果您擁有 **有線** 版本的 LeKiwi,請在您的筆記型電腦上執行所有指令。

校準主動臂

然後,要校準主動臂(連接到筆記型電腦/個人電腦的那個)。在您的筆記型電腦上執行以下指令或 API 範例:

指令
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

遙控操作 LeKiwi

如果您使用的是 Mac,您可能需要授予終端機存取鍵盤的權限以進行遙控操作。請前往「系統偏好設定 > 安全性與隱私權 > 輸入監控」並勾選「終端機」的選項。

要進行遙控操作,請 SSH 到您的樹莓派,然後執行 conda activate lerobot 和此指令

python -m lerobot.robots.lekiwi.lekiwi_host --robot.id=my_awesome_kiwi

然後在您的筆記型電腦上,也執行 conda activate lerobot 並執行 API 範例,確保您在 examples/lekiwi/teleoperate.py 中設定了正確的 remote_ipport

python examples/lekiwi/teleoperate.py

您應該會在您的筆記型電腦上看到類似以下內容:[INFO] Connected to remote robot at tcp://172.17.133.91:5555 and video stream at tcp://172.17.133.91:5556. 現在您可以移動主動臂並使用鍵盤 (w,a,s,d) 向前、向左、向後、向右駕駛。並使用 (z,x) 向左或向右轉動。您可以使用 (r,f) 增加和減少行動機器人的速度。有三種速度模式,請參見下表:

速度模式 線性速度 (公尺/秒) 旋轉速度 (度/秒)
0.4 90
中等 0.25 60
慢速 0.1 30
金鑰 動作
W 向前移動
A 向左移動
S 向後移動
D 向右移動
Z 向左轉
X 向右轉
R 提高速度
F 降低速度

如果您使用不同的鍵盤,您可以在 LeKiwiClientConfig 中更改每個指令的按鍵。

有線版本

如果您擁有 **有線** 版本的 LeKiwi,請在您的筆記型電腦上執行所有指令。

記錄資料集

一旦您熟悉了遙控操作,就可以錄製您的第一個資料集了。

我們使用 Hugging Face Hub 功能來上傳您的資料集。如果您以前從未用過 Hub,請確保您可以透過 CLI 使用寫入權限令牌登入,此令牌可以從 Hugging Face 設定 中產生。

透過執行此指令將您的令牌新增至 CLI:

hf auth login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential

然後將您的 Hugging Face 儲存庫名稱儲存至變數中:

HF_USER=$(hf auth whoami | awk -F': *' 'NR==1 {print $2}')
echo $HF_USER

現在您可以錄製資料集了。要錄製片段並將您的資料集上傳到 Hub,請執行此專為 LeKiwi 量身打造的 API 範例。請務必先調整腳本中的 remote_iprepo_idporttask。如果您想讓腳本運行更長時間,可以增加 NB_CYCLES_CLIENT_CONNECTION

python examples/lekiwi/record.py

資料集上傳

在本機,您的資料集儲存在此資料夾中:~/.cache/huggingface/lerobot/{repo-id}。資料錄製結束時,您的資料集將上傳到您的 Hugging Face 頁面 (例如 https://huggingface.co/datasets/cadene/so101_test),您可以透過執行以下指令取得:

echo https://huggingface.co/datasets/${HF_USER}/so101_test

您的資料集將自動標記為 LeRobot,以便社群輕鬆找到,您也可以添加自訂標籤 (例如,本例中為 tutorial)。

您可以在 Hub 上搜尋 LeRobot 標籤 來查找其他 LeRobot 資料集。

資料收集技巧

一旦您對資料錄製感到熟悉,就可以建立更大的資料集用於訓練。一個好的起始任務是在不同位置抓取物體並將其放入箱子中。我們建議錄製至少 50 個片段,每個位置 10 個片段。在整個錄製過程中保持攝影機固定並維持一致的抓取行為。同時確保您正在操作的物體在攝影機中可見。一個好的經驗法則是,您只需看攝影機影像就能自行完成任務。

在接下來的章節中,您將訓練您的神經網路。在達到可靠的抓取性能後,您可以在資料收集過程中引入更多變化,例如額外的抓取位置、不同的抓取技巧和改變攝影機位置。

避免過快地增加太多變化,因為這可能會阻礙您的結果。

如果您想深入探討這個重要主題,您可以查看我們撰寫的關於什麼構成一個好的資料集的部落格文章

疑難排解:

  • 在 Linux 上,如果在資料錄製期間左右方向鍵和 Esc 鍵沒有任何作用,請確保您已設定 $DISPLAY 環境變數。請參閱 pynput 限制

重播片段

要重播片段,請執行下面的 API 範例,請務必更改 remote_ipport、LeRobotDatasetId 和片段索引。

python examples/lekiwi/replay.py

恭喜 🎉,您的機器人已準備好自行學習任務。請透過本教學的訓練部分開始訓練它:真實世界機器人入門

評估您的策略

要評估您的策略,請執行 evaluate.py API 範例,務必更改 remote_ipport、模型等。

python examples/lekiwi/evaluate.py

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

在 GitHub 上更新

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