Skip to main content Skip to secondary navigation


Main content start

Courses Instructed by Prof. Monroe Kennedy

ENGR 15 [Aut]


Engr 15: Dynamics [Autumn Quarter]

The application of Newton's Laws to solve 2-D and 3-D static and dynamic problems, particle and rigid body dynamics, freebody diagrams, and equations of motion, with application to mechanical, biomechanical, and aerospace systems. Computer numerical solution and dynamic response. Prerequisites: Calculus (differentiation and integration) such as MATH 41; and ENGR 14 (statics and strength) or a mechanics course in physics such as PHYSICS 41.

ME334 [Spr]

Advanced Dynamics, Control and System Identification

ME 334: "Advanced Dynamics, Control and System Identification" [Spring Quarter]

Modeling and analysis of dynamical systems. This class will cover reference frames and coordinate systems, kinematics and constraints, mass distribution, virtual work, D'Alembert's principle, Lagrange and Hamiltonian equations of motion. We will then consider select topics in controls including: dynamical system stability, feedback linearization, system observability and controllability, and system identification methods. Students will learn and apply these concepts through homework and projects that involve the simulation of dynamical systems. Prerequisites: ENGR15 or equivalent, Recommended: Linear Algebra ( EE 263Math 113CME 302 or equivalent), Partial Differential Equations ( Math 131P or equivalent). 

ME 326 [Win]

Collaborative Robotics

ME 326: Collaborative Robotics [Winter Quarter]

This course focuses on how robots can be effective teammates with other robots and human partners. Concepts and tools will be reviewed for characterizing task objectives, robot perception and control, teammate behavioral modeling, inter-agent communication, and team consensus. We will consider the application of these tools to robot collaborators, wearable robotics, and the latest applications in the relevant literature. This will be a project-based graduate course, with the implementation of algorithms in either python or C++.

ARMLab Suggested Courses

The following robotics-related courses may be helpful for research performed in the ARMLab (growing list).

ENGR 209A: Analysis and control of Nonlinear Systems 

Introduction to nonlinear phenomena: multiple equilibria, limit cycles, bifurcations, complex dynamical behavior. Planar dynamical systems, analysis using phase plane techniques. Describing functions. Lyapunov stability theory. SISO feedback linearization, sliding mode control. Design examples. Prerequisite: 205.

AA242A: Classical Dynamics

Accelerating and rotating reference frames. Kinematics of rigid body motion; Euler angles, direction cosines. D'Alembert's principle, equations of motion. Inertia properties of rigid bodies. Dynamics of coupled rigid bodies. Lagrange's equations and their use. Dynamic behavior, stability, and small departures from equilibrium. Prerequisite: ENGR 15 or equivalent.

CME 364A: Convex Optimization I (CS 334A, EE 364A)

Convex sets, functions, and optimization problems. The basics of convex analysis and theory of convex programming: optimality conditions, duality theory, theorems of alternative, and applications. Least-squares, linear and quadratic programs, semidefinite programming, and geometric programming. Numerical algorithms for smooth and equality constrained problems; interior-point methods for inequality constrained problems. Applications to signal processing, communications, control, analog and digital circuit design, computational geometry, statistics, machine learning, and mechanical engineering. Prerequisite: linear algebra such as EE263, basic probability.

CS 327A: Advanced Robotic Manipulation

Advanced control methodologies and novel design techniques for complex human-like robotic and bio mechanical systems. Class covers the fundamentals in operational space dynamics and control, elastic planning, human motion synthesis. Topics include redundancy, inertial properties, haptics, simulation, robot cooperation, mobile manipulation, human-friendly robot design, humanoids and whole-body control. Additional topcs in emerging areas are presented by groups of students at the end-of-quarter mini-symposium. Prerequisites: 223A or equivalent.

CS 225A: Experimental Robotics

Hands-on laboratory course experience in robotic manipulation. Topics include robot kinematics, dynamics, control, compliance, sensor-based collision avoidance, and human-robot interfaces. Second half of class is devoted to final projects using various robotic platforms to build and demonstrate new robot task capabilities. Previous projects include the development of autonomous robot behaviors of drawing, painting, playing air hocket, yoyo, basketball, ping-pong or xylophone. Prerequisites: 223A or equivalent.

AA 274A: Principles of Robot Autonomy I (AA 174A, CS 237A, EE 160A, EE 260A)

Basic principles for endowing mobile autonomous robots with perception, planning, and decision-making capabilities. Algorithmic approaches for robot perception, localization, and simultaneous localization and mapping; control of non-linear systems, learning-based control, and robot motion planning; introduction to methodologies for reasoning under uncertainty, e.g., (partially observable) Markov decision processes. Extensive use of the Robot Operating System (ROS) for demonstrations and hands-on activities. Prerequisites: CS 106A or equivalent, CME 100 or equivalent (for linear algebra), and CME 106 or equivalent (for probability theory).

AA 274B: Principles of Robot Autonomy II (AA 174B, CS 237B, EE 260B)

This course teaches advanced principles for endowing mobile autonomous robots with capabilities to autonomously learn new skills and to physically interact with the environment and with humans. It also provides an overview of different robot system architectures. Concepts that will be covered in the course are: Reinforcement Learning and its relationship to optimal control, contact and dynamics models for prehensile and non-prehensile robot manipulation, imitation learning and human intent inference, as well as different system architectures and their verification. Students will earn the theoretical foundations for these concepts and implement them on mobile manipulation platforms. In homeworks, the Robot Operating System (ROS) will be used extensively for demonstrations and hands-on activities. Prerequisites: CS106A or equivalent, CME 100 or equivalent (for linear algebra), CME 106 or equivalent (for probability theory), and AA 171/274.

CS 336: Robot Perception and Decision-Making

How can robots perceive the world and their own motion so that they can accomplish navigation and manipulation tasks? In this course, we will study how this question has been approached specifically if the robot is equipped with visual sensing capabilities. We focus on studying how a robot can make decisions based on raw, high-dimensional sensory data that represents only partial, noisy observations of the environment. Therefore, the course is divided into two main themes (i) Estimation and (ii) Decision-Making and Control where in each theme we will study traditional approaches, learning-based methods and combinations of those. Prerequisites: CS106BMATH 51 or CME 100CS109CS 221 or CS 229.

CS 326: Topics in Advanced Robotic Manipulation

This course provides a survey of the most important and influential concepts in autonomous robotic manipulation. It includes classical concepts that are still widely used and recent approaches that have changed the way we look autonomous manipulation. We cover approaches towards motion planning and control using visual and tactile perception as well as machine learning. This course is especially concerned with new approaches for overcoming challenges in generalization from experience, exploration of the environment, and learning representation so that these methods can scale to real problems. Students are expected to present one paper in a tutorial, debate a paper once from the Pro and once from the Con side. They are also expected to propose an original research project and work on it towards a research paper. Recommended: CS 131, 223A, 229 or equivalents.


CS 230: Deep Learning

Deep Learning is one of the most highly sought after skills in AI. We will help you become good at Deep Learning. In this course, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. You will learn about Convolutional networks, RNNs, LSTM, Adam, Dropout, BatchNorm, Xavier/He initialization, and more. You will work on case studies from healthcare, autonomous driving, sign language reading, music generation, and natural language processing. You will master not only the theory, but also see how it is applied in industry. You will practice all these ideas in Python and in TensorFlow, which we will teach. AI is transforming multiple industries. After this course, you will likely find creative ways to apply it to your work. This class is taught in the flipped-classroom format. You will watch videos and complete in-depth programming assignments and online quizzes at home, then come in to class for advanced discussions and work on projects. This class will culminate in an open-ended final project, which the teaching team will help you on. Prerequisites: Familiarity with programming in Python and Linear Algebra (matrix / vector multiplications). CS 229 may be taken concurrently.


CS 231A: Computer Vision: From 3D Reconstruction to Recognition

An introduction to the concepts and applications in computer vision. Topics include: cameras and projection models, low-level image processing methods such as filtering and edge detection; mid-level vision topics such as segmentation and clustering; shape reconstruction from stereo, as well as high-level vision tasks such as object recognition, scene recognition, face detection and human motion categorization. Prerequisites: linear algebra, basic probability and statistics. CS231a Class Page

CS 231N: Convolutional Neural Networks for Visual Recognition

Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification and object detection. Recent developments in neural network approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into details of neural-network based deep learning methods for computer vision. During this course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. We will cover learning algorithms, neural network architectures, and practical engineering tricks for training and fine-tuning networks for visual recognition tasks. Prerequisites: Proficiency in Python; CS131 and CS229 or equivalents; MATH21 or equivalent, linear algebra.

AA 273: State Estimation and Filtering for Robotic Perception

Kalman filtering, recursive Bayesian filtering, and nonlinear filter architectures including the extended Kalman filter, particle filter, and unscented Kalman filter. Observer-based state estimation for linear and non-linear systems. Examples from aerospace, including state estimation for fixed-wing aircraft, rotorcraft, spacecraft, and planetary rovers, with applications to control, navigation, and autonomy.


AA 277: Multi-Robot Control and Distributed Optimization

Survey of current research topics in multi-robot systems including multi-agent consensus, formation control, coverage control and sensor deployment, collision avoidance, cooperative mapping, and distributed Bayesian filtering. Students will develop skills in evaluating and critiquing research papers, and will conduct a final research project.