Commit Graph

86 Commits

Author SHA1 Message Date
Baruch Tabanpour e9709900b4 Add gravcomp.
PiperOrigin-RevId: 627791303
Change-Id: I87c9254967eb492d0c38153ff41d7458ffb69136
2024-04-24 11:19:34 -07:00
Baruch Tabanpour 0a60d555c6 Fix small bug in testspeed.
PiperOrigin-RevId: 627773755
Change-Id: Iebbcaa41cfdde126312e388d368843a4754abfb8
2024-04-24 10:30:45 -07:00
Baruch Tabanpour d15db54537 Add support functions for id2name and name2id.
PiperOrigin-RevId: 627525330
Change-Id: Ic8069f64c94ef4b8f96f62b88ece62a8b296d870
2024-04-23 15:35:59 -07:00
Erik Frey c6ab354bd7 Remove type annotations unavailable in python < 3.10. Fixes #1590
PiperOrigin-RevId: 627188913
Change-Id: I9adc627349a4001291ac6d05080b761fee155ab0
2024-04-22 16:22:36 -07:00
Erik Frey 71333938ec Add support for condim to MJX.
PiperOrigin-RevId: 627136131
Change-Id: Ia62eb20cb80395b569c7fc7f4d4ef87e12eaaf40
2024-04-22 13:20:57 -07:00
Alessio Quaglino c2d0c5dd1b Add cylinder collisions using SDFs.
PiperOrigin-RevId: 626998709
Change-Id: I669a639b1cabf5ed522c73a07e54684d675fa396
2024-04-22 05:07:43 -07:00
Erik Frey 3b64217b96 Remove deprecated mjx.device_* functions. They are not suited to upcoming condim support.
PiperOrigin-RevId: 626486447
Change-Id: Ibd41874bb3903123567168ebbac563399788d2f2
2024-04-19 15:34:28 -07:00
Erik Frey a4df912018 Prepare MJX for condim.
This is a refactor of collision_driver and some of its surrounding code in order to prepare for condim in MJX.  In this change we reify types that are needed for condim: dim, efc_address, efc_type.  We make explicit the way contacts are organized and grouped to guarantee that dim and efc_type are statically defined.

This change simplifies the way meshes are organized on device and slightly speeds up mesh collisions for cases where a single mesh is instanced across many geoms.

PiperOrigin-RevId: 626119500
Change-Id: Ic0c8599bcda2326f2e19cd3246a673e56097886b
2024-04-18 12:43:36 -07:00
Google DeepMind 8b7f1094f1 Fix jax deprecation warning for jax.tree_map.
PiperOrigin-RevId: 626092308
Change-Id: I78145efe62ae118726c1755856d7cb9b1abd988a
2024-04-18 11:13:35 -07:00
Baruch Tabanpour 0fa0437313 Add cylinder plane.
PiperOrigin-RevId: 625099227
Change-Id: I02cb86c3e8c7fd5914a082f1e8a3bae6274b3c8e
2024-04-15 15:18:04 -07:00
Baruch Tabanpour 38fa5083eb Fix support for deep penetration in plane-convex.
PiperOrigin-RevId: 625088511
Change-Id: I30bd4d475f4bfde98b5ae6254dd67bbe0fc09c08
2024-04-15 14:42:41 -07:00
Baruch Tabanpour 9f1651b7bd Raise error for gravcomp.
PiperOrigin-RevId: 624292351
Change-Id: Ia8cfce33f990616035772fb88c34fb1434c73220
2024-04-12 14:25:34 -07:00
Alessio Quaglino 2b3f336bd3 Add ellipsoid sdf collisions to MJX.
Co-authored-by: Baruch Tabanpour <btaba@google.com>
PiperOrigin-RevId: 623415479
Change-Id: Id061c8e083357d063f1ccddf0989f2fafe415eed
2024-04-10 01:41:10 -07:00
Tom Erez b441923598 Add userdata support to MJX.
PiperOrigin-RevId: 622948369
Change-Id: I5eca0afcb8cd50f53eacc57a78bfdf68ccde12e7
2024-04-08 14:14:12 -07:00
Baruch Tabanpour d7f131e086 Add ellipsoid plane.
Co-authored-by: Alessio Quaglino <quaglino@google.com>
PiperOrigin-RevId: 621208833
Change-Id: I270c1ae0cecd7dd2d9b41da4e4d0b6378b105aaf
2024-04-02 09:49:46 -07:00
Baruch Tabanpour d258d5e152 Check all edge pairs in convex-convex.
PiperOrigin-RevId: 620004680
Change-Id: I5d75c0fd21ed3d3e420eed762cfc5a7e04896032
2024-03-28 11:33:46 -07:00
Baruch Tabanpour 2019d42ca6 Small change to testspeed file.
PiperOrigin-RevId: 618323795
Change-Id: I3a6307b8ae6d9af0d17c0ae85eae673d60112ddf
2024-03-22 17:04:49 -07:00
Baruch Tabanpour 624becca52 Fix some more bugs in sphere/capsule-convex collisions.
PiperOrigin-RevId: 617646119
Change-Id: Ie0c99ccbe1dd2a18663d45a111e77fed4112e638
2024-03-20 15:46:13 -07:00
Erik Frey 9b86329797 Add 01-10 humanoids for benchmarking.
PiperOrigin-RevId: 617318016
Change-Id: Ic5dc0623266d4d6bef6da97d03370010e2817a2a
2024-03-19 15:48:48 -07:00
Baruch Tabanpour b4694ee331 Fix bug in MJX viewer.
PiperOrigin-RevId: 617297574
Change-Id: I34fb797db47308a8b2f29a6c54f2b59d77f84a32
2024-03-19 14:36:15 -07:00
Baruch Tabanpour 2386353b02 Throw an error for margin/gap with meshes.
PiperOrigin-RevId: 615937263
Change-Id: I3289cf1b1fec93385cc78a01e53866427453db59
2024-03-14 16:21:05 -07:00
Erik Frey 02c62c118c Fix bug where treedef for mjx.make_data doesn't match mjx.put_data.
PiperOrigin-RevId: 615928973
Change-Id: I08af97ac0300b9d51c1f4b46d48dde98d24197fa
2024-03-14 15:51:15 -07:00
Baruch Tabanpour e5811ce2b4 Further improve edge contact for capsule-convex.
PiperOrigin-RevId: 615900645
Change-Id: I7fd495b10b7b3121da7aa5ed15cde413d916bc84
2024-03-14 14:15:44 -07:00
Baruch Tabanpour f818a16ae4 Fix the bugfix for capsule-convex collisions.
PiperOrigin-RevId: 615809115
Change-Id: I183336630a76a9ada5b0730559b49779dd94f8e5
2024-03-14 09:41:33 -07:00
Baruch Tabanpour f2e107f7aa Fix deep penetration for sphere/capsule-convex.
PiperOrigin-RevId: 615539264
Change-Id: I6a5aac0574ddcb39bae8aafaf63f9561ca69288b
2024-03-13 14:12:42 -07:00
Baruch Tabanpour a49f3f63fc Remove disable_jit in test.
PiperOrigin-RevId: 614824680
Change-Id: I15f1441dfb1a70b98e5a221c0e15b06572860748
2024-03-11 16:03:40 -07:00
Baruch Tabanpour 22cd96fbbc Speed up convex-convex collisions.
PiperOrigin-RevId: 613450874
Change-Id: Ie66e0a078e2ff51a136b949dd9459847e1fe957d
2024-03-06 21:48:51 -08:00
Baruch Tabanpour 224fbd00c8 Fix egregious bug in broadphase.
PiperOrigin-RevId: 612856292
Change-Id: I622ca00509c27f351ce5efefc139b2f2e141c8e9
2024-03-05 08:48:09 -08:00
Baruch Tabanpour 419be4c605 Add crude broadphase impl.
PiperOrigin-RevId: 611643683
Change-Id: Id7816dadd7e9f1b8855268b815353c61540c4e0c
2024-02-29 17:12:58 -08:00
Copybara-Service f9c46e2abb Merge pull request #1447 from jaro-sevcik:mjx-factor-m-parallel
PiperOrigin-RevId: 611348280
Change-Id: I19ef25c732d43bba0b0a8c296b197948c69d5b52
2024-02-28 22:31:01 -08:00
Jaroslav Sevcik 803f0cb0d9 Clean up factor_m 2024-02-28 01:19:12 -08:00
Copybara-Service a5ea87b0e6 Merge pull request #1446 from jaro-sevcik:mjx-solve-m-parallel
PiperOrigin-RevId: 610984251
Change-Id: Ifd69480643df236fe2d6b9f77d1b029d2650acff
2024-02-27 22:21:11 -08:00
Baruch Tabanpour 2e43f18bee Update barkour notebook.
PiperOrigin-RevId: 610906071
Change-Id: Ie67b86888e195bbd8a8e879547e65fbc2c864534
2024-02-27 16:09:20 -08:00
Baruch Tabanpour 2067e2083a Add cameras to MJX. Fixes #1422
PiperOrigin-RevId: 610870732
Change-Id: Iaa39bd00f56046c595dc961281ac23446ca5bdf2
2024-02-27 14:17:21 -08:00
Jaroslav Sevcik 7688e03eea Remove unnecessary parens 2024-02-27 00:10:21 -08:00
Jaroslav Sevcik 29d6e10375 Update independent elements in solve_m in parallel 2024-02-25 20:27:28 +00:00
Jaroslav Sevcik 13f256dd19 Parallel factor_m 2024-02-25 20:24:54 +00:00
Erik Frey 1b93226fb0 To save memory, avoid loading meshes that will never be used for collisions.
PiperOrigin-RevId: 607770456
Change-Id: I34c4a34d1820a9fd88d2ebeaffec9a64637d2614
2024-02-16 12:40:35 -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
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
Baruch Tabanpour f50a44e193 Allow jax config to choose precision.
PiperOrigin-RevId: 606765036
Change-Id: I36977851615700507eb2e83cc6d2d1ff8255be62
2024-02-13 15:24:02 -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
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
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
Dries Marzougui ed36956b0d fix https://github.com/google-deepmind/mujoco/issues/1379 2024-02-05 10:59:08 +01:00