Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
Перейти к файлу
Chris Lovett 13b95600af update mavlinkcom to support mavlink2 protocol. 2017-04-29 19:15:03 -07:00
AirLib use simclock for thread sleep, avoid OS clocks 2017-04-29 00:47:38 -07:00
AirLibUnitTests use simclock for thread sleep, avoid OS clocks 2017-04-29 00:47:38 -07:00
DroneServer Add a bit more checking of message traffic to DroneShell/DroneServer. 2017-04-28 00:22:27 +00:00
DroneShell use simclock for thread sleep, avoid OS clocks 2017-04-29 00:47:38 -07:00
Examples Utils clock API changes 2017-04-28 18:53:00 -07:00
HelloDrone fix bugs. 2017-04-12 17:38:42 -07:00
LogViewer fix bugs. 2017-04-12 17:38:42 -07:00
MavLinkCom update mavlinkcom to support mavlink2 protocol. 2017-04-29 19:15:03 -07:00
Unreal/Plugins/AirSim use simclock for thread sleep, avoid OS clocks 2017-04-29 00:47:38 -07:00
cmake make build script executable. 2017-04-26 21:40:18 +00:00
docs update mavlinkcom to support mavlink2 protocol. 2017-04-29 19:15:03 -07:00
external Update rpclib to latest bits. 2017-04-17 15:18:35 -07:00
tools Fix windows clean build (installs cmake if we need it). 2017-04-23 19:14:23 -07:00
.gitignore ignore cmake files. 2017-04-27 00:28:34 -07:00
.gitmodules added rpclib submodule 2017-02-23 20:29:03 -08:00
.travis.yml fix build 2017-04-23 10:23:10 -07:00
AirSim.sln add Unreal plugin files to the solution so it is easier to see their history. 2017-04-26 10:39:18 -07:00
LICENSE readme and license update 2017-02-14 20:53:49 -08:00
README.md Add link to log playback feature. 2017-04-11 13:02:44 -07:00
build.cmd Switch back to build.cmd, powershell requires setting unrestricted execution policy which is a hassle. 2017-04-24 10:50:05 -07:00
build.sh fix bug in build.sh 2017-04-04 21:38:44 -07:00
clean.cmd minor fixes. 2017-02-16 20:58:47 -08:00

README.md

Welcome to AirSim

AirSim is a simulator for drones (and soon other vehicles) built on Unreal Engine. It is open-source, cross platform and supports hardware-in-loop with popular flight controllers such as Pixhawk for physically and visually realistic simulations. It is developed as an Unreal plugin that can simply be dropped in to 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

AirSim Demo Video

Development Status

This project is under heavy development. The current release is in beta and all APIs are subject to change. The next major features currently in works are standalone mode, several API enhancements and Python client support. We welcome contributions!

How to Get It

Prerequisites

To get the best experience you will need Pixhawk or compatible device and a RC controller. This enables the "hardware-in-loop simulation" for more realistic experience. Follow these instructions on how to get it, set it up and other alternatives.

Windows

There are two ways to get AirSim working on your machine. Click on below links and follow the instructions.

  1. Build it and use it with Unreal
  2. Use the precompiled binaries

Linux

Good news! Several people have reported that they have been running in Linux as well as OSX successfully. Please check conversations on Linux. You can find our experimental Linux build instruction here. We are still in process of making this little bit nicer and release official Linux build soon! AirSim code is designed to be cross platform and we would love to make AirSim available on other platforms as well.

How to Use It

Video Tutorials

Manual flights

If you have a Pixhawk flight controller (or compatible device) and a remote control you can manually control the drones in the simulator and fly around.

record screenshot

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 on the lower right corner. This will start writing pose and images for each frame.

record screenshot

If you would like more data logging capabilities and other features, file a feature request or contribute changes. The data logging code is pretty simple and you can modify it to your heart's desire.

A more complex way to generate training data is by writing client code that uses our APIs. This allows you to be in full control of how, what, where and when you want to log data. See the next section for more details.

For MavLink enabled drones, you can also use our Log Viewer to visualize the streams of data.

You can also playback recorded logs for side-by-side comparison between real drone and the simulator.

Programmatic control

The AirSim exposes easy to use APIs in order to retrieve data from the drones that includes ground truth, sensor data as well as various images. It also exposes APIs to control the drones in a platform independent way. This allows you to use your code to control different drones platforms, for example, Pixhawk or DJI Matrice, without making changes as well as without having to learn internal protocols details.

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

More details

Participate

Paper

You can get additional technical details in our paper (work in progress). Please cite this as:

@techreport{MSR-TR-2017-9,
     title = {{A}erial {I}nformatics and {R}obotics Platform},
     author = {Shital Shah and Debadeepta Dey and Chris Lovett and Ashish Kapoor},
     year = {2017},
     institution = {Microsoft Research},
     number = {{M}{S}{R}-{T}{R}-2017-9}}
}

Contribute

We welcome contributions to help advance research frontiers.

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 MIT License. Please review License file for more details.