Skip to content

Tadinu/awesome_mujoco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Awesome MuJoCo

Python

MJX/JAX

MJW/WARP

WASM

Rollout

MJCF

MJCF: Schema

MJCF: Asset - Mesh

Note: Please refer here for mesh geoms centering & alignment upon model compilation. This makes model.geom('abc').pos/quat be different from their settings in XML! In that case, use MjSpec to read those instead.

Models

- Models: Programming Update

    mj_model.qpos0[:] = [0.3, 0.5]
    mujoco.mj_setConst(mj_model, mj_data)

    mjw_model.qpos0.numpy()[0, :] = [0.3, 0.5]
    mjwarp.set_const(mjw_model, mjw_data)

- Models: MJX

- Models: Gripper

- Models: Gripper - Hand

- Models: Arm

- Models: Bimanual

- Models: Multi-arms

- Models: Vehicle/Mobile

- Models: Humanoid/Biped

- Models: Wheeled biped

- Models: Quadruped

- Models: Kitchen

- Models: Furniture

- Models: Biology Lab

- Models: Task-specific

- Models: Others

OBJ -> MJCF

Blender -> MJCF

URDF -> MJCF

XACRO -> MJCF

SDF -> MJCF

MJCF <-> USD

MoCap bodies

Optimization

System identification

Kinematics

Physics/Dynamics

- Gravity compensation

- Constraints

- Contact

- Stability / Performance

Motion planning

Control

- Control: Impedance

Cartesian EE Control with Mocap using refsite & weld (handy but specialized/non-versatile) - Alternatives

MPC

MPC: Humanoid

Learning

Reinforcement Learning (RL in Brax, Mujoco Warp, dm_control, Mujoco Playground, gymnasium, etc.)

RL: Arm/Hand

RL: Shadow-hand

RL: Adroit-hand

RL: Soft-body

RL: Underactuated-Humanoid

RL: Underactuated-Quadruped

RL: Drone/Fly

RL: Vehicle

Imitation Learning (IL)

Rendering

Offscreen rendering

Configure MuJoCo to use the EGL rendering backend (requires GPU) If requiring X11 virtual buffer, use xvfbwrapper. Do NOT run Xvfb directly, of which the process owns its lock file created temporarily at /tmp, which in some edge case has to be deleted manually afterward, which is not always convenient to do if running on a shared server that grants limited write-right to OS users.

with Xvfb(width=720, height=4801080) as xvfb: # -> xvfb will delete its own lock upon exit
  print(f"Using Xvfb display: {xvfb.new_display}")
    headless = True
    if headless:
      os.environ["MUJOCO_GL"] = "egl"
      os.environ["PYOPENGL_PLATFORM"] = "egl"
      assert os.environ["DISPLAY"] is not None, "Xvfb is required to start in advance!\n"
      "Please use xvfbwrapper. DON'T RUN: `Xvfb :<no> -screen 0 720x480x24` DIRECTLY!"
      main(record_video=headless)

Visual Scene

UI

Synthesis

Synthetic Data Collection (by Teleoperation, VR, etc.)

- Collision

- Force

- Tactile/Touch

- Lidar

Representation

ROS

Utils

Discord (unofficial)

Show/Share

Industrial Usage