Commit Graph

1395 Commits

Author SHA1 Message Date
Alessio Quaglino 9a41d385c1 Add needsdf flag to mjsMesh.
PiperOrigin-RevId: 782949528
Change-Id: Iaa96326a91795c3469c991bd8def53560b38e4f0
2025-07-14 10:13:05 -07:00
Sam Haves 92bcbeb5d3 Add support for UsdPhysicsMaterialAPI and create MjcMaterialAPI for missing attributes.
PiperOrigin-RevId: 782942169
Change-Id: I344b5e47d1d63c9d4e50173cb6a96d0af177ec9e
2025-07-14 09:53:13 -07:00
Yuval Tassa 7d5b360dea Add clarifying comments to mju_transformSpatial
PiperOrigin-RevId: 782842640
Change-Id: I1e6fc27a860b4afc3a00ab4be6d5cb2897b4426b
2025-07-14 04:03:14 -07:00
Sam Haves 11e695b4c2 Rename MjcTransmission to MjcActuator in mjcPhysics schema.
PiperOrigin-RevId: 782352356
Change-Id: I4b74e3131b0fed925c506742c22038231f848909
2025-07-12 09:39:01 -07:00
Sam Haves 3473e4e451 Add group support to mjcPhysics equivalents for sites, geoms, actuators, and joints.
PiperOrigin-RevId: 781945497
Change-Id: I5c409f05e6bae33c181a51c273f260daea6004fc
2025-07-11 05:37:41 -07:00
Rishi Krishnan 3c99705f85 Update MuJoCo's version number following the 3.3.4 release.
PiperOrigin-RevId: 781596261
Change-Id: Iac050c4b9cb65542b52fa6b8c54ff2537bc6a648
2025-07-10 10:47:26 -07:00
Robin Alazard 723960a1f3 Fix plane size
Mujoco uses half-sizes so we must divide USD sizes by 2.
Also added a test for geom primitive sizes.

PiperOrigin-RevId: 781595650
Change-Id: If8a84dd942905c367590eafffac61cc23b1c407d
2025-07-10 10:45:43 -07:00
Yuval Tassa 58c95219dc Modify mjSORT to remove some unnecessary copies.
PiperOrigin-RevId: 781573097
Change-Id: I60148bc88fb64ea6dfee9390efb3fd161ad3f1d8
2025-07-10 09:51:40 -07:00
Robin Alazard 1f8f3a5004 Add capsule axis rotation for USD->MJ.
PiperOrigin-RevId: 781546484
Change-Id: Ie6613de8faac406664ca22cb246fe7db2a728317
2025-07-10 08:32:07 -07:00
Robin Alazard 1bb6391d9c Replace SetRotateInto with pxr::GfRotation(from, to) constructor directly
Also remove duplicate line with no effect

PiperOrigin-RevId: 781540954
Change-Id: I1e161c2ed0b6e3209697c9551ad30e3371e44865
2025-07-10 08:14:32 -07:00
Alessio Quaglino d81ab17bf5 Cache SDF octree.
PiperOrigin-RevId: 781500550
Change-Id: I0077d41f13be0243bff292534cc6bce2bdc1caa4
2025-07-10 06:05:28 -07:00
Sam Haves fbea72d767 Remove MjcActuatorAPI in favor of typed MjcTransmission.
PiperOrigin-RevId: 781498554
Change-Id: Ib6ce5038645f6ca08638a9d316b0347dc121bc62
2025-07-10 05:58:58 -07:00
Alessio Quaglino 2d69610abd Use the geom frame for SDF collisions.
Also disables mesh reorientation for meshes autogenerated with marching cubes from analytic SDFs.

PiperOrigin-RevId: 781487195
Change-Id: I36b66384f240a764823c489f78f22ba9fe32f15f
2025-07-10 05:16:51 -07:00
Sam Haves 7e57a6bc30 Add missing actuatorgroupdisable default to mjcPhysics schema.
PiperOrigin-RevId: 781487140
Change-Id: I7b0ff3a015e0c6b229e5409455a648f6d2399617
2025-07-10 05:15:27 -07:00
Sam Haves e7212d86bc Add maxhullvert attribute to mjcPhysics MeshCollisionAPI.
PiperOrigin-RevId: 781482346
Change-Id: I0d53f9ad99ac842629243b0375907b2f91bd3b61
2025-07-10 04:59:18 -07:00
Sam Haves 270017f9ba Spurious formatting errors for gravity attr authoring in Mjcf SdfFileFormat plugin.
PiperOrigin-RevId: 781175798
Change-Id: Ic3b3a14280c051859db7c38af0e271a1878acdb8
2025-07-09 13:02:19 -07:00
Alessio Quaglino cef02fabea Remove sdflib plugin and move interpolation to engine_collision_sdf.
Before:
```
 Simulation time      : 1.71 s
 Steps per second     : 5854
 Realtime factor      : 11.71 x
 Time per step        : 170.8 µs

 Newton iters / step  : 2.19
 Contacts / step      : 3.45
 Constraints / step   : 13.79
 Degrees of freedom   : 12
 Dynamic memory usage : 0.2% of 14M
```

After:
```
 Simulation time      : 1.41 s
 Steps per second     : 7093
 Realtime factor      : 14.19 x
 Time per step        : 141.0 µs

 Newton iters / step  : 2.19
 Contacts / step      : 3.45
 Constraints / step   : 13.79
 Degrees of freedom   : 12
 Dynamic memory usage : 0.2% of 14M
```

PiperOrigin-RevId: 781087896
Change-Id: Iaf69dccc5e95af5bac862344683c74f962162186
2025-07-09 09:29:47 -07:00
Alessio Quaglino 96118da08b Move SDF precomputation to the mujoco compiler.
Before:
```
 Simulation time      : 2.24 s
 Steps per second     : 4472
 Realtime factor      : 8.94 x
 Time per step        : 223.6 µs

 Newton iters / step  : 2.47
 Contacts / step      : 3.37
 Constraints / step   : 13.49
 Degrees of freedom   : 12
 Dynamic memory usage : 0.2% of 14M
```

After:
```
 Simulation time      : 1.71 s
 Steps per second     : 5854
 Realtime factor      : 11.71 x
 Time per step        : 170.8 µs

 Newton iters / step  : 2.19
 Contacts / step      : 3.45
 Constraints / step   : 13.79
 Degrees of freedom   : 12
 Dynamic memory usage : 0.2% of 14M
```

PiperOrigin-RevId: 781075182
Change-Id: Ie509047ff581ab0df4b10bbd394c27d350ab5a13
2025-07-09 08:57:09 -07:00
Yuval Tassa a3d251f552 Add mjModel.sensor_intprm, integer parameters of sensors
PiperOrigin-RevId: 781053754
Change-Id: I90e5ef1cab3f87b894dbc70dccfc8bf0046ce1b6
2025-07-09 08:00:21 -07:00
Sam Haves 9d64ed9575 Remove leftover MJ_USD_TARGET_NAME include directories call from USD CMake.
PiperOrigin-RevId: 781023625
Change-Id: Id75cb94c0eafc27c47a275d3cf4280020ed0c17a
2025-07-09 06:33:55 -07:00
Alessio Quaglino b81f1db8af Replace SdfLib with linear octree interpolation of TriangleMeshDistance.
Temporary changes to the octree:
- Changed frame from mesh to geom

Before change (tolerance 1e-3):
```
 Simulation time      : 2.34 s
 Steps per second     : 4275
 Realtime factor      : 8.55 x
 Time per step        : 233.9 µs

 Newton iters / step  : 2.26
 Contacts / step      : 3.69
 Constraints / step   : 14.76
 Degrees of freedom   : 12
 Dynamic memory usage : 0.7% of 14M
```

After change (6 octree levels):
```
 Simulation time      : 2.24 s
 Steps per second     : 4472
 Realtime factor      : 8.94 x
 Time per step        : 223.6 µs

 Newton iters / step  : 2.47
 Contacts / step      : 3.37
 Constraints / step   : 13.49
 Degrees of freedom   : 12
 Dynamic memory usage : 0.2% of 14M
```

PiperOrigin-RevId: 781019754
Change-Id: Ib15581244dfe9e571e1c6c2cac4a101cf3d8ba3d
2025-07-09 06:21:41 -07:00
Yuval Tassa e6c5715903 Add insidesite sensor for detecting when an object is inside the volume of a site.
PiperOrigin-RevId: 780993257
Change-Id: I2dcfc840d222680adc3b934344a0819f4d78b6eb
2025-07-09 04:56:42 -07:00
Taylor Howell 13621879c6 Remove unnecessary loop from mj_collideOBB.
PiperOrigin-RevId: 780629489
Change-Id: I715cd1f72012c0655997ba4c967fa7b5b8731d54
2025-07-08 10:50:33 -07:00
Sam Haves 14972d2490 Add mj_loadUSD function. Change simulate to use that instead of manual spec compilation.
PiperOrigin-RevId: 780608874
Change-Id: I333238c756fe76b371518a7cdf9452b93da3540a
2025-07-08 10:04:08 -07:00
Sam Haves e507e31922 Fix schema naming in mjcPhysics to avoid collisions.
PiperOrigin-RevId: 780537076
Change-Id: I4ea24162ba20d6aae10207491f9aae2250808576
2025-07-08 06:27:30 -07:00
Yuval Tassa d464165e30 Print contact forces in mj_printData.
PiperOrigin-RevId: 780503111
Change-Id: I17c6f1584d5260fa9c88c54d0aea9ec0101c082b
2025-07-08 04:11:10 -07:00
Alessio Quaglino 1a4ddca6cf Make mjs_findElement find meshes by file name.
PiperOrigin-RevId: 780150428
Change-Id: Ie500062fa8cca755683b66540e84ede588d7c331
2025-07-07 09:51:33 -07:00
Yuval Tassa 7a09145161 Rename variables to avoid shadowing in user_objects.cc
PiperOrigin-RevId: 780137314
Change-Id: Ife5abd0ecc3851837a7aef7048efe80dbdfcf60e
2025-07-07 09:15:03 -07:00
Yuval Tassa e01c4b454a Rename variables to avoid shadowing in xml_native_reader.cc
PiperOrigin-RevId: 780135233
Change-Id: I509ac6a0807e102ad8749f81562ad45bf4c04335
2025-07-07 09:10:02 -07:00
Yuval Tassa 783e6499d8 Remove explicit mjModel dependency from engine_util_misc.c
PiperOrigin-RevId: 780123513
Change-Id: I567e09db3cd13a93a4720742affb62b54bfa5426
2025-07-07 08:33:19 -07:00
Yuval Tassa 6ccc4f77bc Defer sensor reference id resolution from sensor compiler to model compiler
PiperOrigin-RevId: 780070082
Change-Id: I7166f589f15bb0cd14b92e213d7a9f2a3bbad4e4
2025-07-07 05:37:53 -07:00
Sam Haves 1742ba510c Swap out apostrophe for single quote in mjcPhysics actuator lengthRange docs.
PiperOrigin-RevId: 780051495
Change-Id: Ib56a012ded364740564b879456a9e0570b5a0d7a
2025-07-07 04:27:49 -07:00
Sam Haves 2c4fed07d2 Add missing source files to mj_usd target.
PiperOrigin-RevId: 779244207
Change-Id: I3a913f8add82838a1d7371f84b4f03f271a1897b
2025-07-04 11:46:48 -07:00
Sam Haves be3c3ef8a9 Add missing gravity attribute authoring to Mjcf SdfFileFormat plugin.
PiperOrigin-RevId: 779239797
Change-Id: I039b1089e5b436498d14df384c1aee830fd4b48a
2025-07-04 11:25:49 -07:00
Robin Alazard e69b6cc5f3 Fix wrong extent authoring for Cube.
PiperOrigin-RevId: 779230125
Change-Id: I96c3d5daa7a760cd87a714a14ea74a15faf3d7db
2025-07-04 10:39:32 -07:00
Robin Alazard 21a852504c Make sure we never apply the ArticulationRoot API more than once.
PiperOrigin-RevId: 779185190
Change-Id: If441d0e2ba24191883839977b46864db2b4b8204
2025-07-04 07:36:05 -07:00
Robin Alazard 85ad1eec91 Rework USD scene traversal, ensure DFS order of bodies is respected, remove implicit welding of non-jointed nested bodies
PiperOrigin-RevId: 779121640
Change-Id: Ic3281ac10ce51975cd681e9342b2fffd5f24376f
2025-07-04 03:25:49 -07:00
Yuval Tassa 2937efd5f2 Use sparse math in mjd_actuator_vel.
PiperOrigin-RevId: 778924297
Change-Id: I221fb338c894f278e9f8401f25056539c62ccc65
2025-07-03 10:52:54 -07:00
Alessio Quaglino af7d20c035 Change mjs_nextChild to be DFS to match XML parsing.
PiperOrigin-RevId: 778915232
Change-Id: I5e290f47b7d2530597bb6c85b66ff2ae807e5510
2025-07-03 10:07:13 -07:00
Alessio Quaglino 564c51ddb9 Check for duplicated names when setting element names.
PiperOrigin-RevId: 778827590
Change-Id: I77a208c1571cf735cae80840ea830aa347681f71
2025-07-03 03:20:55 -07:00
Alessio Quaglino 594e17074a Replace name attribute with setters and getters in the C API of mjSpec.
PiperOrigin-RevId: 778816015
Change-Id: Ieffb7a5bce37e887ff009f9a02d2434435e79ca1
2025-07-03 02:30:56 -07:00
Sam Haves d2840ce665 Add missing files to mjusd cmake.
PiperOrigin-RevId: 778800306
Change-Id: I1bd5766108c59fb05a6a2c6c8b3207476aca60ea
2025-07-03 01:27:12 -07:00
Sam Haves 1d613b9b9a Add support for mjcPhysics keyframes to USD interop.
PiperOrigin-RevId: 778552679
Change-Id: I04026599f7a2836e3fe1cf0d553bcc86a5795f98
2025-07-02 10:17:41 -07:00
Robin Alazard 072b327430 Fix the parsing of USD scenes that use ResetXformStack
Also add a new test for it

PiperOrigin-RevId: 778114814
Change-Id: Ib019768ac45ecf7ec6d437199a3d1427557b2f06
2025-07-01 11:07:07 -07:00
Robin Alazard 50de1b3c2c Read new Mujoco-specific JointAPI when converting USD.
PiperOrigin-RevId: 778037519
Change-Id: Idd81dc5dc14e2dfb40ba7db4404fd09f9ff50a9f
2025-07-01 07:40:23 -07:00
Robin Alazard 9dc67b50cd Write new Mujoco-specific JointAPI data to USD.
PiperOrigin-RevId: 778035661
Change-Id: I945aa38fc58973023d78ab0ab5fad7783d23e1ef
2025-07-01 07:35:34 -07:00
Robin Alazard 862436f9b3 Add JointAPI schema in mjcPhysics.
PiperOrigin-RevId: 778030981
Change-Id: I22a4bf2a550fb78e47bef0ff171b10ce5912887e
2025-07-01 07:22:05 -07:00
Nimrod Gileadi 3db03dcce5 Don't output a warning about duplicate geom names for unnamed geoms in URDF.
PiperOrigin-RevId: 777998616
Change-Id: Id87533e30567fe5a0e372220ba57819383d42236
2025-07-01 05:36:17 -07:00
Taylor Howell 9eb0745968 Fix comment typo in getimpedance.
PiperOrigin-RevId: 777997980
Change-Id: I0fe87196360e6771db10f4d9b08d43448ea5f54e
2025-07-01 05:33:47 -07:00
Alessio Quaglino 5c1f1f9dba Add octree to meshes of SDF geoms.
PiperOrigin-RevId: 777634862
Change-Id: I3210c2f8d73fd30ceecb0a11abd1d82e086b3d5d
2025-06-30 10:50:15 -07:00