Spring semester | 12 units (Thinking about Action Core Curriculum)
Kinematics, Dynamic Systems, and Control is a graduate-level introductory course to robotics. Students learn fundamental concepts and methods for analyzing, modeling, and controlling robot mechanisms. The knowledge and skills students gain prepare them for advanced studies in articulated robot design, control, and learning, as well as for engineering careers in the robotics industry, especially in tracks that require modeling and control. The course is delivered through lectures, with students' comprehension and practical skills assessed via biweekly assignments combining theoretical problems with coding challenges.
Solid background in engineering math and physics. Proficiency with MATLAB or Python coding environment.
By the end of this course, students will be able to:
formulate and analyze the kinematics of rigid body chains using screw theory, demonstrating understanding of underlying mathematical concepts (such as rotation matrices, quaternions, exponential coordinates, twists, and homogeneous transformations) and their interrelations;
derive the dynamics of rigid body chains by applying fundamental mechanics concepts (d'Alembert's principle, Lagrangian mechanics) and using symbolic math programming tools;
write algorithms for simulating and analyzing the kinematics and dynamics of articulated robots (forward and inverse kinematics, forward and inverse dynamics) while addressing challenges like singularities and redundancy;
abstract robot control systems as linear time-invariant (LTI) systems and analyze and design their stability using classical control techniques (root-locus, Nyquist, Bode plots, PID control);
formulate basic state estimators (Luenberger observer, Kalman filter, extended Kalman filter) and write state estimation algorithms; and
apply advanced control strategies for robot systems (computed torque control, feedback linearization, operational space control, impedance control, linear quadratic regulator, model-predictive control) to solve related robot motion and force control problems.
The course is structured in six main chapters, progressing from rigid body fundamentals through manipulator kinematics and dynamics to control:
Chapter 1: Rigid Body Motions
Lectures 1-5 | Fundamentals, tracking rigid bodies, and differential kinematics
Concepts of space, inertial frame, rigid body, body frame
Orientation representations: Euler angles, angle-axis, quaternions, exponential coordinates
Homogeneous transformations, twists, screw motion
Rotational velocity, rigid body velocity, adjoint transformation
Wrenches and their transformation
Chapter 2: Manipulator Kinematics
Lectures 5-10 | Forward kinematics, inverse kinematics, and differential kinematics
Product of exponentials formula, relation to Denavit-Hartenberg
Manipulator workspace, Paden-Kahan subproblems
Geometric manipulator Jacobian, numerical inverse kinematics
End-effector forces and joint torques
Redundant manipulators, task prioritization, Moore-Penrose pseudoinverse
Singular configurations, manipulability ellipsoid, parallel manipulators
Chapter 3: Rigid Body Dynamics
Lectures 10-13 | Dynamics of constrained particles and rigid bodies
Newton's laws, d'Alembert's principle, Lagrange equations
Linear and angular momentum, inertia matrix, Newton-Euler equations
Dynamic parameter identification, rigid body Lagrangian
Chapter 4: Manipulator Dynamics
Lectures 14-16 | Open-chain and constrained manipulator dynamics
Lagrangian, equations of motion, joint friction
Contact models, Pfaffian constraints
Solving dynamics with Lagrangian multipliers
Newton-Euler algorithm for inverse and forward dynamics
Chapter 5: Fundamentals of System Control
Lectures 17-21 | LTI systems, stability, and state estimation
State space representation, transfer functions, Laplace transformation
Loop transfer, root locus, Nyquist criterion, stability margins
PID control design and tuning
Observability, Luenberger observer
Kalman filter, Bayes filters, recursive state estimation
Chapter 6: Manipulator Control
Lectures 22-27 | Motion control, force control, and optimization-based control
Independent joint control, inverse dynamics control via feedback linearization
Lyapunov stability
Operational space control
Impedance control, direct force control
Linear quadratic regulators and model-predictive control
The course content draws from three textbooks:
A Mathematical Introduction to Robotic Manipulation
by Richard M. Murray, Zexiang Li, and S. Shankar Sastry (1994)
Focus: Kinematics and Dynamics
Modern Robotics
by Kevin M. Lynch and Frank C. Park (2017)
Focus: Kinematics and Dynamics
Feedback Systems: An Introduction for Scientists and Engineers
by Karl Johan Åström and Richard M. Murray (2010)
Focus: Control
Additional recommended textbooks include:
Robotics: Modeling, Planning and Control by Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, and Giuseppe Oriolo (2009)
Applied Dynamics: With Applications to Multibody and Mechatronic Systems by Francis C. Moon (1998)
Control System Design: An Introduction to State-Space Methods by Bernard Friedland (2005)
Students use either MATLAB or Python for coding challenges. Students are responsible for ensuring they have access to and proficiency with their chosen environment. Resources include official documentation, CMU library resources, and online learning platforms focusing on scientific computing and numerical methods.
Students' comprehension of theoretical concepts and practical application skills are assessed through biweekly assignments. These assignments typically contain mixed theoretical problems and coding challenges. Example tasks include:
translating fundamental kinematics concepts like rotation matrices and exponential coordinates to planar motion problems,
writing forward dynamics algorithms for robot mechanisms and simulating their dynamics,
estimating the state of a moving object from noisy IMU data.