Autonomous drone for search and rescue mission

Autonomous drone for search and rescue mission

For this exercise, we will design the control system for a drone intended for search and rescue missions. To assess the effectiveness of our program, we will simulate a shipwreck scenario. In this hypothetical situation, we will be informed of the presence of shipwreck survivors (with an unknown number of individuals) at specific coordinates. Our drone will need to navigate to the designated area, sweep the vicinity for survivors, report to the rescue team, and ultimately return to the takeoff zone.

Drone behavior:

For the fulfillment of our mission, we will implement a state machine in which our drone will start from the 'disarmed' state, needing to arm and take off before transitioning to the 'go to survivors' state. Once the drone is in the last sighting zone, it will switch to the 'search' state, where it will perform a spiral sweep and record the location of any spotted survivor. Finally, upon completing the search, it will transition to the 'return to takeoff zone' state, where it will land and report to the rescue team.

To summarize, the drone states in the state machine are:

1. Disarmed: The initial state where the drone is powered off and not prepared for flight.

2. Go to Survivors: The drone arms¹, takes off, and heads towards the area where the survivors are located.

3. Search: Once in the last sighting zone, the drone performs a spiral sweep to search for survivors and records their locations.

4. Return to Takeoff Zone: After completing the search, the drone returns to the takeoff zone, lands, and provides information to the rescue team.

*Brief aside: The coordinates of the survivors and the boat from which the drone will take off are provided in GPS coordinates. To simplify calculations and drone control, I have chosen to convert the GPS coordinates to UTM using an online converter. Subsequently, to obtain coordinates in the Gazebo environment, I performed the conversion from UTM to Gazebo. Taking into account the UTM coordinates of the boat and the survivors, and assuming the boat is located at position X = 0, Y = 0, I can determine the position of the survivors in the Gazebo world by subtracting the UTM coordinates of the survivors from those of the boat.


Fig1. Example of converting GPS coordinates to UTM for the rescue boat.

Disarmed state: 

The drone will arm itself and take off, indicating that it is ready for the mission and ghanging to the state 'Go to Survivors'.

Go to Survivors state: 

The drone will convert the coordinates of the last sighting location of survivors from UTM to Gazebo coordinates and will move using three PIDs (velocity in the x-axis, y-axis, and z-axis) to the specified coordinates.

Search state:

The drone will plan a spiral route and use the 'Haar-cascade classifier' face detector from OpenCV to identify survivors, storing the drone's location corresponding to each observed survivor. For spiral route planning, I've developed an algorithm in OpenCV that creates a square spiral in the center of an image based on the specified number of iterations, with an adjustable distance between the spiral lines. This algorithm returns a list of coordinates in OpenCV, which we then need to adapt to Gazebo coordinates and the drone's location.

Furthermore, to avoid repeated detection of the same survivor, I consider that the drone has sighted a new survivor only if its current location significantly differs in meters from the location where a survivor was last seen. While this approach may pose challenges, such as the potential for not detecting two survivors together, for this example, I've chosen to simplify the process. A more robust method could involve storing survivor faces and using other OpenCV classifiers to determine whether it is a new survivor or not. However, for this example, distinguishing survivors based on the distance between drone sighting locations is sufficient.




Return to Takeoff Zone state:

The drone will return to the takeoff location, report on the survivors' locations, land, and disarm.

arm¹: Arming a drone refers to the process of preparing the unmanned aerial vehicle (UAV) for flight by activating its propulsion system, typically the motors or propellers. This involves enabling the power supply and initializing the necessary systems for the drone to become airborne. When a drone is armed, it is ready to take off and respond to flight commands from the pilot or an autonomous control system. Disarming, on the other hand, involves shutting down the propulsion system and deactivating the drone's flight capabilities, making it safe for handling and storage.




Comentarios

Entradas populares de este blog

Localized Vacuum Cleaner

OMPL Amazon warehouse