Skip to main content

AmbieGen

AmbieGen Logo

AmbieGen is a flexible and modular framework for automated scenario-based testing of autonomous robotic systems. It leverages evolutionary search algorithms to generate and evolve test scenarios that expose weaknesses and critical failures in the system under test.

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 on pymoo, 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"

Metadata

Release files for ambiegen 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ambiegen 0.0.5
File Size Uploaded Provenance Actions
ambiegen-0.0.5.tar.gz 75.9 kB Without provenance Details for ambiegen-0.0.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ambiegen 0.0.5
File Interpreter ABI Platform Actions
ambiegen-0.0.5-py3-none-any.whl Python 3 none any Details for ambiegen-0.0.5-py3-none-any.whl

Total release size: 155.3 kB

Release files / ambiegen-0.0.5.tar.gz

Download URL ambiegen-0.0.5.tar.gz
Size 75.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9b939651b36ffe6004d0a1cfb18d65866e27f17dc0f82db0de9720352613bdc6
BLAKE2b-256 checksum
How to use checksums
8168dd979d38cecf7a934e7506117b586c254b7d837d6ce07a71c9346906783c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.18

Release files / ambiegen-0.0.5-py3-none-any.whl

Download URL ambiegen-0.0.5-py3-none-any.whl
Size 79.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce5a09b7a87c152625d8d0bffbcf3b0a11a64254d46699d9461d67053ed620c2
BLAKE2b-256 checksum
How to use checksums
9bbc2a85f75835de7f946a9fc060911d6773ac819359bf19ed35ead0db63d9a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.18

Security for ambiegen 0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page