Probabilistic path planning for heterogenous UAV swarms.
:warning: Code is buggy :warning:
This repository contains files related to the "Multi-UAV Swarm for Search & Rescue" project, undertaken at the Mobile Robotics Laboratory in the Indian Institute of Science, Bengaluru.
We compared the performace of this model to the conventional lawn-mower model, both in simulation and physical environments. Our model outperforms the conventional algorithms ¹.
The exploration model here is based on the novel "Weight Based Probabilistic" path planning algorithm ², described in the figure below.
Figure 1.1 Weight-Based Exploration
2.1. Trigger the ENVIRONMENT
. This launches mavros
, mavlink
& the prototyping environment:
sarthak@Cipher:~/catkin_ws/src$ ./environmentlaunch.sh
This triggers the mavros
node to control the UAV and sources
the catkin
environment.
2.2. The OFFBOARD
control for the autonomous traversal of the environment can be triggered using the quad_node
node.
sarthak@Cipher:~/catkin_ws/src$ rosrun quad quad_node
2.3. Trigger the survivor model by invoking the quad_observer_node
.
sarthak@Cipher:~/catkin_ws/src$ rosrun quad quad_observer_node
The velocity of the survivor has been set in variables.hpp
, and can be varied accordingly. For our tests, we set this velocity to either 0.3 or 0.6 m/s.
2.4. A subber.py
script has been created to subscribe to the UAV's and the survivor's position, which are described as ROS topics.
sarthak@Cipher:~/catkin_ws/src/quad/include/quad/plotter$ python subber.py
The script subscribes to topics of the form, /uavX/mavros/global_position/local
& /uavX/survivor_position
for plotting.
Note: X referes to a variable number of UAVs that can be deployed using this stack.
2.5 The ros_graph
of the simulation environment is shown below.
Figure 2.1 ROS Graph of the simulation environment
mavros
node on a PX4 Autopilot board.Figure 3.1 Simulation Environment on ROS
Here, the UAV attempts to find the survivor using the lawn-mower.
Figure 3.2 UAV Lawn-Mower Trajectory in Simulation
UAV X Coordinate Variation | UAV Y Coordinate Variation | UAV Z Coordinate Variation |
---|---|---|
Survivor X Coordinate Variation | Survivor Y Coordinate Variation | Survivor Z Coordinate Variation |
---|---|---|
The UAV starts out following the lawn-mower pattern, then follows the probabilistic pattern upon receiving a stream of messages from the quad_observer_node
.
Figure 3.3 UAV Weight-Based Trajectory in Simulation
UAV X Coordinate Variation | UAV Y Coordinate Variation | UAV Z Coordinate Variation |
---|---|---|
Survivor X Coordinate Variation | Survivor Y Coordinate Variation | Survivor Z Coordinate Variation |
---|---|---|
Figure 3.4 UAV used for Physical Testing
Trajectory | Trajectory X-Y Projection |
---|---|
UAV X Coordinate Variation | UAV Y Coordinate Variation | UAV Z Coordinate Variation |
---|---|---|
Survivor X Coordinate Variation | Survivor Y Coordinate Variation | Survivor Z Coordinate Variation |
---|---|---|
Trajectory | Trajectory X-Y Projection |
---|---|
UAV X Coordinate Variation | UAV Y Coordinate Variation | UAV Z Coordinate Variation |
---|---|---|
Survivor X Coordinate Variation | Survivor Y Coordinate Variation | Survivor Z Coordinate Variation |
---|---|---|
[¹] - Ravichandran, Rahul., Debasish Ghose and Kaushik Das. UAV Based Survivor Search during Floods. In International Conference on Unmanned Aircraft Systems (ICUAS), pages 1407–1415, 2019.
[²] - Shetty, Sarthak J., Rahul Ravichandran, Lima Agnel Tony, N. Sai Abhinay, Kaushik Das, and Debasish Ghose. Implementation of Survivor Detection Strategies Using Drones. arXiv preprint arXiv:2003.12559, 2020.
@article{Shetty-et-al-2020,
title={Implementation of Survivor Detection Strategies using Drones},
author={Sarthak J. Shetty and Rahul Ravichandran and Lima Agnel Tony and N. Sai Abhinay and Kaushik Das and Debasish Ghose},
publisher={arXiv pre-print},
note={\url{https://arxiv.org/abs/2003.12559}},
year={2020}
}