AmbieGen is a flexible and modular framework for automated scenario-based testing of autonomous robotic systems
Project description
AmbieGen
Built on top of the pymoo multi-objective optimization library, AmbieGen provides a foundation for customizable and extensible test generation workflows, enabling researchers and developers to plug in their own test generators, search operators, and fitness functions with minimal effort.
🔍 Key Advantages
-
Modular Architecture
Every component—from the system under test to the test case generator and mutation operators—is fully modular, making it easy to integrate new algorithms or extend existing ones. -
Flexible Configuration
Users can configure their own test generators, mutation and crossover strategies, evaluation metrics, and search techniques, tailoring the framework to their specific application domain. -
Based on Pymoo
The framework is built onpymoo, a widely-used library for evolutionary optimization, enabling fast integration of multi-objective and advanced search strategies.
🚀 Features
-
Behavior-based scenario generation
Generate complex scenarios by composing high-level agent behaviors (e.g., lane changing, obstacle avoidance, adversarial behavior). -
Evaluation of autonomous decision-making
Automatically identify edge cases and failure-inducing situations by analyzing agent behavior across test runs. -
Support for multiple domains
Test case generation currently supports:- Autonomous mobile robots
- Lane Keeping Assist Systems (LKAS) in autonomous vehicles
-
Custom Search Operators
Easily implement your own mutation, crossover, or sampling strategies to guide the search more effectively. -
Extensible Evaluation
Plug in your own scoring and fitness evaluation logic, such as safety violations, control errors, or collision metrics.
📖 Citation
If you use AmbieGen in your research, please cite the following paper:
@article{HUMENIUK2023102990,
title = {AmbieGen: A search-based framework for autonomous systems testingImage 1},
journal = {Science of Computer Programming},
volume = {230},
pages = {102990},
year = {2023},
issn = {0167-6423},
doi = {https://doi.org/10.1016/j.scico.2023.102990},
url = {https://www.sciencedirect.com/science/article/pii/S0167642323000722},
author = {Dmytro Humeniuk and Foutse Khomh and Giuliano Antoniol},
keywords = {Evolutionary search, Autonomous systems, Self driving cars, Autonomous robots, Neural network testing},
}
Getting Started
📚 Documentation Full documentation is available at: https://ambiegen.readthedocs.io/en/latest/
Installation
Clone the repository and install dependencies:
git clone git@github.com:swat-lab-optimization/ambiegen.git
cd ambiegen
conda create -n ambiegen python=3.10
conda activate ambiegen
pip install -r requirements.txt
Usage
Generating Tests
Run the following to command to generate tests based on the default configuration:
python generate_tests.py --module-name "ambiegen.testers.uav_tester" --class-name "UAVTester" --runs 3 --config-path "tester_config.yaml"
Comparing Outputs
Use the compare.py script to compare results:
python compare.py --stats_path "path-to-alg1-stats" "path-to-alg2-stats" --stats_names "alg1" "alg2" --plot_name "my_experiment"
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
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 ambiegen-0.0.2.tar.gz.
File metadata
- Download URL: ambiegen-0.0.2.tar.gz
- Upload date:
- Size: 75.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be6d7a80a238a02b4bd29ae5ae0d41acbfffedbd28d8cd9ed63e1117bce2479c
|
|
| MD5 |
7a12f265551ffe96b20278c5a7589faa
|
|
| BLAKE2b-256 |
5d140afee4ef36af86deaf0d09ba9125d2ffbfac0a38f7607a54bd442b43035c
|
File details
Details for the file ambiegen-0.0.2-py3-none-any.whl.
File metadata
- Download URL: ambiegen-0.0.2-py3-none-any.whl
- Upload date:
- Size: 77.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cdd1765c3a3a227610e73c4777199e6d137fc3e20179a155336c5c272bd4a38
|
|
| MD5 |
2abddb84b9af027f72689d9d5b8b4140
|
|
| BLAKE2b-256 |
3c0b4d2a380f0f79407e40ee7125527064cb5b8b7e3309ea09778e1de6b3e26b
|