FSDS Simulator on Docker in Linux

This guide describes how to build a Docker image from FSDS linux binaries. You could instead compile Unreal Engine + AirSim from source, but this is not documented. This Docker implementation is based on Micorsoft's Docker implementation for AIRSIM repository.

Binaries

Requirements:

Build the Docker image

Use the build_airsim_image.py to build the docker image

NVIDIA vulkan is thebase image on which FSDS is installed. By default Ubuntu 18.04 with CUDA 10.0 is used. You can specify any NVIDIA vulkan at your own risk. Use --target_image is the desired name of your Docker image. It defaults to fsdsairsim_binary with tag as vulkan-ubuntu18.04 To customize the version, use:

$ cd docker/src;
$ python build_airsim_image.py --target_image=fsdsairsim_binary:vulkan-ubuntu18.04

After building the image, verify that the image exists by runnig:

    $ docker images | grep fsdsairsim_binary

Run FSDS inside the Docker container

Get the binary, or package your own project in Ubuntu. You can either download the latest version yourself, or use the download_FSDSSimulator_binary.sh helper script.

Now, run fsds inside the Docker container:

   $ ./run_airsim_image_binary.sh DOCKER_IMAGE_NAME UNREAL_BINARY_SHELL_SCRIPT UNREAL_BINARY_ARGUMENTS -- headless

Replace the variables as follows: * DOCKER_IMAGE_NAME: Same as target_image parameter in previous step. By default, enter fsdsairsim_binary:vulkan-ubuntu18.04
* UNREAL_BINARY_SHELL_SCRIPT: for FSDSsimulator enviroment, it will be fsds-v2.1.0-linux/FSDS.sh * UNREAL_BINARY_ARGUMENTS: For FSDSsimulator, most relevant would be -windowed, -ResX, -ResY. See here all options.

For FSDSsimulator, you can do a $ ./run_airsim_image_binary.sh fsdsairsim_binary:vulkan-ubuntu18.04 fsds-v2.1.0-linux/FSDS.sh -windowed -ResX=1080 -ResY=720

To run in headless mode, use suffix -- headless at the end:

$ ./run_airsim_image_binary.sh fsds-v2.1.0-linux/FSDS.sh -- headless

You need to have a settings.json file in the current working directory from where you run ./run_airsim_image_binary.sh.