/multi_uav_simulator

This is a light weight and robust multi drone controller written in C++, based on geometric tracking controlling. The drones are capable of performing highly aggressive maneuvers such as flips and helical trajectories.

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

Multi-UAV-Simulator

An efficient and robust multi drone simulator based on ROS (Robot Operating System). The dynamics of the drones are modeled using a set of ODEs and solved via GSL. The trajectory tracking is performed using the geometric tracking controller proposed in [2], and a standalone implementation of the same can be found at https://github.com/malintha/geo_controller/. Consider citing our work [1] if you find this code helpful for your publications.

Checkout the crazyflie branch for the tuned controller for the Crazyflie nano-drone.

Cover Image

Install dependencies Please install Eigen, Armadillo and GNU Science Library (GSL) before you continue.

Building the simulator

Clone the following packages to your ROS workspace. i.e: (~/catkin_ws/src/).

git clone  https://github.com/malintha/multi_uav_simulator
git clone  https://github.com/malintha/geo_controller/
git clone  https://github.com/malintha/simulator_utils

Use catkin build to build the packages as below.

cd catkin_ws/ && source devel/setup.bash
catkin build multi_uav_simulator

Run the simulator

source devel/setup.bash
roslaunch multi_uav_simulator simu.launch

[1] Our work based on this controller:

@inproceedings{fernando2019formation,
title={Formation control and navigation of a quadrotor swarm},
author={Fernando, Malintha and Liu, Lantao},
booktitle={2019 International Conference on Unmanned Aircraft Systems (ICUAS)},
pages={284--291},
year={2019},
organization={IEEE}
}

[2] Original paper on the geometric tracking controller:

@inproceedings{lee2010geometric,
title={Geometric tracking control of a quadrotor UAV on SE (3)},
author={Lee, Taeyoung and Leok, Melvin and McClamroch, N Harris},
booktitle={49th IEEE conference on decision and control (CDC)},
pages={5420--5425},
year={2010},
organization={IEEE}
}