Skip to main content

AmbieGen is a flexible and modular framework for automated scenario-based testing of autonomous robotic systems

Project description

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"

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

ambiegen-0.0.5.tar.gz (75.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ambiegen-0.0.5-py3-none-any.whl (79.5 kB view details)

Uploaded Python 3

File details

Details for the file ambiegen-0.0.5.tar.gz.

File metadata

  • Download URL: ambiegen-0.0.5.tar.gz
  • Upload date:
  • Size: 75.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for ambiegen-0.0.5.tar.gz
Algorithm Hash digest
SHA256 9b939651b36ffe6004d0a1cfb18d65866e27f17dc0f82db0de9720352613bdc6
MD5 b9ecbb681ac5603f21e843e1940c1e28
BLAKE2b-256 8168dd979d38cecf7a934e7506117b586c254b7d837d6ce07a71c9346906783c

See more details on using hashes here.

File details

Details for the file ambiegen-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: ambiegen-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 79.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for ambiegen-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ce5a09b7a87c152625d8d0bffbcf3b0a11a64254d46699d9461d67053ed620c2
MD5 f2a995a6c7f5031d3f4c573f4098d5cb
BLAKE2b-256 9bbc2a85f75835de7f946a9fc060911d6773ac819359bf19ed35ead0db63d9a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page