# GVP-MREP **Repository Path**: drone1024/GVP-MREP ## Basic Information - **Project Name**: GVP-MREP - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-31 - **Last Updated**: 2025-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - [GVP-MREP](#GVP-MREP) - [Overview](#1-overview) - [Setup](#2-setup) - [Parameters](#3-parameters) - [Acknowledgements](#4-acknowledgements) - [Doing](#5-doing)
Paper Paper Paper
# GVP-MREP Fast and Communication-Efficient Multi-UAV Exploration Via Voronoi Partition on Dynamic Topological Graph (IROS 2024 accepted) # 1. Overview **GVP-MREP** is a distributed and communication-efficient multi-UAV exploration system. For lightweight multi-UAV communication, a multi-robot dynamic topological graph (MR-DTG) is designed. Supported by MR-DTG, graph Voronoi partition (GVP) is adopted to allocate exploration tasks to each UAV. Each UAV operates GVP and optimizes trajectories to their targets distributedly.

**Video Links**: [youtube](https://www.youtube.com/watch?v=AtG9stNVjX0) or [bilibili](https://www.bilibili.com/video/BV1KC411h79h/).

**Author**: [Qianli Dong (Charlie Dog)](https://github.com/charlie-dog) **Paper**: Fast and Communication-Efficient Multi-UAV Exploration Via Voronoi Partition on Dynamic Topological Graph, Qianli Dong, Haobo Xi, Shiyong Zhang, Qingchen Bi, Tianyi Li, Ziyu Wang and Xuebo Zhang, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2024, accepted. [IEEE](https://ieeexplore.ieee.org/document/10801613)/[Arxiv](https://arxiv.org/pdf/2408.05808) ``` @INPROCEEDINGS{10801613, author={Dong, Qianli and Xi, Haobo and Zhang, Shiyong and Bi, Qingchen and Li, Tianyi and Wang, Ziyu and Zhang, Xuebo}, booktitle={2024 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, title={Fast and Communication-Efficient Multi-UAV Exploration Via Voronoi Partition on Dynamic Topological Graph}, year={2024}, pages={14063-14070}, doi={10.1109/IROS58592.2024.10801613}} ``` # 2. Setup This work is developed in Ubuntu 20.04, [ROS noetic](http://wiki.ros.org/noetic/Installation/Ubuntu). **Prerequisites**: ``` $ 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 ``` **Simulation environment**: We adopt [RotorS](https://github.com/ethz-asl/rotors_simulator) as the simulation platform. To adapt to the scenario of multi-UAV exploration, we have made some modifications. You can get the modified version with: ``` $ mkdir -p rotors-ws/src $ cd rotors-ws/src $ git clone https://github.com/NKU-UAVTeam/rotors-modified.git $ git clone https://github.com/ethz-asl/mav_comm.git $ git clone https://github.com/catkin/catkin_simple.git $ cd .. $ catkin_make # if report error: "‘mavlink_status_t’ has not been declared", $sudo apt remove ros-noetic-mavlink. install it later $ echo "source ~/rotors-ws/devel/setup.bash --extend" >> ~/.bashrc ``` **Clone Code and Make**: ``` $ mkdir -p GVP-MREP/src $ cd GVP-MREP/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/GVP-MREP.git $ cd .. $ catkin_make ``` **Run Exploration**: ``` $ source devel/setup.bash $ roslaunch murder_swarm murder_swarm_maze4.launch #small maze #or $ roslaunch murder_swarm murder_swarm_maze3.launch #large maze #or $ roslaunch murder_swarm murder_swarm_testcity.launch #city ``` Mamba bless your UAV! # 3. Parameters **Exploration Space**: [murder_maze3.yaml](./Exploration/murder_swarm/resource/murder_maze3.yaml), [murder_maze3_ground.yaml](./Exploration/murder_swarm/resource/murder_maze3_ground.yaml) | [murder_maze4.yaml](./Exploration/murder_swarm/resource/murder_maze4.yaml), [murder_maze4_ground.yaml](./Exploration/murder_swarm/resource/murder_maze4_ground.yaml) ``` # 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 ``` In [murder_swarm_maze3.launch](./Exploration/murder_swarm/launch/murder_swarm_maze3.launch) | [murder_swarm_maze4.launch](./Exploration/murder_swarm/launch/murder_swarm_maze4.launch).Set the number of swarm: ```xml ``` In [murder_maze4.yaml](./Exploration/murder_swarm/resource/murder_maze3.yaml), [murder_maze3_ground.yaml](./Exploration/murder_swarm/resource/murder_maze3_ground.yaml) | [murder_maze4.yaml](./Exploration/murder_swarm/resource/murder_maze4.yaml), [murder_maze4_ground.yaml](./Exploration/murder_swarm/resource/murder_maze4_ground.yaml). This will cause larger communication volume. If you wanna see the explored map immediately: ``` block_map/vis_mode: true ``` In [murder_maze4.yaml](./Exploration/murder_swarm/resource/murder_maze3.yaml), [murder_maze3_ground.yaml](./Exploration/murder_swarm/resource/murder_maze3_ground.yaml) | [murder_maze4.yaml](./Exploration/murder_swarm/resource/murder_maze4.yaml), [murder_maze4_ground.yaml](./Exploration/murder_swarm/resource/murder_maze4_ground.yaml). Set the data recording path. Moreover, make sure there exists a directory: "/home/charliedog/data/swarm/maze4/MURDER/**n**" (for "n" UAVs): ``` Computation/dir: /home/charliedog/data/swarm/maze4/MURDER ``` ## 4. Acknowledgements We use [MINCO](https://github.com/ZJU-FAST-Lab/GCOPTER.git) for trajectory planning. ## 5. Doing The code annotation is comming soon.