Rescue People


 

The goal of this exercise is to program a drone to search and localize the position of lost people on the high seas.

 

To do this we must get to the estimate coordinates of the accident, then perform a coverage algorithm to explore the zone and, by recognizing the faces, count the number of people and where they are. Finally the drone must return to the boat to land.


First we need to transform the GPS coordinates to UTM. We used an online conversion tool that returned the following:

-Survivors : 430492m E, 4459162m N.

-Boat : 430532m E, 4459132m N.


So the position we must tell the drone to go to is -40m East and 30m North.


To cover the area where the accident occurred, the drone will describe a spiral movement and since there are no objects near we do not have to take care of the obstacle avoidance part. Each iteration the linear velocity and angle to face will increase to achieve this, the final trajectory will be similar to this outline:



Now for the face detection we will use the Haar-cascade detection from OpenCV. To detect the face despite of the camera orientation, the image will be rotated until a face is found or it returns to its original position. Then we obtain the coordinates in the world frame by detecting the center of the face, and applying a linear regression to get the global position.

To not detect a same face multiple times we get the euclidean position between the new position and each one already in the list. Then we set a threshold distance, and if is higher we add it to the list.



For the landing a simple control in position is used to return to the boat. A possible improvement to this behavior would be to add a color filter, but the results are pretty good without it too.

 

An execution of the program can be seen here:

 




Comments

Popular posts from this blog

Local Navigation with VFF

Autoparking

Global Navigation with GPP