CS 184/284A: 3D Drone Simulation

Realistic 3D Drone Simulation with Path Planning in Unreal Engine 5



Summary

We built a 3D drone flight simulator that incorporates open-source data from Google Earth to path plan in realistic world scenarios. The simulation demo is built in a free game engine Unreal Engine. For the purposes of this project, we are focusing on 1 scenario. The demo includes comparing different path-planning algorithms to select the best flight path. We added realism to the simulation such as constraints on where the drone can fly. The output is a video of the virtual camera following the drone path that shows a realistic simulated 3D world and paths planned around obstacles through certain points in space.


Technical details of the project and our implementation are in the paper.

Presentation with videos (Google Drive)

Team Members

Problem Description

The idea was to make a 3D animated simulation of a drone flying in a realistic urban setting, such as the city of San Francisco. The simulation loads a realistic 3D scene of an existing place available on Google Earth with obstacles such as buildings and trees. The challenge was to make the drone path realistic: i.e. follow certain rules and constraints in calculating the course while being fast (as it flies). The project explores different algorithms for path planning and compares their tradeoffs. The game engine automatically computes the flight path and displays flight targets on the screen as the drone flies. The program outputs a video taken from the point of view of the drone to show a realistically rendered scene. We can tell the drone where to fly (which points of interest it should fly by) and take a video from a specific point of view.

Additionally, we implemented animations of the drone flying, turning, etc, and of the rotors on each thruster. Several virtual cameras follow the path of the drone as it flies, including a first-person view from the drone itself.

Challenges

The most challenging part of this project would be to achieve path planning and animation that is realistic, fast, and accurate. All team members had little experience with animation, so learning the basics of Unreal Engine and animation in the allotted time will be a challenge.

Goals and Deliverables

We created a 3D simulation of a drone flying through a realistic environment. We were be able to set and change parameters of the simulations, such as obstacles to avoid, the speed of the drone, and where the drone should fly by. As a final result, we produced a video in which we show the drone flying along a path as well as colliding with obstacles in the scene. We build our simulation in Unreal Engine 5 in C++ and used Python for path planning algorithms to precompute drone paths.

Questions Planned to Answer

  1. How to use Unreal Engine to make a realistic drone flight simulation (how to integrate Google Earth data into Unreal Engine).
  2. How to animate the drone and its motion in real-time?
  3. How to plan a path the drone should take to avoid collisions and stay within the given constraints?

We hope this simulation helps people flying real drones plan a path. Ideally, we would like to compare our simulated fly path to a real drone (if we can get one).

Resources we used

Open source software:

Open source GitHub code:

Contributions

Final Project

Milestone

Proposal