Commit Graph

409 Commits

Author SHA1 Message Date
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
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
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
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
Meghha Dhoke f763254a00 Updating Mujoco Release version number to v3.1.3
PiperOrigin-RevId: 604459311
Change-Id: I766f704c28740cf751cb935bb48fb6954fccf024
2024-02-05 15:59:20 -08:00
Dries Marzougui ed36956b0d fix https://github.com/google-deepmind/mujoco/issues/1379 2024-02-05 10:59:08 +01:00
Baruch Tabanpour 92c161a61b Add ncon to __init__.
PiperOrigin-RevId: 603468404
Change-Id: I20c622b8f6f84ecacb9f3cdd26ac9560cf2788be
2024-02-01 13:38:23 -08:00
Baruch Tabanpour 8be966cdf9 Avoid NaN in gradient of where. Fixes #1349.
PiperOrigin-RevId: 602461299
Change-Id: I7c976d3b7262027bdc63967dcc00674fb2802e70
2024-01-29 12:09:29 -08:00
Baruch Tabanpour 508669a9f2 Raise not implemented for frictionloss for now. #1344
PiperOrigin-RevId: 602453907
Change-Id: I0ea506b54f96c4fadc0f29f9ed0a21b0b6a7e5d9
2024-01-29 11:45:36 -08:00
Baruch Tabanpour a1e5ede266 Allow Brax data structures to inherit from MJX data structures.
PiperOrigin-RevId: 601290735
Change-Id: I6dad1b6d7e6b3e71acecc36189ab59cc81ab90b4
2024-01-24 18:03:17 -08:00
Erik Frey e59605135a Make benchmarks and viewer more accessible.
- Drop google_benchmark module dependency, wasn't really using it.
- Move benchmark models into test_data
- Rename benchmark => testspeed, make default output more like MJ testspeed.
- Update viewer to use new io functions and add get_data_into.
- Add "mjx-testspeed" and "mjx-viewer" bin scripts

PiperOrigin-RevId: 601277135
Change-Id: I782f666c58a96ac1a0a1c5ffc8ecf29d9fcd810f
2024-01-24 17:04:02 -08:00
Erik Frey 0a7be1732c Adds support for explicit dense/sparse mass matrices to MJX.
This increases performance, particularly for the Newton solver on TPU.

PiperOrigin-RevId: 600696483
Change-Id: If69bb9a2e21ba8dad6ca23f093ce7b7ceae644ff
2024-01-23 00:32:07 -08:00
Erik Frey 5cbaa23388 Remove TEST_FILES from MJX test_util.py.
PiperOrigin-RevId: 599886327
Change-Id: I4d166e09db22fffc959dbe34fa3469bd4a1b9f84
2024-01-19 11:15:06 -08:00
Baruch Tabanpour a02fc405af Add naive ray mesh implementation.
PiperOrigin-RevId: 598993152
Change-Id: I708505bf20a89d5a4840451a11b99771195003e6
2024-01-16 16:29:11 -08:00
Erik Frey ee922be393 Benchmark improvements.
- Use multiple devices if present
- FLAGS more agnostic to diverse platforms

PiperOrigin-RevId: 598990299
Change-Id: Ifbd454ca521a788324f2b62f1c79e7d4b8305a30
2024-01-16 16:17:56 -08:00
Erik Frey 85ab6183bc Add ray filtering based on geom transparency and filter params.
PiperOrigin-RevId: 597316447
Change-Id: If9619320f0024c486bb7abe2c63e9a1ba1a631f0
2024-01-10 11:59:11 -08:00
Erik Frey feb92bf535 MJX ray for planes, spheres, capsules, and boxes.
PiperOrigin-RevId: 596004453
Change-Id: I6c15268f7ec6afc1aadd370a78ef225ab9c5fd04
2024-01-05 08:42:17 -08:00
Baruch Tabanpour 721e2d5589 Update tutorial notebook.
PiperOrigin-RevId: 595746621
Change-Id: Ie0a4ea01d4f50491b14713f12ea8a4fe6877f890
2024-01-04 10:45:00 -08:00
Baruch Tabanpour 8ce2c92021 Add refsite transmission.
PiperOrigin-RevId: 595239860
Change-Id: Id1ca8fe2ffab4b55013e8987e92eb99847278dc4
2024-01-02 16:45:50 -08:00
Baruch Tabanpour 77b4132c47 Add site transmission to MJX.
PiperOrigin-RevId: 592373042
Change-Id: I54d941f4ee6f74404fe2aea7253f5b426d097e23
2023-12-19 16:19:17 -08:00
Baruch Tabanpour 80f50c943c Add filterexact to MJX.
PiperOrigin-RevId: 592026712
Change-Id: Ia73d67f36db5a4a1786a2532b5daa9e9a36f714c
2023-12-18 15:29:18 -08:00
Google DeepMind 7fb448613f Post release version update: Update to V3.1.2
PiperOrigin-RevId: 592019826
Change-Id: I64fd7da628bf3312ede4970b9b10ef5d0cc75b45
2023-12-18 15:03:37 -08:00
Erik Frey 0915d69c3f Correctly transform site_xmat in MJX get_data/put_data.
PiperOrigin-RevId: 590750273
Change-Id: I836e1f5d20725ed9b93bf86fe3e8e61954a56b47
2023-12-13 16:34:42 -08:00
Google DeepMind c2c76195dd Updating Mujoco Release version number to v3.1.1
PiperOrigin-RevId: 590712172
Change-Id: Ibf32322222212c1bf098e75bbb2e145344c57b93
2023-12-13 14:26:08 -08:00
Tyler Lindberg b82c382c53 Use positional arguments with jp.where 2023-12-12 16:28:36 -08:00
Google DeepMind fcebdf4d09 Update MuJoCo to v3.1.0 for release.
PiperOrigin-RevId: 590256664
Change-Id: I42ad788d609dde0ff00b13a2e456b2a8d3d9e952
2023-12-12 10:37:47 -08:00
Baruch Tabanpour e7d637f375 Fix issue with foot vel in MJX notebook
PiperOrigin-RevId: 589276253
Change-Id: I2c8c24e42d037d8c59667364a298f8b669d779b6
2023-12-08 16:44:36 -08:00
Erik Frey b3ccf67ebf Cleanup MJX tests and migrate them to put_model/put_data.
PiperOrigin-RevId: 588304729
Change-Id: I58075383e6eed64ae00cea305a568eba6465b0b0
2023-12-05 23:08:05 -08:00
Erik Frey 67fa7c1dc2 Add put_model, put_data, and get_data to MJX.
These io functions replace device_put, device_get_into. These new functions correctly copy intermediate fields such as efc_J, which the old functions could not.

PiperOrigin-RevId: 586712273
Change-Id: Ia3a4104af17db2ebd41b41a2ca501c5de9ac5d05
2023-11-30 10:14:46 -08:00
Nimrod Gileadi a306e32707 Add new hash for scipy in mjx/requirements.txt
PiperOrigin-RevId: 586674164
Change-Id: Idcda8f57addbce331da04cc1510e01ff91563040
2023-11-30 07:48:45 -08:00
Erik Frey 2f37147fc0 Guard against NaNs in MJX solver when no cost is imposed. Fixes #1225.
PiperOrigin-RevId: 586020958
Change-Id: I82f398b1538d2c3801a35c80c862e49be3b110a2
2023-11-28 10:12:17 -08:00
Baruch Tabanpour 35c90844ae Add sites to MJX.
PiperOrigin-RevId: 585691582
Change-Id: I6cc594daf436231f91534f137ff259e7b39811d9
2023-11-27 10:28:50 -08:00
Baruch Tabanpour 4d2a176a8a Modify name of mjx integration tests.
PiperOrigin-RevId: 583108693
Change-Id: If972c376181ca98201ff61ff06d200c82d214e2b
2023-11-16 11:24:07 -08:00
Baruch Tabanpour 1554048856 Bump dev version number to 3.0.2.
PiperOrigin-RevId: 582773849
Change-Id: I07a70911578fabb556eec1a4d8aa6fcb6557513f
2023-11-15 12:51:04 -08:00
Erik Frey c8146372cf Simplify pendula test data. Fix bug in `scan.body_tree` that led to incorrect smooth dynamics for some kinematic tree layouts.
PiperOrigin-RevId: 582125477
Change-Id: I47505ceb4be4c88052bc670f401b8c45ff320bbd
2023-11-13 16:48:49 -08:00
Saran Tunyasuvunakool f7bdd5dc0e Upgrade pip to version 23.3.1.
PiperOrigin-RevId: 579062729
Change-Id: Id6a78e6002a7aabb0f947d7722d5c178d5d9ca62
2023-11-02 21:20:55 -07:00
Erik Frey 3c0a56c1e5 Adds support for Newton solver to MJX.
PiperOrigin-RevId: 578738033
Change-Id: Id0e68c7b961380cb1ed88b40d99f202c3fa8e228
2023-11-01 22:05:10 -07:00
Baruch Tabanpour 45878b7eef Raise an exception in MJX if given a model with tendons.
Fixes #1149

PiperOrigin-RevId: 578278430
Change-Id: Ie633975b830379ca554438307a6e674675eaf8e7
2023-10-31 13:09:27 -07:00
Erik Frey 7069976557 Implement joint equality constraint. Streamline constraint functions.
PiperOrigin-RevId: 577905570
Change-Id: I70580d21e3c612606b967cdd84ad22794c672397
2023-10-30 11:38:15 -07:00
Yuval Tassa 86d9c84e59 Fix bug in implementation of torquescale
PiperOrigin-RevId: 577466789
Change-Id: I3c8e5dd9b4af9a629e777f7ccad8417075b0046c
2023-10-28 08:25:25 -07:00
Erik Frey 930c707e00 Ensure equality constraints are active irrespective of sign.
Fixes #1129

PiperOrigin-RevId: 577337939
Change-Id: Id835bb6d361525e5cb26f7696038d73d3c1a703e
2023-10-27 16:51:58 -07:00
Erik Frey 189dcc865b Use typing for Sequence instead of collections.abc
PiperOrigin-RevId: 577247039
Change-Id: If09884429070d74bcf517da78a3fa43c158978a2
2023-10-27 10:55:08 -07:00
Erik Frey 843360b732 Avoid efc rows for joints with no limit.
Fixes #1117

PiperOrigin-RevId: 576276387
Change-Id: I7d2a3860b19d83d65acf1995f7be05cb2d1247d4
2023-10-24 14:12:28 -07:00
Erik Frey 29f6f06788 Bump benchmarks from V100 to A100 to match published numbers.
PiperOrigin-RevId: 576230623
Change-Id: Ib17ffd210a781e1024f8bb484c75547ee39876f7
2023-10-24 12:38:01 -07:00
Baruch Tabanpour a4588cee12 Fix https://github.com/google-deepmind/mujoco/issues/1123
PiperOrigin-RevId: 576159322
Change-Id: I29fc3df294af008f55324bc49c0f597d778e3392
2023-10-24 09:08:34 -07:00
Kevin Zakka a53b5be956 Allow pre-release mujoco installs in mjx source install.
PiperOrigin-RevId: 575629464
Change-Id: I47615dee0e965c6016d90871fa100f52bb74bf0c
2023-10-22 10:19:24 -07:00
Baruch Tabanpour e57b34303a Reformat notebook and add back sim2sim.
PiperOrigin-RevId: 575246433
Change-Id: I8627916e7dedd5cf64dab6e0151f41c3153e7a68
2023-10-20 09:53:53 -07:00
Baruch Tabanpour ebe081f27e Add contact disable flag to collision driver.
PiperOrigin-RevId: 575245746
Change-Id: If2ea8a5de6f6c751729c9b8dd5efc42e7bdd51ea
2023-10-20 09:51:24 -07:00
Baruch Tabanpour e4a9f535a4 Make MJX device_put type validation more verbose.
PiperOrigin-RevId: 575050350
Change-Id: I7cab4ee54d462b61e9478dbd58d99bb9fb662daf
2023-10-19 17:30:33 -07:00