CASE STUDY.
AUTONOMOUS DRONE
PROJECT OVERVIEW
In high school, I embarked on a project that would go on to shape my passion in technology: the creation of a fully autonomous drone. Collaborating with three other students, we set out to combine mechanical engineering principles with sophisticated coding techniques. Our mission was to develop a drone capable of autonomous flight, guided by a pre-determined path plotted on a computer. This project was the first time I had touched Code and it ignited a passion for technology and coding that has propelled me to where I am today.
OBJECTIVES
1. Learn and Apply C++: Acquire a working knowledge of C++ to develop the drone’s autonomous navigation capabilities.
2. Integrate Software with Pre-existing Systems: Seamlessly combine our custom software with the drone’s onboard computer system to achieve desired functionalities.
3. Achieve Autonomous Navigation: Enable the drone to fly a designated path autonomously by inputting coordinates before launch.
4. Foster a Love for Coding: Through hands-on experience, discover the potential of coding and its impact on solving real-world problems.
2. Integrate Software with Pre-existing Systems: Seamlessly combine our custom software with the drone’s onboard computer system to achieve desired functionalities.
3. Achieve Autonomous Navigation: Enable the drone to fly a designated path autonomously by inputting coordinates before launch.
4. Foster a Love for Coding: Through hands-on experience, discover the potential of coding and its impact on solving real-world problems.
CHALLENGES
Mastering a New Programming Language: All team members were beginners in C++, necessitating a steep and rapid learning curve.
Software-Hardware Integration: Integrating our custom C++ code with the pre-existing software of the drone’s onboard computer presented technical hurdles.
Achieving Autonomy: Designing a system that could reliably interpret coordinates and navigate a path autonomously was complex and required innovative problem-solving.
Limited Experience: As our first coding project, we had to overcome a lack of experience in both software development and project management.
Software-Hardware Integration: Integrating our custom C++ code with the pre-existing software of the drone’s onboard computer presented technical hurdles.
Achieving Autonomy: Designing a system that could reliably interpret coordinates and navigate a path autonomously was complex and required innovative problem-solving.
Limited Experience: As our first coding project, we had to overcome a lack of experience in both software development and project management.
SOLUTIONS.
LEARNING C++ AS A TEAM
Understanding that mastery of C++ was crucial, we dedicated ourselves to learning the language together. Through online resources, collaborative study sessions, and trial and error, we gradually improved our coding skills. This collective learning approach fostered a supportive environment that was crucial for our project’s success.
INTEGRATING CUSTOM SOFTWARE
The school provided us with a basic onboard computer system, which included some pre-installed programs. Our task was to develop additional software that could interpret geographical data and control the drone’s flight path accordingly. By dissecting how the pre-installed programs interacted with the drone’s hardware, we were able to create compatible custom software that enhanced the drone’s capabilities to meet our objectives.
BUILDING THE DRONE
Our project involved building the drone, which was crucial for achieving our goals. We used four efficient propellers and motors for optimal lift, and constructed the body from lightweight materials to balance durability and flight performance. Custom 3D-printed propeller guards ensured safety and efficiency. The drone’s heart was its main computer, which we integrated with our C++ software for flight control. A centrally placed battery optimized the power-to-weight ratio, essential for extended flight times. Additionally, we equipped the drone with a camera for live feed monitoring via remote control, enhancing our ability to conduct safe and controlled autonomous flights.
ACHIEVING AUTONOMOUS NAVIGATION
The centerpiece of our project was enabling the drone to autonomously navigate a plotted path. We achieved this by developing a user interface on a computer where we could input specific coordinates. Our software then translated these inputs into commands for the drone. After rigorous testing and refinements, we successfully demonstrated the drone’s ability to autonomously fly the designated path, initiated by a simple switch. After autonomous flight was achieved we attached a wooden box to the bottom with a mechanical latch that we could program so the drone could make light deliveries.
CONCLUSION.
The autonomous drone project was more than just a high school assignment; it was the catalyst for my career in software development. It taught me the value of perseverance, collaboration, and the thrill of bringing innovative ideas to life through coding. This experience has been a constant source of inspiration and a reminder of where my journey in technology began. It underscores my belief in the potential of coding to solve complex problems and transform ideas into reality.