Commit Graph

1464 Commits

Author SHA1 Message Date
Alessio Quaglino 5e353efaaf Add mjmModel opaque pointer to C API.
PiperOrigin-RevId: 607619891
Change-Id: Ic1eaaa842438d9c2e19f742deff41967287853f5
2024-02-16 02:21:25 -08:00
Yuval Tassa f9f7827a64 Trim trailing default values in saved xmls.
For attributes which accept variable-length inputs. Currently used for `gainprm, biasprm, friction, solref, solimp` Example:

- Saved before: `biasprm="0 -3 -4 0 0 0 0 0 0 0"`.
- Saved after: `biasprm="0 -3 -4"`.

PiperOrigin-RevId: 607609550
Change-Id: I0501348280663867693175236872e2aabc703601
2024-02-16 01:36:06 -08:00
Erik Frey 6a346c42e8 Adds support for mjOption.impratio to MJX.
PiperOrigin-RevId: 607456034
Change-Id: I7f6549a4332fd2bc0331d76a8906b971ce28dbcf
2024-02-15 14:28:36 -08:00
Alessio Quaglino 414a67640a Add mjmDef to C API.
PiperOrigin-RevId: 607310534
Change-Id: I530f32c8fd4340dc1006585259a5e05cb4aa62b8
2024-02-15 06:17:58 -08:00
Alessio Quaglino 6f958bc404 Add mjmSkin to C API.
PiperOrigin-RevId: 607295996
Change-Id: I63bf7213d41acbfb98770c097979ce9b889f21ca
2024-02-15 05:09:10 -08:00
Yuval Tassa bafe490ea8 Sort assets in schema according to order in docs.
PiperOrigin-RevId: 607272771
Change-Id: Ifd1220671a59effd0a841babbe746dd23d02eefd
2024-02-15 03:10:43 -08:00
Yuval Tassa ddabfb9b6a Clean up handling of auto-limits.
PiperOrigin-RevId: 607266967
Change-Id: Iec8332cc8467ea3c2dc046acf87d221b5af67259
2024-02-15 02:43:53 -08:00
Erik Frey d561995c03 Use less brittle search to determine whether an MJX field is a data or meta pytree node. Use correct type annotation for geom_convex_* fields in mjx.Model.
PiperOrigin-RevId: 607096855
Change-Id: I2e14b9b63e676b4ac3ec2a12aa07316e1d019a79
2024-02-14 13:57:55 -08:00
Alessio Quaglino 80a986c0f5 Add mjmBodyPair to C API.
PiperOrigin-RevId: 606997065
Change-Id: Iefc2dff6ae942ce93ca83ec5f5fe9d7ae8bb6a40
2024-02-14 08:40:05 -08:00
Alessio Quaglino c9e7586499 Add mjmHField to C API.
PiperOrigin-RevId: 606933108
Change-Id: I21c895ed3e137dab8f57e2d0bcfb558aae2b971a
2024-02-14 04:12:29 -08:00
Alessio Quaglino 2ee8a4dabd Add mjmNumeric, mjmText, mjmTuple, mjmKey to C API.
PiperOrigin-RevId: 606919327
Change-Id: I477f6cd8beefcb3962238722565e3b398b73446c
2024-02-14 03:10:38 -08:00
Kyle Bayes 266161ee4c Convert mju_openResource to write warnings to a given error string.
PiperOrigin-RevId: 606907392
Change-Id: Ic70e980aa9ba2bdbe1787773f51749b34f74afed
2024-02-14 02:17:40 -08:00
Baruch Tabanpour f50a44e193 Allow jax config to choose precision.
PiperOrigin-RevId: 606765036
Change-Id: I36977851615700507eb2e83cc6d2d1ff8255be62
2024-02-13 15:24:02 -08:00
Alessio Quaglino 9ecd700923 Add mjmMesh to C API.
PiperOrigin-RevId: 606642150
Change-Id: Iae69ce8426729b1e2394d9da9f349a2f0f7ccf98
2024-02-13 09:09:59 -08:00
Alessio Quaglino 06505f49f9 Add mjmTexture to C API.
PiperOrigin-RevId: 606543622
Change-Id: I2db743c1c40116f0503329fb1d004d9b041e83e7
2024-02-13 02:09:39 -08:00
Erik Frey 47bb4a828e Fixes to the MJX Euler integrator and Newton solver, and test improvements to catch future bugs like this.
PiperOrigin-RevId: 606389094
Change-Id: I50d0143f338fe29a823c930dba82995ce8a64ce2
2024-02-12 15:46:27 -08:00
Baruch Tabanpour 805d862d5f Fix manifold point function.
PiperOrigin-RevId: 606366838
Change-Id: I8cf031f6f0fd0173777e0a9bb6d11c0c77c617ec
2024-02-12 14:32:24 -08:00
Kyle Bayes eabd4c06f9 Move schema definition validation from runtime to a test.
PiperOrigin-RevId: 606280564
Change-Id: I9fec9eb3538f63f84e1982f21e1a93f16342d540
2024-02-12 09:49:48 -08:00
Yuval Tassa b6873ec8a2 Move mjModel.mesh_{pos,quat} before mesh_pathadr so all attributes related to original asset data are next to each other.
PiperOrigin-RevId: 606277473
Change-Id: Ia4f6df552192c8a2847126975b6a1a31df63cf65
2024-02-12 09:37:48 -08:00
Alessio Quaglino 13d6eeacdd Add mjmPair to C API.
PiperOrigin-RevId: 606274243
Change-Id: I15e2a38096a61bc1377a666c96113ae20ce3ed59
2024-02-12 09:25:33 -08:00
Yuval Tassa 72cf304e2b Improve documentation of mesh pre-processing.
PiperOrigin-RevId: 606268723
Change-Id: I1d939cbb214036ab477e12ae3fd266a25ff89399
2024-02-12 09:04:18 -08:00
Alessio Quaglino b224367a9b Add mjmFlex to C API.
PiperOrigin-RevId: 606264589
Change-Id: Ifd94f5241a3eaaf23653b136cece81c054f43202
2024-02-12 08:48:11 -08:00
Yuval Tassa ab209c41be Align comments in mjm_ structs.
PiperOrigin-RevId: 606214754
Change-Id: I4d5ddd98baf52fc71acc1bfca0b345cafda4ce7f
2024-02-12 04:54:03 -08:00
Kyle Bayes ff39d0b812 Keep include elements while parsing XML. No change in behavior.
PiperOrigin-RevId: 606203141
Change-Id: Ica06f7c121a90597cd29f74692230365edd4302f
2024-02-12 03:54:44 -08:00
Alessio Quaglino 4e5b194e88 Add mjmMaterial and mjmFrame to C API.
PiperOrigin-RevId: 606191307
Change-Id: Iaf43f81522029002b28bba14ea046b1c968ab2e7
2024-02-12 02:56:03 -08:00
Kevin Zakka 4b8363de6d Update docs with new Menagerie models.
PiperOrigin-RevId: 606126764
Change-Id: I677e7860798e60b2b65d7054f60ad2bc5c4c05b1
2024-02-11 20:42:59 -08:00
Yuval Tassa 3601026b1d Refactor handling of auto-limits.
PiperOrigin-RevId: 605972151
Change-Id: If468af2081182787178d805124f2d2c90ee29951
2024-02-10 22:01:13 -08:00
Yuval Tassa cebd2a657e Clean-up user_api.h and user_init.cc
PiperOrigin-RevId: 605967516
Change-Id: Ieaf75d764778d81932b860ca9f16007adc0037a1
2024-02-10 21:21:13 -08:00
Yuval Tassa 230f8c7b63 Increase maximum compiler error message length from 300 to 600.
PiperOrigin-RevId: 605947931
Change-Id: I5564d0e2d6690ee75996a10e05cd6c7eca49f279
2024-02-10 18:51:44 -08:00
Alessio Quaglino 1bd6a32af2 Add mjmEquality, mjmTendon and mjmWrap to C API.
PiperOrigin-RevId: 605853716
Change-Id: Ieb468cdec5a3032200cf1121960408a61bb08fc5
2024-02-10 03:30:31 -08:00
Yuval Tassa 4ad1dc4b84 Mention the roles of "center" and "extent" in visual/global/{azimuth,elevation}. Fixes #1407.
PiperOrigin-RevId: 605649532
Change-Id: I0ca0142a3c164a502fefb6b91d204c4bb3d25a95
2024-02-09 09:22:50 -08:00
Saran Tunyasuvunakool dc40bbd1f5 Refactor global object tables logic.
This unifies the implementation for plugins and resource providers.

PiperOrigin-RevId: 605617372
Change-Id: I2ea52b4c53f48c4c59edd5fdc1c51c7edba7340e
2024-02-09 06:50:06 -08:00
Alessio Quaglino 6fa139a693 Add mjmActuator and mjmSensor.
PiperOrigin-RevId: 605600704
Change-Id: I0a2f5eb9d894c068ca9ee08940c752066021b6ec
2024-02-09 05:11:13 -08:00
Alessio Quaglino e3cbad280c Add mjmJoint, mjmCamera, and mjmLight to C API.
PiperOrigin-RevId: 605596008
Change-Id: Ie53ac4b99f5336380039ab5eb9b2ca4a82768b28
2024-02-09 04:44:58 -08:00
Erik Frey e77c3cb258 Update MJX viewer to use mjx.get_data_into and fix bad function parameters.
PiperOrigin-RevId: 605461208
Change-Id: I7a4f6a1ed92382e522d50224e7b5cd73d8842750
2024-02-08 16:32:27 -08:00
Erik Frey 4933a2c7b6 Improve performance of getting and putting MJX device data by reducing cost of ncon.
PiperOrigin-RevId: 605454760
Change-Id: I5c52a84c12ab67d042fe43f6ada284b51a762294
2024-02-08 16:06:58 -08:00
Erik Frey 3e2d62c248 Improve performance of getting and putting MJX device data with large numpy arrays.
ndarray.tobytes() is faster than converting arrays to tuples by orders of magnitude.

PiperOrigin-RevId: 605437697
Change-Id: I7d42c10e178b1aec80ff38a82e863e0701c15e62
2024-02-08 15:02:21 -08:00
Alessio Quaglino 1fe258fb60 Add mjmGeom to C API.
PiperOrigin-RevId: 605302719
Change-Id: Ib4208e60cf4299473a96f62db2c9dc8c7a5b0b36
2024-02-08 06:53:01 -08:00
Baruch Tabanpour 3baab3784a Update MJX notebook to work with brax 0.10.0.
PiperOrigin-RevId: 605105172
Change-Id: Icd209ada7977439ed7d5213588412d37dd54ffc0
2024-02-07 14:49:17 -08:00
Matthew Bennice e4fada1963 Correct use of uninitialized value and clean up FullInertia function
PiperOrigin-RevId: 605049375
Change-Id: I7ffb6bd56b08111036e8490bf767fb9393499f13
2024-02-07 11:38:02 -08:00
Erik Frey ea69f20b43 Unrolled matmul for small matrices in MJX improves steps/sec by 10-20%.
PiperOrigin-RevId: 605033188
Change-Id: I9da723d01e1f6511abaf4522b4c8f829a8091772
2024-02-07 10:48:45 -08:00
Alessio Quaglino 8b17d260a3 Add user_init for setting default parameters.
PiperOrigin-RevId: 604942840
Change-Id: I746ac7bb28f508b606bc0b8544136f523ce50d4c
2024-02-07 04:42:41 -08:00
Alessio Quaglino a3e49d582e Add mjmBody and mjmPlugin and their compiler C APIs.
PiperOrigin-RevId: 604937231
Change-Id: Ib8a2105ce6c0500d6a610258b46f192d9e73169d
2024-02-07 04:17:30 -08:00
Matthew Bennice b9c50ad79c Move fullinertia from mjCAlternative to mjCBody with correction to handle URDF with 0 inertias.
PiperOrigin-RevId: 604812870
Change-Id: I018254d1362a654a4f99bf5e621d5abc7129a0c6
2024-02-06 17:21:31 -08:00
Copybara-Service 19c41aa965 Merge pull request #1401 from driesmarzougui:main
PiperOrigin-RevId: 604771114
Change-Id: I9389828e9b588c22eb24a4074a23283943ca748d
2024-02-06 14:49:35 -08:00
Erik Frey 38cbc9e543 Improve MJX performance on NVIDIA GPU by enabling Triton GEMM.
PiperOrigin-RevId: 604691509
Change-Id: Iba11a9e1b79848624a1ef6eb4e61e2093d36e662
2024-02-06 10:31:49 -08:00
Matthew Bennice 84f20ffb66 Automated g4 rollback of changelist 604607692.
*** Reason for rollback ***

breakage resulting in "inertia must have positive eigenvalues" when parsing URDF's

*** Original change description ***

Move fullinertia from mjCAlternative to mjCBody.

***

PiperOrigin-RevId: 604677400
Change-Id: Iab8263b5b0aee310bd75404e314f3b707ce3300e
2024-02-06 09:47:04 -08:00
Alessio Quaglino 737342bdfe Move fullinertia from mjCAlternative to mjCBody.
PiperOrigin-RevId: 604607692
Change-Id: Ic2fcc08b9073d01ab190e7acacc3d827dbdfbca4
2024-02-06 04:43:12 -08:00
Alessio Quaglino 01439f28b3 Add AddFreeJoint and remove isfree from AddJoint.
PiperOrigin-RevId: 604597442
Change-Id: I2fe03cf0f9a59b425080cc5cc12b236fea9c020d
2024-02-06 03:49:49 -08:00
Alessio Quaglino 3b2dd06c54 Add compiler C API for mjmSite.
PiperOrigin-RevId: 604573450
Change-Id: I6ba7fcece0942ddc0d109413ba5684b2df3fab96
2024-02-06 01:50:47 -08:00