AirControl is an Open Source, Modular, Cross-Platform, and Extensible Flight Simulator For Deep Learning Research.
Project description
Welcome to AirControl
AirControl is an Open Source, Modular, Cross-Platform, and Extensible Flight Simulator For Deep Learning Research. AirControl offers a realistic simulation experience with a variety of airplanes. The AirControl is built on Unity Game engine. Following are the salient features of the AirControl:
- Built with C#, it has Python API to control it from your favorite Deep learning Framework.
- Complete source code is open on Github.
- Aircontrol takes full advantage of object-oriented programming. It is developed fully modular from day one. You can easily introduce new features such as vertical takeoff. You can bring your own alien plane to AirCotrol.
- AirControl is truly cross-platform, can be compiled on Linux, macOS, and Windows. Binary will be released for all the platforms.
- The AirControl uses Nvidia Physx for the best possible Newtonian physics simulation.
- AirControl allows users to take advantage of aerodynamics effects such as Ground effect.
- All the control surfaces (Throttle, Rudder, Ailerons, and Flaps) accept normalized input between -1 and 1. This makes AirControl even more friendly with AI.
System Requirement
It depends on how big your Unity environment is. The environment which comes with the AirControl binary releases is the basic one and tested with the following config:
- Operating System : Ubuntu, Windows, Mac
- CPU: Intel Core i7
- GPU: Nvidia 1070 or Higher
- RAM: 16 GB
AirControl may work with lower than the specified requirements, but it's not tested.
You can run AirControl in server-client mode with two different machines or both in a single machine.
Control Inputs
- To change the keyboard layout mapping manual, refer to : keyboard-layout-editor
- Export the Layout as PNG and replace the file
AirControl/docs/images/keyboard-layout.png
- Submit a pull request
Getting started
Version number (MAJOR.MINOR.PATCH) follows Semantic Versioning 2.0.0. Version numbers change as follows:
- MAJOR version when making incompatible API changes
- MINOR version when adding API in a backward-compatible manner
- PATCH version when making backward-compatible bug fixes Note that semantic versioning also applies to the Pypi release, Git release, and Snap releases.
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcccc', 'edgeLabelBackground':'#ffffee', 'tertiaryColor': '#fff0f0'}}}%%
graph TD
A[Skills] --> C[Not Familier with Unity Engine]
C --> C_1[Use Binaries]
C_1 --> D[Windows]
C_1 --> E[Ubuntu]
C_1 --> F[Mac]
A[Skills] --> B[Familier with Unity Engine]
B --> H[Wants to Add/Edit Airplane/Assets etc..]
H --> I[yes]
H --> J[No]
I --> K[Build from source]
J --> C_1
- Windows - Tested
- Download Binaries - https://github.com/snlpatel001213/AirControl/releases
- Build it from source
- Linux - Tested
- Download Binaries - https://github.com/snlpatel001213/AirControl/releases
- Build it from source
- macOS - Not Tested [
Need Contributors
]- Download Binaries - https://github.com/snlpatel001213/AirControl/releases
- Build it from source
Python Package Installation
cd Python
Python3 setup.py install
OR
Use relative imports
Pypi Release-Alpha Not Tested
: https://pypi.org/project/aircontrol-python/
pip install airctrl
- Install :
snap install aircontrol
- Invoke:
aircontrol.AirControl
- Fly manually or use python API.
Documentation
- AirControl Documentation: https://aircontrol.readthedocs.io/
- C#/Python API Documentation - https://snlpatel001213.github.io/AirControl/html/index.html
Client examples
Sr. No. | Client Example | Details |
---|---|---|
1 | Primitive API | Simple Client to interact with the server. It does not require the AirControl Pypi package. Just for unit test, not for long runs |
2 | Primitive API - 2 | Simple Client to interact with server. More detailed than the previous one. End to end flight loop is demonstrated. It does not require AirControl Pypi package. Just for unit test, not for long runs |
3 | Lidar Controls | Demonstrate how to control lidar from the python client. |
4 | Camera Controls | Demonstrate how to control Camera from the python client. It allows switching the camera. It allows capturing Depth, Semantic segmentation, Object segmentation, Optical flow variant of the scene. |
4 | Time of Day Controls | Allows controlling the time of day and light conditions. It allows controlling sun position based on Longitude, Latitude, Hour, and Minutes. |
5 | UI and Audio Controls | Allows controlling visibility of Airplane control on UI and Airplane Audio. |
Future Release
Refer to the Project page for the future release, features, and bug tracking : https://github.com/snlpatel001213/AirControl/projects/1
Tools and Technology
Contribute
We love your input! We want to make contributing to AirControl as easy and transparent as possible. Please see our Contributing Guide CONTRIBUTING.md
to get started. Thank you to all our contributors!
Current Contributors
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file airctrl-1.3.3.tar.gz
.
File metadata
- Download URL: airctrl-1.3.3.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fe8346975b3117b5a43580241c9527e502299049b3842a5e240056d3b743f69 |
|
MD5 | 0364ad59e6bdb9494740cc6b2077c1f4 |
|
BLAKE2b-256 | 9c537d64d76ad57095d2c137b7619813be2d92c279bdc4fe66446791fd2798bf |