CS 184/284A: 3D Drone Simulation

Project Milestone

Final Project: https://irina694.github.io/3d-drone-sim/

Milestone: https://irina694.github.io/3d-drone-sim/milestone

Proposal




Realistic 3D drone simulation with autonomous path planning

YouTube Link

Presentation (Google Drive)

Summary

We are building 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. Next, we will add realism to the simulation such as constraints on where the drone can fly (for example, stay within the drone airspace and don’t fly too close to buildings). The output would be 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.

Team Members

Creating realistic drone simulations

Image credit: Unsplash

The idea is to make a 3D animated simulation of a drone flying in a realistic urban setting, such as a block in 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 is 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 the speed vs accuracy tradeoffs. The game engine automatically computes the flight path and displays it 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 record a video of the flight by following the drone. Additionally, we are implementing realistic animations such as the drone flying, rotors turning, etc..

Simulating realistic drone flight could be helpful for drone operators or those who are thinking about buying a drone. Existing drone simulators such as Microsoft AirSim don’t have scenes based on real-world locations. Our goal is to provide a realistic scenario of flying a drone either manually or autonomously through a 3D model of a real scene. The simulation is physically accurate with drone rotors approximating how real drones are made and the physics of their flight. Potentially, this tool could be used to plan a flight path of a real drone in any location, given available data, such as Google Earth satellite imagery.

Simulation Details

Drone and scene in Unreal Engine

Realistic 3D environment: data collection & models

Modeling realistic world scenes for the simulation involved several steps:

  1. Acquire Google Earth Studio data by recording a 360-degree video around a stationary point of any place on Earth.
  2. Convert video data into a series of PNG frames (~100-150 images)
  3. Convert a series of PNG frames into a dense 3D mesh and model in Meshroom photogrammetry open-source software.
  4. Scale the scene 3D model in Blender to have realistic proportions.

Drone physics-based model & controls

Path Planning Algorithms

  1. A*: In situations where obstacles are far and few in between and the drone needs to determine a pth rapidly, employing A* for path planning in Drone could be beneficial. These are situations in which of the drone needs to navigate.
  2. D* Lite: It would be beneficial for Drone to use D* Lite for path planning in situations where the environment is continuously changing and the drone needs to swiftly adjust to new obstacles.
  3. RRT*: In situations where the terrain is complicated and the drone needs to explore a broad region, employing RRT* for path planning in Drone could be beneficial. For the purpose of illustration, if Drone is going to be used for mapping or surveying in a highly populated urban setting, RRT* would be a good option for route planning.
  4. RRT-Connect: RRT-connect is a variant of the RRT* algorithm that is optimized for planning paths between two fixed points. It works well in scenarios where the drone needs to navigate through a complex environment to reach a specific destination.
Comparison

RRT-Connect is the most effective choice for path planning in a scenario where the drone needs to navigate through a complex environment to reach a specific destination

Or

Since the effectiveness of each algorithm will depend on the specific requirements of the scenario. A combination of different algorithms may also be used in different parts of the path planning process to optimize performance and effectiveness.

Challenges

Contributions

Next Steps

Updated Schedule

4/6 - 4/12 Week 1

Setup Unreal Engine, gather Google Earth data, choose a complex scene to model. Find and integrate a realistic drone model into Unreal Engine. Research path planning algorithms.

4/13 - 4/19 Week 2

Develop basic path planning algorithms that avoid obstacles & passes through certain points given the 3D model of the scene. Create physics-based drone controls and GUI. Integrate scene model into the engine.

4/20 - 4/26 Week 3

Integrate the path-planning algorithms into Unreal Engine. Possibly add reinforcement learning to the drone path planning. Visualize the paths for comparison; find the best (“smoothest”) path.

4/27 - 5/3 Week 4

Add constraints and environmental effects; prepare final deliverables (paper, video, and presentation).

Resources and References

Open source software:

Open source GitHub code:

Website URL: https://irina694.github.io/3d-drone-sim/

Milestone

Proposal