Undergraduate Minor and Additional Major Electives in Robotics


 Electives (Not a complete list)

The majoe and minor require at least two electives. The following is a list of the pre-approved electives. Also, the student may take at most one independent study or an upper level Robotics Institute course. Students may take one independent study course which counts towards the minor and additional major. Finally, this is not intended to be an exhaustive list, but rather a suggested one. Please feel free to email Howie Choset if you have suggestions.

Courses numbered xx-300 or higher (e.g. 16-311) count towards the robotics minor and additional major - Stuco courses do not.

Chose any two courses from the following categories:

Robotics
ECE
ME
CS / Manipulation & AI
CS / Vision
CS / Graphics
LTI
Psych
Misc

 Robotics

16-264: Humanoids
Units: 9
Semester: Fall or Spring (check catalog)
This course will survey work on humanoid robots and simulated humans in movies, games and other applications. Topics will be taken from perception including visual, auditory, and tactile perception, cognition including reacting, planning, and learning, and movement generation including kinematics, dynamics, control, manipulation, and bipedal locomotion. Check here for more info.

16-362 / 16-862: Introduction to Mobile Robot Programming
Units: 9
Semester: Fall
The course will cover all aspects of mobile robotics, starting at low-level PID control and behavioral control and graduating all the way to robot team communication and interleaving planning and execution.

The class will present a strong formal approach and will apply those formalisms to real robots that you program in teams. We will use Nomad 150 robots (see the note below about CS 224) and we will also make use of some new, smaller robots that are quite extraordinary. This course is for any undergraduate or graduate who has working knowledge of at least one programming language and has general intellectual enthusiasm. This limited enrollment class will challenge you.

 ECE

18-342: Fundamentals of Embedded Systems
Units: 12
Semester: Fall
This practical, hands-on course introduces students to the basic building-blocks and the underlying scientific principles of embedded systems. The course covers both the hardware and software aspects of embedded processor architectures, along with operating system fundamentals, such as virtual memory, concurrency, task scheduling and synchronization. Through a series of laboratory projects involving state-of-the-art processors, students will learn to understand implementation details and to write assembly-language and C programs that implement core embedded OS functionality, and that control/debug features such as timers, interrupts, serial communications, flash memory, device drivers and other components used in typical embedded applications. Relevant topics, such as optimization, profiling, digital signal processing, feedback control, real-time operating systems and embedded middleware, will also be discussed. This course is intended for INI students.

18-348: Embedded System Engineering
Units: 12
Semester: Fall
Embedded computing applications far outnumber desktop computers, with billions of microcontrollers produced worldwide each year. Embedded systems vary tremendously, from the single 8-bit processor in a thermostat, to high performance processors in a digital camera, to dozens of networked processors in an automobile. Despite this diversity of applications, there are core technology and system-level skills needed by any embedded system designer that form the content of this course. The emphasis of this course will be at the system layer where hardware meets software, with plenty of hands-on experience at "bare metal" programming. Topics typically covered include embedded computing platforms (hardware, microcontroller instruction sets, software in both assembly language and C); interacting with the external world (analog I/O, serial ports, control); system-level engineering (design cycle, architectural patterns); real-time operation (timers, interrupts, concurrency); constraints and optimization (economics, power, performance); and a survey of techniques important for building systems that work in the real world (debug, test, robust design, dependability, ethical/societal issues). Weekly hands-on hardware and software experiences with a 16-bit microcontroller module will tie directly to lectures to reinforce core skills.

18-349: Embedded Real-Time Systems
Units: 12
Semester: Fall
This practical, hands-on course introduces the various building blocks and underlying scientific and engineering principles behind embedded real-time systems. The course covers the integrated hardware and software aspects of embedded processor architectures, along with advanced topics such as real-time, resource/device and memory management. Students can expect to learn how to program with the embedded architecture that is ubiquitous in cell-phones, portable gaming devices, robots, PDAs, etc. Students will then go on to learn and apply real-time principles that are used to drive critical embedded systems like automobiles, avionics, medical equipment, the Mars rover, etc. Topics covered include embedded architectures (building up to modern 16/32/64-bit embedded processors); interaction with devices (buses, memory architectures, memory management, device drivers); concurrency (software and hardware interrupts, timers); real-time principles (multi-tasking, scheduling, synchronization); implementation trade-offs, profiling and code optimization (for performance and memory); embedded software (exception handling, loading, mode-switching, programming embedded systems). Through a series of laboratory exercises with state-of-the-art embedded processors and industry-strength development tools, students will acquire skills in the design/implementation/debugging of core embedded real-time functionality.

18-549: Embedded Systems Design
Units: 12
Semester: Spring
This course comprises a semester-long project experience geared towards the development of skills to design realistic and practical embedded systems and applications. Students will work in teams on an innovative project that will involve the hands-on design, configuration, engineering, implementation and testing of a prototype of an embedded system of their choice. Students will be expected to leverage proficiency and background gained from other courses, particularly with regard to embedded real-time principles and embedded programming. The project will utilize a synergistic mixture of skills in system architecture, modular system design, software engineering, subsystem integration, debugging and testing. From inception to demonstration of the prototype, the course will follow industrial project practices, such as version control, design requirements, design reviews and quality assurance plans. The initial lecture content will cover background material intended to complement the project work. The remainder of the course will consist of regular team presentations of key project milestones, current project status, a final project presentation and functional demonstrations of various subsystems, even as the entire prototype is being developed.

18-578: Mechatronic Design
Units: 9
Semester: Spring
Mechatronics is the synergistic integration of mechanism, electronics, and computer control to achieve a functional system. Because of the emphasis upon integration, this course will center around system integration in which small teams of students will configure, design, and implement a succession of mechatronic subsystems, leading to a main project. Lectures will complement the laboratory experience with comparative surveys, operational principles, and integrated design issues associated with the spectrum of mechanism, electronics, and control components. Class lectures will cover topics intended to complement the laboratory work, including mechanisms, actuators, motor drives, sensors and electronic interfaces, microcontroller hardware and programming and basic controls. During the first week of class, each student will be asked to complete a questionnaire about their technical background. The class will then be divided into multi-disciplinary teams of three students. During the first half of the class, lab assignments will be made every 1-2 weeks to construct useful subsystems based on material learned in lecture. The lab assignments are geared to build to the main project.

39-500: Honors Research Project

 ME

24-491 / 24-492: Departmental Research Honors
Units: 9
Semester: Fall
This course is designed to give students increased exposure to "open-ended" problems and research type projects. It involves doing a project on a research or design topic and writing a thesis describing that project. The project would be conducted under the supervision of a mechanical engineering faculty member (the advisor), and must be approved by the advisor before inception. This course can be taken at any time after the Junior year and before graduation which includes the summer after the Junior year. Completion of 18 units of this course with a grade of B or better is a partial fulfillment of the requirements for Departmental Research Honors.

24-673: Special Topics in Soft Robots - Mechanics, Design, and Modeling
Units: 12
Semester: Spring
Soft, elastically-deformable machines and electronics will dramatically improve the functionality, versatility, and biological compatibility of future robotic systems. In contrast to conventional robots and machines, these "soft robots" will be composed of elastomers, gels, fluids, gas, and other non-rigid matter. We will explore emerging paradigms in soft robotics using mathematical insights from solid mechanics, shell theory, contact mechanics, and electrostatics. Specific topics include artificial muscles, soft pneumatic robotics, stretchable circuits, and soft microfluidics for hyperelastic electronics and sensing.

Prerequisites: Statics 24-261, Stress Analysis 24-262, or equivalents

24-675: Micro/Nano Robotics
Units: 12
Semester: Spring
This interdisciplinary course focuses on the design, construction, analysis, and control of the state-of-the-art micro/nano-robotic systems for the MechE, Robotics, ECE, BioE, etc. students working on MEMS, nanotechnology, biotechnology, and robotics fields. It would cover the micro/nanoscale physics, sensors, actuators, manipulators, power sources, interfacing, robotic design, and control issues. After the basic background, it would include the current trends in the literature, detailed case studies, and guest lecturer talks. Active student participation, interaction, and in-class discussions are the main objectives!

 CS / Manipulation & AI

15-381: Artificial Intelligence
Units: 9
Semester: Spring
This class focuses on the core algorithms that fall under the domain of Artificial Intelligence, or AI. AI covers many areas and means different things to different people. In this course we will focus on computational techniques and algorithms that are useful for developing autonomy (software agents or robots), or for solving similar problems. The course has both theoretical and practical components, with an emphasis on enabling you to be able to understand, develop, and use these algorithms in your other activities.

15-491: CMRoboBits: Creating Integrated Intelligent Robots
Units: 9
Semester: Fall
Creating intelligent robots can be viewed as the integration of many "bits," "RoboBits," (therefore the name CMRoboBits -- CM for Carnegie Mellon). This course will teach students these "RoboBits" for creating both single robots and groups of intelligent robots. RoboBits achieve the necessary robot capabilities for their perception, cognition, and action. We will use concrete robots, such as the Sony AIBO robots, the ER1s, and other existing robots at CMU, to understand in depth the issues involved in developing such capabilities in a robot and in a group of robots. We will focus on vision processing, object recognition, robot legged and wheeled motion, cognitive architectures, planning, learning, and teamwork among robots and between robot and humans. The course will have a 2h weekly lecture and a 1h weekly recitation/lab session. The course will be primarily hands-on work with weekly homeworks which incrementally build up to the complete robot and robot teams. The homeworks also include a part with questions on the lectured material. There will be a final project, proposed by the students or selected from a list proposed by the instructors, in which the robots perform a complete task. Evaluation will be based on the homeworks, an in-class midterm exam, and the final project.

Prerequisites:

Programming experience, such as in 15-211, is required. (Students who have not taken 15-211 will need a special permission from the instructor.) Students who took 15-381 will be preferred in case we need to cut the number of students.

Number of students: 25 max.

15-494: Cognitive Robotics
Units: 12
Semester: Spring
Cognitive robotics is a new approach to robot programming based on high level primitives for perception and action. These primitives draw inspiration from ideas in cognitive science, such as visual routines, dual coding theory, and affordances. Students will experiment with these primitives and help develop new ones using the Tekkotsu software framework on Sony AIBO and Lynx Motion robots. Prior robotics experience is not necessary, but strong programming skills are required.

 CS / Vision

15-385: Computer Vision [ details ]
Units: 12
Semester: Spring
Basic concepts in machine vision, including sensing and perception, 2D image analysis, pattern classification, physics-based vision, stereo and motion, and solid model recognition.


Prerequisites: 15-213, 21-214, 21-259

16-421: Vision Sensors [ details ]
Units: 12
Semester: Spring
This course covers the fundamentals of vision cameras and other sensors - how they function, how they are built, and how to use them effectively. The course presents a journey through the fascinating five-hundered-year history of "camera-making" from the early 1500's "camera obscura" through the advent of film and lenses, to today's mirror-based and solid-state devices. The course includes a significant hands-on component where students learn how to use the sensors and understand, model and deal with the uncertainty (noise) in their measurements. While the first half of the course deals with conventional "single viewpoint" or "perspective" cameras, the second half of the course covers much more recent "multi-viewpoint" or "multi-perspective" cameras that include an array of lenses and mirrors. These sensors provide unusual and compelling forms of visualizations of the world around us that also drive new display technologies.

The course is open to all students in SCS and ECE.

Prerequisites: Linear Algebra and Calculus.

 CS / Graphics

15-462: Computer Graphics
Units: 12
Semester: Fall & Spring
This course provides a comprehensive introduction to computer graphics modeling, animation, and rendering. Topics covered include basic image processing, geometric transformations, geometric modeling of curves and surfaces, animation, 3-D viewing, visibility algorithms, and shading. Students gain experience producing simple animations.

Prerequisites: (15-213 and 21-214 and 21-259) or (15-213 and 18-202)

15-463 / 15-862: Computational Photography [ details ]
Units: 12
Semester: Fall
Computational Photography is an emerging new field created by the convergence of computer graphics, computer vision and photography. Its role is to overcome the limitations of the traditional camera by using computational techniques to produce a richer, more vivid, perhaps more perceptually meaningful representation of our visual world.

The aim of this advanced undergraduate course is to study ways in which samples from the real world (images and video) can be used to generate compelling computer graphics imagery. We will learn how to acquire, represent, and render scenes from digitized photographs. Several popular image-based algorithms will be presented, with an emphasis on using these techniques to build practical systems. This hands-on emphasis will be reflected in the programming assignments, in which students will have the opportunity to acquire their own images of indoor and outdoor scenes and develop the image analysis and synthesis tools needed to render and view the scenes on the computer.

Prerequisites: 15-213, 21-214, 21-259

 LTI

11-344: Machine Learning in Practice
Units: 12
Semester: Spring
Please see link above for course description.

 Psych

10-601: Machine Learning
Units: 12
Semester: Spring
Please see link above for course description.

Prerequisite: 15-211 or permission of the instructor. It is also desirable to have taken a college-level introduction to Probability and Statistics.

85-370: Perception
Units: 9
Semester: Spring
Perception, broadly defined, is the construction of a representation of the external world. Although we often think of perception as the processing of input to the sense organs, the world conveyed by the senses is ambiguous, and cognitive and sensory systems interact to interpret it. This course examines the mechanisms involved in visual perception, along with consideration of other perceptual systems such as auditory perception, haptic perception (touch) and pain. The course addresses how sensory coding interacts with top-down processes such as selective attention, the use of context, and application of prior knowledge. Additional topics may include perceptual learning and development, object recognition, reading, speech perception, brain imaging studies, and perceptual impairments.

85-382: Consciousness and Cognition
Units: 9
Semester: Fall
This course will examine the relationship between cognition and consciousness. One particular focus will be on the issue of how complex the processes that are largely unconsciously controlled may be and another is on the interaction of conscious and non-conscious processes in the control of cognition. We will also very briefly examine relevant ideas about consciousness that arise in other fields such as philosophy of mind and physics. The major topics to be included will be drawn from: the experience and functionality of consciousness, neuroscience approaches to consciousness, perceptual and attentional work on consciousness, cognition in altered states of consciousness (in particular, dreaming), implicit memory, and the proceduralization of higher level cognitive processes. The course will consist of our reading and discussing primary research literature from the above areas. There will be a number of short written assignments based on the weekly reading and a term paper.

85-395: Applications of Cognitive Science
Units: 9
Semester: Fall
The famous psychologist George Miller once said that Psychology should "give itself away." The goal of this course is to look at cases where we have done so -- or at least tried. The course focuses on applications that are sufficiently advanced as to have made an impact outside of the research field per se. That impact can take the form of a product, a change in practice, or a legal statute. The application should have a theoretical base, as contrasted, say, with pure measurement research as in ergonomics. Examples of applications are virtual reality (in vision, hearing, and touch), cognitive tutors based on models of cognitive processing, phonologically based reading programs, latent semantic analysis applications to writing assessment, and measurses of consumers' implicit attitudes. The course will use a case-study approach that considers a set of applications in detail, while building a general understanding of what it means to move research into the applied setting. The questions to be considered include: What makes a body of theoretically based research applicable? What is the pathway from laboratory to practice? What are the barriers - economic, legal, entrenched belief or practice? The format will emphasize analysis and discussion by students.

85-412: Cognitive Modeling
Units: 9
Semester: Spring
This course will be concerned with modeling of cognition. We will use a high-level modeling language to simulate a range of cognitive tasks from the literature on attention, memory, problem solving and skill acquisition. Students will end the course developing a model for a phenomenon of their choosing. The course grade will be determined by a series of assignments involving developing cognitive models and by a written exam.

85-419: Introduction to Parallel Distributed Processing
Units: 9
Semester: Spring
This course will provide an overview of parallel-distributed processing models of aspects of perception, memory, language, knowledge representation, and learning. The course will consist of lectures describing the theory behind the models as well as their implementation, and students will get hands-on experience running existing simulation models on workstations.

85-420: Perception and Perceptual Development
Units: 9
Semester: Offered intermittently
This course examines how people perceive the world around them. The course will cover a number of topics including the major theories of perception, the empirical data on human vision and other senses, the neural substrates of perception, and perceptual development.

 Misc

48-787 Architectural Robotics (MSCD Project II)
Units: 12
Semester: Spring (not regularly offered)
Buildings with moving parts have been around since the door was invented, but recent advances in materials, microcontrollers, sensors, and other information technologies have ushered in a new generation of responsive buildings. Reconfigurable walls, color controlled illumination, windows made opaque by flipping a switch; these are elements of the new building yard. How shall we take advantage of these remarkable capabilities to craft a vision of future living?

Together we will: (1) review past and current buildings that employ robotics technologies (2) become familiar with technologies relevant to responsive buildings; and (3) design and construct working prototypes of architectural robotics systems. We will read and review relevant literature as well as work in the laboratory to build working project prototypes. You will (learn and) apply simple analog and digital electronics, programming, and physical construction.


Last Update 26 Jul 2012

We attempt to provide and maintain accurate information at this web site. While revisions will be issued periodically as changes occur, The Robotics Institute and Carnegie Mellon University cannot guarantee the accuracy of the information provided.

The Robotics Institute is part of the School of Computer Science, Carnegie Mellon University.
This page maintained by robotwebmaster@ri.cmu.edu.