Author: Zengjie Zhang ([email protected])
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)
Python Environment
- Python version: test passed on
python=3.11
- Recommended: IDE (VS code or Pycharm) and Conda
- Required Packages:
numpy
,treelib
,matplotlib
,scipy
,pybullet
.
C/C++ Building Tool
- Microsoft Visual C++ (14.0 or greater). Get it with Microsoft C++ Build Tools. In the installer, select the
C++ build tools
workload and ensure that the following components are checked:- MSVC v142 - VS 2019 C++ x64/x86 build tools (Latest)
- Windows 10 SDK (Latest)
- C++ CMake tools for Windows
Required Libraries
gurobipy
solver (license required, see How to Get a Gurobi License)Python control
toolbox (see Documentation)
-
Install conda following this instruction;
-
Open the conda shell, and create an independent project environment;
conda create --name tasmas-symaware python=3.11
- In the same shell, activate the created environment
conda activate tasmas-symaware
- In the same shell, within the
tasmas
environment, install the dependencies one by one
conda install -c anaconda numpy
conda install -c conda-forge treelib
conda install -c conda-forge matplotlib
conda install -c anaconda scipy
- In the same shell, within the
tasmas
environment, install the libraries
python -m pip install gurobipy
pip install control
pip install pybullet
- Last but not least, 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.
- Clone this repository:
git clone [email protected]:zhang-zengjie/tasmas-symaware-base.git
- Clone the tasmas repository and the
eicsymaware
framework
cd tasmas-symaware-base
git clone [email protected]:zhang-zengjie/tasmas.git
-
Download the EICSymAware-base zip file. Unzip the file and place the folder
eicsymaware-base/src/symaware
under thetasmas-symaware-base
directory. -
Download the EICSymAware-pybullet zip file. Unzip the file and place the folder
eicsymaware-pybullet/src/symaware/simulators
under thetasmas-symaware-base/symaware
directory.
- Run the main script
src/main.py
; - Watch the terminal for runtime information;
- The pybullet simulation environment will prompt up automatically.
This project is with a BSD-3 license, refer to LICENSE
for details.