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 Gym | Mujoco |
|---|---|
![]() | ![]() |
📦 환경 설정
rbq_gym 디렉토리로 이동합니다:
bash
cd <your workspace>/RBQ/rbq_gymrbq_gym 디렉토리 내에서 다음 명령어를 실행하여 환경을 설정합니다:
bash
bash scripts/setup.bash🏋️ Train
rbq_gym 디렉토리 내에서 다음 명령어를 실행하여 학습을 시작합니다:
bash
bash scripts/train.bash- 렌더링 없이 실행하려면
--headless를 추가하세요
TIP
성능 향상을 위해 학습이 시작되면 v 키를 눌러 렌더링을 중지할 수 있습니다. 나중에 진행 상황을 확인하기 위해 다시 활성화할 수 있습니다.
| Train RBQ10 |
|---|
![]() |
🏅 Play
rbq_gym 디렉토리 내에서 다음 명령어를 실행하여 학습 결과를 평가합니다:
bash
bash scripts/play.bash- CPU를 사용하여 실행하려면 다음 인자를 추가하세요:
--sim_device=cpu - 기본적으로 실험 폴더의 마지막 실행에서 가장 최근 모델을 로드합니다.
load_run과checkpoint를 설정하여 다른 횟수로 학습된 모델을 선택할 수 있습니다.
| 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.pysetup.bash,train.bash,play.bash: 환경 설정, 학습, 실행을 위한 스크립트.envs/base/: RBQ 로봇을 위한 기본 환경 클래스 및 설정.envs/rbq10/: RBQ10 환경, 설정, 보상 함수.utils/: 헬퍼, 키보드 입력, 로깅, 수학 함수, 태스크 레지스트리, 지형 생성 등 유틸리티 모듈.3rdparty/: 서드파티 의존성 및 라이브러리.policy/: ONNX 형식의 학습된 정책 및 info 파일.
🔧 새로운 GYM 환경 추가하기
기본 환경 rbquad_env는 거친 지형 보행 태스크를 구현합니다. 새로운 환경을 추가하려면:
envs/에 새 폴더를 추가하고 기존 환경 설정을 상속하는<your_env>_config.py를 만듭니다.- 새 로봇을 추가하는 경우:
resources/디렉토리에 해당 에셋을 추가합니다.- 설정에서 에셋 경로를 설정하고, body 이름,
default_joint_positions, PD 게인을 정의합니다. - 원하는
train_cfg와 환경 클래스 이름을 지정합니다. train_cfg에서experiment_name과run_name을 설정합니다.
- (필요한 경우)
<your_env>_env.py에서 기존 환경을 상속하여 원하는 함수를 오버라이드하거나 보상 함수를 추가합니다. rbq_gym/envs/__init__.py에 환경을 등록합니다.- 필요에 따라 다른 매개변수를 수정/조정합니다. 보상을 제거하려면 해당 스케일을 0으로 설정하세요. 다른 환경의 매개변수는 수정하지 마세요.



