My background is in control theory but the time has come for me to get more engaged with physical hardware. To this end, I am required to put together a system for conducting software in the loop (SITL) and/or hardware in the loop (HITL) simulations.
My studies will be for developing control algorithms for teams of fixed-wing aircraft with the intent to transition to physical aircraft. Due to current circumstances I am restricted to using ArduPlane which brings me to this forum. However, I want to note that it is possible that I transition to Px4 in the future (not necessarily my decision).
After some reading online, I was really attracted to what AirSim offers in terms of sensor feedback and high quality renderings and its support for both arduPilot and Px4. Initially, I didn’t find direct support for fixed-wing aircraft with arduPlane. Further investigations lead me to Gazebo, which offered support for ArduPlane and aerodynamic models for fixed-wing aircraft. This was great, but lacked the nice visuals offered by AirSim. Fortunately, it seems that I can utilize Gazebo in AirSim with GazeboDrone. Best of both worlds?
With my goal to simulate several fixed-wing UAVs in a high fidelity setting, it seems like I can use:
QGroundControl and ArduPlane SITL - for flight control simulation
Gazebo / plugins - for a physics engine to generate aerodynamics
AirSim - for visualization and camera/Lidar simulation.
In addition to this, I need some middleware for handling communication between the different agents and autonomy/control scripts. In this case, ROS2 seems to be the most appropriate.
For an initial cut at this project, I want to do a SITL simulation using AruduPlane, Gazebo, and AirSim. Later, I would like to build a HITL simulation to test the systems on computationally constrained companion computers with a CubePilot.
As for hardware, I will be running on a worstation with a beefy threadripper CPU, 2x Nvidia A6000 GPUs, 256 GB of RAM, and plenty of fast read/write storage. I don’t think hardware will be an issue.
My concerns are with simulation software and selecting the correct stuff to achieve my goals. With that, any advice and guidance would be greatly appreciated. How would you go about this? Do you have experience doing this?
Thank you,
Sage