Code for Neural Elevation Models (NEMo), and framework for terrain mapping and path planning. This repo contains code for loading trained NEMos and performing path planning on them. The code for NEMo training can be found here.
Terrain images are collected which are used to train the NEMo. We use simulated environments in Unreal Engine with AirSim to run validation of planned paths.
Paper: https://arxiv.org/abs/2405.15227
@article{dai2024neural,
title={Neural Elevation Models for Terrain Mapping and Path Planning},
author={Dai, Adam and Gupta, Shubh and Gao, Grace},
journal={arXiv preprint arXiv:2405.15227},
year={2024}
}
(Extended RA-L version in preparation)
Clone the GitHub repository:
git clone https://github.com/adamdai/neural_elevation_models.git
Create and activate conda environment:
conda create -n nemo python=3.8
conda activate nemo
Install dependencies:
cd neural_elevation_models
pip install -r requirements.txt
pip install -e .
Install pytorch and cuda-toolkit:
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
Install tiny-cuda-nn:
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
Install GDAL (for working with .tif
DEMs):
conda install -c conda-forge gdal
(Developed and tested with Ubuntu 20.04/22.04 and Windows 10)
Download the data folder from this link and place it in the repo.
data/
|-- lunar/
|-- kt22/
| |-- colmap_points3D.txt
|-- redrocks/
| |-- DEM32-DroneMapper.tif
| |-- colmap_points3D.txt
These files are used for DEM comparison to COLMAP and ground truth.
Weights of trained height networks for the KT-22, Red Rocks, AirSim Mountains, and Unreal Moon scenes can be found under the models
folder.
The script nemo_planning.py
loads a trained NEMo and performs path planning via A* initialization then continuous path optimization.
For AirSim environments, it generates a path.npy
file which can then be used by the car_path_track.py
scripts in AirSim-Data-Collection
to execute the path in simulation.