Course Description:

Have you wondered how we will accomplish the dream of driverless cars that improve transportation safety and reduce manual effort, or unmanned autonomous aerial vehicles that perform a variety of tasks such as search and rescue, disaster relief, or even mundane package delivery? This course introduces you to the basics of computational models, control algorithms, architectures, and challenge problems for such Autonomous CyberPhysical Systems. A CyberPhysical System (CPS) consists of two main parts: (1) physical components (electrical, electronic, mechanical, hydraulic, etc.), and (2) software that is used to control the behavior of the physical components. An autonomous CPS is a system that is designed to operate without human intervention. Examples of autonomous CPSs include driverless cars, unmanned aerial or submarine vehicles, and humanoid and other autonomous robots.
In this course, we will first study the basics of CPS from a computer science and formal methods/reasoning perspective. This includes: formal models of computation for CyberPhysical Systems, formal languages for specification and testing of CPS systems, and introduction to some common coding platforms for CPS software development. In the second part of the course, we will study the architectures and algorithms used in autonomous CPSs through some important case studies. One of the homework assignments will teach you an end-to-end 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:

  1. Gain basic familiarity with CyberPhysical Systems
  2. Learn how to develop software for a CPS using a model-based development approach
  3. Learn how to write formal requirements for CPS models and perform testing
  4. Learn basics of simulation-based testing and falsification
  5. Learn basics of autonomous systems, and the autonomous systems software stack

Instructor:

Jyotirmoy (Jyo) V. Deshmukh

Lectures:

  • Tue, 3:30-5:20pm, VKC 211
  • Thu, 3:30-5:20pm, VKC 211
  • Grading Policy:

    Grading