/ColAG

ColAG: A Collaborative Air-Ground Framework for Perception-Limited UGVs' Navigation

Primary LanguageC++GNU General Public License v3.0GPL-3.0

ColAG

ColAG: A Collaborative Air-Ground Framework for Perception-Limited UGVs' Navigation

Table of Contents

  1. About
  2. How to Use
  3. Acknowledgments
  4. License
  5. Maintenance

1. About

Author: Zhehan Li $^\dagger$, Rui Mao $^\dagger$, Nanhe Chen, Chao Xu, Fei Gao, Yanjun Cao *

Preprint Paper: ColAG: A Collaborative Air-Ground Framework for Perception-Limited UGVs' Navigation.

Accepted in ICRA2024.

@article{li2023colag,
  title={ColAG: A Collaborative Air-Ground Framework for Perception-Limited UGVs' Navigation},
  author={Li, Zhehan and Mao, Rui and Chen, Nanhe and Xu, Chao and Gao, Fei and Cao, Yanjun},
  journal={arXiv preprint arXiv:2310.13324},
  year={2023}
}

If our source code is used in your academic projects, please cite our paper. Thank you!

2. How to Use

Compiling tests passed on Ubuntu 20.04 with ros1 installed.

For convenience, we listed the installation steps here

sudo apt install libglfw3-dev libglew-dev libarmadillo-dev libzmqpp-dev ros-noetic-mavros

git clone https://github.com/osqp/osqp
cd osqp
mkdir build
cd build
cmake -G "Unix Makefiles" .. 
cmake --build .
sudo cmake --build . --target install
# if meet "CMake 3.18 or higher is required. 
# You are running version 3.16.3", 
# change "cmake_minimum_required(VERSION 3.18)" 
# to "cmake_minimum_required(VERSION 3.16)"
# in all CMakeLists.txt.

git clone https://github.com/robotology/osqp-eigen.git
cd osqp-eigen
mkdir build
cd build
cmake ..
make
sudo make install
# if meet error, may caused by version mismatch
# we backup osqp and osqp-eigen source code in folder .bak,
# which is tested on Ubuntu 20.04

sudo apt install python3-pip
python3 -m pip install --upgrade --user ortools

The Air_ws, Ground_ws, MARSIM_ws are separated catkin workspace, since they based on ego-swarm

cd MARSIM_ws
catkin_make
cd Air_ws
catkin_make
cd Ground_ws
catkin_make

Open rviz for visualization

cd Air_ws
source devel/setup.sh
roslaunch ego_planner rviz.launch

Run the following in different command windows

Ensure the ugv_num is same in both swarm_sim.launch

cd MARSIM_ws
source devel/setup.sh
roslaunch test_interface single_drone_vlp32.launch
cd Ground_ws
source devel/setup.sh
roslaunch ego_planner swarm_sim.launch ugv_num:=3
cd Air_ws
source devel/setup.sh
roslaunch ego_planner swarm_sim.launch ugv_num:=3

Or use the run.sh to run the launches above

./run.sh 3 # the ugv num

Then send a trigger to start blind navigation

rostopic pub /traj_start_trigger geometry_msgs/PoseStamped "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: ''
pose:
  position:
    x: 0.0
    y: 0.0
    z: 0.0
  orientation:
    x: 0.0
    y: 0.0
    z: 0.0
    w: 0.0"

3. Acknowledgments

There are several important works which support this project:

  • MARSIM: A lightweight point-realistic simulator for LiDAR-based UAVs.
  • EGO-Swarm: A Fully Autonomous and Decentralized Quadrotor Swarm System in Cluttered Environments.
  • OR-Tools: Google's software suite for combinatorial optimization.
  • diablo_mpc: A MPC for diablo configuration(see as differential car).

4. License

The source code is released under the GPLv3 license.

5. Maintenance

We are still working on extending the proposed system and improving code reliability.

For any technical issues, please contact Zhehan Li (zhehanli@zju.edu.cn) or Yanjun Cao (yanjunhi@zju.edu.cn).

For commercial inquiries, please contact Yanjun Cao (yanjunhi@zju.edu.cn).