An Actor-Critic algorithm for training an autonomous drone towards guiding a human controlled car
Based on Microsoft AirSim simulator and UnrealEngine
Final Project in Technion Course 096235 - Intelligent Interactive Systems
- AirSim simulator set up to support both drone and car together (see installation for more details)
unfortunately setting Microsoft AirSim up is a bit of a hassle as the Airsim current release doesnt support both drone and car simultaneously so needs to be slighly modified to allow it.
- Follow this medium guide to setup the AirSim with both a drone and a car
- Clone this repo to the same parent folder of the Airsim plugin
- If using Conda, create an environment using
conda env create -f airsim_env.yaml
- Open the blocks.uproject in
./AirSim/Unreal/Environments/Block
and press 'PLAY' - Run
run.py
, return to simulator and press the screen to allow manual control of car - Once the drone starts moving, follow it with the car using the keyboard arrow keys
- Open the
RoboticGuidance.ipynb
jupyter notebook - Run the different cells to plot both individual and accumulated results
- A sample episode of the training phase. One of the first things the drone learned was to slow down if the car is far away
- A short gif of a training run (5x speed)
- Trajectory plot (drone in red, car in blue)