Quick Start
Get the RBQ ROS 2 driver running in 4 steps — from a fresh Ubuntu 22.04 machine to receiving live topics.
Prerequisites
| Item | Requirement |
|---|---|
| OS | Ubuntu 22.04 |
| ROS 2 | Humble |
| Middleware | rmw_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.bashStep 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_cppAdd it to ~/.bashrc to avoid setting it each time:
bash
echo 'export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp' >> ~/.bashrc
source ~/.bashrcFor 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.bashReal robot:
bash
source ros2/install/setup.bash
bash scripts/start_ros_driver.bashThe driver auto-restarts if it crashes. Stop it with Ctrl+C in its terminal.
Verify — list topics
bash
ros2 topic listExpected 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 → trueNext steps
| Topic Reference | Full list of all topics, types, and field descriptions |
| Network & DDS | Multi-machine setup, Wi-Fi, firewall |
| Gait & Status Reference | All gait IDs, StatusWord bit meanings |
