SarthakJShetty / Weight

Probabilistic path planning for multi-robot systems. Published in CONNECCT 2021 & Elseiver 2021.
1 stars 0 forks source link
robotics ros swarm-intelligence swarm-robotics

Weight

Probabilistic path planning for heterogenous UAV swarms.

:warning: Code is buggy :warning:

1.0 Introduction:

Weight-Based Exploration

Figure 1.1 Weight-Based Exploration

2.0 Simulations:

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. alt text Figure 2.1 ROS Graph of the simulation environment

3.0 Results:

3.1 Simulation Results:

ROS Simulation Environment

Figure 3.1 Simulation Environment on ROS

3.1.1 Lawn-Mower Results:

Here, the UAV attempts to find the survivor using the lawn-mower.

UAV Lawn-Mower Trajectory in Simulation

Figure 3.2 UAV Lawn-Mower Trajectory in Simulation

UAV X Coordinate Variation UAV Y Coordinate Variation UAV Z Coordinate Variation
alt text
Survivor X Coordinate Variation Survivor Y Coordinate Variation Survivor Z Coordinate Variation
alt text

3.1.2 Weight-Based Results:

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.

UAV Weight-Based Trajectory in Simulation

Figure 3.3 UAV Weight-Based Trajectory in Simulation

UAV X Coordinate Variation UAV Y Coordinate Variation UAV Z Coordinate Variation
alt text alt text alt text
Survivor X Coordinate Variation Survivor Y Coordinate Variation Survivor Z Coordinate Variation
alt text alt text alt text

3.2 Physical Testing Results:

alt text Figure 3.4 UAV used for Physical Testing

3.2.1 Lawn-Mower Results:

Trajectory Trajectory X-Y Projection
alt text alt text
UAV X Coordinate Variation UAV Y Coordinate Variation UAV Z Coordinate Variation
alt text alt text alt text
Survivor X Coordinate Variation Survivor Y Coordinate Variation Survivor Z Coordinate Variation
alt text

3.2.2 Weight-Based Results:

Trajectory Trajectory X-Y Projection
alt text alt text
UAV X Coordinate Variation UAV Y Coordinate Variation UAV Z Coordinate Variation
alt text alt text
Survivor X Coordinate Variation Survivor Y Coordinate Variation Survivor Z Coordinate Variation
alt text alt text alt text

4.0 References:

[¹] - 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.

5.0 Citation:

@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}
}