Commit Graph

2739 Commits

Author SHA1 Message Date
Alessio Quaglino 36142cddee Fix site_xmat dimension in MJX docstring.
PiperOrigin-RevId: 728213616
Change-Id: Icdea2194d4e4e347e88969eb6ecd45d1300cc0bc
2025-02-18 08:07:45 -08: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
Yuval Tassa 5ee0654830 Roll back recent change to mjData.qLD until some issues are resolved.
PiperOrigin-RevId: 724389161
Change-Id: I1b30ab0950ab5c5e611b1c6fc3bf3f42f964939c
2025-02-07 10:21:42 -08:00
Alessio Quaglino 06758e35ab Fix mjSpec colab after changing the default behavior of attach to be a shallow copy.
PiperOrigin-RevId: 724375710
Change-Id: I5fac7d24c1d0b1ad4d427c021022c47620accf53
2025-02-07 09:41:03 -08:00
Alessio Quaglino c1ecc50081 Store joint damping and stiffness in the private spec when springdamper is used in the public spec.
PiperOrigin-RevId: 724288204
Change-Id: I7341d5d804e1ea73ded48b8b447addd4e124ab97
2025-02-07 03:55:24 -08:00
Yuval Tassa c27d3758c2 Convert qLD to CSR format.
PiperOrigin-RevId: 723955038
Change-Id: I30c3dc7f59739e89ae5fff8841432bc74717ec1b
2025-02-06 08:59:35 -08:00
Copybara-Service cb1696eb34 Merge pull request #2390 from talregev:TalR/mesh
PiperOrigin-RevId: 723916727
Change-Id: I0abb0a12121c9eb291ccbc6afa0b4117bd389956
2025-02-06 06:46:40 -08:00
Alessio Quaglino dec7b661c1 Add mujoco.MjSpec.MjStruct type.
PiperOrigin-RevId: 723552214
Change-Id: I8ecb43b4025b532ba8b48e15c9c6a2b350293d20
2025-02-05 10:01:35 -08:00
Alessio Quaglino fe16c27555 Always compute the convex hull if the mesh inertia is set to convex.
PiperOrigin-RevId: 723477903
Change-Id: Ibc50d62741f47a5b96a648efd8fb244810664c17
2025-02-05 05:52:10 -08:00
Yuval Tassa 49d07c6100 Fix text edit buffer underrun.
PiperOrigin-RevId: 723474334
Change-Id: Ibff6d83d67275e6c6333a00cabe33967913dceb1
2025-02-05 05:36:32 -08:00
Alessio Quaglino 0d4bc1de00 Do not use flexedge_length if trilinear interpolation is used.
PiperOrigin-RevId: 723452451
Change-Id: I5a67fb74c13e80ae6d390694dd0c9f8c5e4d5213
2025-02-05 04:09:32 -08:00
Kyle Bayes 3235f69afc Make polytope2 and polytope4 more numerically robust in nativeccd.
PiperOrigin-RevId: 723412555
Change-Id: Id262a3c19bcd30b74b1495591bdc95f951bfca50
2025-02-05 01:40:41 -08:00
Alessio Quaglino 6bd88711a8 Add parent to MjSpec wrapper in Python bindings.
This keeps track of specs attached with the full attach function `attach`. It does not track fine-grained attach via `attach_body` and `attach_frame`.

PiperOrigin-RevId: 722597081
Change-Id: I56188f1718592128b7033538acc9a40553cbbed2
2025-02-03 04:04:11 -08:00
Alessio Quaglino 86ace5e562 Remove body.spec() function from the Python API
We can only use the MjSpec wrapper, not the raw::MjSpec struct in the API.

PiperOrigin-RevId: 722589064
Change-Id: I007150f92738487f27211d7435e328cab86214f7
2025-02-03 03:31:35 -08:00
Alessio Quaglino 709b8d6b83 Add support for vector-valued joints in MJX bind.
PiperOrigin-RevId: 721743855
Change-Id: I68d7f6220ade89a5c0c507ea955e45657541d4eb
2025-01-31 05:53:04 -08:00
Tom Power 3d9946cff3 Improve mesh processing readability
PiperOrigin-RevId: 721524528
Change-Id: I3af4e25815cbc7517b772826af7d929ea93f8164
2025-01-30 14:41:21 -08:00
Yuval Tassa 767be23207 Fix pretty printing in mjspec notebook.
PiperOrigin-RevId: 721367994
Change-Id: Ia1c4ee5b64540ff2f9c08a1953295ff366e0c72b
2025-01-30 06:32:35 -08:00
Copybara-Service 2680bd3e8b Merge pull request #2395 from hartikainen:main
PiperOrigin-RevId: 721367039
Change-Id: Icb79cb50c2a07e5f10fdece3edc52b40cdcdfbac
2025-01-30 06:28:44 -08:00
Alessio Quaglino 904b49848f Add worldbody assertions in attach tests.
This clarifies the difference between attaching a full spec, which converts the worldbody to a frame, and attaching a specific body (or frame).

PiperOrigin-RevId: 721297010
Change-Id: Iff87fe99b81746e6ab3a189a3057b274d3c9a939
2025-01-30 01:35:55 -08:00
Baruch Tabanpour e0664b1bb8 Fix bug with box-box #2356.
PiperOrigin-RevId: 721138760
Change-Id: Ib9548b0bc505a9856176188c91858cff7c9accdf
2025-01-29 16:00:29 -08:00