Kyle Bayes
9e72874801
Remove EPA tolerance in the discrete case in nativeccd.
...
PiperOrigin-RevId: 750649926
Change-Id: I8ab317cd6b227c9486a2916ae9c6445906c23401
2025-04-23 10:52:14 -07:00
Yuval Tassa
c2ac0d724e
Add mju_gather and mju_scatter, private engine functions.
...
PiperOrigin-RevId: 750245294
Change-Id: I3a14ccdd55a324d3fe206e388fb2a513772f5f5e
2025-04-22 10:33:33 -07:00
Google DeepMind
8e7457d7c6
Initial support for writing UsdPhysics data starting with UsdPhysicsRigidbodyAPI support.
...
The SDF_FORMAT_ARGS `usdMjcfToggleUsdPhysics` is introduced to toggle writing UsdPhysics or not when converting. Off by default
PiperOrigin-RevId: 746467942
Change-Id: I26cb9a4c4ae2eef96163dab967a74f14940a2a6d
2025-04-11 08:19:11 -07:00
Sam Haves
446a8f1742
Add basic site support to Mjcf SdfFileFormat plugin.
...
We will still need to tag these with a custom API schema to ease round-tripping but that will follow creation of such a schema.
PiperOrigin-RevId: 746421793
Change-Id: I2df2209b4bc90d763718fb4bea8158b8598755c6
2025-04-11 05:28:03 -07:00
Kyle Bayes
b1f8d444f2
Fix bug in replaceSimplex3 in nativeccd.
...
PiperOrigin-RevId: 746014344
Change-Id: I93b32ab5f67ee48ab72238de53f7cda07638cb79
2025-04-10 07:04:27 -07:00
Yuval Tassa
25126e88c7
Move mju_cholFactorCount to engine_util_solve.
...
PiperOrigin-RevId: 746011856
Change-Id: If9812251420053644f4eca81adb5116d370ee524
2025-04-10 06:56:31 -07:00
Mohammad Hamid
3429a4881a
Detect mismatch between maxNodes and Nodes in a gmsh block. Fixes #2342
...
PiperOrigin-RevId: 745967745
Change-Id: If1b5fcd71079a0e6a6def9b442758678e31a5828
2025-04-10 04:15:21 -07:00
Kyle Bayes
85b323c7fb
Remove square roots when possible in EPA improving numerical precision.
...
PiperOrigin-RevId: 745559836
Change-Id: I3f8b23406e93ccfc4bc3499bfbed829b35462a74
2025-04-09 06:18:51 -07:00
Taylor Howell
96dda6ea75
Add tendon actuator force limits and tendon actuator force sensor.
...
PiperOrigin-RevId: 745096883
Change-Id: Ib9acb727fbbfc6b0b0323ee6a889053a7a878056
2025-04-08 05:16:35 -07:00
Kyle Bayes
606f00f802
Remove contact pruning with box-box collisions in nativeccd and add benchmarks.
...
PiperOrigin-RevId: 744732382
Change-Id: I2e20b646c541ee99888f1e964302d1b4363b2dc4
2025-04-07 08:34:04 -07:00
Alessio Quaglino
d7027fb1c0
Do not skip mjSpec's with repeated model names when attaching a new mjSpec.
...
PiperOrigin-RevId: 744705838
Change-Id: Ie47a3c029f443910629619b7f9ff43ab07646725
2025-04-07 06:52:12 -07:00
Kyle Bayes
58234b2217
Replace mjMAXVAL with numerical max limit where necessary in nativeccd.
...
PiperOrigin-RevId: 744693156
Change-Id: I72c3122701be281d468291dfc2ad1e4bb1da5a1c
2025-04-07 05:59:02 -07:00
Alessio Quaglino
cc2f57d820
Change mjSpec and mjModel signature mechanism.
...
The signature now contains the necessary information to safely perform `bind`. The private UIDs are now removed.
Fixes an issue of changing signature when compiling a copy of an mjSpec.
PiperOrigin-RevId: 744670626
Change-Id: Id3c66419cf2afbe78e91bc4b37d2299f5ec00ab1
2025-04-07 04:21:27 -07:00
Yuval Tassa
d05251af2a
Add tendon armature
...
PiperOrigin-RevId: 743939992
Change-Id: I587214f5d6fabbc0cc273c33d82decbe9ad8f919
2025-04-04 07:44:04 -07:00
Yuval Tassa
e1f5ceb65a
Add mjModel.tendon_armature (in preparation, not yet implemented)
...
PiperOrigin-RevId: 743649968
Change-Id: I1d893e3e06afc48b652575bc7837750ab3573670
2025-04-03 12:06:27 -07:00
Yuval Tassa
f96f3e1c22
Add XML compiler/saveinertial flag. Fixes #2405
...
PiperOrigin-RevId: 743607654
Change-Id: I1f2e61be89b79c1995e079f36aa285096f9fb441
2025-04-03 10:12:42 -07:00
Alessio Quaglino
8941f56e86
Copy UIDs during mj_copySpec.
...
This will produce the same mjSpec signature after a deep copy.
PiperOrigin-RevId: 743538018
Change-Id: Ic0f5b06a00e8883cb92dc98159db3bea02cb7a36
2025-04-03 06:29:07 -07:00
Yuval Tassa
e5912c3ce4
Use tolerance to compare quaternion components in UserObjectsTest.Inertial
...
Fixes #2515
PiperOrigin-RevId: 742704324
Change-Id: Ib26891e43128e66d2ac1840ed574285781fb12a5
2025-04-01 08:12:01 -07:00
Alessio Quaglino
a02a27d4a4
Combine all mjs_attach functions into one.
...
PiperOrigin-RevId: 742702092
Change-Id: I89e35c59ada017cd061e2031584eeea71776743d
2025-04-01 08:05:58 -07:00
Kyle Bayes
08d22baea1
Fix bug in horizon code in nativeccd where parallel faces are included in horizon.
...
PiperOrigin-RevId: 742687622
Change-Id: I4a180cb9c7451e0a2c22ffd77b7b6f6fd68836a4
2025-04-01 07:21:14 -07:00
Kyle Bayes
9ecec6f238
Fix bad contact from passing through polytope2 in nativeccd.
...
PiperOrigin-RevId: 742666700
Change-Id: I76034579b4e663f9abfa265ec3e2bc608f631f59
2025-04-01 06:11:20 -07:00
Alessio Quaglino
648a03c2cf
Override inertia of body with visual geoms if discardvisual is true.
...
Fixes #2546 .
PiperOrigin-RevId: 742650702
Change-Id: I753c1e1c89da732ece100676644bbecf9d6373bb
2025-04-01 05:21:48 -07:00
Alessio Quaglino
86c970bc23
Add error checking in mjs_setFrame.
...
Also raise error if the frame is not found in the mjCBody copy constructor.
Fixes #2543 .
PiperOrigin-RevId: 742624013
Change-Id: I4999b3165c97f8d079412214d027ca7a8dae8cb3
2025-04-01 03:34:48 -07:00
Yuval Tassa
05f3e914b0
Improve armature documentation
...
PiperOrigin-RevId: 742583729
Change-Id: I18d1c95a91f4d70b842c680d4a0f4d0b04476894
2025-04-01 01:16:58 -07:00
Alessio Quaglino
01d4c46753
Store the mjsCompiler -> appended mjSpec map when appending an mjSpec.
...
Previously, we stored the source `mjSpec` during a copy as a hack for having access to the compiler options, but this is not robust since we cannot guarantee that 1) the source `mjSpec` is not destroyed before we need to look up the compiler options nor 2) that the `mjSpec` was appended without a copy.
While 2) could be solved by simply handling an additional case in `mjCModel::FindSpec`, using a map also solves 1) and it is easier to understand.
PiperOrigin-RevId: 741504264
Change-Id: Iab1bfd9e61299a94fa8caf3a244c067b09d54384
2025-03-28 06:27:22 -07:00
Google DeepMind
644b42bee3
Add mujoco/experimental and move USD work there.
...
PiperOrigin-RevId: 740730698
Change-Id: If9c68798cda502d6d7632906a034437e2557802e
2025-03-26 05:37:45 -07:00
Kyle Bayes
d6943731b2
Fix bug in nativeccd multiccd.
...
PiperOrigin-RevId: 740495321
Change-Id: I7eaa0da8514e27c233d49567c276d1d238808d1f
2025-03-25 14:56:21 -07:00
Yuval Tassa
c931565fdc
Add internal functionmj_tendonDot: time derivative of tendon Jacobian for one tendon.
...
Notes:
- Currently always uses dense math, even for sparse models. This should be easy to change in the future.
- Does not support geom wrapping. This is possible but harder, requires derivatives of mju_wrap.
PiperOrigin-RevId: 740378741
Change-Id: Id39ef2c4bfbb7ee11ec33c97d7d83140441cdab2
2025-03-25 09:36:30 -07:00
Kyle Bayes
12b40b948e
Remove MuJoCo stack calls in nativeccd.
...
1. There is now thread local static memory for use with a conservative max number of iterations needed for contact.
2. For possible needs of high precision contact recovery with large iteration numbers (i.e. ellipsoid-ellipsoid collisions), there are callbacks to allocate memory when needed.
PiperOrigin-RevId: 739187134
Change-Id: I3d210f75218922d969c78465da3fe50da4fe3080
2025-03-21 08:20:51 -07:00
Alessio Quaglino
dc96ed6bdb
Remove plugins that are not referenced after detaching a body.
...
Fixes #2497 .
Also, use `Release()` instead of `delete` for removing elements when detaching a body in order to preserve correct reference count.
PiperOrigin-RevId: 739133888
Change-Id: I7ccfad84446fb15259bad30c4ba1e6f7fa601518
2025-03-21 04:34:05 -07:00
Tom Power
8d92a0fbe6
Clear body subtreedofs when compiling. Fixes issue when attaching previously compiled model.
...
PiperOrigin-RevId: 738906593
Change-Id: I74875b4d07c422e397358dff5daf6682ec1bd655
2025-03-20 12:52:36 -07:00
Kyle Bayes
467a63d203
Add BoxBox to ccd benchmarks.
...
PiperOrigin-RevId: 738761460
Change-Id: If59d306748d64e9e30abe65daa746a4f8e9ec78c
2025-03-20 05:16:33 -07:00
Tom Power
be64747166
add mjs_detachDefault to delete a default class from mjSpec
...
PiperOrigin-RevId: 738452369
Change-Id: I5a53a6dc8f89e1e8136aeefc09d7d9b7b7204e1f
2025-03-19 10:31:04 -07:00
Alessio Quaglino
209d2bd2c5
Added functionality for user payload data in mjSpec.
...
PiperOrigin-RevId: 738343134
Change-Id: I6217362ced9993afcd5a2914c78718ffe3bf753a
2025-03-19 04:36:00 -07:00
Alessio Quaglino
bae5175cf2
Accumulate rotation after updating pos and quat in replicate.
...
Fixes #2501 .
PiperOrigin-RevId: 737929158
Change-Id: I0cad2de37190f1d30d427ae646acbde335b5be56
2025-03-18 02:51:05 -07:00
Alessio Quaglino
35774706ee
Set parent frame of new frames after copying all frames.
...
PiperOrigin-RevId: 737620918
Change-Id: I8f49570cab39bd84b2da908d3683dddc3b29cb3c
2025-03-17 08:19:04 -07:00
Alessio Quaglino
f25fc63f0f
Default flex internal contacts to "false".
...
This function is unusual in the context of soft body simulations and has been a common gotcha for users, see e.g. #2500 , #2079 , #1900 , and #1433 . It should be used only if element inversion cannot be prevented otherwise.
PiperOrigin-RevId: 736822983
Change-Id: I76b0965c91c94dd88123826d218d7544ec37a88c
2025-03-14 04:55:09 -07:00
Alessio Quaglino
8e300eb628
Update list ids immediately during body detach.
...
Fixes #2499 .
PiperOrigin-RevId: 736449320
Change-Id: Ieeae52bdbbbb896d886221ab088229c8287a32a3
2025-03-13 03:55:58 -07:00
Tom Power
8f4c5c4b16
add support for non-rgb textures in xml_native_writer
...
PiperOrigin-RevId: 736221430
Change-Id: I83c19e06f0f7be054a88c3e894807e7b90ee012a
2025-03-12 12:17:32 -07:00
Alessio Quaglino
775c45c60e
Do not lookup compiler options by name when attaching.
...
Also, fix a pre-existing bug that caused incorrect compiler option propagation with nested attachments.
Fixes #2480 .
PiperOrigin-RevId: 736156202
Change-Id: Ib430493e8c60556c2312603198587b39de9b8a4a
2025-03-12 09:18:47 -07:00
Yuval Tassa
de48f4178f
Add missing term in mj_jacDot
...
PiperOrigin-RevId: 735686836
Change-Id: I813ca46f71e368ddc97a6d2e540102137b31dbcf
2025-03-11 03:01:29 -07:00
Alessio Quaglino
019e0a806c
Throw an error if a child attached by reference to a parent is compiled.
...
Fixes #2482 .
PiperOrigin-RevId: 735665098
Change-Id: Ia3436fdd2ff572f8f0c1ded434742a4a9186f2f7
2025-03-11 01:24:17 -07:00
Alessio Quaglino
14dc6fd33b
Do not use inertia during mesh compilation.
...
Fixes #2479 .
PiperOrigin-RevId: 735387473
Change-Id: Ib241f2a0efc100bbe2cec24e0399bfcc87268094
2025-03-10 08:35:33 -07:00
Tom Power
e7a715497e
Write mesh inertia to defaults when exporting to xml. Fixes #2478
...
PiperOrigin-RevId: 735338748
Change-Id: Id0b71d06c77baef417f7968ae8a14154243a1f83
2025-03-10 05:31:55 -07:00
Alessio Quaglino
adc3cc06fa
Change private->public spec for error checking in mjCSkin recompilation.
...
Fixes #2485 .
PiperOrigin-RevId: 735323174
Change-Id: Ifcc2055f6a74afaa18ad5228633f36f760adcffd
2025-03-10 04:19:40 -07:00
Kyle Bayes
4d024f9421
Convert internal representation of vertices to double. Also replace remove duplicate vertices with fast hash implementation.
...
PiperOrigin-RevId: 734516595
Change-Id: Ic78556688d5f2b75d69cd286b8d060e2cdeb7c48
2025-03-07 05:17:49 -08:00
Yuval Tassa
0f563ecf31
Switch mjData.{qH,qLD} from reduced ("C") to full ("M") inertia matrix structure. No performance impact of extra zeros because of existing "simple dof" skipping mechanism.
...
PiperOrigin-RevId: 733523931
Change-Id: Ic8d8a152dda5532331c239cb6b4ce7d8d09b7fff
2025-03-04 17:34:35 -08:00
Alessio Quaglino
7651cb1b33
Copy texture coordinates from OBJ into flex. Fixes #2464 .
...
PiperOrigin-RevId: 732109960
Change-Id: I506b3540ab5d489ce8f10d0c473919611ccb654a
2025-02-28 06:04:19 -08:00
Kyle Bayes
ed16f2daf2
Set nativeccd as default.
...
PiperOrigin-RevId: 731343200
Change-Id: I315779017b676f3d118e0d38ee53a515272f50b8
2025-02-26 09:15:15 -08:00
Alessio Quaglino
d1d61925da
Do not delete the world child when doing spec.attach.
...
PiperOrigin-RevId: 730976077
Change-Id: I9aa8133241b45883e605ec80d64ae28af2962680
2025-02-25 12:02:13 -08:00