Intention-Aware Control Based on Belief-Space Specifications and Stochastic Expansion

Citation Author(s):
Zengjie
Zhang
Eindhoven University of Technology
Submitted by:
Zengjie Zhang
Last updated:
Sun, 08/11/2024 - 14:18
DOI:
10.21227/d5yc-pn12
Data Format:
License:
0
0 ratings - Please login to submit your rating.

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.

Instructions: 

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

Quick Installation

  1. Install conda following this instruction;

  2. Open the conda shell, and create an independent project environment;

    conda create --name intentaware python=3.11
    
  3. In the same shell, activate the created environment

    conda activate intentaware
    
  4. In the same shell, within the intentaware environment, install the dependencies one by one

    conda 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
    
  5. In the same shell, within the intentaware environment, install the libraries gurobipy, stlpy, and chaospy:

    python -m pip install gurobipy
    pip install stlpy
    pip install chaospy
    
  6. Last but not least, activate the gurobi license (See How To). Note that this project is compatible with gurobi Released version 11.0.1. Keep your gurobi updated in case of incompatibility.

Run Examples

  • Lead to the example directory;
  • Lead to the overtaking or the intersection 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.

Data Descriptor Article DOI: