Course Description:

Cars, ground and aerial robots, and medical devices have all traditionally relied on a human operator. By bestowing autonomy on these systems, we hope to replace the human operator or reduce their role by the use of intelligent software agents. While classical software design typically involves reasoning about concerns only in the cyber-space, autonomous systems are usually cyber-physical systems, i.e. they involve a set of physical components, e.g., mechanical, electrical or biological component being controlled and monitored by software.

This course introduces you to the design and analysis of such autonomous cyber-physical systems (ACPS) from a computer science and formal reasoning perspective. This includes: formal models of computation for ACPS, including models for the real world environments/components as well as models for the control software, formal languages for specification and testing of ACPS, and basics of linear and nonlinear control theory as used for ACPS. In the second part of the course, we will study some of the main components used in autonomy such as software components for perception, planning, navigation, and AI-based techniques for control design such as reinforcement learning. The homework assignments will be written exercises, while two mini-projects will require coding in Python as well as Matlab/Simulink. The mini-projects include an implementation of a simple self-driving vehicle subsystem, and an assignment about programming unmanned aerial vehicles (in the Matlab environment). The course will position you to gain the skills required for industrial development of autonomous systems, and will also enable you to think about research problems in autonomy.

Instructor Jyotirmoy V. Deshmukh [Jyo]
Time 2:00 - 5:20pm
Venue KAP 156
Medium of instruction In-person with Zoom recordings
TAs Aniruddh Puranic
Xin Qin
Office hours [Jyo]: Monday 11am-12pm or by appointment
Office hours [Aniruddh]:
Office hours [Xin]: