Skip to content

RBQ-Lab

📚 소개

RBQ-Lab 사용 가이드입니다

이 문서는 Isaac Sim / Isaac Lab 환경에서 RBQ10 사족 로봇 보행 policy를 학습하고, 재생(Play) 후 배포에 활용하는 기본 절차를 설명합니다.


💻 시스템 요구사항

RBQ-Lab 사용 시 아래 환경을 권장합니다.

  • OS: Ubuntu 22.04 (x86)
  • GPU: CUDA 가능한 NVIDIA GPU
  • 디스크: 최소 80 GB, 권장 120 GB 이상 (Isaac Sim / Isaac Lab / Conda / 캐시 포함)
  • 네트워크: 최초 설치 시 wget, git clone, pip 다운로드 필요

버전 확인

실제 운영 버전은 dependencies.yamlscripts/setup.bash의 핀을 우선 확인하세요.

🔁 프로세스 개요

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

Setup → Train → Play → Deploy

  • Setup: setup.bash로 의존성/환경 설치
  • Train: 태스크 rbq10으로 학습
  • Play: 태스크 rbq10_play로 재생 검증
  • Deploy: 산출 정책(policy.onnx, info.json 등) 활용
Isaac SimMujoco
RBQ Lab 개요Deploy 단계 예시

📦 환경 설정

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

bash
cd <your workspace>/RBQ/rbq_lab

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

bash
bash scripts/setup.bash

🏋️ Train

기본 학습 실행:

bash
bash scripts/train.bash

기본 태스크는 rbq10 입니다. 학습 로그는 보통 logs/rbq10/<experiment_name>/... 에 쌓입니다.

train.py에서 쓸 수 있는 옵션 (참고)
--task, --num_envs, --device, --headless, --resume, --checkpoint, --max_iterations, --seed, --video 등. 전체 목록은 bash scripts/python.bash rbq_lab/train.py --help 로 확인합니다.

인자를 고정해서 쓰고 싶다면 scripts/train.bash 안에서 train.py 호출 부분을 수정해 원하는 옵션을 넘기면 됩니다. headless 중심 동작이라 학습 창이 뜨지 않아도 정상입니다.

Train RBQ-Lab
Train 예시

학습 로그 확인: logs/rbq10/<experiment_name>/...

🏅 Play

기본 재생 실행:

bash
bash scripts/play.bash

기본 태스크는 rbq10_play 입니다. 학습 체크포인트(.pt)는 보통 logs/<experiment_name>/.../model_*.pt에 있습니다. play 실행 시에는 원하는 체크포인트를 --checkpoint로 직접 지정하는 것이 가장 확실합니다.

play.py에서 쓸 수 있는 옵션 (참고)
--use_pretrained_checkpoint, --no_keyboard, --real-time, --video, --checkpoint 등. 전체 목록은 bash scripts/python.bash rbq_lab/play.py --help 로 확인합니다.

인자를 고정해서 쓰고 싶다면 scripts/play.bash 안에서 play.py 호출 부분을 수정해 원하는 옵션을 넘기면 됩니다.

Play RBQ-Lab

🎯 Deploy

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

Play 종료 후 logs/<experiment_name>/exported/ 아래에 policy.jit, policy.onnx, info.json 이 생성됩니다.

📂 디렉토리 구조

rbq_lab/
├── 3rdparty
├── policy
│   └── rbq10
│       ├── info.json
│       └── policy.onnx
├── rbq_lab
│   ├── envs
│   │   ├── base
│   │   │   ├── base_task.py
│   │   │   └── base_task_cfg.py
│   │   ├── __init__.py
│   │   └── rbq10
│   │       ├── __init__.py
│   │       ├── env.py
│   │       ├── env_cfg.py
│   │       ├── env_mdp.py
│   │       ├── rbq10.py
│   │       └── rsl_rl_ppo_cfg.py
│   ├── __init__.py
│   ├── play.py
│   ├── train.py
│   └── utils
│       ├── camera.py
│       ├── cli_args.py
│       ├── keyboard.py
│       ├── marker.py
│       ├── math.py
│       └── rough.py
├── scripts
│   ├── activate.bash
│   ├── clear.bash
│   ├── configure.bash
│   ├── isaacsim.bash
│   ├── play.bash
│   ├── python.bash
│   ├── setup.bash
│   └── train.bash
├── dependencies.yaml
└── setup.py
  • USD 등 에셋은 별도 resources/ 등에 두고, 코드·LAB_ASSET_DIR 설정에 따릅니다.
  • 학습 로그: logs/rsl_rl/<experiment_name>/...
  • 재생·체크포인트 탐색: logs/<experiment_name>/...
  • 정리: bash scripts/clear.bash (*.egg-info, __pycache__, 필요 시 logs/ 등)

🔧 새로운 Lab 환경 추가하기

기본 흐름은 기존 rbq10 환경을 복사·수정해 새 태스크를 등록하는 방식입니다.

  1. rbq_lab/envs/ 아래에 새 환경 폴더를 추가합니다.
  2. 새 폴더에 env.py, env_cfg.py, env_mdp.py, rsl_rl_ppo_cfg.py를 구성합니다.
  3. 필요 시 resources/에 로봇/환경 에셋(USD 등)을 추가하고, 환경 설정에서 경로를 연결합니다.
  4. rbq_lab/envs/__init__.py에 새 환경(태스크 ID)을 등록합니다.
  5. train.py에서 새 태스크 ID가 정상 선택되는지 확인 후 학습·재생으로 검증합니다.

태스크 추가 후에는 작은 num_envs로 먼저 실행해 초기 오류(에셋 경로, 관측/행동 차원, 보상 정의)를 확인하는 것을 권장합니다.

This user manual is intended for RBQ users.