Topic (Units) 
Videos 
Lecture Notes 
Source Code 
Description 
MATLAB Tutorials 
MATLAB Basics 
Basics PDF 
N/A 
 MATLAB tutorials filled with helpful knowledge
 Gives basic understanding of MATLAB Animations and Scripts

MATLAB Scrpits 
Scripts PDF 
MATLAB Animations 
Animations PDF 
1. Foward Kinematics 
Forward Kinematics Video 
Forward Kinemetics PDF 
Lec Code 1 
 Representing the kinematics using homogenous rotaions and translations
 Forward kinematics gives the endeffector position for the given joint angles
 llustrated using a twolink planar manipulator.

2. 2D Inverse Kinematics 
Inverse Kinemetics Video 
Inverse Kinemetics PDF 
Lec Code 2 
 Inverse kinematics is solving for joint angles for a given position of the endeffector.
 This is harder because there may be a single, multiple or no solution to the inverse kinematics problem.
 Here we use root finding to solver for the inverse kinematics and illustrate it on a 2D planar manipulator.

3. Dynamics using EulerLagrange Equations 
3a. Dynamics using EulerLagrange Equations 
Dynamics of EulerLagrange PDF 
Lec Code 3 
 Algorithm for solving for equations of motion using EulerLagrange equations. This is illistrated on a simple projectile withdrag
 Basics of differentiation and chain rule. Writing symbolic code to derive the equations of motion.
 Demonstrate how to derive equations of motion of a planar double pendulum

3b. Deriving Equations of Motion 
3c. Double Pendulum Simulation 
3d. 1D projectile using EulerLagrange 
4. Intro. to Coppelia Sim 
Projectile using EulerLagrange 
N/A 
Lec 4 Code 
 Shows how to model and simulate a 2D projectile with drag in CoppeliaSim.

5. Modeling in CoppeliaSim 
Modeling Simple Pendulum 
N/A 
Lec 5 Code 
 Modeling for a simple pendulum in CoppeliaSim
 Then we demonstrate how to do velocity, postion and torque using Lua scripts.

6. Jacobian Applications 
Jacobian and its Applications 
Jacobian PDF 
Lec 6 Code 
Basics of Jacobian. We show how to compute the Jacobian using symbolic computations and finite differences. We present two applications of Jacobian
 Find the velocity of points of interest and illustrated on planar double pendulum
 Find the static forces on a double pendulum.

7. Intro. to Hybrid Systems 
Hybrid Systems Bouncing Ball Example 
Hybrid Intro PDF 
Lec 7 Code 
 Illustrate a hybrid system, a bouncing ball. We develop basic framework for simulating the system by coding one bounce and then repeated calls to one bounce
 Introduction to passive dynamic walker as a hybrid system. Terminology of hybrid systems such as Poincare map, fixed point, linearized stability of the fixed point, and a simple analytical example.

Hybrid Systems Termonology 
Hybrid Terminology PDF 
8. Passive Dynamic Walkers 
8a. Passive Dynamic Walker (Pt1) 
Passive Dynamic Walker PDF 1 
Lec 8 Code 
 (Pt1 derivation) Intuition behind writing the equations of motion. Use of EulerLagrage equations to derive the equation for stance phase.
 (Pt2  derivation) Use of EulerLagrage equations to derive the equations for heelstrike. Some intuition about how to simulate the system
 (Pt3 coding) Live coding of the equations to generate steady state gaits and analyze their linearized stability (see Terminology for hybrid systems)

8b. Passive Dynamic Walker (Pt2) 
Passive Dynamic Walker PDF 2 
8c. Passive Dynamic Walker (Pt3) Coding 
9. Rimless Wheel Modeling in CoppeliaSim 
Rimless Wheel Modeling Video 
N/A 
Lec 9 Code 
Shows different ways of modeling a 2D rimless wheel:
 Using two wheels attached side to side
 Using a spherical joint to constrain the wheel to 2D.

10. Jacobian Application Review 
Jacobian Review Problems 
Jacobian Review PDF 
N/A 
We review Jacobians disscussed in Unit 6. 
11. Closed Loop 5link Chain Simuations 
Dynamics simulation of clsoed 5 chain loops 
Closed Chain Loops PDF 
Lec 11.1 Code 
 We demonstrate how to derive equations of a closedloop chain and simulate.
 We start off deriving equations of a 5link pendulum and then add a constraint to create the closed loop chain.
 Next, we show how to model and simulate a closedloop chain in Coppelia Sim

5link Chain in Coppelia Sim 
Lec 11.2 Code 
12. Hopping model: Spring Loaded Inverted Pendulum 
Spring load inverted pendulum model 
Hopping Model PDF 
Lec 12 Code 
 Using EulerLagrange equations to derive the equations of motion.
 Details on simulation and animation.
 Generating steady state gaits and analyzing linear stability (see terminolgy for hybrid systems)

13. CoppeliaSim Custom PID Control 
Custom PID Control Video 
N/A 
Lec 13 Code 
 We illustrate how to do a custom PID control.
 The pendulum is in torque control mode and the PID is on either the position or suitable cartesian coordinate.

14. Foot Placment Control 
Foot Placement Control for Hopper 
Hopper Foot Control PDF 
Lec 14.1 Code 
 Foot placement control of hopper using Raibert’s control
 This section derives a simple control law using some intuition.
 MATLAB code shows how the controller works.

Foot Placement Control for Walker 
Walker Foot Control PDF 
Lec 14.2 Code 
 This section sketches some ideas on developing a foot placement control using a table lookup.
 No code provided

15. CoppeliaSim Walker and Hopper Simulations 
Two tricks for 2D legged simulation 
Walker Simulations PDF 
Lec 15a Code 
Generating a reference trajectory using polynomials and given start and end conditions 
15b. Trajectory Generation 
Trajactory Generations PDF 
Lec 15b Code 
16. Trajectory Optimization 
Trajectory Optimization Video 
Trajectory Optimization PDF 
Lec 16 Code 
 Shows how to setup trajectory optimization using shooting and transcription method.
 The example problem was to get a car to travel from start to goal in minimum time.

17.2 Control Patitioning/Feedback Linearization 
Control Partitioning (pt1) 
Feedback Lineraization PDF 1 
Lec 17b Code 
 This section introduces control partitioning or feedback linearization to track the reference motion.
 The key idea is to cancel the nonlinear dynamics and gravitational dynamics followed by wrapping a feedback controller
 The concepts are illustrated using simple MATLAB examples.
 Additional methods such as feedforward, gravity + feedback, proportionalintegralderivative control are also introduced.

Control Partitioning (pt2) 
Feedback Lineraization PDF 2 
Lec 17c Code 
18. Debugging Trajectory Optimization 
Debugging Video 
Optimization PDF

N/A 
Discusses some issues for performing trajectory optimization for projectile and legged systems.

19. Projectile Simulation: Calling CoppeliaSim from MATLAB 
MATLAB Projectile Sim via CS Sim API 
N/A

Lec 19 Code 
 We demonstrate how to control a projectile from MATLAB using the remote API
 This video is similar to Unit 4, but using Remote API instead of Regular API

20. Solving Periodic Gait Using Fmincon 
Solving Periodic Gait 
N/A

Lec 20 Code 
 This video shows how to solve for periodic gaits for a compass gait walker on level ground that is powered only by an ankle pushoff.

21. Control Partitioning in CoppeliaSim 
Control Partitioning/Feedback Linearization 
N/A 
Lec 21 Code 
We use reflexxes motion library to generate a trajectory and then use control partitioning to track it. 
22. Finite State machine to Control Pendulum 
Using State machine to Control Pendulum 
N/A

Lec 22 Code 
 A finite state machine is a control architecture to develop controllers for walking machines.
 This example illustrates how to program a finite state machine to do a swing up and hold.
 Might be helful to review lecture 5.

23. Control of Walker 
Walker control using Partial Feedback Linearization 
Mechanics of Walkers PDF 
Lec 23 Code 
 Since one of the two joints of the robot are unactuated, one can only usal partial feedback to control one joint
 The other joint is left free and is analzed using tools from hybrid systems (see Terminology for hybrid systems)

24. Passive Dynamic Walker 
Passive Dynamic Walker Video 
N/A 
Lec 24 Code 
 A model of passive walking with articulated knees (to get ground clearance) and hip spring to tune frequency of the swinging legs.
 The two tricks (see 15 a)are used to keep track of absolute angles and rotate gravity.
 A finite state machine is used to generate the simulation.

25. Feedback Linearization 
Feedback Linearization for Closed Chains 
Closed Chain Modeling and Simulation Control 
Lec 25 Code 
 We demonstrate feedback linearization of closed chains.
 We demonstrate 3 models, symmetric linkage, parallel linkage with two points of actuation.

26. Euler Parameters and Rotations 
Rotations and Euler Parameters 
3D rotations and Velocity PDF 
Lec 26 Code 
Introduction to 3D rotations using Euler Angles 
27. 3D Angular Velocity 
3D anguar velocity 
3D angular Velocity PDF 
N/A 
 EulerLagrange equations applied to a free falling block
 This includes derivations, simulations and animation for the falling block.

28. 3D Dynamics 
Free Falling Block 
3D Dynamics PDF 
Lec 28 Code 
Illustrates the use of EulerLagrange equations in 3D on a block falling under gravity 
29. Zero Reference Model 
Zero Reference Model for Kinmatics 
Zero Reference Model PDF 
Lec 29 Code 
 Since EulerLagrange equations for simple systems get unwiedly it is recommended to these time consuming equations to C (called MEX files) and call them from MATLAB
 This section illustrates how to write MEX files and demonstrates derivation, simulation, and animation of a nlink pendulum where the number of links n can be set by the user

MEX Files MATLAB to C++ Interface 
30. Biped Control and Simulations 
Humanoid Modeling and Control 
Humanoid PDF 
Lec 30 Code 
 Uses EulerLagrange equations to derive the equation
 Using trajectory generation to generate profiles for hip and knee.
 Use of partial feedback linearization to control the 3D model.
 Includes simulations, generation of MEX files, and animations.
