
Prof. Chad Jenkins
Instructor
Office Hours: W 3-5PM @ FRB 2236
ocj [at] umich [dot] edu
Learn how to code by making robots navigate autonomously!
The objective for Robotics 102 is the implementation and understanding of autonomous navigation algorithms for mobile robots. Students in Robotics 102 will be introduced to the foundations of AI and programming by implementing algorithms for autonomous omni-drive robots. The course provides an introduction to C++ and Python through the lens of robotics.
Robotics 102 gives Engineering students early exposure to Robotics and AI as a foundation for a general engineering education as well as preparation for deeper study in Robotics and AI. Robotics 102 shares the objective of Engineering 101 as a first-year semester course to gain fluency in computer programming and algorithmic thinking. Algorithms are an organized means to construct the solution of a problem, structured as a well-defined set of steps that can be carried out by a mechanism such as a computer. Robotics 102 focuses on the development of algorithms to solve problems of relevance in robotics and artificial intelligence and implementation of these algorithms using high-level computer languages.
Students in Robotics 102 will complete projects throughout the semester which provide exposure to foundational concepts in autonomous decision making, including:
Robotics 102 is a new course being offered as part of the emerging Michigan Robotics Undergraduate Program. A pilot course was offered in Fall 2021. See what the first class of Robotics 102 students got up to!
The course schedule for Fall 2022 can be found below. Links to lecture material, projects, and other relevant recourses will be added as they are released. The schedule is subject to change.
Date | Lecture | In-class Activities | Project |
---|---|---|---|
Week 1 | |||
Aug 30 | Course Initialization Overview [Slides] | Fetch Robot Demo | Out: Project 0 (Pocket Calculator) |
Sept 1 | Lecture Video: Hello World! [Slides] |
First C++ Program
[Slides]
Teleoperated Robot Racing |
|
Sept 2 | Lab cancelled | ||
Week 2 | |||
Sept 6 | Lecture Video: Operators and Variables [Slides] |
Laser range conversion
[Slides]
Practice: Variables & Operators |
|
Sept 8 |
Lecture Video: C++ Functions
[Slides] Lecture Video: Branching and Iterators [Slides] |
Follow Me (with the robot!) [Slides] | |
Sept 9 | Lab: Introduction to the MBot-Omni [Slides] | Out: Project 1 (Wall Follower) | |
Week 3 | |||
Sept 13 | Lecture Video: C++ Vectors and Structs [Slides] | Find Minimum Ray [Slides] | |
Sept 15 | Follow Me (2D) [Slides] | ||
Sept 16 | Lab: Wall Following [Slides] | ||
Week 4 | |||
Sept 20 | C++ Review [Slides] [Replit] | ||
Sept 22 | Quiz 1 | Due: Project 0 (Pocket Calculator) | |
Sept 23 | Lab Hours | ||
Week 5 | |||
Sept 27 | Project 1 (Wall Following) Hacking | ||
Sept 29 | Demo Day: Project 1 (Wall Follower) | Due: Project 1 (Wall Follower) | |
Sept 30 | Lab cancelled | ||
Week 6 | |||
Oct 4 | Super Mario State Machine [Slides] [Turnstile FSM Code] | Out: Project 2 (Bug Navigation) | |
Oct 6 | Lecture (In-class): Coordinate Frames [Slides] | P2.1: Robot Hits the Spot | |
Oct 7 | Lab: Odometry [Slides] [Odometry Derivation] | ||
Week 7 | |||
Oct 11 | Lecture Video: Bug Algorithm & State Machines [Slides] | ||
Oct 13 | Quiz 2 | ||
Oct 14 | Lab Hours | ||
Week 8 | |||
Oct 18 | Fall Break - No class | ||
Oct 20 | Lecture Video: Mapping & Local Search [Slides] | Pair Navigation | |
Oct 21 | Lab Hours | ||
Week 9 | |||
Oct 25 | Lecture Video: Global Search: Breadth First Search & A-Star Path Planning [Slides] | Demo Day: Project 2 (Bug Navigation) | Due: Project 2 (Bug Navigation) |
Oct 27 | Pathfinding in Michigan [Lecture Video] [Slides] [Handout] | ||
Oct 28 | Lab: Graph Search in C++ [Slides] | ||
Week 10 | |||
Nov 1 | Extended Office Hours | Out: Project 3 (Path Planning) | |
Nov 3 | Autonomous Navigation Review | ||
Nov 5 | Lab: Robot Localization Workflow [Slides] | ||
Week 11 | |||
Nov 8 | Quiz 3 | ||
Nov 10 | Lecture Video: Machine Learning & Image Classification [Slides] | ||
Nov 11 | Lab: Programming in Python [Slides] | ||
Week 12 | |||
Nov 15 | Lecture Video: Introduction to Python [Slides] | Pocket Calculator in Python | |
Nov 17 | Lecture Video: Nearest Neighbors [Slides] | Object Detection with Deep Learning | |
Nov 18 | Lab: Python Matrices and using NumPy [Slides] | Image Distance in Python | |
Week 13 | |||
Nov 22 | Demo Day: Project 3 (Path Planning) |
Out: Project 4 (Machine Learning) Due: Project 3 (Path Planning) |
|
Nov 24 | Thanksgiving - No class | ||
Nov 25 | Thanksgiving - No lab | ||
Week 14 | |||
Nov 29 |
Lecture Video:
Optimzation & Neural Networks
[Slides] F21 Lectures (optional): Linear Classifiers & Gradient Descent [Slides], Neural Networks [Slides] |
||
Dec 1 | Quiz 4 | ||
Dec 3 | Lab Hours | ||
Week 15 | |||
Dec 6 | Course Recap & Feedback Session | ||
Dec 8 | Demo Day: Project 4 (Machine Learning) | ||
Dec 9 | Lab Hours |
Due: Advanced Extensions Due: Project & Activity Resubmissions for Regrading |
|
Week 16 | |||
Dec 16 | Due: Project 4 (Machine Learning) |
The office hour schedule for Fall 2022 can be found below. You must be logged in to your UM account in order to see the event details. You can also access the calendar or add it to your calendar using GCal this link.
Office Hours: W 3-5PM @ FRB 2236
ocj [at] umich [dot] edu
Office Hours: TuTh 2-3PM @ FRB 2171
pavlasek [at] umich [dot] edu
broderio [at] umich [dot] edu
toppingm [at] umich [dot] edu
olita [at] umich [dot] edu
omerb [at] umich [dot] edu
lchukka [at] umich [dot] edu
imadhav [at] umich [dot] edu
andrenan [at] umich [dot] edu
mbrobin [at] umich [dot] edu
joesphut [at] umich [dot] edu
fvolcic [at] umich [dot] edu
willcon [at] umich [dot] edu