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
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.
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*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.bashTo run the demo on the sim_structured environment, simply run:
$ roslaunch la3dm la3dm_static.launchwhich 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_unstructuredIf 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}, } Jinkun Wang, Kevin Doherty, and Erik Pearson, Robust Field Autonomy Lab (RFAL), Stevens Institute of Technology.