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를 추가하세요

참고

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

Train RBQ10
Isaac Gym Train

Play

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

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

Sim2Sim & Deploy

학습된 정책을 평가하고 실제 로봇에 배포하려면 rbq_low_level를 참고하세요.

디렉토리 구조

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.