Skip to content

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

AreaRole
DDS I/OPublisher / Subscriber templates (rbq_sdk/dds/) — CycloneDDS-CXX readers/writers on named topics.
MessagesIDL 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 helperse.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:

  1. First time only — build bundled CycloneDDS:

    bash
    sudo bash scripts/build_dds.bash
  2. Configure, build, install:

    bash
    sudo 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.hpp when 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.

This user manual is intended for RBQ users.