πŸ€– SymAware: Agent Simulation Base Model πŸš€οƒ

MIT License Python Version Code style: black CI/CD Test coverage symaware.base Documentation

Introduction

Welcome to SymAware, the Symbolic Logic Framework for Situational Awareness in Mixed Autonomy, a cutting-edge project funded by the European Union. Imagine an environment where autonomous agents - be it robots, drones, or cars - collaborate seamlessly with humans to complete complex, dynamically evolving tasks. SymAware is designed to equip these agents with the crucial capability of obtaining situational awareness and enhancing their risk perception abilities. This base model is pivotal for creating sustainable, real-world autonomy in mixed human-agent environments.

Overview

This repository contains code of the symaware.base package, the foundation used to develop and run simulations for multi-agent systems with different dynamical models using the framework developed for the SymAware project. This repository is a work in progress.

Structure

The repository is structured as follows:

symaware-base/
β”œβ”€β”€ .gitlab-ci.yml      # CI/CD configuration
β”œβ”€β”€ Dockerfile          # Docker configuration
β”œβ”€β”€ pyproject.toml      # Python package configuration
β”œβ”€β”€ requirements.txt    # Python package requirements
β”œβ”€β”€ tox.ini             # Dev environment configuration
β”œβ”€β”€ README.md           # Project documentation
β”œβ”€β”€ docs/               # Project documentation
β”œβ”€β”€ examples/           # Example scripts
β”œβ”€β”€ src/
β”‚   └── symaware/       # Namespace package (symaware)
β”‚       └── base/       # Base package (symaware.base)
└── tests/              # Test suite

Installation

The package can either be installed from source or using the python package manager pip.

From Source

clone the repository and run the following command in the root directory:

# Clone the repository
git clone --branch base git-rts@gitlab.mpi-sws.org:sadegh/eicsymaware.git
# Change directory
cd eicsymaware
# Install the package (optionally use a virtual environment)
pip install . .[simulators]

With pip

pip install symaware-base --index-url https://gitlab.mpi-sws.org/api/v4/projects/2668/packages/pypi/simple

Additional Requirements

Based on what the user wants to do, additional requirements may require installation alongside the package.

From Source

# Run tests
pip install .[test]
# Lint the code
pip install .[lint]
# Run the examples with the provided simulators
pip install .[simulators]
# Install all optional dependencies
pip install .[all]

With pip

# Run the examples with the provided simulators
pip install symaware-base[simulators] --index-url https://gitlab.mpi-sws.org/api/v4/projects/2668/packages/pypi/simple

Examples

The examples directory contains a bunch of scripts that demonstrate some common use-cases.

There are two ways of using this package:

  • Including it in your own project as a library and importing the classes and functions you need (main)

  • Running the main script of the package providing your own configuration script (configure)

In both cases, the symaware.base package needs to be installed along with the required simulators.

# Run the examples (main)
python3 examples/simple_main.py
# Run the examples (configure)
python3 -m symaware.base examples/simple_configure.py

Case studies

Some of the case studies implemented using the SymAware framework with the related publications. Feel free to add yours here.

Risk-Aware Dynamic Task Allocation

This paper addresses the control synthesis of heterogeneous stochastic linear multi-agent systems with real-time allocation of signal temporal logic (STL) specifications. Based on previous work, we decompose specifications into sub-specifications on the individual agent level. To leverage the efficiency of task allocation, a heuristic filter evaluates potential task allocation based on STL robustness, and subsequently, an auctioning algorithm determines the definitive allocation of specifications. Finally, a control strategy is synthesized for each agent-specification pair using tube-based model predictive control (MPC), ensuring provable probabilistic satisfaction. We demonstrate the efficacy of the proposed methods using a multi-shuttle scenario that highlights a promising extension to automated driving applications like vehicle routing.

Repository

@misc{engelaar2024riskawarerealtimetaskallocation,
  title         = {Risk-Aware Real-Time Task Allocation for Stochastic Multi-Agent Systems under STL Specifications},
  author        = {Maico H. W. Engelaar and Zengjie Zhang and Eleftherios E. Vlahakis and Dimos V. Dimarogonas and Mircea Lazar and Sofie Haesaert},
  year          = {2024},
  eprint        = {2404.02111},
  archiveprefix = {arXiv},
  primaryclass  = {eess.SY},
  url           = {https://arxiv.org/abs/2404.02111}
}

Multi-Agents Spatio-Temporal Goals

We introduce a novel distributed sampled-data control method tailored for heterogeneous multi-agent systems under a global spatio-temporal task with acyclic dependencies. Specifically, we consider the global task as a conjunction of independent and collaborative tasks, defined over the absolute and relative states of agent pairs. Task dependencies in this form are then represented by a task graph, which we assume to be acyclic. From the given task graph, we provide an algorithmic approach to define a distributed sampled-data controller prioritizing the fulfilment of collaborative tasks as the primary objective, while fulfilling independent tasks unless they conflict with collaborative ones. Moreover, communication maintenance among collaborating agents is seamlessly enforced within the proposed control framework. A numerical simulation is provided to showcase the potential of our control framework.

Repository

@misc{marchesini2024decentralizedcontrolmultiagentsystems,
  title         = {Decentralized Control of Multi-Agent Systems Under Acyclic Spatio-Temporal Task Dependencies},
  author        = {Gregorio Marchesini and Liu Siyuan and Lars Lindemann and Dimos V. Dimarogonas},
  year          = {2024},
  eprint        = {2409.05106},
  archiveprefix = {arXiv},
  primaryclass  = {eess.SY},
  url           = {https://arxiv.org/abs/2409.05106}
}

Intent-Aware Collision Avoidance

This paper presents the use of robust model predictive control for the design of an intent-aware collision avoidance system for multi-agent aircraft engaged in horizontal maneuvering scenarios. We assume that information from other agents is accessible in the form of waypoints or destinations. Consequently, we consider that other agents follow their optimal Dubin’s path–a trajectory that connects their current state to their intended state–while accounting for potential uncertainties. We propose using scenario tree model predictive control as a robust approach that offers computational efficiency. We demonstrate that the proposed method can easily integrate intent information and offer a robust scheme that handles different uncertainties. The method is illustrated through simulation results.

Repository

@misc{kordabad2024robustmodelpredictivecontrol,
  title         = {Robust Model Predictive Control for Aircraft Intent-Aware Collision Avoidance},
  author        = {Arash Bahari Kordabad and Andrea Da Col and Arabinda Ghosh and Sybert Stroeve and Sadegh Soudjani},
  year          = {2024},
  eprint        = {2408.06999},
  archiveprefix = {arXiv},
  primaryclass  = {eess.SY},
  url           = {https://arxiv.org/abs/2408.06999}
}

Documentation

The documentation for this package is available here.

Contacts