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:
- 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 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.
|