ME 224: Computational Methods for Robotics (Winter 2022)

This is an introductory course providing the students with the mathematical and computational tools used in diverse areas of robotics. Topics include introductions to linear algebra, numerical root finding, convex optimization, and nonlinear programming.


Course Objective: The overall objective of this course is to provide the students with the necessary mathematical knowledge and computational tools to understand and solve various problems in robotics. This class is foundational for any student interested in taking interdisciplinary classes in the areas of controls and dynamical systems, robotics, machine learning, and signal processing. The course content will be motivated by examples from robotics but the focus is on the mathematical concepts.

The specific learning objectives for the student are to:
● understand some of the mathematical and computational foundations of robotics;
● understand the fundamentals of linear algebra and matrix theory;
● understand the fundamentals of numerical methods for solving nonlinear systems of equations;
● understand optimization algorithms, their properties, and common solution algorithms;
● be able to use common computational tools and computing languages, particularly MATLAB;
● be able to implement numerical algorithms for data analysis, matrix analysis, and optimization algorithms using MATLAB.


Instructor: Erfan Nozari (erfan.nozari@ucr.edu)


Lecture Times & Location: Tu \& Th, 12:00 - 1:20pm Pacific Time; via Zoom (link announced on iLearn)
Lab Times: Tu \& Th, 1:30 - 2:50pm Pacific Time; via Zoom (same link as lectures)


Source material: Provided notes and slides

Lecture Notes (uploaded and updated regularly):
Lecture 1: Linear Algebra


Textbooks (optional):
● Mark W. Spong et al, “Robot Modeling and Control”, 2nd Ed.
● C. T. Chen, “Linear System Theory and Design”, 3rd Ed.
● Gilbert Strang, “Introduction to Linear Algebra”, 5th Ed.
● Timmy Siauw et al, “An Introduction to MATLAB® Programming and Numerical Methods for Engineers”
● Stephen Boyd et al, “Convex Optimization”
● Dimitri P. Bertsekas, “Nonlinear programming”, 3rd Ed.


Grading: midterm & final: 30%/50% or 40%/40% (whichever helps you), homeworks: 20% + 7% extra, course evaluations: 3% extra


Homeworks: 8 sets (6 sets + 2 sets extra grade), about one per week; due on Tuesdays at noon via iLearn


Schedule (tentative):
Week 1 (1/4, 1/6): Vectors and Matrices
Week 2 (1/11, 1/13): Vector Spaces
Week 3 (1/18, 1/20): Change of Basis
Week 4 (1/25, 1/27): Systems of Linear Equations
Week 5 (2/1, 2/3): Matrix Decompositions
Week 6 (2/8): Symmetric Matrices
Midterm: 2/10, during normal class and lab time (12-2:50)
Week 7 (2/15, 2/17): Numerical Root Finding
Week 8 (2/22, 2/24): Numerical Integration, Least Squares
Week 9 (3/1, 3/3): Convex Optimization
Week 10 (3/8, 3/10): Nonlinear Programming
Final: Wednesday, March 16, 8:00 a.m - 11:00 a.m. Pacific Time

A syllabus with full schedule can be found here.