Learning-Aided 3D Mapping
A suite of algorithms for learning-aided mapping. Includes implementations of Gaussian process regression and Bayesian generalized kernel inference for occupancy prediction using test-data octrees. A demonstration of the system can be found here: https://youtu.be/SRXLMALpU20
Overview
This implementation as it stands now is primarily intended to enable replication of these methods over a few datasets. In addition to the implementation of relevant learning algorithms and data structures, we provide two sets of range data (sim_structured and sim_unstructured) collected in Gazebo for demonstration. Parameters of the sensors and environments are set in the relevant yaml
files contained in the config/datasets
directory, while configuration of parameters for the mapping methods can be found in config/methods
.
Getting Started
Dependencies
The current package runs with ROS Noetic, but for testing in ROS Kinetic and ROS Indigo, you can set the CMAKE flag in the CMAKELists file to c++11.
Octomap is a dependancy, which can be installed using the command below. Change distribution as necessary.
$ sudo apt-get install ros-noetic-octomap*
Building with catkin
The repository is set up to work with catkin, so to get started you can clone the repository into your catkin workspace src
folder and compile with catkin_make
:
my_catkin_workspace/src$ git clone https://github.com/RobustFieldAutonomyLab/la3dm.git
my_catkin_workspace/src$ cd ..
my_catkin_workspace$ catkin_make
my_catkin_workspace$ source ~/my_catkin_workspace/devel/setup.bash
Running the Demo
To run the demo on the sim_structured
environment, simply run:
$ roslaunch la3dm la3dm_static.launch
which by default will run using the BGKOctoMap-LV method. If you want to try a different method or dataset, simply pass the
name of the method or dataset as a parameter. For example, if you want to run GPOctoMap on the sim_unstructured
map,
you would run:
$ roslaunch la3dm la3dm_static.launch method:=gpoctomap dataset:=sim_unstructured
Relevant Publications
If you found this code useful, please cite the following:
Improving Obstacle Boundary Representations in Predictive Occupancy Mapping (PDF) - describes the latest BGKOctoMap-LV addition to the LA3DM library:
@article{pearson2022improving,
title={Improving Obstacle Boundary Representations in Predictive Occupancy Mapping},
author={Pearson, Erik and Doherty, Kevin and Englot, Brendan},
journal={Robotics and Autonomous Systems},
volume={153},
pages={104077},
year={2022},
publisher={Elsevier}
}
Learning-Aided 3-D Occupancy Mapping with Bayesian Generalized Kernel Inference (PDF) - describes the BGKOctoMap and BGKOctoMap-L approaches originally included in the LA3DM library.
@article{Doherty2019,
doi = {10.1109/tro.2019.2912487},
url = {https://doi.org/10.1109/tro.2019.2912487},
year = {2019},
publisher = {Institute of Electrical and Electronics Engineers ({IEEE})},
pages = {1--14},
author = {Kevin Doherty and Tixiao Shan and Jinkun Wang and Brendan Englot},
title = {Learning-Aided 3-D Occupancy Mapping With Bayesian Generalized Kernel Inference},
journal = {{IEEE} Transactions on Robotics}
}
Fast, accurate gaussian process occupancy maps via test-data octrees and nested Bayesian fusion (PDF) - describes the GPOctoMap approach included in the LA3DM library.
@INPROCEEDINGS{JWang-ICRA-16,
author={J. Wang and B. Englot},
booktitle={2016 IEEE International Conference on Robotics and Automation (ICRA)},
title={Fast, accurate gaussian process occupancy maps via test-data octrees and nested Bayesian fusion},
year={2016},
pages={1003-1010},
month={May},
}
Bayesian Generalized Kernel Inference for Occupancy Map Prediction (PDF)
@INPROCEEDINGS{KDoherty-ICRA-17,
author={K. Doherty and J. Wang, and B. Englot},
booktitle={2017 IEEE International Conference on Robotics and Automation (ICRA)},
title={Bayesian Generalized Kernel Inference for Occupancy Map Prediction},
year={2017},
month={May},
}
Contributors
Jinkun Wang, Kevin Doherty, and Erik Pearson, Robust Field Autonomy Lab (RFAL), Stevens Institute of Technology.