Dual-Stage Viewpoint Planner incorporates two planning stages in autonomous exploration - an exploration stage for extending the boundary of the map, and a relocation stage for explicitly transiting the robot to different sub-areas in the environment. The exploration stage develops Rapidly-exploring Random Tree (RRT) and dynamically expand the RRT over replanning steps. The relocation stage maintains a graph through the mapped environment. During the course of exploration, the method transitions back-and-forth between the two stages to explore all areas in the environment.
Please use instructions on our project page.
The repository has been tested in Ubuntu 18.04 with ROS Melodic and Ubuntu 20.04 with ROS Noetic. Follow instructions in Autonomous Exploration Development Environment to setup the development environment. Make sure to checkout the branch that matches the computer setup, compile, and download the simulation environments. To setup DSV Planner, install dependencies with command lines below. Replace 'distribution' with 'melodic' or 'noetic' to match the computer setup.
sudo apt update
sudo apt install ros-distribution-octomap-ros libgoogle-glog-dev libgflags-dev
git clone https://github.com/HongbiaoZ/dsv_planner.git
In a terminal, go to the folder and checkout the correct branch. Replace 'distribution' with 'melodic' or 'noetic'. Then, compile.
cd dsv_planner
git checkout distribution
catkin_make
To run the code, go to the development environment folder in a terminal, source the ROS workspace, and launch.
source devel/setup.sh
roslaunch vehicle_simulator system_garage.launch
In another terminal, go to the DSV Planner folder, source the ROS workspace, and launch.
source devel/setup.sh
roslaunch dsvp_launch explore_garage.launch
Now, users should see autonomous exploration in action. To launch with a different environment, use the command lines below instead and replace 'environment' with one of the environment names in the development environment, i.e. 'campus', 'indoor', 'garage', 'tunnel', and 'forest'.
roslaunch vehicle_simulator system_environment.launch
roslaunch dsvp_launch explore_environment.launch
catkin_simple, kdtree, minkindr, minkindr_ros, and volumetric_mapping packages are from open-source releases.
Hongbiao Zhu (hongbiaz@andrew.cmu.edu)