# exploration-algorithms
**Repository Path**: wrd666/exploration-algorithms
## Basic Information
- **Project Name**: exploration-algorithms
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-25
- **Last Updated**: 2026-03-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Exploration-algorithms
+ How to build, install and run open-source exploration algorithms
+ The repo provides ready-to-go `Docker` image
+ Algorithms are:
+ NBVP - Receding Horizon "Next-Best-View" Planner for 3D Exploration
+ GBP - Graph-based Path Planning for Autonomous Robotic Exploration in Subterranean Environments
+ GBP2 - Autonomous Teamed Exploration of Subterranean Environments using Legged and Aerial Robots
+ MBP - Motion Primitives-based Path Planning for Fast and Agile Exploration using Aerial Robots
+ AEP - Efficient Autonomous Exploration Planning of Large-Scale 3-D Environments
+ UFOExplorer - UFOExplorer: Fast and Scalable Sampling-Based Exploration With a Graph-Based Planning Structure
+ FUEL - FUEL: Fast UAV Exploration Using Incremental Frontier Structure and Hierarchical Planning
+ DSVP - DSVP: Dual-Stage Viewpoint Planner for Rapid Exploration by Dynamic Expansion
+ TARE - TARE: A Hierarchical Framework for Efficiently Exploring Complex 3D Environments
+ RHEM - Uncertainty-aware receding horizon exploration and mapping using aerial robots
+ GLocal - A Unified Approach for Autonomous Volumetric Exploration of Large Scale Environments Under Severe Odometry Drift
+ OIPP - An Efficient Sampling-Based Method for Online Informative Path Planning in Unknown Environments
+ PredRecon - PredRecon: A Prediction-boosted Planning Framework for Fast and High-quality Autonomous Aerial Reconstruction
# List
## 1. Volumetric mapping purpose only
| Name | Papers | Videos | Code | Main Group |
|:-----------:|:---------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------:|:---------------------------:|
| NBVP | [2016 ICRA](https://ieeexplore.ieee.org/document/7487281) | | [git](https://github.com/ethz-asl/nbvplanner) | ETHZ-ASL |
| GBP | [2019 IROS](https://ieeexplore.ieee.org/document/8968151), [2020 JFR](https://onlinelibrary.wiley.com/doi/full/10.1002/rob.21993) | [youtube](https://youtu.be/VWgEVTeABdE), [youtube2](https://youtu.be/mw0qy05Fo6Q), [youtube3](https://youtu.be/SNMsKAnCQkw) | Same with GBP2 | ETHZ-ASL+RSL / NTNU-ARL |
| GBP2 | [2022 ICRA](https://ieeexplore.ieee.org/document/9812401) | [youtube](https://youtu.be/P3uT4gHEFHw) | [git](https://github.com/ntnu-arl/gbplanner_ros) | ETHZ-ASL+RSL / NTNU-ARL |
| MBP | [2020 ICRA](https://ieeexplore.ieee.org/document/9196964) | [youtube](https://youtu.be/ZvUedi5mzN8), [youtube2](https://youtu.be/bKVRHaJO938), [youtube3](https://youtu.be/aT9F4gRjyJ0) | [git](https://github.com/ntnu-arl/mbplanner_ros) | ETHZ-ASL / NTNU-ARL |
| AEP | [2019 RAL](https://ieeexplore.ieee.org/document/8633925) | [youtube](https://youtu.be/Mg93ojV5rC8) | [git](https://github.com/mseln/aeplanner) | LiU-AIICS / KTH-RPL |
| UFOExplorer | [2022 RAL](https://ieeexplore.ieee.org/document/9681328) | [youtube](https://youtu.be/MWrRXaaW-bg) | [git](https://github.com/UnknownFreeOccupied/UFOExplorer) | KTH-RPL |
| FUEL | [2021 RAL](https://ieeexplore.ieee.org/document/9324988) | [youtube](https://youtu.be/_dGgZUrWk-8) | [git](https://github.com/HKUST-Aerial-Robotics/FUEL) | HKUST Aerial Robotics Group |
| DSVP | [2021 IROS](https://ieeexplore.ieee.org/document/9636473) | [youtube](https://youtu.be/1yLLIZIIsDk) | [git](https://github.com/HongbiaoZ/dsv_planner) | CMU Robotics Institute |
| TARE | [2021 RSS](http://www.roboticsproceedings.org/rss17/p018.pdf), [2021 ICRA](https://ieeexplore.ieee.org/document/9561916) | [youtube](https://youtu.be/pIo64S-uOoI) | [git](https://github.com/caochao39/tare_planner) | CMU Robotics Institute |
## 2. Volumetric mapping + Considering pose estimation
| Name | Papers | Videos | Code | Main Group |
|:------:|:-------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------:|:-------------------------------------------------------:|:----------:|
| RHEM | [2017 ICRA](https://ieeexplore.ieee.org/document/7989531), [2019 Autonomous Robots](https://link.springer.com/article/10.1007/s10514-019-09864-1) | [youtube](https://youtu.be/iveNtQyUut4), [youtube2](https://youtu.be/LtQ7sPbHqr0) | [git](https://github.com/ntnu-arl/rhem_planner) | NTNU-ARL |
| GLocal | [2021 RAL](https://ieeexplore.ieee.org/abstract/document/9387110) | [youtube](https://youtu.be/WInjZvoCDCM) | [git](https://github.com/ethz-asl/glocal_exploration) | ETHZ-ASL |
## 3. Volumetric mapping + inspection/coverage path planning
| Name | Papers | Videos | Code | Main Group |
|:---------:|:-------------------------------------------------------------:|:---------------------------------------:|:---------------------------------------------------------:|:---------------------------:|
| OIPP | [2020 RAL](https://ieeexplore.ieee.org/document/8968434) | [youtube](https://youtu.be/lEadqJ1_8Do) | [git](https://github.com/ethz-asl/mav_active_3d_planning) | ETHZ-ASL |
| PredRecon | [2023 ICRA (arXiv yet)](https://arxiv.org/pdf/2302.04488.pdf) | [youtube](https://youtu.be/ek7yY_FZYAc) | [git](https://github.com/HKUST-Aerial-Robotics/PredRecon) | HKUST Aerial Robotics Group |
# Option1: How to build and run with the ready-to-go `docker` image
## Installation
### 0. Install docker, get image, and generate container
Unfold to see
+ If you do not have `docker` yet, install it
```shell
curl -fsSL https://get.docker.com/ | sudo sh
sudo usermod -aG docker $USER
##### NVIDIA-Docker, GPU
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
```
+ Get the ready-to-go docker image with `dockerfile`
+ make `dockerfile` with the contents:
```python
FROM ghcr.io/engcang/exploration_sota:v1.0
# nvidia-container-runtime
ENV NVIDIA_VISIBLE_DEVICES \
${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
USER ubuntu
WORKDIR /home/ubuntu
CMD /bin/bash
```
+ Then, make the image with `docker build -t exploration .`
+ Generate a docker conatiner with `run.sh` file
+ make `run.sh` with the contents:
```shell
#!/bin/sh
XSOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
touch $XAUTH
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
docker run --runtime=nvidia --privileged --gpus all --rm -it \
--volume=$XSOCK:$XSOCK:rw \
--volume=$XAUTH:$XAUTH:rw \
--volume=$HOME:$HOME \
--shm-size=4gb \
--env="XAUTHORITY=${XAUTH}" \
--env="DISPLAY=${DISPLAY}" \
--env=TERM=xterm-256color \
--env=QT_X11_NO_MITSHM=1 \
--net=host \
exploration:latest
bash
```
+ Then run container as follows:
```shell
chmod +x run.sh
./run.sh
```
### 1. How to run
Unfold to see
+ In the `docker`,
```shell
cd ~/
ls #see .sh files there
# NBVP
./nbvp.sh
# GBP
./gbp.sh
!!Then, click "Start planner" in Rviz
# MBP
./mbp.sh
!!Then, click "Start planner" in Rviz
# AEP
./aep_gazebo.sh
./aep.sh lidar #with lidar sensor
./aep.sh rgbd #with rgbd sensor
rosservice call /mavros/cmd/arming "value: true"
rosservice call /mavros/set_mode "base_mode: 0 custom_mode: 'OFFBOARD'"
# FUEL
./fuel.sh
!!Start with "2D Nav Goal" in Rviz
# DSVP
./dsvp_tare_sim.sh
./dsvp.sh
# TARE
./dsvp_tare_sim.sh
./tare.sh
# OIPP
./oipp.sh
rosservice call /planner/planner_node/toggle_running "data: true"
```
---
# Option2: How to build and run on your local computer
## Installation
### 0. Common dependencies
+ ROS: all
+ OctoMap: NBVP, GBP, MBP, AEP, DSVP
+ Voxblox: MBP, GBP, OIPP
### 1. Install simulator (required)
Unfold to see
#### Note: When having PX4-SITL and RotorS Simulator at the same time
+ They both use `libmav_msgs.so` file with the same name but different source codes.
+ If you have both simulators, do not forget to change the name of either one temporally.
+ PX4-SITL: `PX4-Autopilot/build/px4_sitl_default/build_gazebo/libmav_msgs.so`
+ RotorS: `/build/rotors_gazebo_plugins/libmav_msgs.so`
#### 1-1. Install PX4-SITL - for AEP
+ Follow [here](https://github.com/engcang/mavros-gazebo-application/blob/master/README.md#installation)
#### 1-2. Install RotorS Simulator - for NBVP, GBP, MBP, OIPP
+ Because of the version issuse, I recommend to install as here
+ Get the code and build
```shell
cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/rotors_simulator --recursive
rm -r rotors_simulator/rotors_description
rm -r rotors_simulator/rotors_gazebo
cd ~/catkin_ws
git clone https://github.com/engcang/exploration-algorithms
mv exploration-algorithms/rotors_description src/rotors_simulator/
mv exploration-algorithms/rotors_gazebo src/rotors_simulator/
catkin build -DCMAKE_BUILD_TYPE=Release
```
#### 1-3. Install Autonomous Exploration Development Environment - for DSVP, TARE
+ Follow [here](https://www.cmu-exploration.com/)
### 2. Install algorithms
#### Note: When having NBVP, GBP, MBP at the same time
+ They use different versions of `volumetric_mapping`, `rotors_simulator`, `mav_comm`, `eigen_catkin`, `eigen_checks`, etc...
#### 2-1. NBVP
Unfold to see
+ Install dependencies and get the code
```shell
cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/nbvplanner.git
cd nbvplanner
git submodule update --init --recursive
rm -r rotors # install it as above Section 1-2.
cd mav_comm && git pull origin master
```
+ Change CMakeLists.txt and build the code
```shell
cd ~/catkin_ws/src/nbvplanner/nbvplanner
wget -O CMakeLists.txt https://raw.githubusercontent.com/engcang/exploration-algorithms/main/nbvp/nbvplanner/CMakeLists.txt
cd ~/catkin_ws/src/nbvplanner/interface_nbvp_rotors
wget -O CMakeLists.txt https://raw.githubusercontent.com/engcang/exploration-algorithms/main/nbvp/interface_nbvp_rotors/CMakeLists.txt
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
```
#### 2-2. GBP2
Unfold to see
+ Install dependencies and get the code
```shell
sudo apt install python-catkin-tools \
libgoogle-glog-dev \
ros-melodic-joy \
ros-melodic-twist-mux \
ros-melodic-interactive-marker-twist-server \
ros-melodic-octomap-ros
cd catkin_ws
git clone https://github.com/ntnu-arl/gbplanner_ros.git -b gbplanner2
wstool init
wstool merge ./gbplanner_ros/packages_ssh.rosinstall
wstool update
rm -r src/sim/rotors_simulator #install it as above Section 1-2.
```
+ Build
```shell
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
```
#### 2-3. GBP1
Unfold to see
+ Clone and build the code
```shell
cd ~/catkin_ws
git clone https://github.com/ntnu-arl/gbplanner_ws.git
cd gbplanner_ws
git checkout origin/melodic
wstool init
wstool merge packages_https.rosinstall
wstool update
mv gbplanner_ws/src/* ~/catkin_ws/src/
cd ~/catkin_ws
rm -r src/sim/rotors_simulator # install it as above Section 1-2.
```
+ Change the path of `Eigen` in
+ `gbplanner_ros/gbplanner/include/gbplanner/params.h`
+ `gbplanner_ros/gbplanner/include/gbplanner/gbplanner_rviz.h`
+ `gbplanner_ros/gbplanner/include/gbplanner/geofence_manager.h`
+ `gbplanner_ros/gbplanner/include/gbplanner/graph_manager.h`
+ `gbplanner_ros/gbplanner/include/gbplanner/map_manager.h`
+ `gbplanner_ros/gbplanner/include/gbplanner/rrg.h`
```c++
//#include
#include
```
+ Build
```shell
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
!Optionally, for use with OctoMap
catkin build -DCMAKE_BUILD_TYPE=Release -DUSE_OCTOMAP=1
```
#### 2-4. MBP
Unfold to see
+ Get the code and build
```shell
git clone https://github.com/ntnu-arl/mbplanner_ws.git
cd mbplanner_ws
git checkout melodic-devel
wstool init
wstool merge packages_https.rosinstall
wstool update
mv mbplanner_ws/src/* ~/catkin_ws/src/
cd ~/catkin_ws
rm -r src/sim/rotors_simulator # install it as above Section 1-2.
```
+ Fix the code error
+ `exploration/mbplanner/mbplanner_ros/planner_common/src/params.cpp`
+ Line 847 (in `MBParams::loadParams(std::string ns)`)
```c++
// Add
return true;
```
+ Change the path of `Eigen` in `exploration/mbplanner_ros/planner_common/include/planner_common/visualizer.h`
```c++
//#include
#include
```
+ Build
```shell
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
!Optionally, for use with OctoMap
catkin build -DCMAKE_BUILD_TYPE=Release -DUSE_OCTOMAP=1
```
+ Trouble shooting for `planner_common`
+ When `opencv` path errors from `image_proc`,
+ Change the directory of `opencv` in `/opt/ros/melodic/share/image_proc/cmake/image_procConfig.cmake`
#### 2-5. AEP
Unfold to see
+ Install dependencies and build the code
```shell
sudo apt install ros-melodic-octomap*
sudo apt-get install libspatialindex-dev
python2 -m pip install rtree
cd ~/catkin_ws/src/
git clone https://github.com/catkin/catkin_simple.git
git clone https://github.com/mseln/aeplanner.git
cd ..
catkin build -DCMAKE_BUILD_TYPE=Release
## If PCL errors in rpl_exploration,
## change compiler to newer than c++14
## in line 4 for CMakeLists.txt of rpl_exploration
```
#### 2-6. FUEL
Unfold to see
+ Install dependencies
```shell
sudo apt-get install libarmadillo-dev
sudo apt-get install libdw-dev
git clone https://github.com/stevengj/nlopt.git
cd nlopt
mkdir build && cd build
cmake ..
make
sudo make install
```
+ Get the code and change `CMakeLists.txt` of `bsline_opt`
```shell
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/FUEL.git
cd FUEL/fuel_planner/bspline_opt
wget -O CMakeLists.txt https://raw.githubusercontent.com/engcang/exploration-algorithms/main/fuel/CMakeLists.txt
```
+ Change compiler into `c++14` in all `CMakeLists.txt` files
```makefile
#set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS "-std=c++14")
```
+ Fix the code error
+ `FUEL/fuel_planner/path_searching/src/kinodynamic_astar.cpp`
+ Line 654 (in `int KinodynamicAstar::timeToIndex(double time)`)
```c++
// Add
return idx;
```
+ Build the code
```shell
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
```
#### 2-7. DSVP
Unfold to see
+ Install dependencies and get the code
```shell
sudo apt install ros-melodic-octomap-ros libgoogle-glog-dev libgflags-dev
cd ~/catkin_ws/src
git clone https://github.com/HongbiaoZ/dsv_planner.git
cd dsv_planner
git checkout origin/melodic
```
+ Fix `CMakeLists.txt` in `dsv_planner/src/volumetric_mapping/octomap_world`
```makefile
#target_link_libraries(octomap_manager ${PROJECT_NAME} glog)
target_link_libraries(octomap_manager ${PROJECT_NAME} glog gflags)
```
+ Fix `CMakeLists.txt` in `dsv_planner/src/dsvplanner/dsvplanner`
```makefile
find_package(catkin REQUIRED COMPONENTS
roscpp
geometry_msgs
visualization_msgs
message_generation
octomap_world
tf
kdtree
std_msgs
nav_msgs
misc_utils
graph_planner #ADDED
graph_utils
)
```
+ Change the path of `Eigen` in
+ `dsv_planner/src/dsvplanner/dsvplanner/include/dsvplanner/drrt_base.h`
+ `dsv_planner/src/dsvplanner/dsvplanner/src/drrtp.cpp`
+ `dsv_planner/src/dsvplanner/dsvplanner/src/drrtp_node.cpp`
```c++
//#include
#include
```
+ Build the code
```shell
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
```
#### 2-8. TARE
Unfold to see
+ Get and build the code
```shell
cd ~/catkin_ws/src
git clone https://github.com/caochao39/tare_planner.git
cd ..
sudo apt remove libflags* ### as it is using OR-Tools
catkin build -DCMAKE_BUILD_TYPE=Release
```
#### 2-9. OIPP - without Unreal, Gazebo instead (thanks to [Dongkyu Lee](https://github.com/dklee98))
Unfold to see
+ Get dependencies
```shell
sudo apt-get install python-wstool python-catkin-tools
sudo apt-get install ros-melodic-cmake-modules ros-melodic-control-toolbox ros-melodic-joy ros-melodic-octomap-ros ros-melodic-mavlink ros-melodic-geographic-msgs autoconf libyaml-cpp-dev protobuf-compiler libgoogle-glog-dev liblapacke-dev libgeographic-dev
cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/mav_active_3d_planning
wstool init
wstool merge mav_active_3d_planning/mav_active_3d_planning_https.rosinstall
wstool update
rm -r rotors_simulator # install it as above Section 1-2.
rm -r yaml_cpp_catkin # prevent confliction
cd ..
catkin build -DCMAKE_BUILD_TYPE=Release
```
## Run Demos
#### 1. NBVP
Unfold to see
+ **Important:** Put `` into Gazebo `.world` file
+ Run the demo
```shell
roslaunch interface_nbvp_rotors flat_exploration.launch
```
#### 2. GBP2 - it does not work for me yet
Unfold to see
+ Run the demo
```shell
roslaunch gbplanner rmf_sim.launch
or
roslaunch gbplanner smb_sim.launch
```
#### 3. GBP1
Unfold to see
+ Check `map_config_file`, if it is `octomap` or `voxblox`
```xml
```
+ Run the demo
```shell
roslaunch gbplanner gbplanner_sim.launch
rosservice call /planner_control_interface/std_srvs/automatic_planning "{}"
```
#### 4. MBP
Unfold to see
+ Check `map_config_file`, if it is `octomap` or `voxblox`
```xml
```
+ Run the demo
```shell
roslaunch mbplanner mbplanner_m100_sim.launch
rosservice call /planner_control_interface/std_srvs/automatic_planning "{}"
```
#### 5. AEP (no official demo provided, I added environments)
Unfold to see
+ Get config files and Gazebo models and build
```shell
git clone https://github.com/engcang/exploration-algorithms --recursive
mv exploration-algorithms/aep/ouster_gazebo_plugins ~/catkin_ws/src/
mv exploration-algorithms/aep/gazebo_env ~/catkin_ws/src/
mv exploration-algorithms/aep/rpl_exploraiton ~/catkin_ws/src/aeplanner/
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
```
+ Set Gazebo paths
```shell
cd ~/catkin_ws/src/gazebo_env/gazebo_maps/reconstruction
tar -xf recon3.tar.xz
gedit ~/.bashrc
!Then, edit GAZEBO_PLUGIN_PATH and GAZEBO_MODEL_PATH!
export GAZEBO_PLUGIN_PATH=:/home/$(whoami)/PX4-Autopilot/build/px4_sitl_default/build_gazebo:$GAZEBO_PLUGIN_PATH
export GAZEBO_MODEL_PATH=/home/$(whoami)/catkin_ws/src/gazebo_env/drone_models:/home/$(whoami)/catkin_ws/src/gazebo_env/gazebo_maps/reconstruction:/home/$(whoami)/PX4-Autopilot/Tools/sitl_gazebo/models:$GAZEBO_MODEL_PATH
```
+ Run the demo
```shell
roslaunch rpl_exploration px4_sitl_gazebo.launch
# choose sensor
roslaunch rpl_exploration rpl_exploration.launch sensor:=lidar
roslaunch rpl_exploration rpl_exploration.launch sensor:=rgbd
# arming & offboarding
rosservice call /mavros/cmd/arming "value: true"
rosservice call /mavros/set_mode "base_mode: 0 custom_mode: 'OFFBOARD'"
```
#### 6. FUEL
Unfold to see
+ Run the demo
```shell
roslaunch exploration_manager rviz.launch
roslaunch exploration_manager exploration.launch
```
+ Start with `2D Nav Goal` in Rviz
#### 7. DSVP
Unfold to see
+ Run the demo
```shell
roslaunch vehicle_simulator system_garage.launch
roslaunch dsvp_launch explore_garage.launch
```
#### 8. TARE
Unfold to see
+ Run the demo
```shell
roslaunch vehicle_simulator system_garage.launch
roslaunch tare_planner explore_garage.launch
```
+ Trouble shooting
+ When `symbol lookup error: tare_planner/or-tools/lib/libortools.so: undefined symbol: _ZN6gflags14FlagRegistererC1IiEEPKcS3_S3_PT_S5_`
+ Check if `libortools.so` is referring the right libraries
+ If reffering wrong, delete or rename the wrong libraries temporarily
```shell
ldd tare_planner/or-tools/lib/ldd libortool.so
! wrong output
libgflags.so.2.2 => sota_ws/devel/lib/libgflags.so.2.2 (0x00007f036830d000)
libglog.so.0 => sota_ws/devel/lib/libglog.so.0 (0x00007f03680dc000)
! after delete/rename wrong files
sudo ldconfig
ldd tare_planner/or-tools/lib/ldd libortool.so
! correct output
libgflags.so.2.2 => tare_planner/src/tare_planner/or-tools/lib/./libgflags.so.2.2 (0x00007fe6749e0000)
libglog.so.0 => tare_planner/src/tare_planner/or-tools/lib/./libglog.so.0 (0x00007fe6747a3000)
```
#### 9. OIPP without Unreal, Gazebo instead (thanks to [Dongkyu Lee](https://github.com/dklee98))
Unfold to see
+ Get modified files for running without Unreal but Gazebo instead
```shell
git clone https://github.com/engcang/exploration-algorithms --recursive
cd exploration-algorithms/oipp
mv active_3d_planning_app_reconstruction ~/catkin_ws/src/mav_active_3d_planning/
mv active_3d_planning_core ~/catkin_ws/src/mav_active_3d_planning/
cd ~/catkin_ws
catkin build -DCMAKE_BUILD_TYPE=Release
```
+ Run demo
```shell
roslaunch active_3d_planning_app_reconstruction no_unreal_run_experiment.launch
rosservice call /planner/planner_node/toggle_running "data: true"
```