Skip to content

RBQ C++ SDK — Quick Start ​

Get the SDK built and your first example running in 5 steps.

1. Clone the repository ​

bash
git clone https://github.com/RainbowRobotics/RBQ.git
cd RBQ

All scripts, SDK source code, and examples are in the repository root. Run all commands from RBQ/ unless stated otherwise.

2. Build the C++ SDK ​

bash
cd rbq_sdk/cpp/rbq_sdk_cpp

# First time only — build bundled CycloneDDS
sudo bash scripts/build_dds.bash

# Build and install the SDK
sudo bash scripts/build.bash

cd ../../..

3. Build the examples ​

bash
cd rbq_sdk/cpp/example

# Install build dependencies (first time only)
bash scripts/setup.bash

# Build examples
bash scripts/build.bash

cd ../../..

Binaries are placed in rbq_sdk/cpp/example/bin/.

4. Start the simulator (skip for real hardware) ​

The simulator runs in Docker — Docker is the only thing to install, and the script offers to install it when it is missing. The first run takes a few minutes to build its image. See MuJoCo.

From the RBQ/ root:

bash
bash scripts/sim.bash --no-gui

Start the RBQ app on the same PC — the desktop app finds this simulator on its own:

  1. Control on the hub → the control home opens.
  2. Auto Start → press Auto Start in the dialog and wait for Done, then Close.
  3. STAND on the motion card → the robot stands up.

See Control home for the full screen.

5. Run your first example ​

From rbq_sdk/cpp/example/:

bash
# Terminal-based command test
./bin/rbq_sport_client

# Joystick control
./bin/rbq_sport_client_joy

# High-level gait + velocity (requires joystick)
./bin/rbq_high_level

# Low-level RL policy
sudo ./bin/rbq_low_level -p ../../../rbq_simulator/rbq_gym/policy/rbq10/

Every example defaults to the loopback interface (lo) — the same one the simulator and the on-robot stack use — so no argument is needed while the whole stack runs on this PC.

On a real robot, pass the interface that reaches it as the first argument:

bash
./bin/rbq_sport_client eth0

Check your interface name with ip link.
For robot Wi-Fi (RBQ_xxxx), use the Wi-Fi interface (e.g. wlp4s0).

Examples overview ​

ExampleBinaryWhat it does
Sport Client →rbq_sport_clientTerminal CLI — test any SportClient command
Sport Client (Joy) →rbq_sport_client_joyGamepad — full button mapping
High Level Cmd →rbq_high_level50 Hz gait + joystick velocity
Low Level (Policy) →rbq_low_levelJoint control + ONNX RL policy

→ Build issues? See SDK Build Issues

This user manual is intended for RBQ users.