Risk-aware Path Planning via Probabilistic Fusion of Traversability Prediction for Planetary Rovers on Heterogeneous Terrains (ICRA 2023)
This is a repository for the following paper:
- Masafumi Endo, Tatsunori Taniai, Ryo Yonetani, Genya Ishigami, "Risk-aware Path Planning via Probabilistic Fusion of Traversability Prediction for Planetary Rovers on Heterogeneous Terrains," IEEE ICRA, 2023. [paper] [project page] [blog]
We propose a novel path planning for safe rover navigation on heterogeneous deformable terrains, exploiting the uncertainty in ML-based traversability prediction. Our key idea is the probabilistic fusion of distinctive ML models while considering their uncertainties. This expression gives us a multimodal slip distribution accounting for heterogeneous terrains and further allows statistical risk assessment to derive risk-aware traversing costs for path planning.
- This repository provides a code to run our algorithm in your environment and reproduce the experiments in our ICRA paper.
- Please visit planning datasets releases when prepared data is necessary. Otherwise, you can produce datasets by running
./scripts/create_data.py
.
The code has been tested on Ubuntu 18.04.6 LTS with Python 3.9.10. Planning is performed on the CPU and the use of GPUs is supported for training/evaluating terrain classifier.
- Create a virtual environment and install all the necessary libraries.
$ python -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install -e .
- Visit datasets release to place them in your repository. You will eventually organize datasets in
./datasets
directory as follows.
datasets
├── dataset_Std
│ ├── train
│ ├── valid
│ ├── test
│ └── slip_models.pkl
├── dataset_ES
│ ├── train
│ ├── valid
│ ├── test
│ └── slip_models.pkl
└── dataset_AA
├── train
├── valid
├── test
└── slip_models.pkl
- Go to
./notebooks/demo.ipynb
to see example demonstration of traversability prediction and path planning.
- Execute the following command to reproduce experimental results against various datasets.
(.venv) $ python scripts/eval.py
Note that you need to specify the name of datasets, such as Std
, ES
, or AA
.
- Execute the following command to train terrain classifiers after you download or produce datasets.
(.venv) $ python scripts/train.py
Note that you need to specify the name of datasets, such as Std
, ES
, or AA
. The models for Std
and ES
datasets should be identical since their only difference is difficulty of predicting latent slip functions.
@inproceedings{endo2023riskaware,
title = {Risk-aware Path Planning via Probabilistic Fusion of Traversability Prediction for Planetary Rovers on Heterogeneous Terrains},
author = {Masafumi Endo and
Tatsunori Taniai and
Ryo Yonetani and
Genya Ishigami},
booktitle= {2023 IEEE International Conference on Robotics and Automation (ICRA)},
year = {2023},
volume = {},
number = {},
pages = {11852-11858},
doi = {10.1109/ICRA48891.2023.10161466}
}