Welcome to
RBE595-F02-ST: Hands-On Autonomous Aerial Robotics course at
WPI. This course is taught by
Prof. Nitin J. Sanket. Please sign up for
Piazza if you haven't done so already.
All the class announcements will be made through
Piazza. Please use
Piazza to contact TAs. Please do NOT contact the TA's or the Instructor via email unless it's an emergency, and do NOT contact the TA's on any social media platform such as Facebook or WhatsApp (please respect their privacy) regarding course content. If you want to have a chat about our research, feel free to reach out to Prof. Sanket after class.
All the student reports will be released publicly online to enable better learning experience for others. We will be also announce top three submissions for each announcement on the website. All the projects and homeworks are to be submitted using
Canvas. If you find any errors/typo in the course github
website, please edit the markdown '.md' file and send a 'pull request'. If you don't know how to use pull request, please check out this
tutorial, alternatively post on
Piazza.
Homework 0 (HW0) has been released on Aug 14, 2023 and is due on Aug 28, 2023. The knowledge from HW0 is a pre-requisite for the class.
.
What is this course about?
This is an advanced course on autonomy stack for aerial robots. A unique aspect of this course is its hands-on aspect. Our goal is to train the students to develop real-time perception, planning, control and AI algorithms for the realization of autonomous aerial systems. The course follows a series of projects that will finally build upto an autonomous drone race on an obstacle course in which the students will compete.
This course will explore rigid body transformations, attitude estimation, Bayesian filter, Linear and Unscented Kalman filters, Path and Motion planning, Deep learning, sim2real, Camera models, Gaussian Mixture Models, Image Processing, Visual feature detection and tracking, Projective Geometry, Optical Flow, Stereopsis, Quadrotor Dynamics and Controls, Structure from Motion/SLAM.
Team
Teaching Assistant
he/him/his
Pre-requisities
Programming proficiency in Python 3, experience with Linux and completion of HW0 is a hard pre-requisite. We assume that the students are proficient with basic Linear Algebra, calculus and machine learning to the level of an undergraduate class. Experience working on quadrotors, ROS and Linux is a big plus.
Office Hours
- Manoj Velmurugan: TBD.
- Prof. Nitin J. Sanket: TBD, UH250E.
Expectations
This course is fast-paced and has high-expectations of time and effort commitment from students. The students are expected to complete projects on time since the concepts build on top of each other and it is very easy to fall behind in this course. Please understand the concepts well, ask questions, use
Piazza heavily and come to office hours. Help your peers out, but do not plagiarize.
Software Environment
We will use Python 3 as the programming platform throughout this course along with packages from OpenCV, PyTorch, Numpy, Scikit and Matplotlib.
Assignments
All projects are to be done in groups of
THREE. However, we encourage you to discuss with your peers and not cheat. For clarifications, post a private post on
Piazza. For further details, read the
Collaboration Policy and Honor Code below.
Assignment Name With Link |
Deadline |
Grade Percentage |
P1: Magical Filtering! |
Friday, Sept 15, 2023 at 11:59:59 PM (Group Submissions) |
17 |
P2: Path Following! |
Wednesday, Oct 04, 2023 at 11:59:59 PM (Group Submissions) |
18 |
P3: Mini Drone Race! |
Wednesday, Nov 01, 2023 at 11:59:59 PM (Group Submissions) |
20 |
P4: Navigating The Unknown! |
Monday, Nov 20, 2023 at 11:59:59 PM (Group Submissions) |
18 |
P5: The Final Race! |
Friday, Dec 15, 2023 at 11:59:59 PM (Group Submissions With Live Race) |
22 |
In-class Quizzes (5) |
Announced before class |
5 |
Class Slides
Class Number |
Class Date |
Slides/Resources |
Class Topic(s) |
1 |
Aug 24 2023 |
Slides, Video:
| Introduction, Logistics And What is a Robot? |
2 |
Aug 28 2023 |
Slides, Video: |
Rigid Body Transformations, Rotations and Velocities |
3 |
Aug 31 2023 |
Slides, Video: |
IMU Basics, Attitude Estimation using CF and Madgwick, Bayes Filter |
4 |
Sept 07 2023 |
Slides, Video: |
Kalman Filter, EKF, UKF |
5 |
Sept 11 2023 |
Slides, Video: |
Quadrotor Hardware |
6 |
Sept 14 2023 |
Slides, Video: |
Quadrotor Dynamics And Linear Controls |
7 |
Sept 18 2023 |
Slides, Video: |
Graph and Sampling based planners |
8 |
Sept 21 2023 |
Slides, Video: |
Trajectory and Motion Planning |
9 |
Sept 25 2023 |
Slides, Video: |
Deep Learning and Neural Networks |
10 |
Sept 28 2023 |
Slides, Video: |
NN Tuning, GANs, Bayesian NNs |
11 |
Oct 02 2023 |
Slides, Video: |
Simulation for Data Generation and Sim2Real |
12 |
Oct 05 2023 |
Slides, Video: |
Cameras And Image Formation |
13 |
Oct 09 2023 |
Slides, Video: |
Fundamentals of Image Processing |
14 |
Oct 12 2023 |
Slides, Video: |
Image Features and Descriptors |
15 |
Oct 23 2023 |
Slides, Video: |
Camera Models And Projective Transformations |
16 |
Oct 26 2023 |
Slides, Video: |
Homography and Epipolar Geometry |
17 |
Oct 30 2023 |
Slides, Video: |
Triangulation and PnP |
18 |
Nov 02 2023 |
Slides, Video: |
Factor Graphs for Fusion |
19 |
Nov 09 2023 |
Slides, Video: |
Optical Flow and Velocities |
20 |
Nov 13 2023 |
Slides, Video: |
Detection And Segmentation |
21 |
Nov 16 2023 |
Slides, Video: |
Learned Depth: Monocular and Stereo |
22 |
Nov 20 2023 |
Slides, Video: |
Visual Inertial Odometry |
23 |
Nov 27 2023 |
Slides, Video: |
Reinforcement Learning |
24 |
Nov 30 2023 |
Slides, Video: |
Guest Lecture (Davide Falanga) |
25 |
Dec 04 2023 |
Slides, Video: |
Guest Lecture (Davide Scaramuzza) |
26 |
Dec 07 2023 |
Slides, Video: |
Guest Lecture (Nick Rehm) |
27 |
Dec 11 2023 |
Slides, Video: |
Guest Lecture (Guido de Croon) |
28 |
Dec 14 2023 |
Slides, Video: |
Summary, Recap and Conclusions |
Syallbus
Singular Value Decomposition, Linear Least Squares, Random Sample Consensus, Image Acquisition, Color Spaces, Gaussians, Color Segmentation, Expectation Maximization, Gaussian Mixture Model, Convolution, Filtering in images, Corner and Edge Detection, Projective Geometry, Camera Model, Feature Matching, Homography, Classifiers, Optical Flow, Fundamental and Essential Matrix, Epipolar Geometry, Perspective-n-points, Bundle Adjustment, Fiducial markers, Factor graphs, Pose Graph Optimization, Visual Odometry, Structure from Motion, RGB-D reconstruction, perceptron, backpropagation, convolutional neural networks, deep learning.
Piazza and ELMS
If you haven't done so already, register yourself on
Piazza with your wpi email. We'll be using
Piazza for all announcements and discussions. Please use
Piazza to contact the instructor/TAs (Feel free to use private posts on
Piazza to contact me/TAs). Please do
NOT contact the instructor/TAs via email unless it's an emergency, and do
NOT contact the instructor/TAs on any social media platform such as Facebook or WhatsApp (please respect our privacy) regarding course content. If you want to have a chat about research, chat with Prof. Sanket after class.
All the assignments will be released on
this website page.
All the assignments are to be submitted using
Canvas. If you find any errors/typo in the course github
website, please edit the required markdown '.md' file and send a 'pull request'. If you don't know how to use pull request, please check out
this tutorial.
Submission Policy
The submissions are made through Canvas (unless otherwise specified) with the name
HWk_DirID.zip (for homeworks,
Pk_DirID.zip for projects) (where
k is the assignment number, for e.g., for homework 0, this would be
HW0_DirID.pdf). Here,
DirID is your directory ID, i.e., the first part of your wpi email address. For e.g., if your wpi email address is
ABCD@wpi.edu, then your
DirID is
ABCD. Keep your submissions professional, grammatically correct without spelling mistakes. Do not use slangs and chat shorthands on your submissions.
You'll get 25% grade penalty for not following the submission guidelines.
Late Submission Policy
This course moves quickly, and concepts will build on top of each other. Therefore it's very important to keep up with the material. To encourage this, late assignments are penalized for 25% per day after the due date. But life is unpredictable; we all need a break sometimes. So, we allow you
seven late days, to spend on any assignment(s) except the quizzes and the final project (P5). You may submit an assignment late (after the due date) using a late day without any penalty. Think of a late day as pushing the deadline back by a day. So, to get full credit on a 2-days-late assignment, you'd need to use two late days. Late days can only be spent as full days (i.e., you can't use only half a late day for an assignment you submit 12 hrs late). If you are using a late day, mention it in the title of your submission as
"USING X LATE DAY(S)" and post a comment on Canvas about the usage of a late day. We expect you to keep track of number of late days you have remaining and notify us of usage of one or more late days. We will default for penalty if we don't see the mention of late day usage as a comment on ELMS on that particular assignment. Again,
If you are using a late day, mention it in the title of your submission as "USING X LATE DAY(S)".
Collaboration Policy and Honor Code
Collaboration is encouraged, but one should know the difference between collaboration and cheating. Cheating is prohibited and will carry serious consequences. Cheating may be defined as using or attempting to use unauthorized assistance, material, or study aids in academic work or examinations. Some examples of cheating are: collaborating on an take-home exam or homework unless explicitly allowed; copying homework; handing in someone else's work as your own; and plagiarism. You are welcome to collaborate with your peers on
Piazza and in person. However it's important that the work you submit is an expression of your understanding, and not merely something you copied from a peer. So, we place strict limits on collaboration: Firstly, you must clearly cite your collaborators by name at the top of your report. This includes
Piazza posts reference. You may not share or copy each other's code. You can discuss how your code works, and the concepts it implements, but you can't just show someone your code. You may use free and publicly available sources, such as books, journal and conference publications, and web pages, as research material for your answers. (You will not lose points for using external sources.) You may not use any service that involves payment, and you must clearly and explicitly cite all outside sources and materials that you made use of. We consider the use of uncited external sources as portraying someone else's work as your own, and as such it is a violation of the University's policies on academic dishonesty. Instances will be dealt with harshly and typically result in a failing course grade. Unless otherwise specified, you should assume that that the UMD Code of Academic Integrity applies. Unless otherwise specified, you should assume that that the
WPI Code of Academic Integrity applies.
Reference Books
All concepts will be covered in class lecture, and in the lecture notes. However, we also recommend the following books as good references:
- Multiple view geometry in computer vision, Cambridge university press, Richard Hartley, and Andre Zisserman, 2003.
- Computer Vision: Algorithms and Applications, Springer, Richard Szeliski, 2010.
- Computer vision: A Modern Approach, Prentice Hall, David Forsyth, and Jean Ponce, 2002.
- Digital Image Processing, Prentice Hall, Rafael Gonzalez, and Richard Woods, 2008.
- Deep Learning Book, MIT Press, Ian Goodfellow, Yoshua Bengio, and Aaron Courville, 2016.
Furthermore, refer to the slides from courses in the
acknowledgement section.
Acknowledgements
This course is developed by being inspired by adapting some of the best parts of each of the courses at multiple universities and these resources are linked below and you are encouraged to look at their content to learn from them as well.
The goal of this course is to be the best computer vision and robotics perception course in the world.
Powered By