MuJoCo Bootcamp


All Material

No. Notes/Video C Code Python Code Description
0 Notes: Installation

Video: Installation/File structure
None None
1 Notes: Modelling in MuJoCo

Video: Writing xml
Starter: hello.xml

Final: learning_xml.zip
None
  • Using the executable *simulate* to load hello.xml
  • Understanding the various features of *simulate*
  • Using the XML reference
  • Adding more geometries to hello.xml and viewing with *simulate*
2 Notes: Simulations in MuJoCo

Video: Projectile with drag
Starter: template.zip

Final: projectile.zip
Start: temp_mjcpy.zip

Final: 2_projectile.zip
  • Using the executable *simulate* to model a projectile
  • Compiling and running your own executable file
  • Using the API reference
  • Setting initial conditions for the projectile
  • Adding a drag force to the projectile
3 Notes: Position, Velocity, & Torque control

Video: Control a simple pendulum
Starter: template.zip

Final: control_pendulum.zip
Start: temp_mjcpy.zip

Final: 3_control_pendulum.zip
  • Using the executable *simulate* to model of a simple pendulum
  • Add a torque actuator to xml and use it in the code
  • Add a position servo actuator to xml and use it in the code
  • Add a velocity servo actuator to xml and use it in the code
  • Position control using either torque control of position/velocity servo
  • Create noisy sensor in xml and use it in the code
  • Switch between different controllers in the code
4 Notes: Model-based control

Video: Control a double pendulum
Starter: template_writeData.zip

Final: dbpendulum.zip
Start: temp_mjcpy.zip

Final: 4_dbpendulum.zip
  • Create a model of double pendulum
  • Check conservation of energy
  • Check validity of equations of motion
  • Add a velocity servo actuator to xml and use it in the code
  • Model-based control, compensating for gravity and coriolis forces
5 Notes: Trajectory tracking & Finite State Machines

Video: Leg Swing
Starter: template_writeData2.zip

Final: dbpendulum_fsm.zip
Start: temp_mjcpy.zip

Final: 5_dbpendulum_fsm.zip
  • Finite state machines for creating switching controllers
  • Trajectory generation, linear and cubic profiles
  • Trajectory tracking
6 Notes: Jacobian and Inverse Kinematics

Video: Manipulator drawing
Starter: template_writeData2.zip

Final: dbpendulum_ik.zip
Start: temp_mjcpy.zip

Final: 6_dbpendulum_ik.zip
  • Computing Jacobian
  • Using Jacobian to compute velocity of end-effector
  • Inverse kinematics using the inverse of the Jacobian
7 Notes: Linear Quadratic Regulator

Video: Control an under-actuated pendulum
Starter: template_dbpendulum.zip

Final: dbpendulum_lqr.zip
Start: temp_mjcpy.zip

Final: 7_dbpendulum_lqr.zip
  • Computing the numerical form of differential equation xdot = f(x,u)
  • Computing the linearization of the system
  • Computing LQR controller in MATLAB
  • Testing the controller using perturbation
8 Notes: Hybrid Systems

Video: Gymnast swing/release on a bar
Starter: template_pendulum.zip

Final: hybrid_pendulum.zip
Start: temp_mjcpy.zip

Final: 8_hybrid_pendulum.zip
  • Modeling a floating base system, a pendulum with moving support
  • Using tag equality to constrain the pendulum
  • Verifying the equations of a floating base system
  • Using a finite state machine to simulate the behavior of a hybrid system
9 Notes: 2D Hopper

Video: 2D Hopper
Starter: template_pendulum.zip

Final: hopper.zip
Start: temp_mjcpy.zip

Final: 9_2D_hopper.zip
  • Modeling a hopper
  • State machine, transitions and actions
  • Height control using spring-like actuation
  • Velocity control using reactive torque during stance
10 Notes: Installing NLOPT

Video: Install and run NLOPT
Starter: template_nlopt.zip

None


None
11 Notes: Projectile Launch

Video: Initial Value problem using Optimization
Starter: template_projectile.zip

Final: projectile_opt.zip
Start: temp_mjcpy.zip

Final: 11_projectile_opt.zip
  • Creating the scene in xml
  • Formulation as a root finding problem
  • Formulation as an optimization problem
12 Notes: Inverse Kinematics

Video: Inverse Kinematics using Optimization
Starter: template_manipulator.zip

Final: manipulator_ik.zip
Start: temp_mjcpy.zip

Final: 12_manipulator_ik.zip
  • Creating two data objects; one for simulation and one for actual system
  • Different between internal and external callbacks for controller
  • Formulation and solution as a root finding problem
13 Notes: 2D Biped

Video: 2D Biped
Starter: template_pendulum2.zip

Final: biped.zip
Start: temp_mjcpy.zip

Final: 13_2D_biped.zip
  • Modeling a biped
  • State estimation; foot positon and absolute leg angle
  • State machine; transitions, and actions

Homework

Content Concepts Tested
HW1: Rube Goldberg Machine Generate different geometries in xml and initializing using code (lec 0, lec 1, and lec 2).
HW2: Rott's pendulum & Coupled pendulum Model systems with pin joints. Simulate spring behavior (lec 0, lec 1, and lec 3).    
HW3: Pumping a pendulum swing Model systems with pin/hinge joints. Position control. Finite State machine (lec 0, lec 1,  lec 3, lec 5).    
HW4: Manipulator drawing & Balance a cart-pendulum Jacobian and Inverse Kinematics. Linearization and linear quadratic control (lec 6 and lec 7). 
HW5: Simulate a biped on level ground Position control. Finite State machine. 2D hopper/biped (lec 0, lec 1,  lec 3, lec 5, lec 9, and lec 13).