Lesson 1
Welcome!
In this lesson you'll meet your instructors and go over some of the logistical details of this Nanodegree program.
Nanodegree Program
Master autonomous flight software engineering skills as you learn about drone robotics, develop sophisticated flying car systems, and write real code for real aircraft.
Master autonomous flight software engineering skills as you learn about drone robotics, develop sophisticated flying car systems, and write real code for real aircraft.
Advanced
4 months
Real-world Projects
Completion Certificate
Last Updated December 22, 2023
Skills you'll learn:
Prerequisites:
Course 1 • 1 week
In this course, you will get an introduction to flight history, challenges, and vehicles. You will learn about our quadrotor test platform, work in our custom simulator, and build your first project—getting a quadrotor to take-off and fly around a backyard!
Lesson 1
In this lesson you'll meet your instructors and go over some of the logistical details of this Nanodegree program.
Lesson 2
In this lesson you'll get a high level overview of the concepts underlying autonomous flight and the physical components from which flying vehicles are made.
Lesson 3 • Project
In this lesson you'll write the "Hello, world!" of drone programming as you write event-driven code that causes a quadrotor to take off, fly in a square, and land.
Lesson 4
Walkthrough the steps you need to take to get your code running on an actual drone! We'll show you the steps for the "Intel Aero", but a lot of what you'll learn applies to other drones as well.
Lesson 5
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.
Lesson 6
What to do if you have questions about your account or general questions about the program.
Course 2 • 2 weeks
Flying robots must traverse complex, dynamic environments. Wind, obstacles, unreliable sensor data, and other randomness all present significant challenges. In this course, you will learn the fundamentals of aerial path planning. You will begin with 2D problems, optimize your solutions using waypoints, and then scale your solutions to three dimensions. You will apply these skills in your second project—autonomously navigating your drone through a dense urban environment.
Lesson 1
Solving the planning problem really comes down performing search through a state space to find a path from a start state to a goal state and here you'll get a chance to do just that!
Lesson 2
Your vehicle has a physical size and orientation in the world and here you'll learn how to think about position and orientation as part of your planning solution.
Lesson 3
Graphs are really just a way of describing how your search space is connected. Here you'll learn about the tradeoffs between grids and graphs and each can be used in your planning representation.
Lesson 4
Here you'll make the leap from two dimensions to three dimensions and discover how you can use different representations of your search space to optimize your planning solution.
Lesson 5
In this lesson, you'll dive deep into some advanced concepts that are crucial to motion planning in the real world, where a consideration for physics and preparedness for the unexpected are crucial.
Lesson 6 • Project
In this project, you'll get a chance to apply what you've learned about 3D motion planning from the last several lessons to plan and execute a mission in a complex urban environment!
Course 3 • 4 weeks
In the previous course, we implemented 3D path planning but assumed a solution for actually following paths. In reality, moving a flying vehicle requires determining appropriate low-level motor controls. In this course, you will build a nonlinear cascaded controller and incorporate it into your software in the project.
Lesson 1
Learn how flying vehicles move in one and two dimensions by understanding how propellers create forces and moments which cause accelerations and rotations.
Lesson 2
Learn how to control a drone moving in one dimension using Proportional Integral Derivative (PID) Control.
Lesson 3
The controls problem becomes more difficult in two dimensions. Learn how to use a cascaded PID control architecture to control a flying vehicle that moves in two dimensions.
Lesson 4
In this lesson you'll take everything you've learned so far about vehicle dynamics and control and put it together to control a quadrotor that moves in three dimensions.
Lesson 5 • Project
In this project you'll implement a controller for a quadrotor in C++.
Lesson 6
Walkthrough the steps you need to take to get a version of your controls project on a crazyflie!
Course 4 • 1 month
In this course, we will finish peeling back the layers of your autonomous flight solution. Instead of assuming perfect sensor readings, you will utilize sensor fusion and filtering. You will design an Extended Kalman Filter (EKF) to estimate attitude and position from IMU and GPS data of a flying robot.
Lesson 1
Review basic probability and learn three approaches to state estimation for a stationary vehicle.
Lesson 2
In this lesson you'll learn about the sensors a drone uses to localize itself in the world. You'll implement sensor models, analyze sources of error, and perform calibration of various sensors.
Lesson 3
In this lesson you'll learn how to estimate the state of a drone that's actually moving! You'll implement a Kalman Filter for a 1D drone and an Extended Kalman Filter for a non-linear 2D drone.
Lesson 4
Take what you learned in the previous lesson and generalize to three dimensions. After learning about the 3D EKF you'll also learn another estimation algorithm called the Unscented Kalman Filter.
Lesson 5 • Project
In this project you'll implement an estimator to track the position and attitude of a quadrotor moving in three dimensions.
Lesson 6
How do you estimate vehicle state when you don't have GPS? In this lesson you'll learn about optical flow and particle filters as two approaches to solving this problem.
Founder and Executive Chairman, Udacity
As the Founder and Chairman of Udacity, Sebastian's mission is to democratize education by providing lifelong learning to millions of students worldwide. He is also the founder of Google X, where he led projects including the Self-Driving Car, Google Glass, and more.
Curriculum Lead
Andy has a bachelor's degree in physics from MIT, and taught himself to program after college (mostly with Udacity courses). He has been helping Udacity make incredible educational experiences since the early days of the company.
Product Lead
Jake is a PhD Candidate in AI at Stanford University focused on robotics, perception, and human-centered design. Prior to serving as Product Lead at Udacity, he founded an early-stage food-technology startup and consulted on flying cars.
Instructor
Raffaello is a Professor of Dynamic Systems and Control at the Swiss Federal Institute of Technology (ETH) in Zurich. He is also the founder of Verity Studios, and a co-founder of Kiva Systems (now Amazon Robotics).
Instructor
Angela is an Assistant Professor at the University of Toronto Institute for Aerospace Studies (UTIAS), and an Associate Director of the Center for Aerial Robotics Research and Education (CARRE) at the University of Toronto.
Instructor
Nicholas Roy is a Professor in the Department of Aeronautics & Astronautics, and a member of the Computer Science and Artificial Intelligence Laboratory, at MIT. He also founded Project Wing at X.
Instructor
Sergei has a PhD in MechE from ETH Zurich and a BS in ECE from Cornell. He brings experience from projects such as industrial drones, self-driving cars and controls testbeds. He is a TED Fellow and founder of Fotokite.
Average Rating: 4.85 Stars
116 Reviews
Jose Jesus C.
September 8, 2022
The projects are incredible!
Curt C.
April 12, 2022
So far so good. Udacity courses are always high quality. This one is no different.
Jeff R.
March 27, 2022
Program has started out well. It's challenging and has given me some good hands on experience programming autonomous vehicles at a high level (mostly path-programming). Hoping to get into stabilizing flight and flight control later in the course.
Marcelo M.
March 1, 2022
I am trying to do my best, even having less time that necessary. The begining of the project surprised me, as I can see the results of my efforts.
Omar E.
January 1, 2022
This project level was very good to start with of course the technical content wasn't that rich, but it gave me a big experience dealing with Coding in python, GIT version Control & GitHub along with the simulator, and also in searching the web for missing information. Looking Forward for the big Knowledge ahead!
Combine technology training for employees with industry experts, mentors, and projects, for critical thinking that pushes innovation. Our proven upskilling system goes after success—relentlessly.
Demonstrate proficiency with practical projects
Projects are based on real-world scenarios and challenges, allowing you to apply the skills you learn to practical situations, while giving you real hands-on experience.
Gain proven experience
Retain knowledge longer
Apply new skills immediately
Top-tier services to ensure learner success
Reviewers provide timely and constructive feedback on your project submissions, highlighting areas of improvement and offering practical tips to enhance your work.
Get help from subject matter experts
Learn industry best practices
Gain valuable insights and improve your skills
Unlimited access to our top-rated courses
Real-world projects
Personalized project reviews
Program certificates
Proven career outcomes
Full Catalog Access
One subscription opens up this course and our entire catalog of projects and skills.
Average time to complete a Nanodegree program
(365)
3 months
, Intermediate
1 month
, Beginner
(732)
3 months
, Intermediate
3 weeks
, Advanced
(451)
2 months
, Advanced
(331)
4 months
, Advanced
(175)
3 months
, Advanced
(450)
3 months
, Intermediate
(500)
2 months
, Intermediate
(89)
3 months
, Advanced
(6)
2 months
, Intermediate
1 hour
, Discovery
(497)
4 months
, Advanced
(256)
2 months
, Intermediate
1 month
, Beginner
2 months
, Beginner