π€ SymAware: Agent Simulation Base Model πο
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.
@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.
@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.
@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.