This course is a pragmatic introduction to autonomous robotics. Our goal is to introduce students to the “big question” that need to be answered in order to build autonomous robots. Quesstions such as “How do I know where I am?” and “How do I decide what to do?” We will take a software engineering approach, always focusing on how to turn the concepts into actual robot behaviors in the real world.
Robotics: : Learn the key mobile autonomous robotics concepts, such as localization, state management, coordinate frames and coordinates, mapping and path finding and the basic information structures and data used in robotics such as sensor data, command data, sensor fusion such as odometry.
Architecture: Learn how to think architecturally within the context of a fully distriuted operating system. How to create small concurrent modules that communicate with each other. How to organize desired functionality and behavior for maximum flexibility and scalability within such an environment.
ROS: Learn to program the all-important “Robot Operating System”, ROS, which is the leading real-time distributed operating system for research and industrial robotics. They will demonstrate understanding of the key concepts of ROS, nodes, topics, commands and services, concurrency, distributed operating systems, and more.