/AutonomySim

An open-source simulator for autonomous systems based on Unreal Engine

Primary LanguageC++Apache License 2.0Apache-2.0

AutonomySim logo

Ubuntu Builds MacOS Builds Windows Builds

The simulation engine for autonomous systems

Announcements

  • Hello, world! We have launched.
  • AutonomySim works out-of-the-box, but is early in development.
  • AutonomySim supports Unreal Engine version 5.03 or greater. For version 4.27, use the ue4.27 branch.
  • The master branch supports Unreal Engine version 5.2 or less.
  • ROS2 support has been added for Ubuntu 22.04 LTS.
  • Support has been dropped for ROS1, Unity, and Gazebo in order to focus on Unreal Engine 5, ROS2, and ArduPilot/PX4.
  • Windows build scripts have been ported from Command/Batch files to PowerShell.

Introduction

AutonomySim is a high-fidelity simulator for multi-agent and -domain autonomous systems, intelligent robotic systems, or embodiment as it is known in the artificial intelligence (AI) research community. AutonomySim is built on Unreal Engine and based on Microsoft AirSim. It is an open-source, cross-platform, modular simulator for AI in robotics that supports software-in-the-loop (SITL) and hardware-in-the-loop (HITL) operational modes for popular flight controllers (e.g., Pixhawk/PX4, APM/ArduPilot). Future support is planned for popular ground control station (GCS) software. AutonomySim is developed as an Unreal Engine plugin that can be dropped into any Unreal environment or downloaded from the Epic Marketplace. The goal of AutonomySim is to provide physically and visually realistic simulation with built-in libraries and application programming interfaces (APIs) for the development of artificial intelligence (AI) systems.

AutonomySim provides a foundation for building high-fidelity simulations of a wide variety of autonomous systems. After a thorough analysis of existing offerings, Nervosys created and maintains AutonomySim for its internal product development. We encourage others to do the same! Unlike every other AirSim fork, we intend to make public any and all improvements. We only ask that users contribute to this project in return. Together, we can develop the ideal simulation platform for all of our needs.

Background

AutonomySim began as an update to the open-source AirSim project, which Microsoft shutdown in July of 2022 to focus on their closed-source cloud software-as-a-service (SaaS) version. Our first task was to update AirSim to support Unreal Engine 5, which we soon discovered was in already in development at other organizations. Unfortunately, these organizations only seemed to be interested in creating closed-source cloud SaaS platforms similar to Microsoft, which had resulted in AirSim being closed. Fearing a repeat of this outcome, we wanted to take the project in a new, open, multi-domain, and multi-modal direction. We are not very interested in cloud platforms, which are simply other peoples' computers, but rather on running AutonomySim in our own secure enclaves. It is, after all, a game engine. We want to interact with it in all its glory and think you will too.

While Unreal Engine is well-suited to simulating the terrestrial and marine domains due to its classical (Newtonian) physics engine, the aerial domain is better represented by proper flight simulators. Thus, it makes little sense to limit AutonomySim to the aerial domain, given also that multi-domain simulation capabilities will be needed moving forward. We hope that we, as a community, can improve the flight dynamics to bring it to parity with dedicated flight simulators. It's a community effort.

Join us in pledging to keep the focus of AutonomySim free and open-source!

Related Projects

Supported Operating Systems

Below is a list of officially supported operating systems:

Windows

  • Windows 10
  • Windows 11
  • Windows Server (untested)

Linux

  • Ubuntu 20.04 LTS
  • Ubuntu 22.04 LTS (partial due to Vulkan; we recommend using Docker)
  • Ubuntu Server (untested)

MacOS (deprecated: x86/Intel only, ARM/Apple not supported)

  • macOS 11
  • macOS 12

Project Structure

The AutonomySim repository consists of multiple projects, the core of which is AutonomyLib. Additional projects include DroneServer, DroneShell, HelloCar, HelloDrone, MavLinkCom, Examples, and LogViewer.

Furthermore, it provides wrappers for Python, ROS2, and Unreal, as well as build scripts for Docker and Azure.

The build systems include Visual Studio and Cmake to enable cross-platform support.

Getting Started

Coming soon.

Use Cases

Coming soon.

Join the Community

Join us at our Discord channel! You can find us here.

Contributing

The GitHub Insights page gives a sense of the project activity.

Community contributions are strongly encouraged via GitHub Issues and Pull Requests.

For more information about contributing to the project, please visit the contributing page.

Roadmap

  1. Focus on Unreal Engine
  2. Add libraries and tools for artificial intelligence (AI)
  3. Add interfaces for external control via virtual machines (VMs) or network devices
  4. Change to the JSBSim flight dynamics model (FDM)
  5. Add support for ground control software based on MAVLink (e.g., qGroundControl, Mission Planner, Auterion Mission Control)
  6. Add packages for flight and automobile control
  7. Support NVIDIA IsaacSim/Gym
  8. Add AI safety research tools

Tasks

  • Complete project reorganization (restructuring, renaming, refactoring)
  • Drop support for macOS, Unity, Gazebo (focus on Unreal Engine)
  • Add support for the latest Unreal Engine version 5.3
  • Add pinned libraries, APIs, tools for artificial intelligence (AI) in robotics
    • Python 3.11
    • Modular Mojo 1.0
    • Julia 1.9.3
    • NVIDIA CUDA 11.8, CuDNN 8.6.0, TensorRT 8.5.3
    • PyTorch 2.1.0
    • Tensorflow 2.14
  • Virtual machine or network interfaces for external program control
    • Botnix OS
    • NVIDIA JetPack
  • Add support for flight dynamics model (FDM): JSBSim plugin for Unreal Engine per Project Antoinette
  • Add support for flight control software (BetaFlight, OpenPilot, LibrePilot, dRehm, Flightmare)
  • Add support for self-driving car software (openpilot, Autoware, CARLA, Vista, Aslan, OpenPodcar/ROS)
  • Add support for NVIDIA IsaacSim/Gym
  • Add AI safety tools to ensure symbolic and neural AI model correctness
  • Update automated tests

Sponsors

  • Nervosys: "Hardware and software platforms for robotic general intelligence"

Donations

AutonomySim is made possible by Nervosys, NVIDIA, Epic Games, Microsoft, the Linux Foundation and countless contributors to related projects.

We need your support to ensure the success of AutonomySim development.

License

This project is released under the Apache 2.0 License.

Related sublicenses can be found here.