LeRobot 文件

在模擬環境中進行模仿學習

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

在模擬環境中進行模仿學習

本教程將解釋如何訓練一個神經網路,使其透過模仿學習在模擬環境中控制機器人。

你將學到:

  1. 如何使用 gym-hil 在模擬環境中錄製資料集並將其視覺化。
  2. 如何使用你的資料來訓練一個策略。
  3. 如何在模擬環境中評估你的策略並可視化結果。

對於模擬環境,我們使用了與人機迴環 (Human-In-the-Loop, HIL) 強化學習演算法相同的 倉庫。該環境基於 MuJoCo,允許你以 LeRobotDataset 格式錄製資料集。使用像 Logitech F710 這樣的手柄進行遙控操作是最簡單的,但如果你想挑戰一下,也可以使用鍵盤。

安裝

首先,在 LeRobot 環境中安裝 gym_hil 包,進入你的 LeRobot 資料夾並執行此命令:

pip install -e ".[hilserl]"

遙控操作並錄製資料集

要將 gym_hil 與 LeRobot 一起使用,你需要使用一個配置檔案。示例配置檔案可以在這裡找到。

要進行遙控操作並收集資料集,我們需要修改這個配置檔案,你應該在這裡新增你的 repo_id"repo_id": "il_gym",,並設定 "num_episodes": 30,,同時確保將 mode 設定為 record,即 `"mode": "record"`。

如果你沒有 Nvidia GPU,也請在配置檔案中更改 "device": "cuda" 引數(例如,在 macOS 上改為 mps)。

預設情況下,配置檔案假定你使用手柄。要使用鍵盤,請更改配置檔案中 "task" 指定的環境,並將其設定為 "PandaPickCubeKeyboard-v0"

然後我們可以執行這個命令來啟動:

Linux
macOS
python -m lerobot.scripts.rl.gym_manipulator --config_path path/to/env_config_gym_hil_il.json

渲染後,你可以使用遊戲手柄或鍵盤遙控機器人。下面是遊戲手柄/鍵盤的控制方式。

請注意,要遙控機器人,你必須按住“人工接管暫停策略”按鈕 RB 才能啟用控制!

手柄控制

Figure shows the control mappings on a Logitech gamepad.

用於機器人控制和回合管理的手柄按鈕對映

鍵盤控制

對於鍵盤控制,使用空格鍵來啟用控制,並使用以下按鍵移動機器人:

  Arrow keys: Move in X-Y plane
  Shift and Shift_R: Move in Z axis
  Right Ctrl and Left Ctrl: Open and close gripper
  ESC: Exit

視覺化資料集

如果你已將資料集上傳到 Hub,你可以透過複製貼上你的倉庫 ID 線上視覺化你的資料集

Figure shows the dataset visualizer

資料集視覺化工具

訓練一個策略

要訓練一個控制機器人的策略,請使用 lerobot-train 指令碼。需要提供一些引數。這是一個示例命令:

lerobot-train \
  --dataset.repo_id=${HF_USER}/il_gym \
  --policy.type=act \
  --output_dir=outputs/train/il_sim_test \
  --job_name=il_sim_test \
  --policy.device=cuda \
  --wandb.enable=true

讓我們來解釋一下這個命令:

  1. 我們透過 --dataset.repo_id=${HF_USER}/il_gym 引數提供了資料集。
  2. 我們透過 policy.type=act 提供了策略。這將從 configuration_act.py 載入配置。重要的是,該策略會自動適應你機器人的電機狀態、電機動作和攝像頭的數量(例如 `laptop` 和 `phone`),這些資訊已儲存在你的資料集中。
  3. 我們提供了 policy.device=cuda,因為我們是在 Nvidia GPU 上訓練,但你也可以使用 policy.device=mps 在 Apple 晶片上進行訓練。
  4. 我們提供了 wandb.enable=true 來使用 Weights and Biases 視覺化訓練圖表。這是可選的,但如果你使用它,請確保透過執行 wandb login 登入。

訓練應該需要幾個小時,10萬步(這是預設值)在 Nvidia A100 上大約需要 1 小時。你可以在 outputs/train/il_sim_test/checkpoints 中找到檢查點。

使用 Colab 進行訓練

如果你的本地計算機沒有強大的 GPU,你可以利用 Google Colab,按照 ACT 訓練 notebook 來訓練你的模型。

上傳策略檢查點

訓練完成後,使用以下命令上傳最新的檢查點:

huggingface-cli upload ${HF_USER}/il_sim_test \
  outputs/train/il_sim_test/checkpoints/last/pretrained_model

你也可以使用以下命令上傳中間檢查點:

CKPT=010000
huggingface-cli upload ${HF_USER}/il_sim_test${CKPT} \
  outputs/train/il_sim_test/checkpoints/${CKPT}/pretrained_model

在模擬環境中評估你的策略

要評估你的策略,我們必須使用可以在這裡找到的配置檔案。

請確保將 repo_id 替換為你訓練所用的資料集,例如 pepijn223/il_sim_dataset,並將 pretrained_policy_name_or_path 替換為你的模型 ID,例如 pepijn223/il_sim_model

然後你可以執行此命令來視覺化你訓練好的策略:

Linux
macOS
python -m lerobot.scripts.rl.eval_policy --config_path=path/to/eval_config_gym_hil.json

雖然在模擬環境中訓練 ACT 的主要工作流程很簡單,但在如何設定任務、定義環境的初始狀態以及確定收集資料期間所需的資料型別以學習最有效的策略方面,仍有很大的探索空間。如果你訓練的策略表現不佳,請使用我們的視覺化工具檢查其訓練所用資料集的質量,以及動作值和與 ACT 及模擬相關的各種超引數。

恭喜 🎉,你已完成本教程。如果你想繼續在模擬環境中使用 LeRobot,請參考在模擬環境中使用 HIL-SERL 進行強化學習的教程

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

< > 在 GitHub 上更新

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