{"id":18621386,"url":"https://github.com/ethz-asl/unreal_airsim","last_synced_at":"2025-10-26T01:20:15.597Z","repository":{"id":42973833,"uuid":"246305201","full_name":"ethz-asl/unreal_airsim","owner":"ethz-asl","description":"Simulation interface to Unreal Engine 4 based on the AirSim plugin.","archived":false,"fork":false,"pushed_at":"2022-09-21T14:38:16.000Z","size":170,"stargazers_count":92,"open_issues_count":4,"forks_count":15,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-03-25T08:23:30.204Z","etag":null,"topics":["airsim","ros","simulation","unreal-engine-4"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethz-asl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-10T13:15:02.000Z","updated_at":"2025-01-30T15:12:25.000Z","dependencies_parsed_at":"2022-08-23T20:20:49.636Z","dependency_job_id":null,"html_url":"https://github.com/ethz-asl/unreal_airsim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Funreal_airsim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Funreal_airsim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Funreal_airsim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Funreal_airsim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethz-asl","download_url":"https://codeload.github.com/ethz-asl/unreal_airsim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248329618,"owners_count":21085568,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airsim","ros","simulation","unreal-engine-4"],"created_at":"2024-11-07T04:11:28.280Z","updated_at":"2025-10-26T01:20:10.577Z","avatar_url":"https://github.com/ethz-asl.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unreal_airsim\nThis repo contains simulation tools and utilities to perform realistic simulations base on [Unreal Engine](https://www.unrealengine.com/en-US/) (UE4), using microsoft [AirSim](https://github.com/microsoft/AirSim) as interface to UE4.\n\n![preview](https://user-images.githubusercontent.com/36043993/82642589-7551ed00-9c0e-11ea-99b6-fab22fcff837.png)\n \n# Table of Contents\n**Getting started:**\n* [Installation](#Instalation)\n* [Contributing](#Contributing)\n* [Examples](#Examples)\n* [Troubleshooting](#Troubleshooting)\n\n**Documentation:**\n* [Settings](docs/settings.md)\n* [Coordinate Systems](docs/coordinate_systems.md)\n* [Getting UE4 Assets](docs/download_ue4_assets.md)\n* [Tips and Tricks](docs/tips_and_tricks.md)\n\n# Installation\nThe following 3 components are necessary to utilize the full stack of unreal_airsim tools.\n\n**Unreal Engine**\n\nInstall Unreal Engine. This repository was developped and tested on UE 4.25, which is the recommended version.\nTo install UE4 on linux, you need to register with Epic Games and build it from source. \nPlease follow the detailed instructions on [their website](https://docs.unrealengine.com/en-US/Platforms/Linux/BeginnerLinuxDeveloper/SettingUpAnUnrealWorkflow/index.html) to set everything up.\nIf you plan to use *only* pre-compiled binaries as simulation worlds, this section can be omitted,\n\n**Airsim**\n\nInstall **our fork** of AirSim, the UE4 Plugin:\n```shell script\nexport AIRSIM_PATH=\u003c/absolute/path/where/to/install\u003e # Set the target destination.\ncd $AIRSIM_PATH\ngit clone git@github.com:ethz-asl/AirSim.git\ncd Airsim\n./setup.sh \n./build.sh\n```\n\n**unreal_airsim**\n\nInstall unreal_airsim, containing the simulation ROS-package and tools.\n\n* If you haven't already installed ROS, please install it according to their instructions. \nThis repo was developed on a desktop-full version of [ROS melodic](http://wiki.ros.org/melodic/Installation/Ubuntu/).\n\n* System dependencies:\n    ```shell script\n    sudo apt-get install python-wstool python-catkin-tools ros-melodic-cmake-modules\n    ```\n \n* If you haven't already set up a caktin worskpace:\n    ```shell script\n    mkdir -p ~/catkin_ws/src\n    cd ~/catkin_ws\n    catkin init\n    catkin config --extend /opt/ros/melodic\n    catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release\n    catkin config --merge-devel\n    ```\n\n* Install via [SSH](https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh):\n    ```shell script\n    cd ~/catkin_ws/src\n    git clone git@github.com:ethz-asl/unreal_airsim.git\n    wstool init . ./unreal_airsim/unreal_airsim_ssh.rosinstall\n    wstool update\n    ```\n* Tell `unreal_airsim` where you installed AirSim by running:\n    ```shell script\n    cd ~/catkin_ws/src/unreal_airsim\n    echo \"set(AIRSIM_ROOT $AIRSIM_PATH)\" \u003e ./AirsimPath.txt\n    ```\n  In case you didn't set `$AIRSIM_PATH` before, don't forget to replace the above `$AIRSIM_PATH` with the absolute path to the lcoation where AirSim is installed.\n\n* Build:\n    ```shell script\n    catkin build unreal_airsim\n    source ../devel/setup.bash\n    ```\n  \n# Contributing\nIf you are adding features to this repo please consider opening back a PR, so others can use it as well.\nIf you consider contributing, please adhere to the [google style guide](https://google.github.io/styleguide/cppguide.html) and setup our linter:\n```shell script\n# Download the linter\ncd \u003clinter_dest\u003e\ngit clone git@github.com:ethz-asl/linter.git  # SSH\ngit clone https://github.com/ethz-asl/linter.git  # HTTPS\n\n# install the linter\ncd linter\necho \". $(realpath setup_linter.sh)\" \u003e\u003e ~/.bashrc  # Or the matching file for\n                                                   # your shell.\nbash\n\n# Register this repo for the linter\nroscd unreal_airsim\ninit_linter_git_hooks\n```\n\n# Examples\nThis demo briefly walks through the steps on how to use the online_simulator.\nThe simulation is setup from a single configuration file, a minimal example is given in `cfg/demo.yaml`.\nThe settings required for AirSim to produce the requested simulation must first be generated by running\n```shell script\nroslaunch unreal_airsim parse_config_to_airsim.launch \n```\nIt is strongly recommended to produce AirSim's Settings.json using this script and not changing it manually.\nAdditional AirSim Settings can be set in the yaml-config using *CamelCase* params with identical names.\n\nIn this demo, start the `Blocks` environment provided by AirSim, and run the game in the UE4 Editor (select 'Active Play Mode' = 'Selected Viewport', then 'Play').\nThen run \n```shell script\nroslaunch unreal_airsim demo.launch \n```\nto start the simulation and display the sensor readings in RVIZ.\n\n![u_airsim_4](https://user-images.githubusercontent.com/36043993/79876617-90e98e00-83eb-11ea-8edb-f11156a716d1.png)\n\nExternal view of the UE4 game (left), camera image (center) and lidar readings (right) obtained from the simulator.\n\n# Troubleshooting\n\n## Installation\n* **Include error 'xlocale.h\" not found:**\n\n    xlocale was removed/renamed from glibc somewhen, can fix via symlink:\n    ```shell script\n     ln -s /usr/include/locale.h /usr/include/xlocale.h\n    ```\n  \n## Running Unreal Engine\n* **The UE Editor freezes when 'Compiling Shaders':**\n\n    According to [this thread](https://answers.unrealengine.com/questions/936174/view.html) this may happen when using Vulcan with less than 2GB of graphics card memory. \n    Can be adjusted by switching back to OpenGL (uncomment `TargetedRHIs=GLSL_430` in `Engine/Config/BaseEngine.ini`). \n\n## Starting the simulation\n* **Error at startup: bind(): address already in use:**\n\n    Airsim connects to UE4 via a TCP port. If multiple instances of Airsim (i.e. the unreal game) are running, the selected port will already be taken.\n    Note that the editor itself already loads the Airsim plugin, thus closing all instances of UE4 (editor or game) and starting a single game/editor usually fixes this.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethz-asl%2Funreal_airsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethz-asl%2Funreal_airsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethz-asl%2Funreal_airsim/lists"}