MuJoCoPy Bootcamp


Course Material

No. Notes/Video Code Description
1 Video: Mac install app/C version

Video: Win install app/C version

Video: Linux install app/C version
Mac: starter code

Win: starter code

Linux: starter code
2 Video: Mac install python/atom IDE

Video: Win install python/atom IDE

Video: Linux install python/atom IDE
template_mujoco_python.zip
3 Notes: Modelling in MuJoCo

Video: Modifying xml files
Starter: hello.xml

Final: learning_xml.zip
  • 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*
4 Notes: 2D Manipulator

Video: Modeling

Video: Forward Kinematics
Starter xml: hello.xml

Starter py: template_mujoco_python.zip

Final: 2D_manipulator.zip
  • Modeling links and joints
  • Adding a site and using sensors
  • Using MuJoCo API
  • Adding mj_forward, data.qpos, and data.site_xpos
5 Notes: Differential Drive Car

Video: Modeling the car

Video: Controlling the car

Video: Model info
Starter: hello.xml

Starter py: template_mujoco_python.zip

Final: 2D_Diff_Drive_Car.zip
  • Modeling wheels using hinge joints
  • Adding velocity actuators
  • Adding a site and accessing it using sensors
  • Setting velocity servo using data.ctrl
  • Outputing and understanding mjmodel.txt
6 Notes: Projectile with drag

Video: Modeling/Simulation
Starter xml: hello.xml

Starter py: template_mujoco_python.zip

Final: 2D_projectile.zip
  • Modeling projectile as a sphere
  • Setting initial pos/vel using qpos, qvel
  • Adding drag force using qfrc_applied / xfrc_applied
7 Notes: Projectile Game

Video: Modeling/Simulation
Starter py: template_mujoco_interactive.zip

Final: 2D_projectile_game.zip
  • Create overlays to display instructions
  • Respond to key presses
  • Create a simple game: projectile hitting a target
8 Notes: Inverse Kinematics using Jacobians

Video: Simulation
Starter py: 2D_manipulator.zip

Final: 2D_manipulator_ik_jacobian.zip
  • Concept of jacobian/inverse kinematics
  • Jacobians from mj_jac
  • A two-link manipulator drawing a circle
9 Notes: Position/Velocity/Torque servo

Video: Modeling/Simulation
Starter py: 2D_pendulum_passive.zip

Final: 2D_servo_control.zip
  • Setting actuators in xml
  • Position/Velocity/Torque servo concepts
  • Springy behavior/Velocity and Position servo
10 Notes: Finite State Machine

Video: Simulation
Starter py: 2D_servo_control.zip

Final: 2D_fsm_control.zip
  • Concept of finite state machine
  • Swing up control of a pendulum
11 Notes: Rolling/Sliding Ball

Video: Modeling/Simulation
Starter py: template_mujoco_python.zip

Final: 2D_ball_roll_slide.zip
  • Building 2D models in XML
  • Setting initial conditions to the ball
12 Notes: Trajectory generation/tracking

Video: Simulation
Starter py: 2D_double_pendulum.zip

Final: 2D_trajectory_tracking.zip
  • Trajectory generation based on given conditions
  • Tracking using model-based and feedback-only control
13 Notes: Linear Quadratic Regulator

Video: Simulation
Starter py: 2D_double_pendulum.zip

Final: 2D_double_pendulum_LQR.zip
  • Numerical differentiation to compute linearization
  • Linear Quadratic Regulator
  • Stabilization of an underactuated double pendulum