Attention coders, nerds, roboticists, tech entrepreneurs and general tech nerds!
We all know how fun drones are to fly manually, but to implement drones in industry at scale we will need fleets of autonomous drones performing various tasks.
What types of tasks are we talking about? Well a ton, but to name a few:
- Drone Delivery
- Pesticide Spraying Drones
- Area of Interest Surveillance
- Asset Integrity Inspection (Windmills, Oil Pipelines etc)
- Warehouse Inventory Scanning
- I could go on and on!
Some of you have probably already realized this, and are excited to get a jump on developing these new and innovative applications! But you may be loosely or completely lost on what software tools you’ll need to know to get started programming your own drone appplications!
How did the leading Drone Delivery company Matternet land their delivery drone on a Mercedes Benz delivery truck? With $31,000,000 in funding, they surely coded everything from scratch, right!?
Wrong! Well, you may not know this, but there is a completely free suite of open source software projects that we can use to stand on the shoulders of giants and rapidly prototype new drone applications! And they aren't just for hobbyists. The same software stack powering this Matternet drone is what you will be learning in this course!
There is even a python library with a ton of functions we can use to control the drone with high level commands, so you can focus on the high level code, and not worry about the low level code required to spin a motor!
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 you will be using a simulated drone right on your computer to test your code on (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 may try to decapitate you in real land.
This is not only convenient if you don't have a drone. Even when you graduate to using your new drone programming skills on a real drone to bring your drone idea to life, you'll still be prototyping the code first on a simulated drone! This is the key to rapid prototyping and debugging (and to saving tons of money hardware costs because your new script keeps crashing the drone!)
How will you be able to port your knowledge over to a real drone?
The core element in the software flight stack you will be learning about is the ArduPilot firmware. The great thing about ArduPilot, is it is very widely supported by a TON of flight control boards on the market, including any Pixhawk or Cube based drone. If you already know you will be building an ArduPilot supported board after you master this course, and don't want to go through the process of finding your own parts, check out our PiHawk drone kits, based on the Pixhawk and Raspberry Pi 4B!
So who is this course for??
- Someone with an entrepreneurial idea they want to bring into the world
- Software developers
- Manual flying drone hobbyists looking to get a little more technical
- Students working on research projects
- DIY backyard project engineers
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.
While this course is not structured for non-technical (aka non-nerdy) people. With enough determination and patience you will be able to follow along just fine. The main technical prerequisite knowledge you need is basic Linux commands and python (you can even quickly learn Linux commands here and basic python here)
"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. "
Low Level Details of What You Will 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."
There have been times in the past where we had to temporarily prevent new students from enrolling, as we can only support so many people's questions and learning process. If you are looking to dive into this material, I would recommend not procrastinating, as you may have to wait a month or so before enrollment opens back up.