LeRobot 文件
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
輸出範例
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
通訊疑難排解
如果您在連接到 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:然後導覽至:介面選項 -> SSH 並啟用它。
sudo raspi-config
校準
現在我們必須校準主動臂和從動臂。輪胎馬達不需要校準。校準過程非常重要,因為它允許在一個機器人上訓練的神經網路在另一個機器人上運作。
校準從動臂 (在行動底座上)
確保機械手臂已連接到樹莓派,並執行此腳本或 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 範例:
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_ip 和 port。
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_ip、repo_id、port 和 task。如果您想讓腳本運行更長時間,可以增加 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_ip、port、LeRobotDatasetId 和片段索引。
python examples/lekiwi/replay.py
恭喜 🎉,您的機器人已準備好自行學習任務。請透過本教學的訓練部分開始訓練它:真實世界機器人入門
評估您的策略
要評估您的策略,請執行 evaluate.py API 範例,務必更改 remote_ip、port、模型等。
python examples/lekiwi/evaluate.py
在 GitHub 上更新如果您有任何問題或需要協助,請在 Discord 上聯繫我們。