Guide: Robotics Club - IIT Tirupati
[Dec'22 - Feb'23]
Embarking on a journey to remote program India's best-selling educational nano drone, Pluto as a part of solution to Inter IIT Tech Meet 11.0 problem statement, was nothing short of exhilarating. This project provided me with the unique opportunity to delve into the intricacies of drone technology and develop a Python-based solution that allowed users to control Pluto without the need for a mobile application. Let me walk you through my perspective and experiences throughout this thrilling project.
Task 1: Pioneering a Python Wrapper for Pluto Drone
When I initially delved into the project, I was intrigued by the prospect of creating a Python wrapper for Pluto, allowing users to exercise full control over the drone. This task required a comprehensive understanding of the existing communication methods and the MSP (MultiWii Serial Protocol) packets used to communicate with Pluto.
I started with investigating the Pluto ROS package, which served as an invaluable reference point. It was here that I truly appreciated the depth of expertise required to navigate the complexities of drone communication and control. Armed with this knowledge, I embarked on the creation of a Python wrapper that would empower users to execute precise drone movements, including pitch adjustments, rolls, take-offs, and landings.
The most exciting part of Task 1 was when I remotely flew the Pluto drone using the Python wrapper from both Linux and Windows platforms. It was a moment of triumph, as I saw my code translating into real-world drone maneuvers. The anticipation of receiving the first Pluto drone at my provided shipment address was an additional thrill that underscored the real-world implications of my work.
Task 2: Autonomous Flight and ArUco Tag Adventure
Task 2 of the project was no less captivating. Here, the goal was to enable Pluto to autonomously hover at a specific height using an ArUco tag-based system. This phase of the project expanded my horizons even further.
First, I had to generate an ArUco marker and securely attach it to Pluto. It was fascinating to witness how this small, seemingly ordinary tag played a pivotal role in accurately determining the drone's position.
Incorporating a PID controller into the script was a crucial step that allowed me to experience the fine balance between precise control and stability. Watching Pluto hover effortlessly at the designated height was a sight to behold, as it underscored the potential for autonomous drone applications.
Taking things a step further, programmed Pluto to perform a rectangular motion, tracing a 1 x 2 meter path autonomously. This challenge pushed the boundaries of my programming skills and showcased the potential of autonomous drones in various practical scenarios.
In retrospect, this project was more than just a technical endeavor. It was a journey of exploration, innovation, and hands-on learning. It allowed me to delve deep into the world of drone technology, understand the intricacies of communication protocols, and witness the magic of autonomous flight.