# DRONA AVIATION: PLUTO DRONE SWARM CHALLENGE TASK 02  ### Our report can be found on the following link : [Report](https://drive.google.com/file/d/14VisF2-1MeQLHDXRPcfogC7ndMNbrivh/view?usp=share_link). ### To learn more about our API, check out our documentation on the following link : [Documentation](https://team11-auto.github.io/Team-11-Task2-Docs/modules.html). ## Overview The world is evolving rapidly, and in this stride forward, “the sky is the limit”. A part in this evolution is being played by the advent of drones in various applications ranging from commercial deliveries to recreation. India is anticipated to be the world’s 3rd-largest drone market [Drone Industry Insights Report 2020], with a projected worldwide industry of $42.8 billion by 2025. This new emerging sector would attract new talent and investments. Early exposure is the need of the hour to help build the talent needed to support this vision. With many complicated algorithms, software, and much time to set up your drone, Python programming language would be the right step towards an easy and accelerated learning curve and help the new entrants develop their solutions to real-world problems. Drona Aviation is building an ecosystem to support this skill development through Pluto - India’s only developer drone platform supporting the Indian Nano-Drone. Drona Aviation is primarily based on 4 fundamental principles complementing one another. The organization has worked hard to provide an open-source implementation with learning content. This serves as the basis for building upon their work, which is precisely what the company intends - helping young talents explore and incorporate their ideas. The report is based on the team's journey while attempting the “Pluto Drone Swarm Challenge”. ## Problem Statement The second task utilizes this python wrapper to achieve two objectives - (i) Hover the drone at a particular position, specified to be close to 4 feet with some variations (ii) Move the drone in a rectangular motion, following a trajectory of predefined dimensions The general framework to achieve these two objectives is provided. An ArUco Tag would be used to estimate the drone's position based on visual data from a USB web camera attached to the ceiling of the area where the drone is to be flown. Based on this feedback, a controller [Mentioned as a PID Controller] would be responsible for holding the drone on a trajectory. ## Table of Contents 1. [Installation](#installation) 2. [How To Run](#how-to-run) 3. [Code Structure](#code-structure) 4. [Fail Safe Scripts](#fail-safe) 5. [Runs : Hovering and Path Tracking](#hovering-pathtracking) # Installation This repository is built using Python 3.9.6 and tested on Ubuntu 22.04 LTS and Ubuntu 20.04 LTS environment. Follow these intructions 1. Clone the repository ```bash git clone https://github.com/InterIITDrona-Team11/Team11-Task2-Drona.git ``` 2. Run the following command to install the required dependencies ```bash python3 -m pip install -r requirements.txt ``` # How To Run `autoPluto.py` is the main python script which defines the class and also calls it to run the drone accordingly in the hover or rectangle tracking mode. 1. Connect to the Pluto Drone Wifi by entering the provided password. 2. Navigate to the directory where repository is cloned ```bash cd Team11-task2-Drona ``` To set the mode make appropriate changes in the `mode` attribute of `droneData.ini` file present in the controls directory. 3. Run the script autoPluto.py to run the different parts of task 02. ```bash python autoPluto.py ``` # Code Structure  # Fail Safe Script #### To ensure safety of the drone and the surrounding environment robust fail safe mechanism was implemented. #### Two situations where fail safe scripts are triggered have been shown below - 1. Occluding the ArUco marker for 3-4 seconds results in the drone landing safely. This can also be done using the hand of the user.
X co-ordinate Vs Y co-ordinate | Error in Z co-ordinate |
![]() |
![]() |
Cross Track Error | Error in Z co-ordinate |
![]() |
![]() |