Commit Graph

2373 Commits

Author SHA1 Message Date
Google DeepMind ffdb800e45 Update the MuJoCo version for the 3.2.5 release following the 3.2.4 release.
PiperOrigin-RevId: 686641388
Change-Id: I68d5183c9d369b7617f692ab97c12c53f0d2504c
2024-10-16 14:24:06 -07:00
Alessio Quaglino 8740533644 Check obj and ref types before casting them to a geom.
PiperOrigin-RevId: 686616350
Change-Id: I43b14344df6324b371c6bb2447c63197b88178d5
2024-10-16 13:16:01 -07:00
Gabe Oppenheimer c2024ef6d1 Update the MuJoCo version for the 3.2.4 release.
PiperOrigin-RevId: 686261295
Change-Id: Ib59e44a6829a79fd480f2822a68cb05f94c38732
2024-10-15 15:34:09 -07:00
Google DeepMind d1e004aa97 Update version hashes in MuJoCo CMake files ahead of the 3.2.4 release.
PiperOrigin-RevId: 686208889
Change-Id: I19d3e6566e76c44e199f427aed984b9a530f4262
2024-10-15 13:03:13 -07:00
Alessio Quaglino 11af1e2a95 Fix a bug in mj_recompile.
The qposadr_ and dofadr_ variables of the joints were not being reset to -1 when a joint is copied. This could lead to errors when calling mj_recompile after attaching a compiled spec.

PiperOrigin-RevId: 686152004
Change-Id: I9e058089ce87ea0d8e51a7f43475bc48c6527a26
2024-10-15 10:24:32 -07:00
Yuval Tassa d646ba8de1 Update MuJoCo changelog with a video of the 100_humanoids model.
Improve the model's rendering FPS by reducing the number of shadow-casting lights from 7 to 2.

https://youtu.be/e8lUuykQPGs

PiperOrigin-RevId: 686118052
Change-Id: If376564fdc23ad8d754dac1e5825079c0b806063
2024-10-15 08:40:06 -07:00
Yuval Tassa 0ffaeb4d56 Improve comments in mju_cholFactorNNZ, clarify that this function reads from the upper triangle of the source matrix.
PiperOrigin-RevId: 686113654
Change-Id: I029f9279d177f4cb9ff60396a26d64821aee3a6c
2024-10-15 08:26:07 -07:00
Taylor Howell 096853e192 Add JOINTINPARENT actuator transmission type to MJX.
PiperOrigin-RevId: 686083761
Change-Id: I5159d050812d32e15ced06df132d3e434fced814
2024-10-15 06:38:02 -07:00
Kyle Bayes 5a95d601ed Use GJK for geom distance when the nativeccd flag is enabled.
PiperOrigin-RevId: 686035648
Change-Id: Ib6121394b420df4ba431c38443479d33eeaf1dd9
2024-10-15 03:25:18 -07:00
Nimrod Gileadi 6881ce2437 Remove support for Python 3.8.
Python 3.8 has been deprecated upstream, and any tests depending on Homebrew already stopped working. Following our support policy, we are removing support for 3.8 from our packages, too.

PiperOrigin-RevId: 686012836
Change-Id: Ibd220eb9c10e9a74bbd4443c1d7286a1fde9e5e5
2024-10-15 01:54:18 -07:00
Yuval Tassa 400d2edc21 Clean up mj_transmission.
PiperOrigin-RevId: 685770636
Change-Id: I03d46d136118a5e6da61f6924ccae65bf0d81dfb
2024-10-14 11:15:06 -07:00
Kyle Bayes 8d84b5f693 Disable hfields for collision sensors.
PiperOrigin-RevId: 685730321
Change-Id: Ib1d4a90b7b31ca388e018076a274e25c40409080
2024-10-14 09:19:11 -07:00
Yuval Tassa ee7b994021 Remove Newton Cholesky factor from mjData arena, rollback of b66da3d369.
PiperOrigin-RevId: 685726867
Change-Id: Ic2afd0dd35e38f403164d2cbe4618286abfa51ab
2024-10-14 09:07:22 -07:00
Yuval Tassa 7ec94f46d4 Refactor Newton solver: move Hessian from arena back to the stack.
The changes in 9a0dc20821, moving the Hessian from the stack to the arena, should be rolled back: they prevent future threading over islands. Unlike the stack, arena allocations are not thread-friendly. The reason for the original move was to save memory, but the savings are small: `O(ctx->nH)` and only linear in `nv`. The significant reduction of the Cholesky factor, from quadratic in `nv` to quadratic in the largest dof island — the reduction afforded by 2dd518734f — remains in place.

Also refactor and improve readability.

PiperOrigin-RevId: 685717356
Change-Id: Ia9ec3e44a62d459a3b9cffb578cf6479d5aa1d7f
2024-10-14 08:34:16 -07:00
Taylor Howell ac91a7639d Add tendon velocity sensor to MJX.
PiperOrigin-RevId: 685689974
Change-Id: Ib5e65b19c20b74e20cffa66c6baca0d8faaaf3ae
2024-10-14 06:47:59 -07:00
Alessio Quaglino 1e7c109887 Raise warning when attaching a spec with pending keyframes to a different spec.
PiperOrigin-RevId: 685677622
Change-Id: Iba522c523ebd2afe64d6ab28c6b6b4b3cd399cf8
2024-10-14 05:54:18 -07:00
Alessio Quaglino c84f35b425 Do not delete pending keyframes during body detachment.
PiperOrigin-RevId: 685670895
Change-Id: Iadd0ba8ca7e74a280559168ac0ac855405a1cfd9
2024-10-14 05:23:46 -07:00
Alessio Quaglino c5a677a9de Fix load error message. Fixes #2135
PiperOrigin-RevId: 685668168
Change-Id: Ieac7ccca5bee695cf55fc74bd33fadf77a025cb9
2024-10-14 05:10:58 -07:00
Taylor Howell 1945926351 Fix computation of tangential contact forces in MJX _decode_pyramid.
PiperOrigin-RevId: 685665382
Change-Id: Icdbba4a3ee5fec804340d73d525a36ee570c2aa8
2024-10-14 05:01:00 -07:00
Alessio Quaglino 766cd20273 Add mjs_bodyToFrame() to convert a body to a frame.
Also add test for attaching the world body.

PiperOrigin-RevId: 685603933
Change-Id: I3cfe7d226d6f032b5a587e44d0f4f18207977188
2024-10-14 00:39:20 -07:00
Alessio Quaglino 52a0149cd1 Resizes keyframes before storing them during attach/detach.
Improve keyframe tests.

PiperOrigin-RevId: 685450257
Change-Id: I97aa129c4d7a66f613290605b85657e8081700b6
2024-10-13 10:02:35 -07:00
Yuval Tassa 534aedd47d Improve documentation of joint/armature.
See Drake [discussion](https://github.com/RobotLocomotion/drake/pull/21967) for more context.

PiperOrigin-RevId: 685428316
Change-Id: I80e8d4f097697f28529f5891a763979390c59e99
2024-10-13 07:25:15 -07:00
Taylor Howell 99259eb0d3 Fix typos in engine_ray.c.
PiperOrigin-RevId: 685273762
Change-Id: I6812a83ef2d84fa07a42812acb87c363a3e1a11d
2024-10-12 16:05:43 -07:00
Taylor Howell 78ade58aff Remove rootid from touch sensor (unused).
PiperOrigin-RevId: 685196948
Change-Id: Ifd574165717f07a58a13ae187bc1c63527c986e7
2024-10-12 08:10:09 -07:00
Taylor Howell 223892c051 Add tendon position sensor to MJX.
PiperOrigin-RevId: 684851437
Change-Id: Ica0a30762a9cb3d612357b40b6f87cd2fc544fdb
2024-10-11 08:47:52 -07:00
Yuval Tassa 5fe2b88726 Print ASCII sparse matrix structures in mj_printData.
Also: don't print sparse matrices if they have more than 300 rows.
PiperOrigin-RevId: 684843230
Change-Id: If91d0b56cbbb6565904c3ee55857999e21b0cc62
2024-10-11 08:17:25 -07:00
Kyle Bayes 70d6655434 Add faster support functions for NativeCCD.
PiperOrigin-RevId: 684809392
Change-Id: I5125d4bb74c167d370aa919befba9d356c7162da
2024-10-11 05:59:30 -07:00
Yuval Tassa 2dd518734f Stop over-allocating memory in Newton solver.
PiperOrigin-RevId: 684797464
Change-Id: I3389416cb69a8564b5119f6e3944b579893ea511
2024-10-11 05:09:33 -07:00
Yuval Tassa 9aca4bccac Fix stack usage reporting under ASAN.
PiperOrigin-RevId: 684790558
Change-Id: Ifc206bb0653c1fa3052621f0d3d80cb10671b77f
2024-10-11 04:37:12 -07:00
Kyle Bayes 1d57099e98 Add internal return codes in polytope2 and polytope3 to make debugging in NativeCCD easier.
PiperOrigin-RevId: 684776411
Change-Id: Ie0ab278b449ded0ec67ddc89569443d542bf93e0
2024-10-11 03:36:18 -07:00
Alessio Quaglino ae9ec24d3a Add dm_control creature example to mjSpec tutorial.
PiperOrigin-RevId: 684764674
Change-Id: If7f8b7b29587f9c50e2cb8e155484bc7f3f18b0f
2024-10-11 02:46:25 -07:00
Alessio Quaglino cdb167f275 Add mjs_attachToSite for attaching a body to a site.
PiperOrigin-RevId: 684432183
Change-Id: I7100bebfb6521f9dbfbb07f31490b2b9298bf18c
2024-10-10 07:12:49 -07:00
Mohammad Hamid 694bdebc19 Fixed a bug that caused dim to be necessary in flexcomp even when it was inferred from GMSH files.
Fixes #2107.

Co-authored-by: Alessio Quaglino <quaglino@google.com>
PiperOrigin-RevId: 684419740
Change-Id: Ia73e719bd37503563223ed92f4dbe0ae07eef300
2024-10-10 06:20:43 -07:00
Baruch Tabanpour 22e4f7fc31 Fix bug in MJX frictionloss.
PiperOrigin-RevId: 684198925
Change-Id: I5f6575759729712550bcb8d7659aaa7a657c66fc
2024-10-09 15:50:58 -07:00
Alessio Quaglino a26ba2012e Return 0 on success from mjs_activatePlugin instead of using mju_error.
PiperOrigin-RevId: 684102823
Change-Id: I86b7702094ae886539e1dfb6294381952d507bc1
2024-10-09 11:09:33 -07:00
Yuval Tassa 5dcc31a6aa Fix read-from-uninitialized-memory in bindings_test.py
PiperOrigin-RevId: 684082155
Change-Id: I6f3030559ebda4eda28c17ab866c7502c74e5862
2024-10-09 10:14:26 -07:00
Yuval Tassa 9a0dc20821 Move Newton Hessian memory allocation from stack to arena.
PiperOrigin-RevId: 684054446
Change-Id: I4be0b216810ebbd9d7fa119c6a84eb08d3c16b83
2024-10-09 08:54:54 -07:00
Taylor Howell 356d172f56 Update MJX SolverType docstring with Newton.
PiperOrigin-RevId: 684040839
Change-Id: I27bc87b387b6b405f5c76350438d1fdd6867450a
2024-10-09 08:08:36 -07:00
Yuval Tassa b1941708dd Add some arena-allocated attributes to compare in mjData pickle/unpickle test.
PiperOrigin-RevId: 684025320
Change-Id: Ic3282eaae74e43a33c2ed5f1b25ad38884487829
2024-10-09 07:15:52 -07:00
Yuval Tassa 395129bbd3 Improvements to lighting and replication logic in humanoid.xml and 22_humanoids.xml.
Minor fix to memory usage printing in simulate.

PiperOrigin-RevId: 683787943
Change-Id: I0a42dacc8af0e659c3817df57bceb76d9e4d5ae3
2024-10-08 15:36:22 -07:00
Baruch Tabanpour fa22e6d001 Add sphere-ellipsoid, sphere-cylinder. #2126
PiperOrigin-RevId: 683747371
Change-Id: Ic11803bb395944380d25ce848d9fbcf19afaad77
2024-10-08 13:37:00 -07:00
Alessio Quaglino 8256546432 Fix bug in xml_native_writer that was causing frames to be skipped.
PiperOrigin-RevId: 683721505
Change-Id: I8622f4ea42ecda934fbc805c429de40e7717fdef
2024-10-08 12:23:17 -07:00
Yuval Tassa b66da3d369 Add mjData.L, sparse Cholesky factor of Newton solver Hessian.
PiperOrigin-RevId: 683669555
Change-Id: I18d7530b5d68d1d48cb95d4faa0150c434109638
2024-10-08 10:13:08 -07:00
Copybara-Service 39af655c1e Merge pull request #1939 from goncalog:update-humanoid-notebook
PiperOrigin-RevId: 683668357
Change-Id: Id4a65197efc7d6d36e3e1d9885691b432d6114eb
2024-10-08 10:10:20 -07:00
Alessio Quaglino 1f9dca8bc4 Do not expose plugin_slot.
PiperOrigin-RevId: 683215401
Change-Id: Ic64f7221ed83ca3b0c8cca16eb680ea67c67b564
2024-10-07 09:38:01 -07:00
Alessio Quaglino 66faba9aa5 Avoid changing semantics of mjsPlugin.name across XML sections.
The `extension` section used to discard the plugin name and write the instance name in `plugin.name`, while all of the other sections wrote the instance name in `plugin.instance_name` and optionally the plugin name in `plugin.name` (via the function `OnePlugin`). Now all plugin names are in `plugin.plugin_name` and the instance is written in `plugin.name`, so that it is possible to lookup a plugin via its unique instance name.

PiperOrigin-RevId: 683183804
Change-Id: I179ef5d221143b720db24d745b09e327bf1449ef
2024-10-07 07:57:03 -07:00
Kyle Bayes 5bfc7da7de Inline small vector util functions in NativeCCD.
PiperOrigin-RevId: 683121207
Change-Id: Idf83e2d18d725665bf626c2c3269c81048076a1a
2024-10-07 04:11:36 -07:00
Taylor Howell 160ed9bfe2 Add pulley support to spatial tendons in MJX.
PiperOrigin-RevId: 683103659
Change-Id: I22544071a3fc6fbd09f9a59690106701b101ee6a
2024-10-07 03:00:53 -07:00
Copybara-Service bce43b63ed Merge pull request #2120 from hartikainen:fix-2118
PiperOrigin-RevId: 683098606
Change-Id: Ib558bab7aca9042e318056de411ddf1a229d421d
2024-10-07 02:39:29 -07:00
Yuval Tassa d3a1ca72d8 Report memory usage in simulate using percentage rather than decimal fraction.
PiperOrigin-RevId: 683098469
Change-Id: I7310848fb87e040996fcfc24991d45bf55872993
2024-10-07 02:37:58 -07:00