Commit Graph

2757 Commits

Author SHA1 Message Date
Yuval Tassa f9bb6cb3db Minor updates to rollout notebook:
1. Move benchmarks below advanced usage.
2. Request A100 GPU
3. Minor cosmetic changes.

PiperOrigin-RevId: 729538515
Change-Id: I12709cd95f6865e53fd3932ea0b303ee8efc4028
2025-02-21 08:27:33 -08:00
Copybara-Service ea2bbc1d14 Merge pull request #2439 from aftersomemath:rollout-size_t
PiperOrigin-RevId: 729519951
Change-Id: Ic50b08960da84d2277820212d19fcbab9f2d67cf
2025-02-21 07:17:25 -08:00
Levi Burner a0971ef749 rollout fix cosmetics 2025-02-21 08:44:17 -05:00
Alessio Quaglino 6aabbc1892 Fixes an issue when self-attaching a model with pulley in tendons.
The decision to attach a tendon is taken by looking at whether any of the elements in its path exist when the namespace is added to them. This does not work when pulleys are present so we need to ignore them in the count of unreferenced element.

PiperOrigin-RevId: 729484365
Change-Id: I561a3a2eaa975a17421c8abe3ebfec8d4dd88951
2025-02-21 04:54:31 -08:00
Levi Burner aca4e5d6ae rollout test for integer overflow in array size check 2025-02-20 21:12:52 -05:00
Yuval Tassa 7efaf5c549 Improve docstring of mjxmacro.py
PiperOrigin-RevId: 729058910
Change-Id: I3ae9c7c50facca3bfb08a317c2267b9d8672f207
2025-02-20 04:43:26 -08:00
Yuval Tassa fe9fcae5dc Clean up mj_tendon.
PiperOrigin-RevId: 729042293
Change-Id: Id0d8483b71b9dbb99e19a67323034f3762e26346
2025-02-20 03:44:39 -08:00
Alessio Quaglino 41c2918819 Add batch support to MJX data bind.
PiperOrigin-RevId: 729033713
Change-Id: I331317a54a7882dc67bf329da8aeaff7246754e4
2025-02-20 03:10:30 -08:00
Levi Burner df71467eed rollout use size_t for array size check and pointer arithmetic 2025-02-19 22:46:12 -05:00
Yuval Tassa 19624aef9d Add an example of a textured height field to mjSpec notebook.
https://youtu.be/i6eXrzJNKeY

PiperOrigin-RevId: 728841769
Change-Id: I1aca838af69d8474aab13b06d8c1e5cf87fc6440
2025-02-19 15:34:21 -08:00
Copybara-Service 7a2ad8fd97 Merge pull request #2436 from aftersomemath:rollout-notebook-pr
PiperOrigin-RevId: 728706864
Change-Id: I8f3a507234c4265564a4fee9df0ab8111ff7dd85
2025-02-19 09:42:08 -08:00
Alessio Quaglino b0e9d08673 Move introspect to python/introspect
PiperOrigin-RevId: 728695024
Change-Id: I96433e1e9ee509704d66bd4c1be1906732e4cc55
2025-02-19 09:01:21 -08:00
Alessio Quaglino 6a86247810 Fix flex textures for 3D grids.
Fixes #2013.

PiperOrigin-RevId: 728673726
Change-Id: Idb2b6bf9e5392576d0b09f3e71dbea6f4636ae81
2025-02-19 07:59:22 -08:00
Kyle Bayes 7f3bb062c3 Add fields in mjModel for supporting mesh multicontact in nativeccd.
PiperOrigin-RevId: 728659204
Change-Id: I7f8a11b082640284ea009d8693f228078680b953
2025-02-19 07:12:26 -08:00
Yuval Tassa b516edae1b Rename inertia factorization routines:
```
mj_factorI -> mj_factorI_legacy
mj_solveLD -> mj_solveLD_legacy
mj_factorIs -> mj_factorI
mj_solveLDs -> mj_solveLD
```

PiperOrigin-RevId: 728246367
Change-Id: I3bc7804cb96faac2ae5419ba9abfc3c1648ed4c6
2025-02-18 09:42:05 -08:00
Google DeepMind 982330d15a #mjx Make pytree registration optional.
This is a noop for MJX itself, but is useful for custom types extending MJX types.
This CL also ensures unused kwargs in `__init_subclass__` are passed to the parent class.

PiperOrigin-RevId: 728215373
Change-Id: I362d3fb8d4b7d679a3a00d96866d46a52d711369
2025-02-18 08:12:43 -08:00
Alessio Quaglino 36142cddee Fix site_xmat dimension in MJX docstring.
PiperOrigin-RevId: 728213616
Change-Id: Icdea2194d4e4e347e88969eb6ecd45d1300cc0bc
2025-02-18 08:07:45 -08:00
Levi Burner 3e56d2a6d0 update changelog for rollout notebook 2025-02-18 10:57:12 -05:00
Levi Burner 41a873b016 Notebook showcasing the Python rollout module 2025-02-18 10:57:03 -05:00
Yuval Tassa fb07e0d1f7 Convert qLD to CSR format.
PiperOrigin-RevId: 728196818
Change-Id: I31bdf32e251293284426ed345019f27fd051a0e1
2025-02-18 07:14:45 -08:00
Silvia Cruciani 9fb4ec95f8 Add handling for joint qacc in bind
PiperOrigin-RevId: 728166579
Change-Id: Ib9ecfec23a3ae1ddba198670518c48dc0af49cd1
2025-02-18 05:30:25 -08:00
Kyle Bayes 442b968e22 Improve box-box multicontact with nativeccd.
PiperOrigin-RevId: 728136635
Change-Id: I2343110e5c87b6621d5750c7ad42f0e75081d737
2025-02-18 03:41:26 -08:00
Google DeepMind fb84ee4e17 #mjx Always define prefix attribute in Bind* classes.
PiperOrigin-RevId: 727885838
Change-Id: I3e7dd0541fecf1eb913bb98b30e3df146ea665b8
2025-02-17 09:23:39 -08:00
Alessio Quaglino d5065f867b Check type correctness in all bind paths.
PiperOrigin-RevId: 727877128
Change-Id: I4f4f74a1fb96d3fc5abdea531b78eb54dc53d186
2025-02-17 08:46:10 -08:00
Silvia Cruciani 0a4eda5065 Fix setting slice of multidimensional arrays in mjx bind
PiperOrigin-RevId: 727834258
Change-Id: Id8fa25ab3aacb02603f2e0ec701f89bb69a7ac7e
2025-02-17 05:52:51 -08:00
Alessio Quaglino 7f11a0df12 Add check for height fields size during compilation.
Fixes #2427.

PiperOrigin-RevId: 727805729
Change-Id: Idf3192e5fb238249faaeae6b4fb9de4c55755d96
2025-02-17 04:01:27 -08:00
Tom Power 78a4d2f389 Fix mass/inertia checking for moving bodies with nested children.
Previously, we only checked immediate children of moving bodies.

PiperOrigin-RevId: 726999705
Change-Id: I133a557daf86223b8751c6d46e25809781e168a1
2025-02-14 11:26:28 -08:00
Google DeepMind 37d7591ce0 Add support for user-defined figures in the MuJoCo viewer.
PiperOrigin-RevId: 726983516
Change-Id: Ifb821f3cafb163d4f3077d76b0668037b4bc5a9c
2025-02-14 10:45:47 -08:00
Alessio Quaglino 6f0bd0a5f8 Fix setting multidimensional arrays in MJX bind.
PiperOrigin-RevId: 726956380
Change-Id: I51ab91b73a3a34938ac7bcd03e9691fd634cb296
2025-02-14 09:28:39 -08:00
Alessio Quaglino 5b924fec98 Add support for binding to arrays of mjs element.
Fixes #2402.

PiperOrigin-RevId: 726449592
Change-Id: I0cde44889837a71a222b20cf91fa56568b4af689
2025-02-13 06:01:30 -08:00
Alessio Quaglino 1b4258d274 Change set_default and default to classname in the bindings.
Having defaults in the names of the attribute or function names is confusing for the users since the defaults are not re-applied but are only used for writing to XML. The alternative would be to change mjs_setDefault to re-apply them, but this would overwrite any other attribute set by the user so far.

PiperOrigin-RevId: 726431090
Change-Id: I41f4a23e1722e278b0ecc0a00b07db9b384fe994
2025-02-13 04:52:02 -08:00
Tom Power 89253d957d Changes to inertia inference from meshes.
PiperOrigin-RevId: 726051033
Change-Id: I6edfc118280d103a2dd9d07f29f0094858769761
2025-02-12 07:43:13 -08:00
Yuval Tassa e39a5df06a mju_compressSparse(): add option to compress away small elements.
PiperOrigin-RevId: 726010576
Change-Id: Ib6458037a5cf9a9d82abb364b7dda7aab2f36807
2025-02-12 05:08:20 -08:00
Yuval Tassa faed1a1137 Clean up mj_jacSparse.
PiperOrigin-RevId: 725994792
Change-Id: I928a6312a6910231bfeb96ef7a3f29f1d128565c
2025-02-12 04:06:00 -08:00
Yuval Tassa 7af9bcbf00 mjSpec tutorial: Move humanoid and Menagerie imports to the cells that require them.
PiperOrigin-RevId: 725945693
Change-Id: I3f0d4c867626ef61605815bb708a55c8e29d79e2
2025-02-12 01:02:17 -08:00
Copybara-Service d830691f53 Merge pull request #2291 from AaronYoung5:main
PiperOrigin-RevId: 725933976
Change-Id: I207cf272d30e28f00fb4d07bd237385ad4c26a84
2025-02-12 00:16:10 -08:00
Yuval Tassa ef1ef8ef6a Fix Sphinx-Toolbox dependency issue in documentation.
PiperOrigin-RevId: 725818375
Change-Id: I9f241f9575d4bebceeab62937caf682e455b3816
2025-02-11 16:41:02 -08:00
Kyle Bayes e3b9538d92 Add saving the indices of mesh vertices with the support points in nativeccd.
PiperOrigin-RevId: 725660975
Change-Id: I036882a5bde5d009bfa6e66b6a10f6cfb1a78292
2025-02-11 09:28:49 -08:00
Google DeepMind ac2a324fbd Reduce "shadow acne" artifacts
PiperOrigin-RevId: 725640931
Change-Id: I95df97d6076b99c12e291f69e8e54bbe70538293
2025-02-11 08:28:12 -08:00
Alessio Quaglino cef5b31a3f Drop find_ prefix in Python MjSpec methods accessing elements by name.
PiperOrigin-RevId: 725594833
Change-Id: Ibf8a9918e98b298751d0ef2e657714e28e5fa460
2025-02-11 05:50:49 -08:00
Yuval Tassa a6dd5f086f Document element name lookup in MjSpec.
PiperOrigin-RevId: 725258206
Change-Id: I5c9a85d25787eb38e9e8c3854eda2581700e188e
2025-02-10 10:10:41 -08:00
Alessio Quaglino e54f3c222d Autogenerate mjSpec find_* methods.
PiperOrigin-RevId: 725255440
Change-Id: Ia9112f6c582ea9bb0af38aa97a917e72a98a84f5
2025-02-10 10:03:44 -08:00
Alessio Quaglino 94115ecf08 Fix qvel bind in MJX when using multiple joints.
Reported by #2402.

PiperOrigin-RevId: 725237347
Change-Id: I279c73e5cf2b959086292b739972afe5f70ceffb
2025-02-10 09:09:18 -08:00
Alessio Quaglino 4156350708 Add to_file function to save the Spec to a file.
Fixes #2415.

PiperOrigin-RevId: 725161617
Change-Id: I6c374cc7f7cb3f1da1cc0da531dd7e5be5d62b6a
2025-02-10 04:33:14 -08:00
Nimrod Gileadi 0e01b51590 Output a useful message when there's a mismatch between MJX data and MuJoCo data array sizes.
PiperOrigin-RevId: 725151186
Change-Id: I71f81bb82e2b8667880a31db5913e98f7885e677
2025-02-10 03:51:31 -08:00
Copybara-Service 694eb6bb1d Merge pull request #2409 from maximevtush:main
PiperOrigin-RevId: 724879879
Change-Id: I5e65c1892d7160690f6f1d5ae7ddab5f7d46d02b
2025-02-09 03:37:37 -08:00
Yuval Tassa f73f0e1d0d Fix aspect ratios of embedded videos in docs.
Note that small videos, for some reason, need an aspect ratio that is different  from the actual aspect ratio.

PiperOrigin-RevId: 724879307
Change-Id: I681f071baf4eb09cfda41edeca0d1ee16be4181a
2025-02-09 03:33:10 -08:00
Maxim Evtush 5874c8a8df Update xml_native_writer_test.cc 2025-02-08 22:14:32 +01:00
Maxim Evtush 1025335c0c Update MjXmlModifiers.cs 2025-02-08 22:14:03 +01:00
Yuval Tassa 73aba91297 Add simple procedural tree example to model editing tutorial.
https://youtu.be/7VJG61AapEc

PiperOrigin-RevId: 724729966
Change-Id: I48c288de8e01baa3cd8f40700bc7137744de37a0
2025-02-08 13:02:11 -08:00