CS 3758 - Autonomous Mobile Robots

General Information

Creating robots capable of performing complex tasks autonomously requires one to address a variety of different challenges such as sensing, perception, control, planning, mechanical design, and interaction with humans. In recent years many advances have been made toward creating such systems, both in the research community (different robot challenges and competitions) and in industry (industrial, military, and domestic robots). This course gives an overview of the challenges and techniques used for creating autonomous mobile robots. Topics include sensing, localization, mapping, path planning, motion planning, obstacle and collision avoidance, and multi-robot control.

Prerequisites

  • MATLAB. However, if you know how to code decently well (around ~2110/2 level), you’ll be fine.

Topics Covered

  • Students will understand and implement localization and mapping algorithms using different sensor modalities.
  • Be able to generate a path and the motion for a robot moving around an area with obstacles.
  • Understand and implement the concepts of different approaches for motion planning such as roadmaps, feedback control and sampling based methods.
  • Be able to apply the tools learned in the class to physical robots.

Workload

Moderate to fairly heavy. Not recommended to take alongside other heavy classes.

General Advice

It’s tough yet rewarding. Don’t expect an easy time in the course, but if you are interested in robotics, it’s worth considering.

Testimonials

“Don’t do it. Just don’t. Real explanation: Unless you are really, really interested specifically in how to make robots move somewhat accurately, it’s probably not worth it. Okay, the first part of that statement is a slight exaggeration (there’s some cool things like Kalman Filters that are covered), but assignments for that class generally require much more effort than you’d ever want to put into them.”

Past Offerings

| Semester | Time | Professor | Median Grade | Course Page | | — | — | — | — | — |

Edit this page on GitHub: classes/CS3758.md

Edit me on GitHub