BezierFastExploration is a flexible framework for three-dimensional next-best-view Gaussian process aided exploration design. This repository contains all the necessary code to build your own exploration algorithm with your own custom information gain function. The implemented algorithm iteratively builds and maintains a Rapidly-Exploring Random Tree (RRT) by randomly sampling feasible trajectories. The information gain of each trajectory is evaluated via sparse ray-casting and Gaussian process regression. The algorithm employs a Bézier curve parameterisation to plan feasible collision-free high informative trajectories through the exploring unknown environment. For more information please see our paper.
If you find this package useful for your research, please consider citing our paper:
- L. Gentilini, D. Mengoli, and L. Marconi. Direct Bézier-Based Trajectory Planner for Improved Local Exploration of Unknown Environments. arXiv:2203.00968, 2022. (Paper, Video)
- Lorenzo Gentilini - PhD Student
- Email: [email protected]
- Dario Mengoli - PhD Student
- Email: [email protected]
- Lorenzo Marconi - Full Professor
- Email: [email protected]
This code has been tested on ROS Melodic and ROS Noetic.
In order to build and run this package, please follow the ROS install online tutorial (ROS Melodic)
Install Octomap and Eigen:
sudo apt-get install ros-$ROS_DISTRO-octomap ros-$ROS_DISTRO-octomap-msgs libeigen3-dev
Install numpy, scipy, and rtree:
pip3 install numpy scipy rtree
Clone the repository in your workspace:
git clone https://github.com/casy-lab/BezierFastExploration.git bezier_exploration
Then run the following commands:
cd bezier_exploration
catkin_make
- Start the PX4 subsystem (either real or using software in the loop simulation)
- Start the RGB-D camera integration (to obtain the pointcloud)
- Start the exploration node:
roslaunch bezier_exploration exploration.launch