ROS 2 is the communication backbone of the simulation. Every meaningful signal — sensor data from Gazebo plugins, control commands to ArduPilot through MAVROS, policy output from the RL inference node — flows over ROS 2 topics. The specific distribution is Jazzy (May 2024 LTS), which is what we run on D2 (Ubuntu 24.04).
Two subhubs cover what you actually need to set up. Installation is the apt-based install recipe — packages, environment, the colcon dependencies. Settings is the configuration layer — ROS_DOMAIN_ID isolation for parallel SITL instances, RMW implementation choice, QoS profiles for sensor vs control traffic. The settings page matters more than it sounds: getting ROS_DOMAIN_ID=0 right is the difference between “nodes can see each other” and “nodes silently disagree about which world they’re in.”
Cross-references to related sections: the conceptual side of how MAVROS and ROS 2 interact with ArduPilot is on MAVROS theory; the latency and DDS-tuning side is on ROS 2 latency tuning; the day-one walkthrough of building your first node is on ROS 2 Jazzy workspace bootstrap.
Contents
Auto-generated from child entries during build (update-indexes.mjs).