Simulation with Gazebo + PX4 SITL + ROS
From Bambi
First of all we have chosen ROS, because it is a quasi standard in robotics and provides a mature abstraction level and healthy environment (tutorials, documentation, etc) for our development needs. For ROS, the most widely used 3D simulator is Gazebo.
Because of the good integration of ROS with Gazebo, we needed flight stack that could support this choice. The PX4 flight-stack, especially concering the Software-In-The-Loop simulation seems to be better developed and documented than the one of ardupilot.
General Structure Overview
Taken from https://dev.px4.io/en/simulation/#sitl-simulation-environment.