Open source simulator based on Unreal Engine for autonomous vehicles from Microsoft AI & Research
Clone or download
Latest commit a28894c Oct 12, 2018
Permalink
Failed to load latest commit information.
.vscode added demo video link for camera noise and interference Feb 13, 2018
AirLib Fix the include error Oct 11, 2018
AirLibUnitTests Added DepthNav Jul 4, 2018
DroneServer Plugin refactoring to sync with AirLib (Part 2) Jun 3, 2018
DroneShell squashing last 3 commits to get rid of visuallint May 29, 2018
Examples Added data collection script Sep 7, 2018
HelloCar Plugin refactoring to sync with AirLib (Part 2) Jun 3, 2018
HelloDrone C++ API chaining, higher takeoff, Doc update - part 1 Jun 19, 2018
LogViewer Merge pull request #922 from Microsoft/review/px4_landing Apr 5, 2018
MavLinkCom Allow for AdHocConnections in MavLinkCom Sep 10, 2018
PythonClient Code merge for Technion #1410 Oct 9, 2018
SGM Changed Win SDK from 10.x to 8.x Oct 8, 2018
Unreal Added support for Flysky FS-SM100 RC USB adapter Oct 9, 2018
cmake Merge branch 'arducopter-solo-connector' of https://github.com/KerryM… Oct 9, 2018
docs Added steering wheel doc from Technion #1410 Oct 9, 2018
tools Fix windows clean build (installs cmake if we need it). Apr 24, 2017
.gitignore Added camera projection matrix in CameraInfo Jun 27, 2018
.gitmodules remove, rpclib as submodule, download from git release, cmake install… Jan 20, 2018
.travis.yml clang compile error fix, remove OSX from travis Sep 28, 2017
AirSim.sln Integrated SGM into example project and added data collection pipeline Aug 28, 2018
AirSim.sln.vlconfig squashing last 3 commits to get rid of visuallint May 29, 2018
ISSUE_TEMPLATE.md initial Feb 9, 2018
LICENSE readme and license update Feb 15, 2017
README.md Update README.md Oct 11, 2018
UnrealPluginFiles.vcxproj Plugin refactoring to sync with AirLib (Part 2) Jun 3, 2018
UnrealPluginFiles.vcxproj.filters Plugin refactoring to sync with AirLib (Part 2) Jun 3, 2018
build.cmd Turn Off echo Oct 5, 2018
build.sh Fix Mac build.sh clang paths Jul 6, 2018
build_all_ue_projects.bat updated env build script with new environments Jun 21, 2018
check_cmake.bat remove, rpclib as submodule, download from git release, cmake install… Jan 20, 2018
clean.cmd remove rd external from clean.cmd Apr 30, 2018
clean.sh fixed pushd issue in setup.sh, cmake issue with -L Jul 21, 2017
clean_rebuild.bat remove rd external from clean.cmd Apr 30, 2018
clean_rebuild.sh Better Linux upgrade steps Apr 28, 2018
install_run_all.sh Better Linux upgrade steps Apr 28, 2018
install_unreal.sh Better Linux upgrade steps Apr 28, 2018
setup.sh Fix setup.sh for restricted sudo-access Oct 4, 2018

README.md

Welcome to AirSim

AirSim is a simulator for drones, cars and more, built on Unreal Engine. It is open-source, cross platform and supports hardware-in-loop with popular flight controllers such as PX4 for physically and visually realistic simulations. It is developed as an Unreal plugin that can simply be dropped into any Unreal environment you want.

Our goal is to develop AirSim as a platform for AI research to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. For this purpose, AirSim also exposes APIs to retrieve data and control vehicles in a platform independent way.

Check out the quick 1.5 minute demo

Drones in AirSim

AirSim Drone Demo Video

Cars in AirSim

AirSim Car Demo Video

What's New

List of newly added features

How to Get It

Windows

Linux

How to Use It

Choosing the Mode: Car, Multirotor or ComputerVision

By default AirSim will prompt you to choose Car or Multirotor mode. You can use SimMode setting to specify the default vehicle or the new ComputerVision mode.

Manual drive

If you have remote control (RC) as shown below, you can manually control the drone in the simulator. For cars, you can use arrow keys to drive manually.

More details

record screenshot

record screenshot

Programmatic control

AirSim exposes APIs so you can interact with the vehicle in the simulation programmatically. You can use these APIs to retrieve images, get state, control the vehicle and so on. The APIs are exposed through the RPC, and are accessible via a variety of languages, including C++, Python, C# and Java.

These APIs are also available as part of a separate, independent cross-platform library, so you can deploy them on a companion computer on your vehicle. This way you can write and test your code in the simulator, and later execute it on the real vehicles. Transfer learning and related research is one of our focus areas.

More details

Gathering training data

There are two ways you can generate training data from AirSim for deep learning. The easiest way is to simply press the record button in the lower right corner. This will start writing pose and images for each frame. The data logging code is pretty simple and you can modify it to your heart's content.

record screenshot

A better way to generate training data exactly the way you want is by accessing the APIs. This allows you to be in full control of how, what, where and when you want to log data.

Computer Vision mode

Yet another way to use AirSim is the so-called "Computer Vision" mode. In this mode, you don't have vehicles or physics. You can use the keyboard to move around the scene, or use APIs to position available cameras in any arbitrary pose, and collect images such as depth, disparity, surface normals or object segmentation.

More details

Tutorials

Participate

Paper

More technical details are available in AirSim paper (FSR 2017 Conference). Please cite this as:

@inproceedings{airsim2017fsr,
  author = {Shital Shah and Debadeepta Dey and Chris Lovett and Ashish Kapoor},
  title = {AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles},
  year = {2017},
  booktitle = {Field and Service Robotics},
  eprint = {arXiv:1705.05065},
  url = {https://arxiv.org/abs/1705.05065}
}

Contribute

Please take a look at open issues if you are looking for areas to contribute to.

Who is Using AirSim?

We are maintaining a list of a few projects, people and groups that we are aware of. If you would like to be featured in this list please add a request here.

Contact

Join the AirSim group at Facebook to stay up to date or ask any questions.

FAQ

If you run into problems, check the FAQ and feel free to post issues on the AirSim github.

License

This project is released under the MIT License. Please review the License file for more details.