Author: Zengjie Zhang (z.zhang3@tue.nl)
This project demonstrates the risk-aware allocation of real-time STL specifications for stochastic multi-agent systems, with restricted risk probabilities.
This library is associated with the Arxiv article in https://arxiv.org/abs/2404.02111.
The probstlpy
library in this project is modified from the stlpy toolbox.
This library considers a multi-bus routing scenario in a tourism attraction point to validate the effectiveness of the proposed method. The scenario contains four bus terminals denoted as T-X, where X
Operating system
- Windows (compatible in general, succeed on 11)
- Linux (compatible in general, succeed on 20.04)
- MacOS (compatible in general, succeed on 13.4.1)
Python Environment
- Python version: test passed on
python=3.11
- Required Packages:
matplotlib==3.9.0
numpy==1.26.4
scipy==1.14.0
treelib==1.7.0
control==0.10.0
(see Documentation)gurobipy==11.0.2
(license required, see How to Get a Gurobi License)
-
Install Python environment;
pip install .
-
Activate the
gurobi
license (See How To). Note that this project is compatible withgurobi
Released version11.0.1
. Keep yourgurobi
updated in case of incompatibility. -
Running Instructions
- Run the main script
example/main.py
; - Watch the terminal for runtime information;
- The figures will show up at the end of running; They are also automatically saved in the root directory;
- The figures may impede each other; Drag the figures for a better view;
- Check out the logging file
INFO.log
for the runtime information.
- Run the main script
Feel free to try out the code with different parameter settings in the src/utils/config.py
file.
- Change the coordinates of the regions in this file to construct a different map;
- Change the standard deviation variable
Sigma
for different noise levels; - Change the initial position of the robot in
x0
; - Customize the lists of runtime specifications
specs
and their instants intimes
for various tasks.
This project is with a BSD-3 license, refer to LICENSE
for details.