LeRobot 文件

LeKiwi

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

LeKiwi

在以下步驟中,我們將說明如何組裝 LeKiwi 移動機器人。

採購零件

請遵循此 README。其中包含物料清單、採購零件的連結,以及 3D 列印零件的說明。如果您是第一次列印或者沒有 3D 印表機,README 中也提供了建議。

有線版本

如果您擁有的是 有線 版本的 LeKiwi,可以跳過安裝樹莓派和設定 SSH 的步驟。您也可以直接在您的 PC 上執行所有用於 LeKiwi 指令碼和用於遙操作的主臂指令碼的命令。

在樹莓派上安裝軟體

現在我們需要設定將在 LeKiwi 機器人上執行的遠端 PC。這通常是樹莓派,但也可以是任何能以 5V 電壓執行且有足夠 USB 埠(2 個或更多)來連線攝像頭和電機控制板的 PC。

安裝作業系統

關於設定樹莓派及其 SD 卡,請參見:設定樹莓派。這裡解釋瞭如何下載 Imager 來安裝樹莓派作業系統或 Ubuntu。

設定 SSH

設定好樹莓派後,您應該啟用並設定 SSH(安全殼協議),這樣您就可以從您的筆記型電腦登入到樹莓派,而無需為樹莓派連線螢幕、鍵盤和滑鼠。關於如何操作的詳細教程可以在這裡找到。您可以在命令提示符(cmd)中登入到您的樹莓派,或者如果您使用 VSCode,可以使用這個擴充套件。

在樹莓派上安裝 LeRobot 🤗

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

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

pip install -e ".[lekiwi]"

在本地安裝 LeRobot

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

請遵循我們的安裝指南

除了這些說明之外,您還需要在您的筆記型電腦/PC 上安裝 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

通訊故障排查

如果您在連線移動 SO100 時遇到問題,請按照以下步驟診斷和解決問題。

1. 驗證 IP 地址配置

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

hostname -I

2. 檢查是否可以從筆記型電腦/PC 訪問樹莓派

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

ping <your_pi_ip_address>

如果 ping 失敗

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

3. 嘗試 SSH 連線

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

ssh <your_pi_user_name>@<your_pi_ip_address>

如果出現連線錯誤

  • 透過執行以下命令確保樹莓派已啟用 SSH
    sudo raspi-config
    然後導航到:Interfacing Options -> 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,請在您的筆記型電腦上執行所有命令。

校準主臂

然後,要校準主臂(連線到筆記型電腦/PC),請在您的筆記型電腦上執行以下命令或 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_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)來增加和減少移動機器人的速度。共有三種速度模式,請參見下表

速度模式 線速度 (m/s) 旋轉速度 (deg/s)
0.4 90
中型 0.25 60
慢速 0.1 30
按鍵 行動
W 向前移動
A 向左移動
S 向後移動
D 向右移動
Z 左轉
X 右轉
R 增加速度
F 降低速度

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

有線版本

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

錄製資料集

一旦您熟悉了遠端操作,您就可以記錄您的第一個資料集。

我們使用 Hugging Face Hub 的功能來上傳您的資料集。如果您以前沒有使用過 Hub,請確保您可以透過命令列使用具有寫許可權的令牌登入,此令牌可以從 Hugging Face 設定 生成。

透過執行此命令將您的令牌新增到 CLI

huggingface-cli login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential

然後將您的 Hugging Face 儲存庫名稱儲存在一個變數中

HF_USER=$(huggingface-cli whoami | head -n 1)
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)。

您可以透過搜尋 LeRobot 標籤在 Hub 上查詢其他 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

如果你有任何問題或需要幫助,請在 Discord 上聯絡我們。

< > 在 GitHub 上更新

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