The Wayback Machine - https://web.archive.org/web/20200525232854/https://github.com/microsoft/AirSim
Skip to content
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
C++ C# Python C CMake Batchfile Other
Branch: master
Clone or download

Latest commit

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode added demo video link for camera noise and interference Feb 13, 2018
AirLib fix build error Apr 29, 2020
AirLibUnitTests [variable_renames] see full commit msg for details (#2538) Apr 8, 2020
DroneServer Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
DroneShell Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
Examples Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
HelloCar Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
HelloDrone Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
LogViewer publish new version. Mar 21, 2019
MavLinkCom PX4 bug fixes. Apr 29, 2020
PythonClient Python API fixes (#2599) Apr 30, 2020
SGM Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
Unity Reduced warning level in Unity build (#2672) May 8, 2020
Unreal Enforce default settings for non-custom settings, remove legacy Build… May 6, 2020
cmake [linux] remove unnecessary compiler warnings May 7, 2020
docker Fix print statement for Python 3 Mar 23, 2020
docs [docs] add mavros dep in ros docs (#2645) Apr 30, 2020
ros/src [ros] fix airsim_node.launch Apr 13, 2020
tools [build/linux/gcc] obviate version.py & compare versions in shell itself Aug 21, 2019
.gitignore Merge pull request #2328 from rajat2004/unity-buil-improvements Apr 30, 2020
.travis.yml [Travis] Update OSX build to 10.15 (#2702) May 22, 2020
AUTHORS.md Updated changelog, added standard md files Nov 8, 2018
AirSim.props Make WindowsTargetPlatformVersion more easily configurable in AirSim … Dec 7, 2018
AirSim.sln PX4 bug fixes. Apr 29, 2020
AirSim.sln.vlconfig squashing last 3 commits to get rid of visuallint May 29, 2018
CHANGELOG.md [docs] see full commit msg for details Apr 7, 2020
CONTRIBUTING.md [docs] see full commit msg for details Apr 7, 2020
ISSUE_TEMPLATE.md Updated changelog, added standard md files Nov 8, 2018
LICENSE Badge recognition for license Nov 20, 2018
README.md [docs] Update CHANGELOG.md (#2555) Apr 30, 2020
SUPPORT.md [docs] see full commit msg for details Apr 7, 2020
UnrealPluginFiles.vcxproj Enforce C++17 std and toolset in all vcxprojs Apr 1, 2020
UnrealPluginFiles.vcxproj.filters Cherry picked and improved texture swapping from research repo. Nov 2, 2019
build.cmd Switch more details to VS2019 (#2553) Apr 8, 2020
build.sh Remove gcc build option from setup and build.sh Apr 13, 2020
build_docs.bat add images folder in docs build Nov 9, 2018
build_docs.sh [docs] .gitignore, add mkdocs build to build_docs.sh, cleanup mkdocs.yml Apr 7, 2020
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 [docs] upgrade to ue 4.24; update pip package to 1.2.6 Mar 31, 2020
install_unreal.sh [docs] upgrade to ue 4.24; update pip package to 1.2.6 Mar 31, 2020
mkdocs.yml [docs] .gitignore, add mkdocs build to build_docs.sh, cleanup mkdocs.yml Apr 7, 2020
setup.sh Remove gcc build option from setup and build.sh Apr 13, 2020

README.md

Welcome to AirSim

AirSim is a simulator for drones, cars and more, built on Unreal Engine (we now also have an experimental Unity release). 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. Similarly, we have an experimental release for a Unity plugin.

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

For complete list of changes, view our Changelog

How to Get It

Windows

Linux

macOS

Build Status

How to Use It

Documentation

View our detailed documentation on all aspects of AirSim.

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.

Note that you can use SimMode setting to specify the default vehicle or the new ComputerVision mode so you don't get prompted each time you start AirSim.

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

Weather Effects

Press F10 to see various options available for weather effects. You can also control the weather using APIs. Press F1 to see other options available.

record screenshot

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 make a request here.

Contact

Join the AirSim group on 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 in the AirSim repository.

License

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

You can’t perform that action at this time.