NVE is a mono repo for traversability estimation (TE) using 3D probabilistic voxels and online adaptive TE estimation.
This workspace depends on ros noetic and combines functionally the packages required to enable navigation in vegetated environments for the ForestTrav method.
The primary targets platform are ROS noetic on Ubuntu 20.04, amd64, CUDA 11.7 and TorchSparse. This packages requires an nvidia GPU.
This repo relies on docker and VSCode
with Dev Container
addon to run. Within the docker container, the main workspace will be under /foresttrav_ws
. The data or training data is assumed to be under /data
.
This repository uses submodules. Use the following command to pull the repo with all the correct modules and commits.
git clone --recursive https://github.com/csiro-robotics/foresttrav.git
First, navigate to the sub-directory docker
inside the repo and build the base image using docker build -t nve_ml_ros:latest .
command.
The devcontainer will try to mount the /home/${USER}/data
directory. Either create this directory or change the mount command in .devcontainer/devcontainer.json
Secondly, build the docker image using vscode using Dev Container
-
Open vscode with ,
CTRL-P
and chooseDev Containers: Build and Open
-
In the root directory of the repo build it using
colcon
with the following command or use thebuild task
,CTRL-SHIFT-B
andBuild
:colcon build --symlink-install --merge-install --cmake-args -DCMAKE_BUILD_TYPE=Release' -Wall -Wextra -Wpedantic`
The source code will be build inside the container and persist within the mounted repo.
ForestTrav models rely on the ForestTrav Data Set
and the ForestTrav Rosbags
Recommendation is to download the lfe_hl_0.1
data set. This is the data fusing self-supervised labelling of the robot with hand-labelling at 0.1m voxel resolution.
To train a new model, use the train_model.py
in odap_tm
package. All of the configurations are stored in odap_tm/config/default_model_train.yaml
To run a new model, use the te_estimator.launch
from the nve_startup
pkg. The ForestTrav Rosbags can be found here
In terminal 1 run:
roslaunch nve_startup te_estimator.launch
In terminal 2 navigate into the directory of the data sets and play the rosbag:
rosbag play *
To view the robot model and the point cloud run
roslaunch nve_startup show_squash.launch
For all the packages, the map or world representation is assumed to be static and grid aligned world frame. Further, each voxel is assumed to contain one, and only one point or distribution.
Please cite the ForestTrav paper if you are using the traversability estimation or the the ForestTrav data set.
@article{ruetz2024foresttrav,
author={Ruetz, Fabio A. and Lawrance, Nicholas and Hern{\'a}ndez, Emili and Borges, Paulo V. K. and Peynot, Thierry},
journal={IEEE Access},
title={{ForestTrav}: 3D {LiDAR}-Only Forest Traversability Estimation for Autonomous Ground Vehicles},
year={2024},
volume={12},
pages={37192-37206},
doi={10.1109/ACCESS.2024.3373004}
}
Please cite the following if you are using the online ROS-bags or the online adaptive traversability estimation extension for ForestTrav.
@article{ruetz2024adaptive,
title={Adaptive Online Traversability Estimation For Unstructured, Densely Vegetated Environments},
author={Ruetz, Fabio and Lawrance, Nicholas and Hern{\'a}ndez, Emili and Borges, Paulo and Peynot, Thierry},
journal={preprint},
year={2024},
publisher={-}
}
The following are the main dependencies required to be installed if one would like to run without the docker container, and wont be supported.
- Ubuntu 20.04
- CUDA 11.7.1
- Pytorch 11.8
- Pytorch Lightning
- TorchSparse 2.0.0b
- OHM: Occupancy Homogenous Mapping
We use docker and the nvidia image 11.7.nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04
to build on top of it.