LeRobot documentation
Huấn luyện RL trong Mô phỏng
Huấn luyện RL trong Mô phỏng
Hướng dẫn này giải thích cách sử dụng các môi trường mô phỏng gym_hil như một phương án thay thế cho robot thực khi làm việc với framework LeRobot cho học tăng cường Human-In-the-Loop (HIL).
gym_hil là một gói cung cấp các môi trường mô phỏng tương thích với Gymnasium, được thiết kế đặc biệt cho học tăng cường có sự tham gia của con người (Human-In-the-Loop). Các môi trường này cho phép bạn:
Huấn luyện các chính sách trong mô phỏng để kiểm tra hệ thống RL trước khi huấn luyện trên robot thực
Thu thập các bản demo trong mô phỏng bằng các thiết bị bên ngoài như tay cầm chơi game hoặc bàn phím
Thực hiện can thiệp của con người trong quá trình học chính sách
Hiện tại, môi trường chính là mô phỏng robot Franka Panda dựa trên MuJoCo, với các tác vụ như nhặt khối lập phương.
Cài đặt
Đầu tiên, cài đặt gói gym_hil trong môi trường LeRobot:
pip install -e ".[hilserl]"Tôi cần những gì?
- Một tay cầm hoặc bàn phím để điều khiển robot
- Một GPU Nvidia
Cấu hình
Để sử dụng gym_hil với LeRobot, bạn cần tạo một tệp cấu hình. Một ví dụ được cung cấp tại đây. Các phần cấu hình chính bao gồm:
Loại Môi trường và Nhiệm vụ
{
"env": {
"type": "gym_manipulator",
"name": "gym_hil",
"task": "PandaPickCubeGamepad-v0",
"fps": 10
},
"device": "cuda"
}Các tác vụ khả dụng:
PandaPickCubeBase-v0: Môi trường cơ bảnPandaPickCubeGamepad-v0: Với điều khiển bằng tay cầmPandaPickCubeKeyboard-v0: Với điều khiển bằng bàn phím
Cấu hình bộ xử lý
{
"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
}
}
}
}
}Các tham số quan trọng:
gripper.gripper_penalty: Phạt cho việc di chuyển kẹp quá mứcgripper.use_gripper: Có bật điều khiển gắp hay khônginverse_kinematics.end_effector_step_sizes: Kích thước của các bước trên các trục x, y, z của end-effectorcontrol_mode: Đặt thành"gamepad"để sử dụng bộ điều khiển gamepad
Chạy với HIL RL của LeRobot
Cách sử dụng cơ bản
Để chạy môi trường, đặt mode thành null:
python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json
Ghi lại một Tập dữ liệu
Để thu thập một bộ dữ liệu, hãy đặt chế độ thành record đồng thời định nghĩa repo_id và số lượng episode cần ghi lại:
{
"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
Huấn luyện một Policy
Để huấn luyện một policy, hãy xem ví dụ cấu hình có sẵn tại đây và chạy các server learner và actor. Hãy khởi động learner trước, vì actor sẽ kết nối đến nó:
python -m lerobot.rl.learner --config_path path/to/train_gym_hil_env.json
Trong một terminal khác, chạy actor server:
python -m lerobot.rl.actor --config_path path/to/train_gym_hil_env.json
Môi trường mô phỏng cung cấp một cách an toàn và có thể lặp lại để phát triển và kiểm tra các thành phần học tăng cường Human-In-the-Loop của bạn trước khi triển khai lên các robot thực.
Chúc mừng 🎉, bạn đã hoàn thành hướng dẫn này!
Nếu bạn có bất kỳ câu hỏi nào hoặc cần hỗ trợ, vui lòng liên hệ trên Discord.
Trích dẫn bài báo:
@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}
}