Understanding PX4/ROS Gazebo sim
I'm interested in developing some autonomous drone software for a fun personal project and I thought it would be good to do some simulations using Gazebo. After doing some research it seems like the best option is to use PX4 and Gazebo because it already has the models and lower-level flight control built in. However, I don't really understand what PX4 is and it seems like it is the flight software, which is what I wanted to develop.
I want to essentially use PX4 as the middleware between my flight software and the Gazebo sim (is this what PX4 does?). I was hoping I could develop my software using ROS and then basically publish control messages that PX4 would subscribe to and use to control the sim. Is this possible?
It kinda seems like PX4 is flight software that's already been developed and is just meant to be extended but I'm not looking to control a super complicated drone. I really just need an interface between the sim and my software or something that has low-level drone control already built in.