Commit Graph

355 Commits

Author SHA1 Message Date
Nimrod Gileadi 393895bb29 Explicitly specify actdim on PID plugin actuators, to allow them to be used with keyframes.
Support actdim attribute on plugin actuators.

Remove the actuator_actdim callback. This callback leads to crashes when loading keyframes for models that have a stateful plugin.

PiperOrigin-RevId: 650649505
Change-Id: I40d1994d02ae4e20ce631b2702a984766cf2628e
2024-07-09 09:08:48 -07:00
Kyle Bayes 57e6760ec9 Re-implement VFS internals in C++, removing the constraints of the previous implementation.
PiperOrigin-RevId: 649433087
Change-Id: Icaa3e6b7f2ef14f56b04fef2f4360b46d8b5f022
2024-07-04 09:22:23 -07:00
Alessio Quaglino 9106f40e2b Add mjSpec bindings.
Co-authored-by: Saran Tunyasuvunakool <stunya@google.com>
PiperOrigin-RevId: 648444641
Change-Id: I08ee1d3f4fae1efbc7934ba94702b1c06d8cb92a
2024-07-01 12:05:50 -07:00
Yuval Tassa 0c3698f278 Don't normalize mocap quaternions in-place.
PiperOrigin-RevId: 648394295
Change-Id: I348a0a045c1697f6ef782280d92c90a30759eb33
2024-07-01 09:29:50 -07:00
Yuval Tassa 4d4b0bb2c3 Don't normalize mjData->qpos quaternions in-place.
PiperOrigin-RevId: 647927542
Change-Id: I13b0be55498d1da3af2cdc414cfed4c3908a6fe1
2024-06-29 03:07:10 -07:00
Yuval Tassa 62e2842116 Skip deprecated mju_rotVecMat and mju_rotVecMatT in Python bindings.
PiperOrigin-RevId: 647275284
Change-Id: I371236182b22eb399041959901085bb82af3f670
2024-06-27 05:06:01 -07:00
Kyle Bayes e66b9a36b2 Remove mj_makeEmptyFileVFS and mj_findFileVFS from MuJoCo API.
PiperOrigin-RevId: 645393666
Change-Id: Iabe939c88f60b80dce20f84c7ff9a6396717cc84
2024-06-21 08:12:51 -07:00
Nimrod Gileadi 2188cba4cd Fix a memory leak when copy.deepcopy(data) is called.
In MjDataWrapper.__deepcopy__ use the Python implementation of MjModelWrapper.__deepcopy__ to make an object that Python knows about and can release later.

Fixes google-deepmind/mujoco#1572.

PiperOrigin-RevId: 644967999
Change-Id: I95d093c672e136122e1939f69463a4d29dad82e8
2024-06-20 03:46:16 -07:00
Yuval Tassa 3f3b39bbb1 Fix type-related issues in dependent code. Remove hardcoded mjUSEDOUBLE. Add mjUSESINGLE compiler flag.
This CL does not change the default build behavior of MuJoCo. To use single-precision floating-point, build MuJoCo with `-DmjUSESINGLE`.

PiperOrigin-RevId: 644782648
Change-Id: Ie815df9916798ca8054306437b39a33f84ce9e08
2024-06-19 10:52:18 -07:00
Yuval Tassa 1eb708646d Update the simulate tutorial video.
The new video is more comprehensive and covers more features of MuJoCo.

PiperOrigin-RevId: 644758072
Change-Id: I1f114746833e00cd61b27659c816316c0e72c46c
2024-06-19 08:41:53 -07:00
Yuval Tassa 6067048537 Deprecate mju_rotVecMat and mju_rotVecMatT in favor of mju_mulMatVec3 and mju_mulMatTVec3.
These functions names and argument ordering are more consistent with the rest of the API.

PiperOrigin-RevId: 643788290
Change-Id: I783eda8021b80b82098e23ed95669b102bb82508
2024-06-16 10:02:36 -07:00
Yuval Tassa c9bcf8371e Add mj_setKeyframe function to save current state in k-th model keyframe.
Fixes #1719.

Also improve documentation of `mju_sigmoid`, was previously only documented in changelog.

PiperOrigin-RevId: 642637458
Change-Id: I811a0bf8f881c8b76c9a62d2faec8fdec4e7585b
2024-06-12 09:22:52 -07:00
Baruch Tabanpour 5ed464b489 Support spherical joint in URDF.
PiperOrigin-RevId: 642326650
Change-Id: Iec766800bc9ab7e022bd586fc5881df576d01331
2024-06-11 11:08:00 -07:00
Yuval Tassa 07fc95ca9a Add orthographic cameras.
Orthographic cameras are specified by setting the `orthographic` attribute of the `<camera>` element. The `fovy` attribute is still used to specify the field-of-view, but its semantic is different for orthographic cameras. For orthographic cameras, the field-of-view is expressed in units of length, rather than degrees.

Other related changes:

* Fix bug in the ordering of `cam_xxx` elements in `mjModel`.
* Make camera visualization translucent only when the frustum is visualized.
* Added a button to `simulate` to toggle between perspective and orthographic free cameras.

https://youtu.be/ZXBTEIDWHhs

PiperOrigin-RevId: 642293435
Change-Id: Id090a421ad88ab404b5b27ddbbd6bfc81ad49bc5
2024-06-11 09:23:18 -07:00
Alessio Quaglino 7a06bcfdaf Make model editing API public, fixes #364
Still missing:

- Detailed documentation.
- Python bindings.

PiperOrigin-RevId: 641445626
Change-Id: I20e67b707cf1bebae7e0cc94d17f7b76a89171f0
2024-06-07 22:28:01 -07:00
Erik Frey 4c3d9461ae Elliptic friction in MJX.
PiperOrigin-RevId: 641384367
Change-Id: I510c565940324fbbf392ce537ce27e0cb9af3eb1
2024-06-07 16:05:58 -07:00
Baruch Tabanpour ace0c8f0a3 Add maxhullvert.
PiperOrigin-RevId: 641092710
Change-Id: Ib4fa828a9c82531614f0a67de9990340dbb25406
2024-06-06 19:05:16 -07:00
Meghha Dhoke 21bc6e5ce4 Trimmed underline to match the current format.
PiperOrigin-RevId: 639873230
Change-Id: Id065af04b6364e720d14873ab55fabff75e94efb
2024-06-03 12:25:11 -07:00
Meghha Dhoke ff167e91d9 Updated the version number and release date to be current release v#3.1.6
PiperOrigin-RevId: 639864767
Change-Id: I94a2c81fe125c99bdcfca07b557eebeadca542e9
2024-06-03 11:58:17 -07:00
Yuval Tassa 2830a4071f Add dampratio attribute to position and intvelocity actuators.
PiperOrigin-RevId: 639745135
Change-Id: I94ba4c346d2750c6c454a60a568f2e6f6bce19d4
2024-06-03 05:28:35 -07:00
Baruch Tabanpour c511d02265 Add hfield. Fixes #1655 #1491 #1695
PiperOrigin-RevId: 638447127
Change-Id: Ib1e5020a8407bc100145a6b382e985c03dd4a848
2024-05-29 16:21:34 -07:00
Tom Erez 727893f0f2 Add timeconst attribute to position actuator.
PiperOrigin-RevId: 635018979
Change-Id: I919573f4241ecb4a4c61c3b8b6641b31aa79eca4
2024-05-18 03:38:20 -07:00
Yuval Tassa 02d015458c Add mj_geomDistance API function and sensors for geometric distance, normal direction and segment between between two geoms. Fixes #51
PiperOrigin-RevId: 632458301
Change-Id: I65b7e5bb0df59008028114cf4a07e0d6365ff3d3
2024-05-10 04:52:43 -07:00
Alessio Quaglino 1d181786a2 Prevent visualization of SDF iterations from writing outside the maximum allocated vector. Fixes #1539.
PiperOrigin-RevId: 632071103
Change-Id: Idf91ede1661e717ad338f601a5482ab171d7f625
2024-05-09 01:42:35 -07:00
Alessio Quaglino 96844db926 Update BVH during fusestatic. Fixes #1069 and #1577.
PiperOrigin-RevId: 631748750
Change-Id: I4e1ae01207568c90fc49bcd7d9f760f5187f1afa
2024-05-08 04:13:16 -07:00
Meghha Dhoke e001975f08 Update changelog for MuJoCo 3.1.5
PiperOrigin-RevId: 631497384
Change-Id: I04bf6d0a4e744ab61becda5212e76b30c392f5b2
2024-05-07 11:47:15 -07:00
Erik Frey 24bc1c8b52 Add new differentiable physics tutorial to readme.
PiperOrigin-RevId: 631458983
Change-Id: Ic0ef9e93397a974be50f0616571a4a5fea6f2b21
2024-05-07 10:00:45 -07:00
Kyle Bayes ad0459680d Enable compiler asset cache for public use, and add changelog entry.
PiperOrigin-RevId: 631352810
Change-Id: If6208327499e3e4bd37cbb2a1b0cdcfb912c1056
2024-05-07 02:50:50 -07:00
Yuval Tassa 93b57c1421 Update Python documentation.
PiperOrigin-RevId: 631189628
Change-Id: I17d0fbe476fc14bbad525a302f588bf773a2244b
2024-05-06 14:40:59 -07:00
Mohammad Hamid 131b1745db Added support for GMSH22 surface loading
PiperOrigin-RevId: 629734063
Change-Id: I6a250b81de4e7c8f7520795bfe74a81d719dfb50
2024-05-01 08:44:05 -07:00
Alessio Quaglino 26f23066d1 Add replicate element to MJCF. Fixes #553
PiperOrigin-RevId: 629393578
Change-Id: Ia1db1b9e47eba8868117b0f7b85edcd0cc1b6d79
2024-04-30 06:29:18 -07:00
Erik Frey 719476c274 Fix bug in `mjx.ray` and speed up ray-mesh by ~30% for large meshes.
PiperOrigin-RevId: 629209303
Change-Id: I39466e9a2dc55ec48dcca1780e8abef903d1c754
2024-04-29 15:48:00 -07:00
Baruch Tabanpour e9709900b4 Add gravcomp.
PiperOrigin-RevId: 627791303
Change-Id: I87c9254967eb492d0c38153ff41d7458ffb69136
2024-04-24 11:19:34 -07:00
Baruch Tabanpour d15db54537 Add support functions for id2name and name2id.
PiperOrigin-RevId: 627525330
Change-Id: Ic8069f64c94ef4b8f96f62b88ece62a8b296d870
2024-04-23 15:35:59 -07:00
Erik Frey 71333938ec Add support for condim to MJX.
PiperOrigin-RevId: 627136131
Change-Id: Ia62eb20cb80395b569c7fc7f4d4ef87e12eaaf40
2024-04-22 13:20:57 -07:00
Yuval Tassa 546a27ca72 Fix memory allocation error when memory size is larger than 2G. Fixes #1606
PiperOrigin-RevId: 627058355
Change-Id: Iebef647a0107d1f112a876d705f5b3ea888b4a41
2024-04-22 09:15:46 -07:00
Yuval Tassa caf215e342 Add metallic and roughness scalar attributes to materials.
Rename `light_radius` -> `light_bulbradius`, make the default value 0.02.

PiperOrigin-RevId: 627032170
Change-Id: I1e01e2eca028c0aefc2e7dc384e8b34abac184aa
2024-04-22 07:39:06 -07:00
Alessio Quaglino c2d0c5dd1b Add cylinder collisions using SDFs.
PiperOrigin-RevId: 626998709
Change-Id: I669a639b1cabf5ed522c73a07e54684d675fa396
2024-04-22 05:07:43 -07:00
Erik Frey 718e079cba Fix bad changelog formatting.
PiperOrigin-RevId: 626497821
Change-Id: I705b691b5ad985889a9b05da8c775df42b3811d6
2024-04-19 16:28:43 -07:00
Erik Frey 3b64217b96 Remove deprecated mjx.device_* functions. They are not suited to upcoming condim support.
PiperOrigin-RevId: 626486447
Change-Id: Ibd41874bb3903123567168ebbac563399788d2f2
2024-04-19 15:34:28 -07:00
Erik Frey a4df912018 Prepare MJX for condim.
This is a refactor of collision_driver and some of its surrounding code in order to prepare for condim in MJX.  In this change we reify types that are needed for condim: dim, efc_address, efc_type.  We make explicit the way contacts are organized and grouped to guarantee that dim and efc_type are statically defined.

This change simplifies the way meshes are organized on device and slightly speeds up mesh collisions for cases where a single mesh is instanced across many geoms.

PiperOrigin-RevId: 626119500
Change-Id: Ic0c8599bcda2326f2e19cd3246a673e56097886b
2024-04-18 12:43:36 -07:00
Yuval Tassa 2b4975811b Fix bug in Python binding of mj_saveModel
PiperOrigin-RevId: 625655183
Change-Id: I80d3390d739a8d6e280343087b79c15b543ff50a
2024-04-17 05:58:50 -07:00
Alessio Quaglino 4b6c07cd7d Prevent bodies from overwriting the frame names in xml_native_writer.
PiperOrigin-RevId: 625632369
Change-Id: If3bd048ac40e116fcb97beb3dca3d99826fe4ad0
2024-04-17 04:07:50 -07:00
Yuval Tassa 6481a838c8 Fix monospace rendering in changelog.
PiperOrigin-RevId: 625388305
Change-Id: I82c7cd0e221627a14f6a2b2d9285099f488b1dcb
2024-04-16 11:00:57 -07:00
Google DeepMind f086dc9b4b Better parsing for GMSH2.2
PiperOrigin-RevId: 625267106
Change-Id: Iecf767c43cee1067fdab3859df28050f8a365e2b
2024-04-16 03:23:52 -07:00
Yuval Tassa 0cd28d2423 Add light radius attribute.
Also fix bug: light defaults were not being saved.

PiperOrigin-RevId: 625142278
Change-Id: I8ec3a5a06e9f314e98b7c34346db3c24b34d7e0b
2024-04-15 17:55:15 -07:00
Baruch Tabanpour 0fa0437313 Add cylinder plane.
PiperOrigin-RevId: 625099227
Change-Id: I02cb86c3e8c7fd5914a082f1e8a3bae6274b3c8e
2024-04-15 15:18:04 -07:00
Yuval Tassa 7b3f1a0261 Add mjModel.mesh_scale: scaling applied to asset vertices.
PiperOrigin-RevId: 625083195
Change-Id: I36290282379e57ad23ec771d65d1bd6bf2a75b07
2024-04-15 14:26:06 -07:00
Yuval Tassa 6d1f0a3ec6 Fix rendering bug in changelog
PiperOrigin-RevId: 623553343
Change-Id: Ice48c450de19065069c50242a26396ee7bf1b363
2024-04-10 11:23:26 -07:00
Gabe Oppenheimer 32fa61731e Update the MuJoCo changelog for the 3.1.4 release
PiperOrigin-RevId: 623527462
Change-Id: I45f76d57198f4906e932463d76287b0e394b9273
2024-04-10 10:01:24 -07:00