This repository contains complementary material for the corresponding submission.

Version of the document submission with high-quality figures.

Document with difference report

Abstract

Mobile ground robots operating on unstructured terrain must predict which areas of the environment they are able to pass in order to plan feasible paths. We address traversability estimation as a heightmap classification problem: we build a convolutional neural network that, given an image representing the heightmap of a terrain patch, predicts whether the robot will be able to traverse such patch from left to right. The classifier is trained for a specific robot model (wheeled, tracked, legged, snake-like) using simulation data on procedurally generated training terrains; the trained classifier can be applied to unseen large heightmaps to yield oriented traversability maps, and then plan traversable paths. We extensively evaluate the approach in simulation on six real-world elevation datasets, and run a real-robot validation in one indoor and one outdoor environment.

Repository content:

  1. Media material of the experiments on the real robot and real elevation maps,
  2. Data files (heightmaps and csv) to generate the training and evaluation datasets,
  3. and the source code to each module of our traversability estimation framework:
    • simulation and data generation,
    • heightmap generation,
    • dataset generation,
    • definition, training and evaluation of the CNN classifier,
    • generation of traversability representations such as oriented traversability maps and minimal traversability maps,
    • and visualization of the results as 3D renderings

      verify the software requirements to test the code

Media

This is a selection of available media of our traversability estimation framework:

Reachability overlay and paths for selected points on the Slope map

Minimal traversability overlay on the Sullens map

Demonstration of the experiments on the real Pioneer 3AT robot

Minimal traversability overlay on the Quarry map

Oriented traversability overlays for 32 orientations on the Quarry map

Pioneer 3AT on simulated procedurally generated heightmaps

A larger number of visualizations can be generated/found in the code>visualization section of this repository.

Data

This folder contains the heightmaps (gray-scale images) and the csv files with the data from each simulated trajectory.

Code

In this folder we provide several sub-folders for each module of our traversability estimation framework:

Simulation

Code for simulating the Pioneer 3AT robot on a generated heightmap.

This code can be accessed as a docker image that setups all the needed libraries:

docker pull romarcg/traversability-ros-ubuntu-gazebo

or by copying the simulation folder files to an existing ros+gazebo setup.

Heightmap generation

Contains a document explaining in detail the procedural generation of heightmaps and a script that implements such procedure.

Here are some examples of the generated heightmaps:

Dataset generation

Contains a script that takes a csv file and builds a dataframe that is used to generate the training/evaluation/real-evaluation dataset.

Training

Contains a script that builds the CNN architecture, takes the dataset generated by the previous script and starts the network training (this task may take several hours). In addition, a report of common metrics is provided as evaluation of the trained CNN.

The model generated by this script is saved to be used in future scripts.

An already trained model file is provided to avoid the training step.

Evaluation

This script computes oriented traversability maps and minimal traversability maps using the trained model on unseen (testing) heightmaps.

Visualization

This script processes traversability maps and generates 3D renderings to interactively examine a heightmap and its estimated map.

A set of already generated traversability maps is provided as sample files to avoid regenerating them.

Software requirements

In order to use the provided scripts, these are the list of requirements: