Course Description:
Cars, many ground and aerial robots, and medical devices have all
traditionally relied on a human operator. By bestowing autonomy on these
systems, we hope to lessen the role of or completely eliminate the need for
a human operator. What distinguishes these autonomous mobile applications
is that they are all safety-critical. Software failures in these
systems can cause harm to humans or damage to property. This course
teaches you how to build autonomous systems while keeping safety as the
foremost concern. To bring safety to the fore, we start by discussing formal
models of computation for ACPS, and basics of linear and nonlinear control theory
as used for ACPS. In the second part of the course, we introduce how to reason
about the safety of such ACPS using formal specification languages and
advanced testing methods. In the third 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 a mix of
theoretical exercises and coding. The latter includes an implementation of
a simple self-driving vehicle subsystem.
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.
Learning Objectives:
- Gain basic familiarity with CyberPhysical Systems
- Learn how to develop software for a CPS using a model-based development approach
- Learn how to write formal requirements for CPS models and perform testing
- Learn basics of simulation-based testing and falsification
- Learn basics of autonomous systems, and the autonomous systems software stack
Instructor |
Jyotirmoy V. Deshmukh [Jyo] |
Time |
2:00 - 5:20pm |
Medium of instruction |
In-person, GFS 116 |
TAs |
|
Office hours [Jyo]: |
Tuesdays 11am-12pm or by appointment |
Office hours []: |
|