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
./datasetsdirectory 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.ipynbto see example demonstration of traversability prediction and path planning.
- Execute the following command to reproduce experimental results against various datasets.
(.venv) $ python scripts/eval.pyNote 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.pyNote 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}
}

