01 — Robot Simulation

Robot Simulation

MuJoCo

2/5/2025

02 — Agenda

Agenda

  1. 01News!
  2. 02Why Simulation?
  3. 03MuJoCo Workshop
03 — Section

News!

04 — News

News!

Open-source

Physical Intelligence Pi0 - now open-source!

Robot

Octopus-inspired robot

05 — Section

Why Simulation?

06 — Recap

Why Simulation?

Solution: Simulation

Problem pressure
  • Robots are expensive
  • Industrial/research arms are ~$15k-40k
  • Need data, both for validation and for robot learning
  • Extremely time consuming to collect, does not scale well with demand
  • Safety: if a robot goes haywire IRL, it can cause real damage (and potentially severe injury)
Solution: Simulation
07 — Workshop

MuJoCo Tutorial

08 — Definition

What is MuJoCo?

Multi-Joint dynamics with Contact

Overview
  • General purpose physics engine, aims to enable research in any area that require simulation of objects interacting with an environment
  • Developed by Roboti LLC, acquired and open-sourced by DeepMind
  • C/C++ library with a C API, also has Python bindings
  • And unofficial Julia demos
09 — How It Works

How It Works

mjModel
contains model description, expected to remain constant
MJCF file specifies
Physics parameters i.e. gravity
Object parameters i.e. joints, sensors, etc
Visual properties materials

Can typically create one using an MJCF file.

10 — How It Works

How It Works

mjData
information derived from mjModel as the simulation
Changes at each timestep
  • Unlike mjModel, this changes at each timestep
  • Contains state information, such as:
  • Joint positions and velocities (qpos, qvel)
  • Control signals and inputs
  • Sensor readings
  • Forward kinematics results, force and acceleration data, Jacobians, etc
model, data
mjStep(model, data)

To move the simulation forward (i.e. get the next mjData), call mjStep(model, data).

11 — Example

MPPI in MuJoCo

12 — Example

RL in MuJoCo

13 — Close

Thanks!

Do you have any questions/suggestions?