LeRobot 文件

在模擬環境中訓練增強學習

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

在模擬環境中訓練強化學習(RL)

本指南介紹如何在 LeRobot 框架中使用 gym_hil 模擬環境,作為在執行「人機協作」(Human-In-the-Loop, HIL)強化學習時,替代真實機器人的方案。

gym_hil 是一個提供與 Gymnasium 相容的模擬環境套件,專為人機協作強化學習而設計。這些環境允許您:

  • 在模擬環境中訓練策略,以便在真實機器人上訓練之前測試強化學習堆疊(RL stack)

  • 使用遊戲手把或鍵盤等外部設備在模擬環境中收集示範數據

  • 在策略學習過程中執行人類介入

目前主要環境是基於 MuJoCo 的 Franka Panda 機器人模擬,包含如「撿起方塊」等任務。

安裝

首先,請在 LeRobot 環境中安裝 gym_hil 套件:

pip install -e ".[hilserl]"

我需要準備什麼?

  • 一個用於控制機器人的遊戲手把或鍵盤
  • 一個 NVIDIA GPU

配置 (Configuration)

若要在 LeRobot 中使用 gym_hil,您需要建立一個設定檔。範例可參考此處。關鍵的設定區塊包含:

環境類型與任務

{
  "env": {
    "type": "gym_manipulator",
    "name": "gym_hil",
    "task": "PandaPickCubeGamepad-v0",
    "fps": 10
  },
  "device": "cuda"
}

可用任務:

  • PandaPickCubeBase-v0:基礎環境
  • PandaPickCubeGamepad-v0:具備遊戲手把控制功能
  • PandaPickCubeKeyboard-v0:具備鍵盤控制功能

處理器設定

{
  "env": {
    "processor": {
      "control_mode": "gamepad",
      "gripper": {
        "use_gripper": true,
        "gripper_penalty": -0.02
      },
      "reset": {
        "control_time_s": 15.0,
        "fixed_reset_joint_positions": [
          0.0, 0.195, 0.0, -2.43, 0.0, 2.62, 0.785
        ]
      },
      "inverse_kinematics": {
        "end_effector_step_sizes": {
          "x": 0.025,
          "y": 0.025,
          "z": 0.025
        }
      }
    }
  }
}

重要參數:

  • gripper.gripper_penalty:對過度夾爪移動的懲罰
  • gripper.use_gripper:是否啟用夾爪控制
  • inverse_kinematics.end_effector_step_sizes:末端執行器在 x, y, z 軸上的步長大小
  • control_mode:設為 "gamepad" 以使用遊戲手把控制器

執行 LeRobot 的 HIL 強化學習

基本使用

若要執行環境,請將模式(mode)設為 null。

python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json

錄製資料集

若要收集資料集,請將模式設為 record,並指定 repo_id 與要錄製的集數(episodes)。

{
  "env": {
    "type": "gym_manipulator",
    "name": "gym_hil",
    "task": "PandaPickCubeGamepad-v0"
  },
  "dataset": {
    "repo_id": "username/sim_dataset",
    "root": null,
    "task": "pick_cube",
    "num_episodes_to_record": 10,
    "replay_episode": null,
    "push_to_hub": true
  },
  "mode": "record"
}
python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json

訓練策略

若要訓練策略,請查看此處提供的設定範例,並執行 Actor 與 Learner 伺服器。

python -m lerobot.rl.actor --config_path path/to/train_gym_hil_env.json

在另一個終端機中,執行 Learner 伺服器。

python -m lerobot.rl.learner --config_path path/to/train_gym_hil_env.json

模擬環境提供了一種安全且可重複的方式,讓您在部署到真實機器人之前,能夠開發並測試您的人機協作強化學習元件。

恭喜 🎉,您已完成本教學!

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

論文引用

@article{luo2024precise,
  title={Precise and Dexterous Robotic Manipulation via Human-in-the-Loop Reinforcement Learning},
  author={Luo, Jianlan and Xu, Charles and Wu, Jeffrey and Levine, Sergey},
  journal={arXiv preprint arXiv:2410.21845},
  year={2024}
}
在 GitHub 上更新

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