Drone Programming Primer for Software Development
4.4 (651 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,436 students enrolled

Drone Programming Primer for Software Development

Fly a simulated drone and learn of the open source software projects that are empowering today's drones!
4.4 (649 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,436 students enrolled
Created by Caleb Bergquist
Last updated 1/2020
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 3.5 hours on-demand video
  • 3 articles
  • 27 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Students will gain knowledge of the open source software tools that make up the drone’s software stack
  • Know how to develop high level drone applications in python
  • Be able to test code they write on a simulated vehicle running on their computer
  • Use this foundational introductory knowledge to investigate more advanced drone software subjects
  • Basic linux knowledge of command line commands (cd, mkdir, vi etc)
  • Basic python knowledge for the dronekit section. (Understanding of any other programming language should suffice)
  • Only equipment that is needed is a computer with an internet connection
  • NO DRONE IS REQUIRED. We use a simulated vehicle in this course


Welcome to the Drone Programming Primer for Software Development, where you will learn of the core open source software projects that are fueling the progression of today’s drones!

The collection of open source software projects empowering drones (which we will call the flight stack) is transcending its hobbyist roots and is branching out into business applications at a high rate. This is going to translate to demand for drone engineers/developers who understand the open source flight stack.

This course will serve to introduce and familiarize you with the flight stack, which includes the following:

·         Firmware (To run the drones hardware)

·         Middleware (Communication glue between projects)

·         API to Firmware (High level commanding of drone with Ground Control Stations and Python scripts)

Think of this course as a gateway to becoming a drone engineer/developer. We will cover all of the layers of the flight stack, with slightly more focus on the API to Firmware layer. We will use a simulated drone as our test vehicle, so you can start drone coding right from your computer!

There are 5 main sections that contain over 3 hours of total video content.

Each topic contains:

·         A high-level introduction to the subject

·         A low-level dive into the details and application of the subject

Here are some of the topics that you will learn about in this course

·         Understanding of the importance for each component that makes up the flight stack

·         The open source autopilot software project of ArduPilot

·         How to fly a simulated drone from your computer running the ArduPilot codebase

·         MAVLink middleware and how it is used as a communication glue in the flight stack

·         Ground Control Stations and how they use MAVLink to interact with drones

·         Python scripts that use DroneKit and model your drone as an OOP object in a python script, allowing you to command a real drone from python

This course is not appropriate non-motivated non-technical people

This course assumes that you have some prerequisite knowledge of very basic Linux command line commands (like cd, mkdir, ls etc). There are plenty of online sources for getting up to speed if you are interested in drones but lack this knowledge. Basic python knowledge will also be useful once we get into the last section of the course (dronekit). You must know about the basic tabbing rules and syntax in python, and knowledge of how to make functions will be a plus as well. However, all python scripts in this course will be shown in the videos, allowing you to follow along without python knowledge should you be so brave. If you have basic programming knowledge, picking up the python syntax should only take about 30 minutes for a basic understanding.

What about required tools to follow along in this course? 

All you need is a computer! The software tools we will be using and learning about are absolutely free, and we will be testing our code on a simulated drone.

Should you join right now?

Check out the free lectures first and see if you think this course is right for you. We offer a 30 day money back guarantee on this course, so you can always return it if you decide later the course wasn’t for you.

Who is the target audience?

Anyone falling into the below three sections who want to obtain knowledge on the open source drone software projects that will make them valuable assets to the drone industry.

1.       Experienced Engineers/Developers looking to pivot their skillsets into tomorrow’s high growth job market of drones

2.       Hobbyist or Coders with cool drone DIY projects in mind

3.       Motivated non technical people who can independently learn the basic Linux and python knowledge to best follow along with this course


Who this course is for:
  • Engineers or Developers looking to retool their skills for drone software development
  • Hobbyists or Hackers with cool DIY drone projects in mind who want to learn more about open source drone software
  • Anyone who is motivated and wants to learn how to start coding with drones
Course content
Expand all 48 lectures 03:41:45
+ Dev Workstation and Dependency Setup
10 lectures 24:23
Different Methods for Workstation/Environment Creation
Setting Up Pre-Configured and Confirmed to Work Environment

Check to see that Virtualization is enabled on your computer. If it is, proceed to the next lecture. If it is not, you will need to enable virtualization of your CPUs from the BIOS. Check the link for detailed description and walkthrough: 


Once enabled, proceed to the next video!

Virtualization Check

VirtualBox will be needed for Windows and Mac users. If you already have a Ubuntu machine up and running, skip to lecture "Dependency Installations and Workstation Setup"

Virtual Box Installation and Ubuntu Download
Virtual Machine Setup

Once you have installed Ubuntu on your Virtual Machine, you will be prompted to update to Ubuntu 18. DO NOT DO THIS!! The course material has only been tested on Ubuntu 16, and bugs likely appear if you upgrade to Ubuntu 18.

Ubuntu Install on VirtualMachine
Dependency Installations and Workstation Setup
+ Ardupilot and SITL introduction
8 lectures 45:19
ArduPilot Introduction
Ardupilot Installation part 1
ArduPilot Installation part 2

////////////////////////////VIDEO SUMMARY//////////////////////////////////

An introduction of the various flight modes that are available to us in

the ardupilot software


What is a flight mode?

A flight mode is a particular way in which the rone can be controlled.

For example:

Stabilize flight mode: Uses exclusively RC Input from the pilot

to control the drone

Loiter flihgt mode: Uses GPS/Barometer and a myriad of other sensor

inputs to automatically hold the drone at a desired place in 3D space

without requiring input from the pilot.

Where can I learn more about flight modes in ardupilot?


Primary flight modes that will be used with a SITL droen, or a real drone

that you want to script flights for: GUIDED,AUTO,RTL,LAND

Flight Modes in ArduPilot
SITL Drone Introduction (Simulated Computer Drone)

This video is for those having a hard time finding the VIEW button for your map window of sim_vehicle.py

If you found it already, go onto the next video

DEBUG: VEW Missing from map window
Parameters in ArduPilot
Parameters with SITL Drone and MAVProxy
+ Ground Control Stations
6 lectures 32:10
Intro to Ground Control Stations
MAVProxy Overview
Connecting MAVProxy to SITL Drone
QGroundControl Installation
Connecting QGroundControl to SITL Drone
MAVProxy Commands
+ MAVLink
2 lectures 11:38
Intro to MAVLink
MAVLink Message Examples
+ DroneKit
17 lectures 01:28:31
Intro to DroneKit
DroneKit Installation
Function to Connect Python Script to SITL Drone part1
Function to Connect Python Script to SITL Drone part2
Attributes part1
Attributes part2
Parameters in DroneKit
Function to Arm and Takeoff Drone
Script to Automatically Launch QGC with DroneKit Script part1
Script to Automatically Launch QGC with DroneKit Script part2
Function to Move Drone To Waypoint
AUTO Flight Mode Overview
Autonomous DroneKit Mission With AUTO Mode
Velocity Based Movement and NED Sign Convention
Functions To Move Drone With Velocity Commands
Function to Control Yaw of Drone
+ Conclusion
2 lectures 07:26
Course Conclusion
Next Steps: Build a Code-able Drone?