Need ENGIN 101? Register for ROB 102 this Fall!

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. Through building autonomous navigation algorithms for an omni-drive robot, students in Robotics 102 will be introduced to the foundations of AI and how to program computers for AI algorithms. Students will gain exposure to modeling AI problems as graphs and performing inference though graph algorithms in C++ and Julia.

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.

In the context of autonomous navigation, Robotics 102 will provide concrete examples in robotics and AI that provide exposure to foundational concepts in autonomous decision making, including:

  • Sense-Plan-Act paradigm
  • Finite state machines and Reactive automata
  • Feedback control
  • Wall following and Subsumption architectures
  • Potential Field navigation and Optimization algorithms
  • A-Star algorithm and Graph search
  • Neural networks and Image classification

Robotics 102 is a new course being offered as part of the emerging Michigan Robotics Undergraduate Program. Robotics 102 for Fall 2021 is part of a new Distributed Teaching Collaborative offered in collaboration with Berea College.

Schedule

All lecture slides are available here. They will be linked in the schedule once they are available.

Course Schedule (UMich)

Date Topic In-class Activities Project
Week 1
Aug 30 Course Initialization Overview [Slides] Out: Project 0
Sept 1 Lecture Video: Hello World! [Slides] C++ Hello World (online)
Pair Navigation
(and fast teleop navigation run)
Sept 3 Lab: Coding Workflow [Slides]
Week 2
Sept 6 Labor Day - No class
Sept 8 Lecture Video: C++ Operators and Variables [Slides]
Lecture Video: C++ Functions [Slides]
Laser ray conversion
Sept 10 Lab Cancelled: Robotics Building Dedication Ceremony
Week 3
Sept 13 Lecture Video: C++ Branching and Iteration [Slides] Bang-Bang Control (1)
Sept 15 Bang-Bang Control (2)
(on a robot!)
Out: Project 1
Sept 17 Lab: Robot Workflow [Slides]
Week 4
Sept 20 Lecture Video: C++ Vectors & Structs [Slides]
Sept 22 2D Control (on a robot!)
Code linked on Slack
Sept 24 Lab: Wall Following [Slides]
Week 5
Sept 27 Quiz 0 (Practice Quiz) C++ Review
Sept 29 Project 1 (Wall Following) Hacking
Oct 1 Lab: Project 1 (Wall Following) Hacking
Week 6
Oct 4 Lecture Video: Autonomous Navigation: Local Search [Slides]
Quiz 1
Due: Project 0
Due: Project 1
Oct 6 Demo Day: Project 0 & Project 1
Oct 8 Lab: Navigation Workflow [Slides] Out: Project 2
Week 7
Oct 11 Lecture Video: Potential Field Navigation: Distance Transform [Slides] Potential Field Navigation (on a robot!)
Potential Field Demo
Code linked on Slack
Oct 13 Lecture: Distance Transform (2) Distance Transform in C++
Template Code
Oct 15 Lab: Potential Field Navigation [Slides]
Week 8
Oct 18 Fall Break - No class
Oct 20 Project 2 (Potential Field Control) Hacking
Oct 22 Lab: Project 2 (Potential Field Control) Hacking
Week 9
Oct 25 Lecture: Path Planning & Depth First Search Due: Project 2
Out: Project 3
Oct 27 Demo Day: Project 2
Oct 29 Lab: Path Planning Code Overview
Week 10
Nov 1 Lecture: A-Star and Optimal Path Planning (1)
Nov 3 Lecture: A-Star and Optimal Path Planning (2)
Nov 5 Lab: Project 3 (Path Planning) Hacking
Week 11
Nov 8 Lecture: Machine Learning and Image Classification
Nov 10 Lecture: Programming in Julia
Nov 12 Lab: Julia and Jupyter Notebooks
Week 12
Nov 15 Lecture: Nearest Neighbors Due: Project 3
Out: Project 4
Nov 17 Demo Day: Project 3
Lecture: Linear Classifiers and Gradient Descent
Nov 19 Lab: Julia Programming
Week 13
Nov 22 Lecture: Neural Networks
Nov 24 Thanksgiving - No class
Nov 26 Thanksgiving - No lab
Week 14
Nov 29 Fairness and Ethics in AI
Dec 1 Lab Tours
Dec 3 Lab: Project 4 (Machine Learning) Hacking
Week 15
Dec 6 Lab Hours Due: Project 4
Dec 8 Lab Hours
Dec 10 Lab Hours

Course Staff

Prof. Chad Jenkins
Instructor

Office Hours: MW 1-3PM @ FRB 2236
ocj [at] umich [dot] edu

Prof. Jasmine Jones
Instructor (Berea College)

jonesj2 [at] berea [dot] edu

Jana Pavlasek
Co-Instructor

Office Hours: Tu 10AM-12PM, W 3-5PM @ FRB 2000
pavlasek [at] umich [dot] edu

Prof. Jan Pearce
Instructor (Berea College)

pearcej [at] berea [dot] edu

Tommy Cohn
Instructional Aide

Office Hours: F 10AM-12PM @ FRB 2000
cohnt [at] umich [dot] edu

Tom Gao
Instructional Aide

Office Hours: Th 11AM-1PM @ FRB 2000
zimingg [at] umich [dot] edu

Brody Riopelle
Instructional Aide

Office Hours: Th 12-1PM, F 11AM-12PM @ FRB 2000
broderio [at] umich [dot] edu

Max Topping
Instructional Aide

Office Hours: Tu 2-4 PM @ FRB 2000
toppingm [at] umich [dot] edu