Robotics Courses (ROB)

*For more information regarding course equivalencies please refer to the Course Equivalency section, under “How to Read a Course Description“, in the CoE Bulletin Website: https://bulletin.engin.umich.edu/courses/course-info/

100 Level Courses

ROB 101. Computational Linear Algebra
(3 credits)
Linear algebra and computation as a means for reasoning about data and making discoveries about the world. Topics: The Julia programming language. Systems of linear equations. Vectors, matrices, inverses. Regression. Matrix factorization. Spatial coordinates. Cameras, LiDARS, accelerometers, single-axis gyroscopes, encoders. Optimization and robot perception. What is an ODE. CourseProfile (ATLAS)

ROB 102. Introduction to AI and Programming
Advisory Prerequisite: ROB 101 (Computational Linear Algebra) or ROB 103 (Robotic Mechanisms). (4 credits)
Algorithms and programming for robotics and artificial intelligence in C++ and high-level scientific programming languages; autonomous navigation and search algorithms; introduction to models of computing through graphs and graph algorithms. CourseProfile (ATLAS)

200 Level Courses

ROB 203. Robotics Mechanisms
Advisory Prerequisite: ROB 101. Enforced Prerequisite: No credit in ENGR 100, topic “Robotics Mechanisms (topic ID 29)”. (2 credits)
Hands-on design, build, and operations of robotic systems. Students develop maker-shop skills (3D printing, laser cutting, milling, etc.), gain experience in embedded programming and controls, system design and integration. CourseProfile (ATLAS)

ROB 204. Introduction to Human-Robot Systems
Prerequisite: (ROB 102 or ENGR 101 or EECS 183 or ENGR 151 or EECS 180); and ENGR 100; and preceded or accompanied by: (ROB 101 or MATH 214 or MATH 217 or MATH 417 or MATH 419). Minimum grade requirement of “C-” for enforced prerequisite. (4 credits)
Foundations in human-robot systems. Covers identifying and describing how human capabilities and behaviors inform robotic design. Survey of theories, methods, and findings from relevant domains (e.g., cognitive/physical ergonomics, psychology, human-centered design), with attention to how these concepts influence robotic systems and design within development teams. CourseProfile (ATLAS)

ROB 290. Directed Study
Prerequisites: None. (1-6 credits)
Individual study of specialized aspects of robotics. Undergraduate students only. CourseProfile (ATLAS)

ROB 298. Special Topics in Robotics
Prerequisites: None. (1-8 credits)
Topics of current interest in Robotics. CourseProfile (ATLAS)

300 Level Courses

ROB 310. Robot Sensors and Signals
Prerequisite: ROB 204 and (EECS 215 or BME 211). Minimum grade requirement of “C-” for enforced prerequisite. Advisory Prerequisite: ROB 101 (Computational Linear Algebra) and ROB 103 (Robotic Mechanisms) (4 credits)
Covers practical analog and digital electronics for robotics. Students will: prototype, test, and debug various analog and digital circuits; interface a microcontroller to external circuits; learn to design and prototype circuit boards; interpret data recorded from physical circuits. An exploration of circuits and embedded systems that supports integrated robotic design. CourseProfile (ATLAS)

ROB 311. How to Build Robots and Make Them Move
Enforced Prerequisite: ROB 204. Minimum grade requirement of “C-” for enforced prerequisite. Advisory Prerequisite: (EECS 215 or PHYSICS 240 or PHYSICS 260 or MECHENG 240 or BIOMEDE 231) and ROB 310. (4 credits)
Introduces the fundamentals of mechanical design, control, fabrication, actuation, instrumentation, and
computer interfaces required to realize robotic systems. Students will learn to analyze/simulate rigid body
kinematics, kinetics, and dynamics, as well as assess the impedance properties of their designs. ‘Hands-on’ skills will be emphasized in addition to theoretical concepts. CourseProfile (ATLAS)

ROB 320. Robot Operating Systems
Prerequisite: ROB 204 and EECS 280. Minimum grade requirement of “C-” for enforced prerequisite. Credit Exclusions: Only 1 course may earn credit from ROB 320, ROB 380, ROB 511, and EECS 367. (4 credits)
General computational paradigm for robot operating systems that model, simulate, and control mobile manipulation robots. Composition of full-stack software systems for forward and inverse kinematics, planar path planning, high-dimensional motion planning, maximal coordinate robot simulation, and front-end visualization that work through interprocess communication. CourseProfile (ATLAS)

ROB 330. Localization, Mapping, and Navigation
Enforced Prerequisite: ROB 204 and EECS 280. Minimum grade requirement of “C-” for enforced prerequisite. Advisory Prerequisite: (IOE 265 or EECS 301) and (MECHENG 240 or MECHENG 360) and (MATH 215 or MATH 216). (4 credits)
Development of full-stack autonomous navigation and mapping for mobile robots. Topics include dead
reckoning from odometry, sensor modeling of LIDAR and cameras, visual odometry, path planning, and
simultaneous localization and mapping (SLAM). CourseProfile (ATLAS)

ROB 340. Human-Robot Interaction
Prerequisite: ROB 204. Minimum grade requirement of “C-” for enforced prerequisite. Advisory Prerequisite: ROB 311 (4 credits)
Covers psychophysics, modeling a human operator within a control loop, and measuring human performance in the context of robotic systems. These topics support robotic systems in unstructured and unknown environments with a human supporting decision making, mitigating risks and extending capabilities of the human-robot team. CourseProfile (ATLAS)

ROB 380 (EECS 367). Introduction to Autonomous Robotics
Prerequisite: EECS 281 and (MATH 214 or 217 or 296 or 417 or 419 or ROB 101); (C or better; no OP/F). Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisite. Credit Exclusions: Only 1 course may earn credit from ROB 320, ROB 380, ROB 511, and EECS 367. (4 credits)
A computational introduction to the modeling and control of autonomous robots and mobile manipulators. Programming projects and lectures cover 3D coordinate systems, axis-angle rotation, forward and inverse kinematics, physical simulation and numerical integration, motion control, path planning, high-dimensional motion planning, and robot software systems. Emphasizes portable programming of general robots. CourseProfile (ATLAS)

400 Level Courses

ROB 422. (EECS 465) Introduction to Algorithmic Robotics
Prerequisite: EECS 280 and MATH 215 and (junior standing or senior standing) or graduate standing. Minimum grade requirement of “C” for enforced prerequisite. Advisory Prerequisite: EECS 281 and (MATH214 or MATH 217 or MATH 417 or MATH 419 or ROB 101) or permission of instructor. (3 credits)
An introduction to the algorithms that form the foundation of robot planning, state estimation, and control. Topics include optimization, motion planning, representations of uncertainty, Kalman and particle filters, and point cloud processing. Assignments focus on programming a robot to perform tasks in simulation. CourseProfile (ATLAS)

ROB 450. Robotics Capstone
Prerequisite: Junior standing or senior standing and [TCHNCLCM 350, (C or better)] and [ONE of ROB 310, 311, 320, 330, or 340], (C or better)]. Minimum grade requirement of “C” for enforced prerequisites. (4 credits) 
Primary goal is to challenge students to synthesize the knowledge acquired through their Robotics undergraduate courses at U-M using a systematic and iterative design and analysis process and applying it to solving a real open-ended Robotics problem. CourseProfile (ATLAS)

ROB 464 (EECS 464). Hands-on Robotics
Prerequisite: EECS 216 or EECS 281 or ME 360 or CEE 212 or IOE 333 or Grad Standing.  Minimum grade requirement of “C” for enforced prerequisites. (4 credits) 
A hands-on, project based introduction to the principles of robotics and robot design.  Multiple team projects consisting of design and implementation of a robot.  Theory: motors, kinematics & mechanisms, sensing/filtering, planning, pinhole cameras.  Practice: servo control, project management; fabrication; software design for robotics.  Significant after hours lab time investment. CourseProfile (ATLAS)

ROB 490. Directed Study
Prerequisite: None. (1-6 credits) 
Individual study of specialized aspects of robotics. Undergraduate students only. CourseProfile (ATLAS)

ROB 498. Special Topics in Robotics
Prerequisite: None. (1-8 credits) 
Topics of current interest in robotics. CourseProfile (ATLAS)

500 Level Courses

ROB 501. Mathematics for Robotics
Prerequisite: Graduate standing or permission of instructor. Advisory Prerequisite: differential equations and matrix algebra recommended. (4 credits)
Applied mathematics for robotics engineers. Topics include vector spaces, orthogonal bases, projection theorem, least squares, matrix factorizations, Kalman filter and extensions, particle filters, underlying probabilistic concepts, norms, convergent sequences, contraction mappings, Newton Raphson algorithm, nonlinear constrained optimization, local vs global convergence, convexity, linear and quadratic programs, and randomized search strategies. CourseProfile (ATLAS)

ROB 502. Programming for Robotics
Prerequisite: None. (3 credits)
Graduate level project-based programming and computer science course for Robotic engineers. Topics include data representation, memory concepts, debugging, recursion, search, abstractions, threading, and message passing. The average student will have already written MATLAB programs about 250-500 lines long and will have basic familiarity with C syntax. CourseProfile (ATLAS)

ROB 511. Mobile Manipulation Systems
Advisory Prerequisite: Linear Algebra (Math 214, 217, 417, 419 or equivalent) and Programming (EECS 280, EECS 402, ROB 502 or equivalent). Prerequisite: None. Credit exclusions: Only 1 course may earn credit from ROB 320, ROB 380, ROB 511, and EECS 367. (3 credits)
Introduction to computational models, algorithms, and software systems for full-stack autonomous robot control that generalizes across a wide variety of mobile manipulation platforms. Topics include robot description conventions, path and motion planning, reactive control, forward and inverse kinematics, dynamical simulation, numerical integration, and robot middleware design. Extensive programming. CourseProfile (ATLAS)

ROB 520. Motion Planning
Advisory Prerequisite: Undergraduate linear algebra (e.g. MATH 214) and significant programming experience (e.g. EECS 281). (3 credits)
Focuses on algorithms that reason about the movement of robots. These algorithms can be used to generate sequences of motions for cars, arms, and humanoids. Students will implement motion planning algorithms in open-source frameworks, read recent literature in the field, and complete a project that draws on the course material. CourseProfile (ATLAS)

ROB 550. Robotic Systems Laboratory
Prerequisite: Graduate standing or permission of instructor. (4 credits)
Multidisciplinary laboratory course with exposures to sensing, reasoning, and acting for physically-embodied systems. Intro to kinematics, localization and mapping, planning, control, user interfaces. Design, build, integration, and test of mechanical, electrical, and software systems. Projects based on a series of robotic platforms: manipulators, mobile robots, aerial or underwater vehicles. CourseProfile (ATLAS)

ROB 560. BioInspired Robotic Design
Advisory Prerequisite: ROB 550. (4 credits)
Examines original scientific research to extract general principles that can be applied to robotics, such as:
template and anchor models, walking, running, swimming, flying, sensing, and navigation. Students build
functional prototypes and learn about the bioinspired design process through case studies that highlight health, the environment, and safety. CourseProfile (ATLAS)

ROB 572 (NAVARCH 569). Marine Robotics
Advisory Prerequisite: Computational Linear Algebra (ROB 101) or Linear Algebra (MATH 214, MATH 217, MATH 417, or MATH 419) or graduate standing; proficiency in MATLAB. (3 credits)
Overview of marine robotic systems, including autonomous surface vehicles, remotely operated
vehicles, and autonomous underwater vehicles. Topics include vehicle design, kinematic and dynamic modeling, control, sensing, and navigation. Examples draw from real robotic missions across a range of applications from inspection of critical subsea infrastructure to exploration of ocean worlds. CourseProfile (ATLAS)

ROB 590. Directed Study
Prerequisite: Permission of instructor. Mandatory Satisfactory/Unsatisfactory. (1-6 credits)
Individual study of specialized aspects of robotics. Graduate students only. Projects are overseen and graded by faculty and may also involve mentoring by representatives from industrial, governmental and/or non-profit organizations. CourseProfile (ATLAS)

ROB 599. Special Topics in Robotics
Advisory Prerequisite: Graduate standing or permission of instructor. (1-6 credits)
Special topics in Robotics. CourseProfile (ATLAS)

600 Level Courses

ROB 690. Master’s Advanced Research
Prerequisite: 1 previous election of ROB 590 (min 3 credits); AND Co-requisite: 1 additional election of ROB 590 (min 3 credits) which may be elected concurrently with ROB 690. Minimum grade requirement of “C” for enforced prerequisite. (1.5-3 credits)
Faculty-supervised research that culminates in a submitted and graded document styled as an original research manuscript. Builds on earlier research completed in six credits of ROB 590 and is letter graded. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

900 Level Courses

ROB 990. Dissertation/Pre-Candidate
Prerequisite: None. (1-8 credits)
Dissertation work by doctoral student not yet admitted to status as candidate.  The defense of the dissertation, that is, the final oral examination, must be held under a full-term candidacy enrollment. CourseProfile (ATLAS) 

ROB 995. Dissertation/Candidate
Prerequisite: Doctoral candidacy. (8 credits); (4 credits)
Election for dissertation work by a doctoral student who has been admitted to candidate status.  The defense of the dissertation, that is, the final oral examination, must be held under a full-term candidacy enrollment. CourseProfile (ATLAS)