This course provides a general introduction to robotics from a computational perspective with a focus on mobile robots. This includes the use of popular software for interacting with and simulating robots, such as the Robot Operation System (ROS). It will provide a view of robots as autonomous agents with a mechanical embodiment, which must observe and act upon their surroundings through the iterative execution of a sensing-planning-actuation loop. On the sensing and perception side, the course will cover state estimation challenges, such as robot localization, simultaneous localization and mapping (SLAM), as well as Bayesian solutions to these problems, such as Kalman and particle filters. For planning and decision making purposes, the course will introduce basic planning and replanning methods, such as A* and D*-like algorithms, the configuration space abstraction, sampling-based planners, and a toolbox of algorithms that solve problems by utilizing these principles. Extensions to multi-robot systems, online planning and handling uncertainty will be touched upon as well. On the control side, the course will offer an introductory coverage of robot kinematics and dynamics, as well as foundational algorithms for trajectory following (e.g., PID).
At the conclusion of the course, students will have a good understanding of the classical computational tools employed in robotics research and applications that relate to perception, decision making and control. On the perception side, students will be able to identify proper models for robot localization tasks and put together implementations that realize these models. For planning, students will be able to build geometric models of simple motion planning problems for mobile robots and apply deterministic and probabilistic search algorithms to solve them. Lastly, students will be able to command the on mobile robots to follow planned trajectories and making corrections on the go through sensor feedback. In addition, students should have an understanding on how these general algorithmic frameworks can lead to solutions of more complex problems involving flying machines, human-robot interaction, mobile manipulators, and multi-robot systems.