Project AirSim¶
Welcome to Project AirSim¶
Project AirSim is a simulation platform for drones, robots, and other autonomous systems.
Building on the previous work of AirSim, it leverages Unreal Engine 5 to provide photo-realistic visuals, while providing the simulation framework needed to integrate custom physics, controllers, actuators, and sensors to develop an autonomous system.
Project AirSim consists of three main layers:
Project AirSim Sim Libs - Base infrastructure for defining a generic robot structure and simulation scene tick loop
Project AirSim Plugin - Host package (currently an Unreal Plugin) that builds on the sim libs to connect external components (controller, physics, rendering) at runtime that are specific to each configured robot-type scenario (ex. quadrotor drones)
Project AirSim Client Library - End-user library to enable API calls to interact with the robot and simulation over a network connection
For more details on the architecture, see Project AirSim Architecture Overview.
Project AirSim currently supports Windows 11 and Ubuntu 22. For more info about hardware specs for working with Project AirSim, see System Specifications.
Getting Started¶
See Installing system prerequisites for information about Windows/Linux system setup needed before running Project AirSim.
1. Develop with Project AirSim source¶
I’m going to build the sim libs, Plugin, Blocks, and my own UE project environment from the ground up so I can customize it to my application.
Build from source as a developer¶
2. Drop-in Project AirSim Plugin¶
I want to try adding the Project AirSim Plugin to my own UE project environment so I can build some autonomous stuff.
Use Project AirSim Plugin in custom environments¶
Running Headless (Docker)¶
If you need to run a Project AirSim simulation on a headless system, such as in a Docker container, you can enable off-screen rendering by adding the -RenderOffScreen
argument when launching the Unreal environment executable:
Blocks{.exe/.sh} -RenderOffScreen
If you are running without GPU access and want to run without any image rendering, you can disable rendering completely by adding the -nullrhi
argument:
Blocks{.exe/.sh} -nullrhi
These arguments can also be used while debugging in VS Code by modifying the launch.json
file, or in Visual Studio 2022 by modifying the project’s Configuration Properties
. See Running Headless (Docker, Azure Cloud) for more details.
Reference¶
Configuration JSONC Settings¶
Client API¶
ROS Integration¶
Controllers¶
Sensors¶
Scene¶
Coordinate System
Physics¶
Autonomy Blocks¶
FAQ¶
If you run into problems, check the FAQ for help.
Transitioning from AirSim¶
See Transitioning from AirSim for guidance on converting an AirSim Unreal environment and client code from AirSim to Project AirSim.
Trademarks¶
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.
Copyright (C) Microsoft Corporation. Copyright (C) IAMAI Consulting Corporation.
MIT License
Getting Started
ROS Integration
- Project AirSim ROS Bridge
- ROS2 Setup for developers
- Project AirSim ROS Bridge Examples
- Requirements
- Setup
- Building
- Running
- Individual Examples
- Simple Takeoff and land example (services)
- TakeoffGroup and LandGroup example (services)
- Arm and Disarm Services
- ArmGroup and DisarmGroup Services
- Create Voxel Grid Service
- Create Segmented Voxel Grid service
- Create Occupancy Grid Service
- Save Occupancy Grid Service
- MoveOnPath Service
- MoveToPosition
- MoveOnPath Action
- Project AirSim ROS Bridge Examples: build_map
- Project AirSim ROS Bridge Examples: navigate_map
Sensors
- Supported imaging/capture camera customizations
- Sample config
- Camera Images Post processing using Neural Network models
- Image post processing settings
- Post processing model settings
- Camera Streaming
- Segmentation
- Lidar sensor
- Lidar sensor settings
- Radar sensor overview
- Radar sensor settings
- Battery sensor
- Battery sensor settings
- Sensor data visualization/display
Data Collection
Physics and Simulation
Settings