• Stars
    star
    123
  • Rank 288,519 (Top 6 %)
  • Language
    C++
  • License
    MIT License
  • Created over 7 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Learning-aided 3D mapping

Learning-Aided 3D Mapping

Build Status

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.

More Repositories

1

LeGO-LOAM

LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
C++
2,336
star
2

DiSCo-SLAM

C++
223
star
3

lidar_super_resolution

Simulation-based Lidar Super-resolution for Ground Vehicles
Python
180
star
4

turtlebot_exploration_3d

Autonomous Exploration package for a Turtulebot equiped with RGBD Sensor(Kinect, Xtion)
C++
151
star
5

DRL_graph_exploration

Autonomous Exploration Under Uncertainty via Deep Reinforcement Learning on Graphs
C++
115
star
6

jackal_dataset_20170608

Bag files captured using a Clearpath Jackal Robot, which is equipped with a Velodyne VLP-16 and low-end IMU sensor. The published point cloud topic is \velodyne_points. The published IMU data topic is \imu\data.
65
star
7

DRL_robot_exploration

Self-Learning Exploration and Mapping for Mobile Robots via Deep Reinforcement Learning
Python
64
star
8

Distributional_RL_Navigation

[IROS 2023] Robust Unmanned Surface Vehicle Navigation with Distributional Reinforcement Learning
Python
43
star
9

spin_hokuyo

spinning Hokuyo form 3D point cloud
C++
41
star
10

em_exploration

Autonomous Exploration with Expectation-Maximization
C++
40
star
11

Multi_Robot_Distributional_RL_Navigation

[ICRA 2024] Decentralized Multi-Robot Navigation for Autonomous Surface Vehicles with Distributional Reinforcement Learning
Python
39
star
12

bluerov

BlueROV2 ROS Package
C
28
star
13

Stochastic_Road_Network

[UR 2023] Robust Route Planning with Distributional Reinforcement Learning in a Stochastic Road Network Environment
Python
16
star
14

Mission-Oriented-GP-Motion-Planning

C++
12
star
15

waypoint_navigation

C++
8
star
16

Multi-Robot-EM-Exploration

Python
6
star
17

RobustFieldAutonomyLab.github.io

Robust Field Autonomy Lab Website
HTML
5
star
18

videoray

C++
3
star
19

motion_hokuyo

C++
3
star
20

loam

loam package, adopted...
C++
3
star
21

spin_hokuyo-release

2
star
22

explo_turtlebot_dev

Shawn
C++
2
star
23

eth_icp_mapper_indigo

eth_icp_mapper adopted to work in indigo
C++
1
star
24

turtlebot_exploration_3d-release

release for turtlebot exploration 3d package in ROS --RFAL 2016
1
star
25

multi_robot_exploration

EmberScript
1
star