Skip to content

Quick Start

Get the RBQ ROS 2 driver running in 4 steps — from a fresh Ubuntu 22.04 machine to receiving live topics.

Prerequisites

ItemRequirement
OSUbuntu 22.04
ROS 2Humble
Middlewarermw_cyclonedds_cpp

Step 1 — Install ROS 2 and dependencies

bash
# ROS 2 Humble (first time only)
sudo apt update && sudo apt install -y ros-humble-desktop \
    python3-colcon-common-extensions python3-rosdep \
    ros-humble-rmw-cyclonedds-cpp ros-humble-cyclonedds

sudo rosdep init && rosdep update
source /opt/ros/humble/setup.bash

Step 2 — Build the SDK

bash
cd ros2
rosdep install --from-paths src -y --ignore-src
colcon build --symlink-install
source install/setup.bash
cd ..

TIP

Run colcon build again any time you change the driver source. --symlink-install means Python scripts don't require a rebuild on edit.


Step 3 — Configure RMW

The RBQ driver uses CycloneDDS. Set the following environment variable in every terminal:

bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Add it to ~/.bashrc to avoid setting it each time:

bash
echo 'export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp' >> ~/.bashrc
source ~/.bashrc

For Wi-Fi connections, or if multicast discovery fails, see the full Network & DDS guide.


Step 4 — Launch the driver

Simulation (MuJoCo):

bash
source ros2/install/setup.bash
bash scripts/sim.bash

Real robot:

bash
source ros2/install/setup.bash
bash scripts/start_ros_driver.bash

The driver auto-restarts if it crashes. Stop it with Ctrl+C in its terminal.


Verify — list topics

bash
ros2 topic list

Expected output includes:

/rbq/motion/autoStart
/rbq/motion/switchGait
/rbq/motion/cmd_highLevel
/rbq/status/robot_status
/rbq/joint/joint_status
/rbq/imu/IMU_state
...

If no topics appear, check the Network & DDS guide.


First command sequence

The robot must be in the correct initial pose before sending commands.

bash
# 1. Run full initialization (CAN check → Find Home → Control start)
ros2 topic pub --once /rbq/motion/autoStart std_msgs/msg/Bool "{data: true}"

# 2. Stand up (gait_id: 1)
ros2 topic pub --once /rbq/motion/switchGait std_msgs/msg/Int8 "{data: 1}"

# 3. Enable HighLevel command mode
ros2 topic pub --once /rbq/motion/switchControlMode std_msgs/msg/Bool "{data: true}"

# 4. Walk forward at 0.3 m/s (gait_id: 3 = TROTTING)
ros2 topic pub --once /rbq/motion/cmd_highLevel rbq_msgs/msg/HighLevelCommand \
  '{vel_x: 0.3, vel_y: 0.0, omega_z: 0.0, gait_state: 3, gait_transition: false}'

# 5. Stop and sit
ros2 topic pub --once /rbq/motion/switchGait std_msgs/msg/Int8 "{data: 0}"

Monitor autoStart progress:

bash
ros2 topic echo /rbq/status/robot_status
# Watch: can_check → true, find_home → true, con_start → true

Next steps

Topic ReferenceFull list of all topics, types, and field descriptions
Network & DDSMulti-machine setup, Wi-Fi, firewall
Gait & Status ReferenceAll gait IDs, StatusWord bit meanings

This user manual is intended for RBQ users.