This project uses the DJI Tello drone to accurately follow a path marked by printed tags indoors. The project is written in Python and uses the ROS framework extensively.
The project was carried out as part of the robot motion planning workshop held in Spring 2020.
We connect to the drone using its WiFi network and use the video feed it sends us to localize the drone relative to fiducial markers (objects placed in the field of view of an imaging system which appears in the image produced, for use as a point of reference or a measure) in the room and map the room. The localization is done by the AprilTag module and the mapping by the ORB-SLAM algorithm. This way we can reliably get to the tags and follow an indoor path.
During the development phase, we had many challenges and most of them were incurred by uncertainty about the drone’s movement, its limited stabilization system and the lack of advanced sensors on the drone (the DJI Tello is intended for non-professional use). We solved these problems with several methods and movement patterns that aim to optimize two factors. The first is ensuring that the drone doesn’t crash into a wall and lose the tags it already has in its frame, and the second is the time it takes the drone to reach the tag. We also focused on creating a complete solution to the given task and making it comfortable for the user. As such, we wrote a GUI for the project, wrote an auto-connecting script to the drone’s WiFi network and associated tags with drone commands, so it will do “tricks” such as flips when reaching the tag.
We presented our project at the School of Computer Science’s contest for best projects in the school year and won the first place (see photos below).