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.3.tar.gz (76.3 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.3-py3-none-any.whl (79.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ambiegen-0.0.3.tar.gz
  • Upload date:
  • Size: 76.3 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.3.tar.gz
Algorithm Hash digest
SHA256 2f241af0d28bb040a4455eb2057d8a8f43e2dd7bcd5a9f5ae73b4ff1bbfee854
MD5 51760e17d33408887784fb287ce8f310
BLAKE2b-256 f666c5d54c591d0151c8457494dadbab619a6bc6ffaa1f07bd9b01bc6ac0772e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ambiegen-0.0.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2298e2d1b0b890594c278c7f4f748f5800ca1788d8c15dbf11c55a07f5221871
MD5 600253f64e972c48fa14c5f634bd0e4d
BLAKE2b-256 d95914493b7dd2c33f55ad40060afd402e00776ba38237d00b84b156c407b59e

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