In earlier posts I described HackflightSim, an open-source quadcopter flight simulator built on the V-REP robotics simulation platform, using actual C++ flight-control firmware. After seeing the kinds of beautiful, real-time simulations that Microsoft was able to get with ts AirSim program built on UnrealEngine (UE4), I figured it was worth looking into UE4 for my own simulator. Thanks to the powerful features of UE4, I was able to start from scratch and build a rudimentary, 120 frames-per-second simulator in under 500 lines of C++ code.
As this video shows, UE4 makes it easy to switch among a variety of cameras: "follow" camera (always in front of the vehicle); "chase" camera (behind the vehicle); and the familiar FPV. It's also pretty straightforward to import an existing frame design (like this modified 3DFly frame) and propeller design into UE4 as a "mesh", saving you the trouble of designing a vehicle just for the simulation.
I'm planning to work with a studio-arts student on building some realistic interesting indoor environments in which to fly, using the powerful level-design tools in UE4. This should speed up the prototyping of firmware algorithms to exploit the tiny, powerful new sensors available these days, like the VL53L0X ranging sensor and the PMW3901 optical-flow sensor, before deploying them on an actual MAV.
Charles, you should definitely look into Microsoft AirSim. It already has support for those kinds of machine-vision projects.
Cool. We need better tools to integrate UAVs with machine vision. For training with neural net for example, it would be super useful to have the video from cameras, and an output for each frame identifying the position, height, and position of obstacles in the images.