Network & DDS Configuration
The RBQ robot's onboard software (Network / DdsBridge) uses CycloneDDS as its middleware and speaks ROS 2-compatible DDS directly — there is no separate driver node to run. This page explains how to configure the network so that your developer PC can discover and exchange topics with the robot.
Network topology
| Host | Role | Default IP |
|---|---|---|
| Wi-Fi Access Point | L2 bridge between robot and user PC | 192.168.0.1 |
| Robot PC (Motion) | Runs onboard core software (Network / DdsBridge), publishes all topics | 192.168.0.10 |
| Developer PC | Runs your ROS 2 nodes | 192.168.0.12 (DHCP) |
Both machines must be on the same subnet (192.168.0.0/24) and reachable via ping before DDS discovery will work.
Required setup
1. Set the RMW implementation
The robot's core software and your terminal must both use CycloneDDS:
export RMW_IMPLEMENTATION=rmw_cyclonedds_cppAdd to ~/.bashrc to persist across terminals:
echo 'export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp' >> ~/.bashrc
source ~/.bashrc2. Domain ID
ROS_DOMAIN_ID is not set by the robot or any RBQ script — both sides use the default domain 0. No extra configuration is needed.
Verify connectivity
# 1. Ping the robot
ping 192.168.0.10
# 2. Check topics appear
ros2 topic list
# 3. Echo a live topic
ros2 topic echo /rbq/imu --onceFirewall
If ros2 topic list returns nothing but ping succeeds, UFW may be blocking multicast:
# Allow DDS traffic on the Wi-Fi interface (replace wlp4s0)
sudo ufw allow in on wlp4s0
sudo ufw allow out on wlp4s0
# Or disable UFW entirely for testing
sudo ufw disableTroubleshooting
No topics appear
- Confirm both machines are on the same subnet:
ping 192.168.0.10 - Confirm
RMW_IMPLEMENTATION=rmw_cyclonedds_cppis set in every terminal you use - If you have multiple network interfaces (Wi-Fi + Ethernet), specify the correct one explicitly:
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces>
<NetworkInterface name="wlp4s0"/>
</Interfaces></General></Domain></CycloneDDS>'Replace wlp4s0 with your Wi-Fi interface name (ip link show to check).
Topics appear but lag or drop
Multicast may be unreliable over some Wi-Fi routers. Add a unicast peer hint:
export CYCLONEDDS_URI='<CycloneDDS><Domain><General>
<Interfaces><NetworkInterface name="wlp4s0"/></Interfaces>
</General><Discovery><Peers><Peer address="192.168.0.10"/></Peers></Discovery>
</Domain></CycloneDDS>'rbq_msgs types show as unknown
The custom message workspace must be built and sourced on your PC:
source /opt/ros/humble/setup.bash
cd rbq_sdk/ros2
colcon build --symlink-install
source install/setup.bash