EDEN: Efficient Dual-Layer Exploration Planning for Fast UAV Autonomous Exploration in Large 3-D Environments
Qianli Dong, Xuebo Zhang, Shiyong Zhang, Ziyu Wang, Zhe Ma, Haobo Xi
EDEN is an Efficient Dual-layer Exploration plaNning method.
Simulations:
Real-World Experiments:
This work is developed in Ubuntu 20.04, ROS noetic.
Prerequisites:
- Install libraries:
$ sudo apt-get install ros-noetic-joy ros-noetic-octomap-ros python3-wstool python3-catkin-tools protobuf-compiler libgoogle-glog-dev ros-noetic-control-toolbox ros-noetic-mavros libzmqpp-dev ros-noetic-trajectory-msgs
- Configure Simulation Environment:
Since we use the simulation environment from FALCON, you need to configure the simulation environment:
# Install libraries
sudo apt install libgoogle-glog-dev libdw-dev libdwarf-dev libarmadillo-dev
sudo apt install libc++-dev libc++abi-dev
# Install cmake 3.26.0-rc6 (3.20+ required)
wget https://cmake.org/files/v3.26/cmake-3.26.0-rc6.tar.gz
tar -xvzf cmake-3.26.0-rc6.tar.gz
cd cmake-3.26.0-rc6
./bootstrap
make
sudo make install
# restart terminal
# Install Open3D 0.18.0
cd YOUR_Open3D_PATH
git clone --depth 1 --branch v0.18.0 https://github.com/isl-org/Open3D.git
cd Open3D
mkdir build && cd build
cmake -DBUILD_PYTHON_MODULE=OFF ..
make -j # make -j4 if out of memory
sudo make install
Clone Code and Make:
- Note: set CUDA_NVCC_FLAGS in CMakeLists.txt under pointcloud_render package. More information
$ mkdir -p EDEN/src
$ cd EDEN/src
$ git clone https://github.com/ethz-asl/gflags_catkin.git
$ git clone https://github.com/ethz-asl/glog_catkin.git
$ git clone https://github.com/catkin/catkin_simple.git
$ git clone https://github.com/NKU-MobFly-Robotics/EDEN.git
$ cd ..
$ catkin_make
Run Exploration: Please set the read-write map path before running. Then you can run:
$ source devel/setup.bash
$ roslaunch eden single_exp_demo_darpa_lite_low.launch #darpar tunnel
#or
$ roslaunch eden single_exp_demo_classical_office_lite_low.launch #classical office maze
#or
$ roslaunch eden single_exp_demo_maze4_lite_low.launch #small maze
#or
$ roslaunch eden single_exp_demo_maze3_lite_low.launch #large maze
#or
$ roslaunch eden single_exp_demo_city_lite_low.launch #city
#or
$ roslaunch eden single_exp_demo_large_tunnel_lite_low.launch #very large tunnel
Mamba bless your UAV!
Find yaml files in resource dir.
Read Write Path:
The blocks of the voxel map will be written to this path and read from this path. You must ensure this path exists.
block_map/Path: /home/charliedog/rosprojects/eden/map
Log Path:
Set the path for logging information(it is not necessary):
Computation/dir: /home/charliedog/data/maze3
Exploration Space:
These parameters determine the exploration space and the map size:
# exploration bounding box
Exp/minX: -20.0
Exp/minY: -20.0
Exp/minZ: 0.0
Exp/maxX: 20.0
Exp/maxY: 20.0
Exp/maxZ: 3.0
# map size (larger than the exploration bounding box)
block_map/minX: -22.5
block_map/minY: -22.5
block_map/minZ: -0.1
block_map/maxX: 22.5
block_map/maxY: 22.5
block_map/maxZ: 3.5
block_map_lite bag = Dynamic Voxel Map
mr_dtg_plus bag = Dynamic Topological Graph
MultiDtgPlus::TspApproxiPlan() function = EOHDT
MultiDtgPlus::FindFastExpTarget() fuction = Curvature Penalized Target Decision
GCOPTER_AGGRESSIVE::optimize() fuction = Aggressive and Safe Exploration-Oriented Trajectory Planning
We use the simulator from FALCON. We use RipNeon(coming soon) for mapping. We use dynamical topological graph (DTG) from GVP-MREP for exploration planning. Our ASEO trajectory is inspired by FASTER and uses the form of MINCO.
Please star our work, we really appreciate your support.
We plan to extend this work to aerobatic exploration and multi-UAV exploration.







