A Python implementation of ACAS XA and ACAS XU for Flightgear.
Project description
pyCASX – A Python implementation of ACAS Xa and ACAS Xu for Flightgear
Implementation of ACAS Xa and ACAS Xu with neural networks for FlightGear.
Description
Implementation of Horizontal- and VerticalCAS using neural networks for FlightGear. The HCAS and VCAS implementations are based upon Stanford Intelligent Systems Laboratory's HorizontalCAS and VerticalCAS.
Installation
Please read the following sections carefully. Please also see the documentation at https://pycasx.readthedocs.io.
Requirements
- Python 3.11 or higher (3.14 is currently not supported)
- FlightGear 2020.3.18 or higher
Users
If you only want to use pycasx as a command-line tool and not develop it, you can install it via uv or uvx.
However, uvx is recommended, as it will install the package in an isolated environment and thus not interfere with other packages.
Installation via uvx
Install pycasx via
uvx install git+https://https://github.com/DLR-KI/pycasx.git
Installation via uv
This is not recommended! Proceed at your own risk! For just using the package, uvx is recommended
First, clone the repository
git clone https://https://github.com/DLR-KI/pycasx.git
Optional: create yourself a virtual environment and activate it.
uv venv
source .venv/bin/activate
Now, install the package via
uv sync
for basic features.
Development
First, clone the repository into a directory of your choice:
git clone https://https://github.com/DLR-KI/pycasx.git
Then, it is recommended to create a virtual environment for the software:
uv venv
source .venv/bin/activate
Afterwards, install the software and its dependencies:
uv sync
VS Code
For VS Code, we provide a set of recommended extensions. Please install them to smooth the development process. You'll find them in your extensions tab under the Workspace Recommendations section.
Usage
This package provides a command-line interface with the pycasx command.
General information is available via pycasx [-h|--help] and the current version via pycasx [-v|--version].
All other commands are explained in the following.
Launching ACAS X
You can launch FlightGear via
pycasx launch
Once FlightGear is up and running, just run:
pycasx acasx
This will start the ACAS X with the default settings.
Other options
onnx or make_onnx
pycasx onnx
Convert the provided .nnet files into .onnx files.
This is required if one wants to use the ONNX or PyTorch backend.
BE WARNED: BOTH THE ONNX AND PYTORCH BACKEND ARE EXPERIMENTAL AND NOT FULLY TESTED. THE RESULTING ADVISORIES ARE NOT VALID!
launch
pycasx launch
Launch FlightGear with options defined in pycasx/cli/launch.py.
acasx
pycasx acasx
Runs the ACAS X with the default settings. This includes the API backend to fetch the advisories via REST calls. Please see the official documentation for more information.
Overwriting parameters
Every launch script has a set of default parameters. Those are handled via Hydra. Accordingly, overwriting parameters can be achieved by following the Hydra documentation.
Nevertheless, overwriting (or adding) new default properties for pycasx launch is not as straight forward as one might try.
The correct syntax to overwrite (or add) a default property is
pycasx launch ++prop='{/autopilot/settings/target-speed-kt: 123456789}'
Citation
If you found our work useful, please cite our paper:
@InProceedings{Christensen2024,
author = {Christensen, Johann Maximilian and Anilkumar Girija, Akshay and Stefani, Thomas and Durak, Umut and Hoemann, Elena and K{\"{o}}ster, Frank and Kr{\"{u}}ger, Thomas and Hallerbach, Sven},
booktitle = {36th {IEEE} International Conference on Tools with Artificial Intelligence ({ICTAI})},
date = {2024-10},
title = {Advancing the AI-Based Realization of ACAS X Towards Real-World Application},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pycasx-1.0.1.tar.gz.
File metadata
- Download URL: pycasx-1.0.1.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38e7a46d07e07225a03de3e36cba64cb5a16e9247b881269f30e66f9d3f2244f
|
|
| MD5 |
ee5e008160c0b988af87c5de3aa9a1a8
|
|
| BLAKE2b-256 |
4c2280bbef3be10b20a81df2212f0e50d8d3b9bbb5fa2d67abe8c5142c3cb2e9
|
Provenance
The following attestation bundles were made for pycasx-1.0.1.tar.gz:
Publisher:
publish.yml on DLR-KI/pycasx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycasx-1.0.1.tar.gz -
Subject digest:
38e7a46d07e07225a03de3e36cba64cb5a16e9247b881269f30e66f9d3f2244f - Sigstore transparency entry: 1524410502
- Sigstore integration time:
-
Permalink:
DLR-KI/pycasx@39b1b0810a1b3b05224e56ac4281aae3dfbcf95f -
Branch / Tag:
refs/tags/1.0.1 - Owner: https://github.com/DLR-KI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39b1b0810a1b3b05224e56ac4281aae3dfbcf95f -
Trigger Event:
release
-
Statement type:
File details
Details for the file pycasx-1.0.1-py3-none-any.whl.
File metadata
- Download URL: pycasx-1.0.1-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45c3fa51142a3a734becf5e825a14b1d3be45da76bf42af16cf59766afa69475
|
|
| MD5 |
603ae298e8504932e75b6749636f3647
|
|
| BLAKE2b-256 |
bea0876ca96549ce7f51ae98f96ae8d7e539eb17c93afa44d5f2bc3f4a7a129d
|
Provenance
The following attestation bundles were made for pycasx-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on DLR-KI/pycasx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycasx-1.0.1-py3-none-any.whl -
Subject digest:
45c3fa51142a3a734becf5e825a14b1d3be45da76bf42af16cf59766afa69475 - Sigstore transparency entry: 1524410547
- Sigstore integration time:
-
Permalink:
DLR-KI/pycasx@39b1b0810a1b3b05224e56ac4281aae3dfbcf95f -
Branch / Tag:
refs/tags/1.0.1 - Owner: https://github.com/DLR-KI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39b1b0810a1b3b05224e56ac4281aae3dfbcf95f -
Trigger Event:
release
-
Statement type: