All Projects → ethz-asl → unreal_airsim

ethz-asl / unreal_airsim

Licence: other
Simulation interface to Unreal Engine 4 based on the AirSim plugin.

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to unreal airsim

a-minimalist-guide
Walkthroughs for DSL, AirSim, the Vector Institute, and more
Stars: ✭ 37 (-41.27%)
Mutual labels:  unreal-engine-4, airsim
Formula-Student-Driverless-Simulator
A virtual world where Autonomous Systems from different Formula Student teams can compete in time-trial challenges
Stars: ✭ 144 (+128.57%)
Mutual labels:  unreal-engine-4, airsim
Unreal Polygonal Map Gen
An Unreal Engine 4 implementation of the Polygonal Map Generator for generating islands found at http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
Stars: ✭ 229 (+263.49%)
Mutual labels:  unreal-engine-4
UnrealAssets
Free Assets for Unreal Engine
Stars: ✭ 116 (+84.13%)
Mutual labels:  unreal-engine-4
Nano
A tiny template for tiny Unreal games.
Stars: ✭ 117 (+85.71%)
Mutual labels:  unreal-engine-4
ue4-uitween
Unreal 4 UMG UI tweening plugin in C++
Stars: ✭ 178 (+182.54%)
Mutual labels:  unreal-engine-4
deploying-unreal-engine-pixel-streaming-server-on-ec2
Repo contains code and documentation that allows you to deploy Windows-based Unreal Engine 4 Pixel Streaming builds to EC2.
Stars: ✭ 106 (+68.25%)
Mutual labels:  unreal-engine-4
Jenkins Ue4
Automated Unreal Engine 4 Project Builds
Stars: ✭ 206 (+226.98%)
Mutual labels:  unreal-engine-4
DataConfig
Unreal Engine JSON/MsgPack serialization framework
Stars: ✭ 81 (+28.57%)
Mutual labels:  unreal-engine-4
FairyGUI-unreal
A flexible UI framework for Unreal Engine
Stars: ✭ 180 (+185.71%)
Mutual labels:  unreal-engine-4
ue4launcher
A project launcher utility for Unreal Engine 4
Stars: ✭ 52 (-17.46%)
Mutual labels:  unreal-engine-4
gitlabci-ue4
No description or website provided.
Stars: ✭ 32 (-49.21%)
Mutual labels:  unreal-engine-4
UEImgui
Use imgui in unreal for customize editor
Stars: ✭ 75 (+19.05%)
Mutual labels:  unreal-engine-4
Flopnite Ue4
A remake of the popular battle royale game, Fortnite, made in Unreal Engine 4 and integrated with Amazon GameLift
Stars: ✭ 250 (+296.83%)
Mutual labels:  unreal-engine-4
EdUtilExamples
A collection of example use cases for editor utility widgets in Unreal Engine 4.22
Stars: ✭ 26 (-58.73%)
Mutual labels:  unreal-engine-4
Joymachine Public
All sorts of random publicly-available information, assets, scripts, and more as we (Joy Machine) work on our projects.
Stars: ✭ 210 (+233.33%)
Mutual labels:  unreal-engine-4
DiscordGameSDK
Unofficial Unreal Engine 4 plugin for the Discord Game SDK
Stars: ✭ 20 (-68.25%)
Mutual labels:  unreal-engine-4
PsData
Flexible data model plugin for Unreal Engine 4
Stars: ✭ 34 (-46.03%)
Mutual labels:  unreal-engine-4
RuntimeBPs
This project allows for visual scripting in UE4 similar to Blueprints, but at runtime. The way this is set up does not make use of any UE4 boilerplate and could with a few adjustments be used in another engine.
Stars: ✭ 77 (+22.22%)
Mutual labels:  unreal-engine-4
zed-unreal-examples
Stereolabs ZED - UE4 Examples
Stars: ✭ 75 (+19.05%)
Mutual labels:  unreal-engine-4

unreal_airsim

This repo contains simulation tools and utilities to perform realistic simulations base on Unreal Engine (UE4), using microsoft AirSim as interface to UE4.

preview

Table of Contents

Getting started:

Documentation:

Installation

The following 3 components are necessary to utilize the full stack of unreal_airsim tools.

Unreal Engine

Install Unreal Engine. This repository was developped and tested on UE 4.25, which is the recommended version. To install UE4 on linux, you need to register with Epic Games and build it from source. Please follow the detailed instructions on their website to set everything up. If you plan to use only pre-compiled binaries as simulation worlds, this section can be omitted,

Airsim

Install our fork of AirSim, the UE4 Plugin:

export AIRSIM_PATH=</absolute/path/where/to/install> # Set the target destination.
cd $AIRSIM_PATH
git clone [email protected]:ethz-asl/AirSim.git
cd Airsim
./setup.sh 
./build.sh

unreal_airsim

Install unreal_airsim, containing the simulation ROS-package and tools.

  • If you haven't already installed ROS, please install it according to their instructions. This repo was developed on a desktop-full version of ROS melodic.

  • System dependencies:

    sudo apt-get install python-wstool python-catkin-tools ros-melodic-cmake-modules
  • If you haven't already set up a caktin worskpace:

    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws
    catkin init
    catkin config --extend /opt/ros/melodic
    catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
    catkin config --merge-devel
  • Install via SSH:

    cd ~/catkin_ws/src
    git clone [email protected]:ethz-asl/unreal_airsim.git
    wstool init . ./unreal_airsim/unreal_airsim_ssh.rosinstall
    wstool update
  • Tell unreal_airsim where you installed AirSim by running:

    cd ~/catkin_ws/src/unreal_airsim
    echo "set(AIRSIM_ROOT $AIRSIM_PATH)" > ./AirsimPath.txt

    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.

  • Build:

    catkin build unreal_airsim
    source ../devel/setup.bash

Contributing

If you are adding features to this repo please consider opening back a PR, so others can use it as well. If you consider contributing, please adhere to the google style guide and setup our linter:

# Download the linter
cd <linter_dest>
git clone [email protected]:ethz-asl/linter.git  # SSH
git clone https://github.com/ethz-asl/linter.git  # HTTPS

# install the linter
cd linter
echo ". $(realpath setup_linter.sh)" >> ~/.bashrc  # Or the matching file for
                                                   # your shell.
bash

# Register this repo for the linter
roscd unreal_airsim
init_linter_git_hooks

Examples

This demo briefly walks through the steps on how to use the online_simulator. The simulation is setup from a single configuration file, a minimal example is given in cfg/demo.yaml. The settings required for AirSim to produce the requested simulation must first be generated by running

roslaunch unreal_airsim parse_config_to_airsim.launch 

It is strongly recommended to produce AirSim's Settings.json using this script and not changing it manually. Additional AirSim Settings can be set in the yaml-config using CamelCase params with identical names.

In 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'). Then run

roslaunch unreal_airsim demo.launch 

to start the simulation and display the sensor readings in RVIZ.

u_airsim_4

External view of the UE4 game (left), camera image (center) and lidar readings (right) obtained from the simulator.

Troubleshooting

Installation

  • Include error 'xlocale.h" not found:

    xlocale was removed/renamed from glibc somewhen, can fix via symlink:

     ln -s /usr/include/locale.h /usr/include/xlocale.h

Running Unreal Engine

  • The UE Editor freezes when 'Compiling Shaders':

    According to this thread this may happen when using Vulcan with less than 2GB of graphics card memory. Can be adjusted by switching back to OpenGL (uncomment TargetedRHIs=GLSL_430 in Engine/Config/BaseEngine.ini).

Starting the simulation

  • Error at startup: bind(): address already in use:

    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. 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].