RBQ SDK (C++)
RBQ SDK는 Eclipse Cyclone DDS를 통해 RBQ 소프트웨어 스택과 통신하는 C++ 애플리케이션을 만들기 위한 라이브러리입니다. DDS 참가자·토픽·생성된 메시지 타입을 감싸고, 저수준 제어(관절 레퍼런스, 학습 정책, 타이밍, 필터 등)를 위한 헬퍼를 제공합니다.
SDK 구성
| 영역 | 역할 |
|---|---|
| DDS 입출력 | Publisher / Subscriber 템플릿 (rbq_sdk/dds/) — 이름이 지정된 토픽에 CycloneDDS-CXX reader/writer. |
| 메시지 | rbq_sdk/idl/의 IDL → C++ 타입 (rbq_msgs, sensor_msgs 등 네임스페이스). RBQ 전용 타입, ROS2와 호환되는 일부 타입, 빌드에 포함된 Go2 호환 타입 등이 있습니다. |
| 제어 헬퍼 | 예: JointControl, Policy / PolicyParams (ONNX + info.json), Filter, Timer, Thread(RT 스레드 옵션). |
요구 사항
- 개발 PC 기준으로 이 저장소에서는 Ubuntu 22.04 (x86_64) 가 일반적입니다.
- CMake ≥ 3.22, C++17 컴파일러.
- Cyclone DDS: 저장소에
rbq_sdk/3rdparty/로 묶여 있으며, 최초 빌드 시 DDS 부트스트랩 스크립트가 필요합니다(아래 참고).
빌드 및 설치 (rbq_sdk/)
RBQ 저장소의 rbq_sdk 디렉터리에서:
최초 1회 — 번들 CycloneDDS 빌드:
bashsudo bash scripts/build_dds.bash설정·빌드·설치:
bashsudo bash scripts/build.bash
설치 레이아웃에는 include/rbq_sdk/ 및 생성된 IDL 헤더가 포함됩니다. CMake가 패키지를 찾지 못하면 설치 접두어를 CMAKE_PREFIX_PATH에 넣으세요.
헤더·네임스페이스
- 진입점: 제공되는 경우
rbq_sdk/rbq_sdk.hpp. - DDS:
rbq_sdk/dds/Publisher.hpp,Subscriber.hpp - 생성 IDL:
#include <rbq_sdk/idl/rbq/...>
앱에서 쓰는 토픽 이름은 문자열(예: rt/rbq/...)이며, 정확한 목록은 예제 또는 드라이버 문서를 참고하세요.
관련 문서
- 저수준 개발 흐름: Level 0 개발자 가이드
- 예제 애플리케이션: rbq_example_level_0
- ROS 2 연동: ROS2
