This project class focuses on developing cognitive and learning systems for robots. Students will become familiar with and use state of the art software tools to build prototype systems, as well as how to evaluate these systems. The course project will involve implementing a cognitive/learning system on a real robot. For undergraduates, this course is an elective for the Robotics Major.
Topics will include robot perception and scene analysis, state estimation, representing goals and tasks, language for human-robot interaction, the use of language for robot reasoning and learning based on large language models, planning for navigation, motion, and physical interaction, learning robot and task models, using simulation to reason and learn, knowledge representation using both parametric models such as neural networks and explicit representation of experience (memory-based representations), the role of cultural knowledge, learning from demonstration and practice, reinforcement learning, and roles for emotion, motivation, and personalities for robots. This course will broaden all students' understanding of robotics, and how to make robots smarter. Students will be able to build and evaluate cognitive and learning systems for robots, as well as gain a perspective on future robot systems. Resources available to the students include web pages, open source software, and everything available on the internet. Students will be assessed on their assignments (40%) and course project (60%). This 12 unit course involves 2-3 hours of in class work and approximately 9 hours of work outside the classroom per week. Students must be able to program in either C++ or Python.