Skip to content

rbq_example_level_0

저장소의 rbq_examples 아래에 있는 C++ 예제로, RBQ 스택과 저수준(LV0 스타일) 으로 통신하는 방법을 보여 줍니다. IMU·조이스틱·다리 관절 토픽을 구독하고, 다리 모션 레퍼런스와 관절 소유권 명령을 발행하며, 명령줄로 넘긴 학습 보행 정책(ONNX) 을 선택적으로 실행합니다.

이 예제를 빌드·실행하기 전에 RBQ SDK를 빌드·설치해 두어야 합니다. SDK가 없거나 CMake가 찾지 못하면 rbq_examples 빌드가 실패합니다.

동작 요약

  • 제어 루프 스레드가 DDS로 실행 중인 RBQ 모션 스택(실기 또는 scripts/sim.bash로 띄운 시뮬)과 통신합니다.
  • Idle: 스택의 최종 다리 레퍼런스를 추종하며 호환되는 MotionRef를 발행합니다.
  • Motion(앉기/서기 등 키): JointControl로 포즈를 보간한 뒤 레퍼런스·소유권을 발행합니다.
  • Walk / Control: -p로 정책을 읽어 IMU·관절·명령 관측으로 ONNX 추론 후, 정책 게인으로 MotionRef를 발행합니다.

빌드 (rbq_examples/)

  1. 저장소 스크립트에 따라 의존성 설치(ONNX 등은 rbq_examples/scripts/install/apt.bash 등 참고).

  2. rbq_sdk 가 설치되어 있고, 기본 경로가 아니면 CMAKE_PREFIX_PATH에 설치 접두어를 넣습니다.

  3. rbq_examples 디렉터리에서:

    bash
    bash scripts/setup.bash    # 시스템 의존성 등 (setup.bash는 sudo로 실행하지 마세요)
    bash scripts/build.bash

    빌드 스크립트 설정에 따라 결과물은 프로젝트 bin/ 등에 설치됩니다.

정책 번들 (-p)

걷기 모드에는 info.jsonrbq_sdk::Policy / PolicyParams가 기대하는 ONNX가 들어 있는 정책 디렉터리가 필요합니다.

예:

bash
./bin/rbq_example_level_0 -p ./../resources/policy/rbq10_trot/

애플리케이션은 -p를 필수로 요구합니다.

시뮬레이션에서 실행

  1. RBQ 저장소 루트에서 개발자 가이드에 따라 스택을 띄웁니다(시뮬용 Motion + MuJoCo + GUI):

    bash
    bash scripts/sim.bash
  2. GUI에서 매뉴얼에 나온 대로 시뮬레이터 연결제어 시작 절차를 진행합니다. 스택이 제어 가능한 상태가 되려면 Auto Start(오토 스타트) 등으로 모션·제어 경로가 올라와 있어야 하며, 단계를 건너뛰면 예제가 토픽을 받지 못할 수 있습니다.

  3. 빌드 후 **rbq_examples**에서 예제 실행:

    bash
    ./bin/rbq_example_level_0 -p ./../resources/policy/rbq10_trot/

실시간 제어 스레드 경로를 쓰려면 sudo 로 실행할 수 있습니다. root가 아니면 일반 스레드로 동작합니다.

키보드·조작

시작 시 도움말이 출력됩니다. 대표적으로(정확한 목록은 소스 printHelp() 참고):

동작
q종료
z앉기/그라운드 쪽 모션 시퀀스
x서기/레디 쪽 모션 시퀀스
c제어/걷기 모드 (-p 정책 사용)

제어 모드에서는 게임패드 축으로 속도형 명령을 넣습니다(화면 도움말 참고).

DDS 토픽

예제는 예를 들어 다음과 같은 문자열 토픽을 사용합니다:

  • 구독: rt/rbq/cmd/joy/final, rt/rbq/info/imu, rt/rbq/info/leg_joint, rt/rbq/ref/leg_joint/final
  • 발행: rt/rbq/ref/leg_joint/owner_20, rt/rbq/cmd/motion/joint_owner/20

정확한 이름·의미는 실행 중인 로봇 소프트웨어 버전과 일치해야 합니다.

문제 해결

  • 동작 없음 / 토픽 없음: sim.bash(또는 실기 스택)가 떠 있는지, DDS가 올바른 네트워크 인터페이스를 쓰는지 확인합니다.
  • 정책 오류: -p 경로가 유효한지, ONNX가 설치된 onnxruntime과 맞는지, info.json의 타입(rbq10, rbq10_trot 등)이 맞는지 확인합니다.
  • apt 인증 오류 등: 호스트의 GPG/소스 설정 문제로, 예제 자체와는 별도로 해결합니다.

더 보기

This user manual is intended for RBQ users.