From adc4b92c1b38b9b3976aebdfa437acce2092bf17 Mon Sep 17 00:00:00 2001 From: Yuval Tassa Date: Wed, 13 Mar 2024 11:55:36 -0700 Subject: [PATCH] Document nonlinear least-squares tutorial. PiperOrigin-RevId: 615496587 Change-Id: I97975a4dc99a599afd1eb6964d0ca0cf3d9fcc0e --- README.md | 11 ++++++----- doc/XMLreference.rst | 3 ++- doc/changelog.rst | 6 ++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cb19a639..25a16d93 100644 --- a/README.md +++ b/README.md @@ -50,12 +50,13 @@ your machine. If you are a Python user, you might want to start with our tutorial notebooks running on Google Colab: - - The first tutorial focuses on the basics of MuJoCo: + - The **introductory tutorial** teaches MuJoCo basics: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/google-deepmind/mujoco/blob/main/python/tutorial.ipynb) - - For a more advanced example, see the LQR tutorial which creates an LQR - controller to balance a humanoid on one leg using MuJoCo's dynamics - derivatives: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/google-deepmind/mujoco/blob/main/python/LQR.ipynb) - - The MJX tutorial provides usage examples of + - The **LQR** tutorial synthesizes a linear-quadratic controller, balancing a humanoid on one leg: + [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/google-deepmind/mujoco/blob/main/python/LQR.ipynb) + - The **least-squares** tutorial explains how to use the Python-based nonlinear least-squares solver: + [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/google-deepmind/mujoco/blob/main/python/least-squares.ipynb) + - The **MJX** tutorial provides usage examples of [MuJoCo XLA](https://mujoco.readthedocs.io/en/stable/mjx.html), a branch of MuJoCo written in JAX: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/google-deepmind/mujoco/blob/main/mjx/tutorial.ipynb) diff --git a/doc/XMLreference.rst b/doc/XMLreference.rst index dba9aa79..11138022 100644 --- a/doc/XMLreference.rst +++ b/doc/XMLreference.rst @@ -1262,7 +1262,8 @@ The full list of processing steps applied by the compiler to each mesh is as fol the desired vertices and faces have already been generated and do not apply removal or re-indexing; #. If vertex normals are not provided, generate normals automatically, using a weighted average of the surrounding face normals. If sharp edges are encountered, the renderer uses the face normals to preserve the visual information about - the edge, unless :ref:`smoothnormal` is true. Note that normals cannot be provided with STL meshes; + the edge, unless :ref:`smoothnormal` is true. + Note that normals cannot be provided with STL meshes; #. Scale, translate and rotate the vertices and normals, re-normalize the normals in case of scaling; #. Construct the convex hull if specified; #. Find the centroid of all triangle faces, and construct the union-of-pyramids representation. Triangles whose area is diff --git a/doc/changelog.rst b/doc/changelog.rst index be50cbb0..9fabc3c2 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -49,6 +49,12 @@ Python bindings ^^^^^^^^^^^^^^^ 11. Fixed incorrect data types in the bindings for the ``geom``, ``vert``, ``elem``, and ``flex`` array members of the ``mjContact`` struct, and all array members of the ``mjrContext`` struct. +12. Added the ``mujoco.minimize`` Python module for nonlinear least-squares, designed for System Identification (sysID). + The sysID tutorial is work in progress, but a pedagogical colab notebook with examples, including Inverse + Kinematics, is available here: |ls_colab| + +.. |ls_colab| image:: https://colab.research.google.com/assets/colab-badge.svg + :target: https://colab.research.google.com/github/google-deepmind/mujoco/blob/main/python/least_squares.ipynb Version 3.1.2 (February 05, 2024)