Datasets
Standard Dataset
Intention-Aware Control Based on Belief-Space Specifications and Stochastic Expansion
- Citation Author(s):
- Submitted by:
- Zengjie Zhang
- Last updated:
- Sun, 08/11/2024 - 14:18
- DOI:
- 10.21227/d5yc-pn12
- Data Format:
- License:
- Categories:
- Keywords:
Abstract
This paper develops a correct-by-design controller for an autonomous vehicle interacting with opponent vehicles with unknown intentions. We define an intention-aware control problem incorporating epistemic uncertainties of the opponent vehicles and model their intentions as discrete-valued random variables. Then, we focus on a control objective specified as belief-space temporal logic specifications. From this stochastic control problem, we derive a sound deterministic control problem using stochastic expansion and solve it using shrinking-horizon model predictive control. The solved intention-aware controller allows a vehicle to adjust its behaviors according to its opponents' intentions. It ensures provable safety by restricting the probabilistic risk under a desired level. We show with experimental studies that the proposed method ensures strict limitation of risk probabilities, validating its efficacy in autonomous driving cases. This work provides a novel solution for the risk-aware control of interactive vehicles with formal safety guarantees.
Intention-Aware Control Facilitated by Polynomial Chaos Expansion
The benchmark of using polynomial chaos expansion (PCE) to solve intention-aware control of autonomous vehicles. Also, refer to the latest version in our GitHub repo.
Requirements
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
3.11
- Required Packages:
numpy
,numpoly
,scipy
,treelib
,matplotlib
,importlib-metadata
.
Required Libraries
gurobipy
solver (license required, see How to Get a Gurobi License)stlpy
toolbox (see Documentation or GitHub repository)chaospy
toolbox (see Documentation or GitHub repository)
Quick Installation
-
Install conda following this instruction;
-
Open the conda shell, and create an independent project environment;
conda create --name intentaware python=3.11
-
In the same shell, activate the created environment
conda activate intentaware
-
In the same shell, within the
intentaware
environment, install the dependencies one by oneconda install -c anaconda numpy conda install -c conda-forge numpoly conda install -c anaconda scipy conda install -c conda-forge treelib conda install -c conda-forge matplotlib conda install -c conda-forge importlib_metadata
-
In the same shell, within the
intentaware
environment, install the librariesgurobipy
,stlpy
, andchaospy
:python -m pip install gurobipy pip install stlpy pip install chaospy
-
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.
Run Examples
- Lead to the
example
directory; - Lead to the
overtaking
or theintersection
folder; - Run the main script
main.py
; - Rendering constraints may take up to 1 to 2 minutes, depending on the computational performance;
- Plotted figures automatically saved in the
data
subfolder.
License
This project is with a BSD-3 license.