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.yaml과 scripts/setup.bash의 핀을 우선 확인하세요.
🔁 프로세스 개요
강화학습을 통한 모션 제어의 기본 워크플로우는 다음과 같습니다:
Setup → Train → Play → Deploy
- Setup:
setup.bash로 의존성/환경 설치 - Train: 태스크
rbq10으로 학습 - Play: 태스크
rbq10_play로 재생 검증 - Deploy: 산출 정책(
policy.onnx,info.json등) 활용
| Isaac Sim | Mujoco |
|---|---|
![]() | ![]() |
📦 환경 설정
rbq_lab 디렉토리로 이동합니다:
cd <your workspace>/RBQ/rbq_labrbq_lab 디렉토리 내에서 다음 명령어를 실행하여 환경을 설정합니다:
bash scripts/setup.bash🏋️ Train
기본 학습 실행:
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 |
|---|
![]() |
학습 로그 확인: logs/rbq10/<experiment_name>/...
🏅 Play
기본 재생 실행:
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 환경을 복사·수정해 새 태스크를 등록하는 방식입니다.
rbq_lab/envs/아래에 새 환경 폴더를 추가합니다.- 새 폴더에
env.py,env_cfg.py,env_mdp.py,rsl_rl_ppo_cfg.py를 구성합니다. - 필요 시
resources/에 로봇/환경 에셋(USD 등)을 추가하고, 환경 설정에서 경로를 연결합니다. rbq_lab/envs/__init__.py에 새 환경(태스크 ID)을 등록합니다.train.py에서 새 태스크 ID가 정상 선택되는지 확인 후 학습·재생으로 검증합니다.
태스크 추가 후에는 작은 num_envs로 먼저 실행해 초기 오류(에셋 경로, 관측/행동 차원, 보상 정의)를 확인하는 것을 권장합니다.



