> For the complete documentation index, see [llms.txt](https://docs.auterion.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.auterion.com/app-development/simulation/virtual-skynode/simulation-airsim-reference.md).

# Simulation-AirSim Reference

{% hint style="info" %}
AirSim simulation is only available for [virtual AOS 4.1.2](https://suite.auterion.com/api/releases/files/711?token=01JWWSWZCGHYYD4T12DEW62GA5) and higher or alternatively versions with virtual FMU app 1.4.0 or higher.
{% endhint %}

As an alternative to Gazebo simulator, Virtual Skynode also supports [**Microsoft AirSim**](https://microsoft.github.io/AirSim/) simulation platform. AirSim is an open-source simulator built on [Unreal Engine](https://www.unrealengine.com/en-US); due to its high graphical fidelity, it is ideal for testing and training applications that rely on computer vision pipelines.

Auterion offers a meta debian package for Ubuntu called **simulation-airsim** that simplifies the setup required to start an AirSim simulation. This is meant to be run in conjunction with Virtual Skynode.

<figure><img src="/files/4XWwsTEo60t95vOBYqVy" alt=""><figcaption><p>Auterion Countryside world</p></figcaption></figure>

## Description

**simulation-airsim** handles the fetching of pre-compiled AirSim environments and starts the simulation with the desired configuration.

## Installation

The **simulation-airsim** package can be installed through the package manager:

```sh
curl -1sLf 'https://dl.cloudsmith.io/public/auterion/public/setup.deb.sh' | sudo -E bash
sudo apt update
sudo apt install simulation-airsim
```

Additionally, we need the airsim2ros Auterion app in order to make the onboard camera video feed available to [AMC](/vehicle-operation/auterion-mission-control.md) and to the [Auterion SDK.](/app-development/auterion-sdk.md) To get the app, login into Auterion Suite, download airsim2ros from [here](https://suite.auterion.com/store/software?productId=154) and install it on Virtual Skynode.

## Usage

Here are the steps to simulate a quadcopter with camera using the AirSim simulator:

* [Launch Virtual Skynode](https://docs.auterion.com/app-development/virtual-skynode#launching-the-virtual-skynode)
* Launch **simulation-airsim** with (see [Available launch arguments](#available-launch-arguments) section for customizing the simulation experience):

```
simulation-airsim [ARGUMENTS]
```

* From the Virtual FMU app "Configure" page, select `Microsoft AirSim - Iris` as "Simulation mode" and click on "Reload Simulation"
* Change the "Camera Topic" setting of "gst-ros-bridge" app to `/camera/airsim/image_raw` to have the video feed in AMC

### Available Launch Arguments

The user can provide any of the following optional arguments to **simulation-airsim:**

| Argument                                                | Default                | Description                                                                                                                                                                                                                       |
| ------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><code>--environment</code></p><p><code>-e</code></p> | `Blocks`               | A string that specifies the desired simulation world. The available environments are: "AbandonedPark", "Africa", "Auterion\_Countryside", "Blocks", "Building", "CityNeighborhood", "Mountains", "SoccerField" and "ZhangJiajie". |
| `--px4_ip`                                              | `10.41.200.1`          | A string that sets the IP of the outgoing network interface where PX4 is running.                                                                                                                                                 |
| <p><code>--headless</code></p><p><code>-s</code></p>    | `False`                | A boolean that disables the main camera in the simulator so to save some computational resources (vehicle attached cameras are still rendered).                                                                                   |
| `--config_file`                                         |                        | A string specifying a path with the user desired AirSim configs (if the user needs to specify advanced configuration files).                                                                                                      |
| `--env_store`                                           | `~/.simulation-airsim` | A string specifying a path where the AirSim environments will be downloaded and stored.                                                                                                                                           |

{% hint style="info" %}
For a comprehensive list of all available settings that can be specified in the `config-file` refer to AirSim docs: <https://microsoft.github.io/AirSim/settings/#available-settings-and-their-defaults>
{% endhint %}

### AirSim Environments

**simulation-airsim** offers the user a convenient way to access the several pre-built environments available for AirSim, ranging from the simple 'Blocks' environment, featuring a flat world with cube obstacles, to more intricate scenarios like the 'Africa' scenario, which includes uneven terrain and animated animals. The 'Auterion Countryside' offers a 2x1 km sized cerntal european environment with moving vehicles.

{% hint style="info" %}
To create a custom simulation environment using Unreal Engine, please refer to AirSim documentation: <https://microsoft.github.io/AirSim/unreal_custenv/>
{% endhint %}
