Minimal interferring Interactive Risk-aware Planning for multimodal and time-evolving obstacle behaviour
Planning safe human-robot interaction is a necessary towards the widespread integration of autonomous systems in the society. However, while instinctive to humans, socially compliant navigation is still difficult to quantify due to the stochasticity in people’s behaviors. Previous approaches have either strongly simplified the multimodal and time-varying behaviour of humans, applied hardly tractable methods lacking safety guarantees or were simply not computationally feasible. Therefore the goal of this work to develop a risk-aware planning methodology with special regards on minimizing the interaction between human and robot and taking account the actual multi-modality and time-evolving nature of the humans behaviour, based on the Trajectron model (Ivanovic 19).
For installation clone the repository including it's submodules:
git clone --recurse-submodules --remote-submodules https://github.com/simon-schaefer/mantrap.git
Next create a virtual environment for Python 3 and install all package requirements by running
conda create --name mantrap python=3.6 -y source activate mantrap source ops/setup.bash
Afterwards install the NLP-solver IPOPT and it's python wrapper which is called cyipopt:
In order to ensure a working Trajectron model the branch
online_with_torch has to be checkout.
The evaluation of mantrap is grounded on real-world pedestrian behaviour datasets. While the
ETH Pedestrian datasets and some custom scenarios already have
been integrated, other datasets can be easily added using the mantrap_evaluation dataset API; for more information
regarding this please read
For code documentation the Sphinx engine has been used. For building the
documentation locally setup the project and run
make github in the documentation folder. Then open the
documentation by opening the
index.html file in the resulting documentation build directory.
Running in optimized mode
Running python in optimized mode let's skip all
assert statements and sets the logging level to warning
in order to save runtime.
python3 -O evaluation.py