CSCI/ARTI 4530/6530: Introduction to Robotics (Fall 2019)

Time and Location of Lectures:

Monday (2:30-3:20 PM), Tuesday & Thursday (2:00-3:15 PM), Boyd #222

Office Hours and Location

Boyd 803, Tuesday & Thursday 1-2 PM or by an email appointment  

Course Overview

Students completing this course will gain an understanding of the hardware and software involved in robotics, with a focus on programming algorithms. Students will learn various mathematical and statistical models, associated algorithms, and their implementations, which are making modern-day robotics possible. They will understand the past, present and future of robotics, and the main challenges that make robotics difficult.

Textbook: "Introduction to Autonomous Mobile Robots" by Roland Siegwart, Illah Reza Nourbakhsh, and Davide Scaramuzza, MIT Press (2nd Ed. 2011)
Reference book: "Probabilistic Robotics" by Sebastian Thrun, Wolfram Burgard, and Dieter Fox. MIT Press (2005)

Note: We will follow the structure and content of the EdX course on Autonomous Mobile Robots and heavily use their slides in this class (all copyrights of the slides belong to the authors and EdX). It's an excellent course from the ETH Zurich team. The idea is that the student always has an additional venue for learning and reference.

Course Topics

The course topics presented here is a general plan for the course; deviations announced to the class by the instructor may be necessary.
I. Overview of Robotics: Introduction, Robot Hardware, Robotic Software Architectures, Probability Theory, Field Applications
II. Robotic Perception: Range Finders and Camera models
III. Robotic Motion: Kinematics, Velocity Motion Model, Odometry Motion Model, Motion and Maps
IV. Localization: State Estimation under Uncertainty, Filters: Bayes, Kalman, Extended Kalman, and Monte Carlo, Localization methods: Markov, Extended Kalman Filter, Particle Filter, Monte Carlo framework, etc.
V. Mapping: Occupancy Grid Mapping, Learning Inverse Measurement Model, Simultaneous Localization and Mapping (SLAM) solutions

The course is composed of both theoretical and practical components. There will be four assignments during this course and each assignment will have theoretical questions and practical programming problems. Likewise, the midterm and final exam has written quizzes and programming projects. Therefore, it is necessary to learn and perform well in both theoretical and practical parts of this course to pass the course.

Grading

Grading Item Percent
Class participation 5%
Assignments (Each 10%) 40%
Midterm Exam + Midterm Project 20%
Final Exam + Final Project 35%


Class Schedule

Date Day Topics Comments/Lecture Notes
08-15-2019 Thursday Course Introduction
08-19-2019 Monday Overview of Robotics,
History of Robotics,
Sensors, and Hardware
08-20-2019 Tuesday Wheeled kinematics - Introduction
ROS - Introduction
08-22-2019 Thursday ROS - Setup
08-26-2019 Monday Kinematics - Continued
08-27-2019 Tuesday Probability theory - Basics
08-29-2019 Thursday Sensors Model - Rangefinders
09-02-2019 Monday Holiday - Labor Day
09-03-2019 Tuesday ROS: Nodes, Topics, Publisher, and Subscriber
09-05-2019 Thursday Sensors Model: cameras
09-09-2019 Monday Sensors Model: Conclusion
Robot Perception: Introduction
09-10-2019 Tuesday Perception: Computer Vision - fundamentals
ROS: Subscriber and Custom Messages
09-12-2019 Thursday Perception: Image processing basics
09-16-2019 Monday ROS: Services and Parameters
09-17-2019 Tuesday Perception: Feature extraction, edge detection, corner detection, SIFT features, etc.
09-19-2019 Thursday Computer Vision: Line Extraction
Localization: Introduction to Markovian Approach
09-23-2019 Monday ROS: Assignment 1 discussions, running ROS across different machines
09-24-2019 Tuesday Localization: Markovian and Kalman Filter Approaches
09-26-2019 Thursday Localization - Probabilistic map-based localization, Markov localization, Kalman filter localization
09-30-2019 Monday ROS: rosbag and working with simulated data
Example implementation of EKF localization in Python
10-01-2019 Tuesday Localization: Particle Filters
10-03-2019 Thursday Localization: Examples
10-07-2019 Monday Mid-term exam (theory).
Practical Mid-term project will be annouced in the class
10-08-2019 Tuesday SLAM: Introduction to the SLAM problem, challenges
10-10-2019 Thursday Discussion of midterm questions and solutions
10-14-2019 Monday SLAM: Continued
10-15-2019 Tuesday ROS: Simulation in Gazebo
10-17-2019 Thursday SLAM: Continued
10-21-2019 Monday Machine Learning (Guest Lecture)
10-22-2019 Tuesday Cloud Computing and IoT (Guest Lecture)
10-24-2019 Thursday Demonstration of mid-term projects
10-28-2019 Monday ROS - rosparameters, joy teleop, laser scan data
10-29-2019 Tuesday SLAM - Recap and Conclusion
Navigation and Motion Planning - Introduction and Collision Avoidance
10-31-2019 Thursday Navigation and Motion Planning - Collision Avoidance using Potential Fields
11-04-2019 Monday ROS transform frames (tf) - static and dynamic transform
tf broadcaster and listener example in Python
11-05-2019 Tuesday Navigation and Motion Planning - Potential Fields (contd.)
Motion Planning - Graph Construction and Graph-based Search methods - Dijkstra, A*, RRT algorithms
11-07-2019 Thursday Navigation and path planning - A* Algorithm Example and Conclusion
11-11-2019 Monday ROS - actionlib, working with real robots
11-12-2019 Tuesday Robot Motion Models - Odometry and Velocity Models
11-14-2019 Thursday ROS Examples - SLAM
Discussion on Final Project
11-18-2019 Monday ROS Examples - Transfer Frames (TF)
Robot Applications in Radioactive Environments - Examples
11-19-2019 Tuesday ROS Practical - Hector SLAM
11-21-2019 Thursday Robot Planning - Markov Decision Process (MDP)
11-25-2019 Monday Uncovered Topic
11-26-2019 Tuesday Uncovered Topic
11-28-2019 Thursday Thanksgiving Break
12-02-2019 Monday Final Project Demonstrations
12-02-2019 Monday Final Project Demonstrations
TBA - Final Exam