RBQ SDK (C++)
The RBQ SDK is a C++ library for building applications that communicate with the RBQ software stack over Eclipse Cyclone DDS. It wraps DDS participants, topics, and generated message types, and provides helpers for low-level control (joint references, learned policies, timing, filters, etc.).
SDK layout
| Area | Role |
|---|---|
| DDS I/O | Publisher / Subscriber templates (rbq_sdk/dds/) — CycloneDDS-CXX readers/writers on named topics. |
| Messages | IDL under rbq_sdk/idl/ → C++ types (rbq_msgs, sensor_msgs, …). Includes RBQ-specific types, some ROS 2–compatible types, and Go2-compatible types included in the build. |
| Control helpers | e.g. JointControl, Policy / PolicyParams (ONNX + info.json), Filter, Timer, Thread (optional RT thread). |
Requirements
- On the development PC, this repository typically targets Ubuntu 22.04 (x86_64).
- CMake ≥ 3.22, C++17 compiler.
- Cyclone DDS: bundled under
rbq_sdk/3rdparty/; first-time builds need the DDS bootstrap script (below).
Build and install (rbq_sdk/)
From the rbq_sdk directory in the RBQ repository:
First time only — build bundled CycloneDDS:
bashsudo bash scripts/build_dds.bashConfigure, build, install:
bashsudo bash scripts/build.bash
The install layout includes include/rbq_sdk/ and generated IDL headers. If CMake cannot find the package, add your install prefix to CMAKE_PREFIX_PATH.
Headers and namespaces
- Entry point:
rbq_sdk/rbq_sdk.hppwhen provided. - DDS:
rbq_sdk/dds/Publisher.hpp,Subscriber.hpp - Generated IDL:
#include <rbq_sdk/idl/rbq/...>
Topic names in apps are strings (e.g. rt/rbq/...); see examples or driver docs for the exact list.
Related documentation
- Low-level flow: Level 0 Developer Guide
- Sample application: rbq_example_level_0
- ROS 2 integration: ROS2
