Skip to content

RBQ GYM

📚 소개

RBQ gym 오픈소스 시뮬레이션 환경에 오신 것을 환영합니다

이 매뉴얼은 IsaacGym에서 RBQ 로봇을 시뮬레이션하여 강화학습으로 자체 보행 policy를 학습하고, Play로 평가한 후, 실제 로봇에 배포하는 방법에 대한 종합적인 가이드를 제공합니다.


💻 시스템 요구 사항

RBQ gym 시뮬레이션 환경을 원활하게 실행하려면 다음 요구 사항이 권장됩니다:

  • OS: Ubuntu 22.04 (x86)
  • 최소 PC 사양:
    • CPU: Intel Core i7 - 12세대
    • RAM: 16 GB
    • Storage: 25 GB
    • GPU: Nvidia RTX 4080
  • 컨트롤 장치
    • 키보드

GPU 호환성

Isaac Gym은 NVIDIA RTX 50 시리즈 (Blackwell) GPU를 지원하지 않습니다. 학습에는 RTX 40 시리즈 이하의 GPU를 사용하세요.

🔁 프로세스 개요

강화학습을 통한 모션 제어의 기본 워크플로우는 다음과 같습니다:

Train → Play → Sim2Sim

  • Train: IsaacGym 시뮬레이션 환경에서 로봇이 환경과 상호작용하며 PPO 알고리즘 기반 강화학습을 통해 설계된 보상을 최대화하는 Policy를 학습합니다.
  • Play: Play 명령어로 IsaacGym 환경 내에서 학습된 Policy를 검증하고 기대한 대로 동작하는지 확인합니다.
  • Sim2Sim: Mujoco 시뮬레이터에서 학습된 Policy를 평가하여 성능과 신뢰성을 확인합니다.
  • Deploy: 평가된 Policy을 실제 로봇에 배포합니다.
Isaac GymMujoco
Isaac GymMujoco

📦 환경 설정

rbq_gym 디렉토리로 이동합니다:

bash
cd <your workspace>/RBQ/rbq_gym

rbq_gym 디렉토리 내에서 다음 명령어를 실행하여 환경을 설정합니다:

bash
bash scripts/setup.bash

🏋️ Train

rbq_gym 디렉토리 내에서 다음 명령어를 실행하여 학습을 시작합니다:

bash
bash scripts/train.bash
  • 렌더링 없이 실행하려면 --headless를 추가하세요

TIP

성능 향상을 위해 학습이 시작되면 v 키를 눌러 렌더링을 중지할 수 있습니다. 나중에 진행 상황을 확인하기 위해 다시 활성화할 수 있습니다.

Train RBQ10
Isaac Gym Train

🏅 Play

rbq_gym 디렉토리 내에서 다음 명령어를 실행하여 학습 결과를 평가합니다:

bash
bash scripts/play.bash
  • CPU를 사용하여 실행하려면 다음 인자를 추가하세요: --sim_device=cpu
  • 기본적으로 실험 폴더의 마지막 실행에서 가장 최근 모델을 로드합니다.
  • load_runcheckpoint를 설정하여 다른 횟수로 학습된 모델을 선택할 수 있습니다.
Play RBQ10

🎯 Sim2Sim & Deploy

학습된 정책을 평가하고 실제 로봇에 배포하려면 Simple-RL에서 자세한 내용을 참고하세요.

📂 디렉토리 구조

rbq_gym/
├── 3rdparty
├── policy
│   └── rbq10
│       ├── info.json
│       └── policy.onnx
├── rbq_gym
│   ├── envs
│   │   ├── base
│   │   │   ├── base_config.py
│   │   │   ├── base_task.py
│   │   │   ├── rbquad_config.py
│   │   │   └── rbquad_env.py
│   │   ├── __init__.py
│   │   └── rbq10
│   │       ├── rbq10_config.py
│   │       ├── rbq10_env.py
│   │       └── rewards.py
│   ├── __init__.py
│   ├── model_test.py
│   ├── play.py
│   ├── train.py
│   └── utils
│       ├── helpers.py
│       ├── __init__.py
│       ├── keyboard.py
│       ├── logger.py
│       ├── math.py
│       ├── task_registry.py
│       └── terrain.py
├── scripts
│   ├── activate.bash
│   ├── clear.bash
│   ├── configure.bash
│   ├── play.bash
│   ├── python.bash
│   ├── setup.bash
│   └── train.bash
├── dependencies.yaml
└── setup.py
  • setup.bash, train.bash, play.bash : 환경 설정, 학습, 실행을 위한 스크립트.
  • envs/base/ : RBQ 로봇을 위한 기본 환경 클래스 및 설정.
  • envs/rbq10/ : RBQ10 환경, 설정, 보상 함수.
  • utils/ : 헬퍼, 키보드 입력, 로깅, 수학 함수, 태스크 레지스트리, 지형 생성 등 유틸리티 모듈.
  • 3rdparty/ : 서드파티 의존성 및 라이브러리.
  • policy/ : ONNX 형식의 학습된 정책 및 info 파일.

🔧 새로운 GYM 환경 추가하기

기본 환경 rbquad_env는 거친 지형 보행 태스크를 구현합니다. 새로운 환경을 추가하려면:

  1. envs/에 새 폴더를 추가하고 기존 환경 설정을 상속하는 <your_env>_config.py를 만듭니다.
  2. 새 로봇을 추가하는 경우:
    • resources/ 디렉토리에 해당 에셋을 추가합니다.
    • 설정에서 에셋 경로를 설정하고, body 이름, default_joint_positions, PD 게인을 정의합니다.
    • 원하는 train_cfg와 환경 클래스 이름을 지정합니다.
    • train_cfg에서 experiment_namerun_name을 설정합니다.
  3. (필요한 경우) <your_env>_env.py에서 기존 환경을 상속하여 원하는 함수를 오버라이드하거나 보상 함수를 추가합니다.
  4. rbq_gym/envs/__init__.py에 환경을 등록합니다.
  5. 필요에 따라 다른 매개변수를 수정/조정합니다. 보상을 제거하려면 해당 스케일을 0으로 설정하세요. 다른 환경의 매개변수는 수정하지 마세요.

This user manual is intended for RBQ users.