Legged Robotics



Module 1: 2D Passive hopper (MATLAB)

Topic (Units) Videos Lecture Notes Source Code Description
3. Dynamics using Euler-Lagrange Equations 3a. Dynamics using Euler-Lagrange Equations Dynamics of Euler-Lagrange PDF Lec Code 3
  • Algorithm for solving for equations of motion using Euler-Lagrange equations.
  • This is illustrated using a simple projectile with drag
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
12. Hopping model: Spring Loaded Inverted Pendulum Spring load inverted pendulum model Hopping Model PDF Lec 12 Code
  • Using Euler-Lagrange 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)



Module 2: 2D Hopper control using foot placement (Raibert Control)

Topic (Units) Videos Lecture Notes Source Code Description
3. Dynamics using Euler-Lagrange Equations 3a. Dynamics using Euler-Lagrange equations video Dynamics of Euler-Lagrange PDF Lec Code 3
  • Algorithm for solving for equations of motion using Euler-Lagrange equations.
  • This is illustrated on a simple projectitle with drag.
14. Foot Placment Control 14a. Foot Placement Control for Hopper Hopper Foot Control PDF Lec 14a 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.



Module 3: Passive dynamic walker (MATLAB)

Topic (Units) Videos Lecture Notes Source Code Description
1. Foward Kinematics Forward Kinematics Video Forward Kinemetics PDF Lec Code 1
  • Representing the kinematics using homogenous rotaions and translations
  • Forward kinematics gives the end-effector position for the given joint angles
  • llustrated using a two-link planar manipulator.
3. Dynamics using Euler-Lagrange equations 3a. Dynamics using Euler-Lagrange Equations Dynamics of Euler-Lagrange PDF Lec Code 3
  • Algorithm for solving for equations of motion using Euler-Lagrange 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
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 Euler-Lagrage equations to derive the equation for stance phase.
  • (Pt2 - derivation) Use of Euler-Lagrage 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



Module 4: 2D Walker controlled using partial feedback linearization


Topic (Units) Videos Lecture Notes Source Code Description
1. Foward Kinematics Forward Kinematics Video Forward Kinemetics PDF Lec Code 1
  • Representing the kinematics using homogenous rotaions and translations
  • Forward kinematics gives the end-effector position for the given joint angles
  • llustrated using a two-link planar manipulator.
3. Dynamics using Euler-Lagrange Equations 3a. Dynamics using Euler-Lagrange Equations Dynamics of Euler-Lagrange PDF Lec Code 3
  • Algorithm for solving for equations of motion using Euler-Lagrange 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
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 Passive Dynamic Walker (Pt1) Passive Dynamic Walker PDF 1 Lec 8 Code
  • Intuition behind writing the equations of motion. Use of Euler-Lagrage equations to derive the equation for stance phase.
  • Use of Euler-Lagrage equations to derive the equations for heelstrike. Some intuition about how to simulate the system.
Passive Dynamic Walker (Pt2) Passive Dynamic Walker PDF 2
15. Trajectory simulation 15b. Trajectory Generation Trajactory Generations PDF Lec 15b Code
  • Generating a reference trajectory using polynomials and given start and end conditions
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 feed-forward, gravity + feedback, proportional-integral-derivative control are also introduced.
Control Partitioning (pt2) Feedback Lineraization PDF 2 Lec 17c Code
23. Legged mechanics for Walkers Walker with Feedback Linerazation Mechanics of Walkers PDF Lec 23 Code
  • Since one of the two joints of the robt 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)
14b. Foot Placement control of Walker Walker foot placement Walker Foot Control PDF Lec 14b Code
  • This section sketches some ideas on developing a foot placement control using a table lookup.
  • No Code provided



Module 5: 3D Biped walking (MATLAB)


Topic (Units) Videos Lecture Notes Source Code Description
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. Angular Velocity 3D anguar Velocity 3D angular Velocity PDF N/A
  • Euler-Lagrange equations applied to a free falling block
  • This includes derivations, simulations and animation for the falling block.
29. Zero Reference Model Zero Reference Model for Kimetics Zero Reference Model PDF Lec 29 Code
  • Since Euler-Lagrange 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 n-link pendulum where the number of links n can be set by the user
MEX Files MATLAB to C++ Interface
8. Passive Dynamic Walkers Passive Dynamic Walker (Pt1) Passive Dynamic Walker PDF 1 Lec 8 Code
  • Intuition behind writing the equations of motion. Use of Euler-Lagrage equations to derive the equation for stance phase.
  • Use of Euler-Lagrage equations to derive the equations for heelstrike. Some intuition about how to simulate the system.
Passive Dynamic Walker (Pt2) Passive Dynamic Walker PDF 2
15. Trajectory generation 15b. Trajectory Generation Trajactory Generations PDF Lec 15b Code
  • Generating a reference trajectory using polynomials and given start and end conditions
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 feed-forward, gravity + feedback, proportional-integral-derivative control are also introduced.
Control Partitioning (pt2) Feedback Lineraization PDF 2 Lec 17c Code
30. Biped Control and Simulations Humaniod Modeling and Control Humanoid PDF Lec 30 Code
  • Uses Euler-Lagrange 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.



Module 6: 2D Rimless wheel modeling (CoppeliaSim)

Topic (Units) Videos Lecture Notes Source Code Description
4. Intro. to Coppelia Sim Projectile using Euler-Lagrange N/A Lec 4 Code
  • Shows how to model and simulate a 2D projectile with drag in CoppeliaSim.
9. Rimless Wheel Modeling in CoppeliaSim Rimless Wheel Modeling Video N/A Lec 9 Code Shows different ways of modeling a 2D rimless wheel:
  1. Using two wheels attached side to side
  2. Using a spherical joint to constrain the wheel to 2D.
15. Two tricks for simulating planar systems in CoppeliaSim 15a. Two tricks for 2D legged simulation Walker Simulations PDF Lec 15a Code
  • This rimless model shown here has a torso.
  • The torso can be controlled to a constant pitch angle to get the rimless wheel to move continuously.
  • (See 5 Modeling and control in CoppeliaSim on how to do position, velocity, and torque control).



Module 7: 2D Passive dynamic Walker (CoppeliaSim)

Topic (Units) Videos Lecture Notes Source Code Description
4. Intro to Coppelia Sim Projectile using Euler-Lagrange N/A Lec 4 Code
  • Shows how to model and simulate a 2D projectile with drag in CoppeliaSim.
9. CoppeliaSim Rimless Wheel Modeling Rimless Wheel Modeling Video N/A Lec 9 Code Shows different ways of modeling a 2D rimless wheel:
  1. Using two wheels attached side to side
  2. Using a spherical joint to constrain the wheel to 2D.
15. Two tricks for simulating planar systems in coppeliaSim 15a. Two tricks for 2D legged simulation Walker Simulations PDF Lec 15a Code
  • This rimless model shown here has a torso.
  • The torso can be controlled to a constant pitch angle to get the rimless wheel to move continuously.
  • (See 5 Modeling and control in CoppeliaSim on how to do position, velocity, and torque control).
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.
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.




All Lecture Material

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 end-effector position for the given joint angles
  • llustrated using a two-link 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 end-effector.
  • 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 Euler-Lagrange Equations 3a. Dynamics using Euler-Lagrange Equations Dynamics of Euler-Lagrange PDF Lec Code 3
  • Algorithm for solving for equations of motion using Euler-Lagrange 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 Euler-Lagrange
4. Intro. to Coppelia Sim Projectile using Euler-Lagrange 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 Euler-Lagrage equations to derive the equation for stance phase.
  • (Pt2 - derivation) Use of Euler-Lagrage 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:
  1. Using two wheels attached side to side
  2. 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 5-link 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 closed-loop chain and simulate.
  • We start off deriving equations of a 5-link pendulum and then add a constraint to create the closed loop chain.
  • Next, we show how to model and simulate a closed-loop chain in Coppelia Sim
5-link 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 Euler-Lagrange 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 feed-forward, gravity + feedback, proportional-integral-derivative 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 push-off.
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
  • Euler-Lagrange 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 Euler-Lagrange 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 Euler-Lagrange 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 n-link 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 Euler-Lagrange 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.