Prepare for Tomorrow’s Powerhouse Industry, Today!
We all know the drone industry is advancing with rapid pace, but where are the drone programmers to build our airborne tomorrow? College has dropped the ball for offering comprehensive and dedicated drone educations, so it's time to bootstrap your own drone learning!
This comprehensive crash course goes into every bit of software that is needed to make drones fly, from the low level firmware to high level applications in python. Once we have knowledge of the software infrastructure of any drone, we start to get our hands dirty and start programming drones with python scripts.
Open source software is changing the world, and the drone industry is not immune from this trend either. All of the software used in this course is free and open source. From ArduPilot (the firmware) to Dronekit (python applications), you’ll learn about the hot open source projects that are propelling (pun definitely intended) the drone industry to new heights.
It took me 6 months to compile the knowledge used to make this course. Now you have a shortcut to learn 6 months of content in 40 lessons!
So this sounds all cool, but what if I don't have a drone?
Great news, you don’t need a drone to take this course! This is because we will be using a simulated drone right on your computer to test our code with (Thanks ArduPilot!!). The simulated drone responds to the code just as a real drone would, so you get to debug your code in simulation land, instead of in your backyard where your drone tries to decapitate you in real land.
So who is this course for??
To be successful in this course, you do not need any previous drone knowledge. All the basic drone knowledge you’ll need to know is covered in the course.
The only prerequisite skills you will need is basic linux command line and python knowledge, so a basic coding background is the perfect fit. Coders will be surprised how the skills they already possess overlap with drone programming.
The course is NOT structured for non-technical (aka non-nerdy) people. Therefore, if terms like ‘linux command line’ or ‘python’ or ‘virtual machines’ scare you, this course is not for you, yet. Go take the prereqs (learn linux commands here and basic python here), and come back properly equipped to become a drone programmer!
**If you are non-technical but are eager to learn, you could use this course to teach yourself linux and python in tandem with drone programming as Eric Tidmore did below**
"I am so happy to have come across this course. I literally just picked up programming and thought DroneKit would make a good intro to learning how to use a command terminal and work with different scripting languages. Within a day of watching through the tutorials I am already installing Linux on a Virtual Machine and running scripts. That's pretty rad. "
What you'll learn
- What autopilot firmware actually is and what it performs, specifically with ArduPilot
- What all ArduPilot has to offer, like different flight modes and SITL (simulated drone)
- How to test drone code on a simulated drone right from your computer
- How to communicate with drones programmatically and remotely by using ground control stations.
- Command line based (MAVProxy) and user interface based (QGroundControl) ground control stations.
- What middleware is and how it is used as a programming agnostic dialect. We will be using open source MAVLink
- How to to use python to script drone missions using the open source dronekit
- Understand how the various software projects fit together to form a coherent system, called a flight stack
- General knowledge of the different elemental pieces of the flight stack
Caleb Bergquist feels very uncomfortable with writing about himself, but he hopes you will pretend to read the rest of this while thinking he did not write this himself, and not judge him for his self-bloviating autobiography camouflaged as a biography. He digresses. Caleb Bergquist has a BS in Chemical Engineering from the University of Tulsa, and currently works as a DevOps engineer at a software company by day. By night, he is a hobbyist/tinkerer in many areas, but has been magnetized towards all things drones, from hardware to software. The trend here is that there is no trend. I’ve.. I mean, he has spent much time binge-learning of the myriad of open source projects that are fueling the development of the drone space, and wishes to lower the barrier of entry to these subjects for those coming behind him. He wishes to do this by combining his experience as an instructor, with the democratization of the knowledge he’s accumulated on the fringes of new technologies.
StartIMPORTANT SOFTWARE VERSION INFORMATION! (2:28)
StartDifferent Methods for Workstation/Environment Creation (3:04)
StartSetting Up Pre-Configured and Confirmed to Work Environment (3:38)
StartIMPORTANT DEV WORKSTATION NOTE!!
StartTake Advantage of the Course Forum for Debugging!
StartVirtualization Check on Host PC (1:05)
StartVirtual Box Installation and Ubuntu Download (2:44)
StartVirtual Machine Setup (4:43)
StartIMPORTANT!! DO NOT UPGRADE TO UBUNTU 20!!
StartUbuntu Install on VirtualMachine (3:24)
StartIMPORTANT!! DO NOT UPGRADE PIP OR USE SUDO PIP
StartDependency Installations and Workstation Setup (4:16)
StartQuiz Virtual Machines
StartArduPilot Introduction (9:35)
StartArdupilot Installation part 1 (3:48)
StartArduPilot Installation part 2 (4:30)
StartFlight Modes in ArduPilot (4:35)
StartSITL Drone Introduction (Simulated Computer Drone) (8:11)
StartDEBUG: VIEW Missing from Map Window (0:16)
StartParameters in ArduPilot (6:16)
StartParameters with SITL Drone and MAVProxy (8:07)
Frequently Asked Questions
"Twenty-four before I took this course I had no interest in drones let alone drone programming. I came across this course and decided to give it a try. Now I am glad I did! After completing the course and practicing with the library functions for 4 hours, I have decide to purchase a DIY drone kit to experiment further. The instructor's presentation has a logical order that presents the drone flight stack from the bottom up. The course has a consistent pace with drone coding ideas and concepts presented by example. The instructor's voice is clear and easy to understand. I also found the pointers to the drone software development resources useful."