LeRobot documentation

Обучение RL в симуляции

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Обучение RL в симуляции

This guide explains how to use the gym_hil simulation environments as an alternative to real robots when working with the LeRobot framework for Human-In-the-Loop (HIL) reinforcement learning.

gym_hil — это пакет, предоставляющий среды симуляции, совместимые с Gymnasium и специально разработанные для обучения с подкреплением с участием человека (Human-In-the-Loop). Эти среды позволяют вам:

  • Обучение политик в симуляции для проверки RL-стека перед обучением на реальных роботах

  • Собирайте демонстрации в симуляции с помощью внешних устройств, таких как геймпады или клавиатуры

  • Выполнение вмешательств человека во время обучения политики

В настоящее время основной средой является симуляция робота Franka Panda на базе MuJoCo, с задачами, такими как захват куба.

Установка

Сначала установите пакет gym_hil в окружении LeRobot:

pip install -e ".[hilserl]"

Что мне нужно?

  • Геймпад или клавиатура для управления роботом
  • GPU от Nvidia

Конфигурация

Чтобы использовать gym_hil с LeRobot, необходимо создать файл конфигурации. Пример приведён здесь. Основные разделы конфигурации:

Тип среды и задача

{
  "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", чтобы использовать геймпад

Запуск с HIL RL в LeRobot

Базовое использование

Для запуска окружения установите значение null для mode:

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

Запись набора данных

Чтобы собрать набор данных, установите режим record, указав repo_id и количество эпизодов для записи:

{
  "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

Обучение политики

Чтобы обучить политику, ознакомьтесь с примером конфигурации, доступным здесь, и запустите серверы learner и actor. Сначала запустите learner, так как actor подключается к нему:

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

В другом терминале запустите сервер актора:

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

Среда симуляции обеспечивает безопасный и воспроизводимый способ разработки и тестирования компонентов обучения с подкреплением с участием человека (Human-In-the-Loop) перед их развёртыванием на реальных роботах.

Поздравляем 🎉, вы завершили этот учебник!

Если у вас есть вопросы или нужна помощь, напишите нам в 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}
}
Update on GitHub