Alessio Quaglino
99490163df
Prevent NaN in cylinder SDF.
...
Fixes #2573 .
The correction matches the one used in MJX (see _cylinder_grad in collision_sdf.py).
PiperOrigin-RevId: 747887406
Change-Id: I1a4f1ac769adb96c98665eace7ce54fb09a7d3a2
2025-04-15 08:34:05 -07:00
Gabe Oppenheimer
440ce5eb7a
Update the version number to 3.3.2 following the 3.3.1 release.
...
PiperOrigin-RevId: 746147577
Change-Id: Idb7b4e7e06a4730b4f2eea8f6600b898e998f8db
2025-04-10 13:17:20 -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
Yuval Tassa
d3664b5d01
Avoid square root in mju_makeFrame
...
PiperOrigin-RevId: 745974380
Change-Id: I90879fac05e62daf60acd2223f814e833634b242
2025-04-10 04:41:23 -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
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
Yuval Tassa
d05251af2a
Add tendon armature
...
PiperOrigin-RevId: 743939992
Change-Id: I587214f5d6fabbc0cc273c33d82decbe9ad8f919
2025-04-04 07:44:04 -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
Alessio Quaglino
c0a7ea1edb
Added the element type mjOBJ_SPEC for mjSpec.
...
PiperOrigin-RevId: 742678572
Change-Id: I95a382ac58b5bc88c2aa5c07210549a1d5e2f538
2025-04-01 06:51:49 -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
Yuval Tassa
8bcfe07e14
Fix potential division by zero in mj_tendonDot.
...
PiperOrigin-RevId: 742246626
Change-Id: I1f897bd0ca28e0efdffc5a93fadca35221eaeb38
2025-03-31 06:41:26 -07:00
Kyle Bayes
d6943731b2
Fix bug in nativeccd multiccd.
...
PiperOrigin-RevId: 740495321
Change-Id: I7eaa0da8514e27c233d49567c276d1d238808d1f
2025-03-25 14:56:21 -07:00
Alessio Quaglino
157b074116
Add signature to mjSpec and mjModel and use it to perform safe bind to mjModel and mjData.
...
PiperOrigin-RevId: 740378879
Change-Id: If14b326942529494f172e7aedcae30195798b458
2025-03-25 09:37:49 -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
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
Kyle Bayes
a1b9ffd124
Fix memory over-allocation in nativeccd.
...
PiperOrigin-RevId: 738383181
Change-Id: Ibf9e2b146da671e8d3a48339c8f4c6813f537456
2025-03-19 07:08:21 -07:00
Kyle Bayes
dc50fbbb9b
Add safeguard if n is invalid in GJK.
...
PiperOrigin-RevId: 738340065
Change-Id: I2288eb731621e5b84dcc0f078d8dbd84dca94cd4
2025-03-19 04:21:11 -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
Yuval Tassa
a816ca6dd5
Use qLDiagInv instead of qLD in engine_vis_interact.c
...
PiperOrigin-RevId: 734399015
Change-Id: I97c80a8b25dbd40e86560c328cc786a0bed6a2d1
2025-03-06 21:15:36 -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
Yuval Tassa
7d9df8c9a9
Fill-in qM CSR matrix structure on mjData (currently unused).
...
PiperOrigin-RevId: 733258529
Change-Id: I903548ae60139e4858550194e1aedf0efa2f3033
2025-03-04 03:20:11 -08:00
Yuval Tassa
8f37ae1bf2
Add missing fields in mj_printData, don't print integration-related fields if identically zero.
...
PiperOrigin-RevId: 732917127
Change-Id: Ia5fe8e4b6c2485fcf4336847535c1cc72b9d6d62
2025-03-03 07:34:14 -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
Kevin Sayed
06e217df7e
[MJ3.3.1] Bumping internal version number.
...
PiperOrigin-RevId: 731876412
Change-Id: I1c0f4a18bbc2e0bf80e01512ea196841848220af
2025-02-27 14:53:28 -08:00
Kevin Sayed
9996500de9
update the version number to 3.3.0 instead of 3.2.8
...
PiperOrigin-RevId: 731397143
Change-Id: I54089f1678097acf7e4998958effb396da1e47be
2025-02-26 11:42:55 -08:00
Kyle Bayes
ed16f2daf2
Set nativeccd as default.
...
PiperOrigin-RevId: 731343200
Change-Id: I315779017b676f3d118e0d38ee53a515272f50b8
2025-02-26 09:15:15 -08:00
Kyle Bayes
4f691eeae4
Fix minor issues in EPA in nativeccd.
...
PiperOrigin-RevId: 731327356
Change-Id: Iba8215b7991ef74bf890c8da7e9332474e19e9c3
2025-02-26 08:28:35 -08:00
Kyle Bayes
bd66fbd046
Fix return value in mesh edge contact in nativeccd.
...
PiperOrigin-RevId: 730924994
Change-Id: Iab4f26da126713bae6629eef502bb2aad690c595
2025-02-25 09:54:05 -08:00
Kyle Bayes
fbe0990b17
Fix bugs in nativeccd with collisions with margin.
...
PiperOrigin-RevId: 730903745
Change-Id: I45ddb674f32cb1f28ff37c587ea953ec595241b3
2025-02-25 08:51:21 -08:00
Kyle Bayes
024616345d
Support edge contacts with multiccd in nativeccd.
...
PiperOrigin-RevId: 730489114
Change-Id: I02847d84bbc15a1526391d5e1b7109ab83ea4a59
2025-02-24 09:48:43 -08:00
Kyle Bayes
a6f1dc5e9e
Match faceset type to intersect res param type in nativeccd.
...
PiperOrigin-RevId: 730470904
Change-Id: Id7b3712c10d5ec871e2d272036e4e87c1e8620e0
2025-02-24 08:58:10 -08:00
Kyle Bayes
ae1c3b7ec0
Support multi-contact with meshes in nativeccd. Contacts are pruned to up to 4 per geom.
...
PiperOrigin-RevId: 730457036
Change-Id: Ib2368f3a7def4fdb94673620df3603e372c35745
2025-02-24 08:14:04 -08:00
Yuval Tassa
fe9fcae5dc
Clean up mj_tendon.
...
PiperOrigin-RevId: 729042293
Change-Id: Id0d8483b71b9dbb99e19a67323034f3762e26346
2025-02-20 03:44:39 -08:00
Kyle Bayes
7f3bb062c3
Add fields in mjModel for supporting mesh multicontact in nativeccd.
...
PiperOrigin-RevId: 728659204
Change-Id: I7f8a11b082640284ea009d8693f228078680b953
2025-02-19 07:12:26 -08:00
Yuval Tassa
b516edae1b
Rename inertia factorization routines:
...
```
mj_factorI -> mj_factorI_legacy
mj_solveLD -> mj_solveLD_legacy
mj_factorIs -> mj_factorI
mj_solveLDs -> mj_solveLD
```
PiperOrigin-RevId: 728246367
Change-Id: I3bc7804cb96faac2ae5419ba9abfc3c1648ed4c6
2025-02-18 09:42:05 -08:00
Yuval Tassa
fb07e0d1f7
Convert qLD to CSR format.
...
PiperOrigin-RevId: 728196818
Change-Id: I31bdf32e251293284426ed345019f27fd051a0e1
2025-02-18 07:14:45 -08:00
Kyle Bayes
442b968e22
Improve box-box multicontact with nativeccd.
...
PiperOrigin-RevId: 728136635
Change-Id: I2343110e5c87b6621d5750c7ad42f0e75081d737
2025-02-18 03:41:26 -08:00
Yuval Tassa
e39a5df06a
mju_compressSparse(): add option to compress away small elements.
...
PiperOrigin-RevId: 726010576
Change-Id: Ib6458037a5cf9a9d82abb364b7dda7aab2f36807
2025-02-12 05:08:20 -08:00
Yuval Tassa
faed1a1137
Clean up mj_jacSparse.
...
PiperOrigin-RevId: 725994792
Change-Id: I928a6312a6910231bfeb96ef7a3f29f1d128565c
2025-02-12 04:06:00 -08:00
Kyle Bayes
e3b9538d92
Add saving the indices of mesh vertices with the support points in nativeccd.
...
PiperOrigin-RevId: 725660975
Change-Id: I036882a5bde5d009bfa6e66b6a10f6cfb1a78292
2025-02-11 09:28:49 -08:00
Yuval Tassa
5ee0654830
Roll back recent change to mjData.qLD until some issues are resolved.
...
PiperOrigin-RevId: 724389161
Change-Id: I1b30ab0950ab5c5e611b1c6fc3bf3f42f964939c
2025-02-07 10:21:42 -08:00
Yuval Tassa
c27d3758c2
Convert qLD to CSR format.
...
PiperOrigin-RevId: 723955038
Change-Id: I30c3dc7f59739e89ae5fff8841432bc74717ec1b
2025-02-06 08:59:35 -08:00
Alessio Quaglino
0d4bc1de00
Do not use flexedge_length if trilinear interpolation is used.
...
PiperOrigin-RevId: 723452451
Change-Id: I5a67fb74c13e80ae6d390694dd0c9f8c5e4d5213
2025-02-05 04:09:32 -08:00
Kyle Bayes
3235f69afc
Make polytope2 and polytope4 more numerically robust in nativeccd.
...
PiperOrigin-RevId: 723412555
Change-Id: Id262a3c19bcd30b74b1495591bdc95f951bfca50
2025-02-05 01:40:41 -08:00
Alessio Quaglino
7cdf180641
Introduce trilinear flex parametrization.
...
These flexes use only 24 DOFs (3 per vertex of the bounding box), while colliding with the full high resolution mesh.
On an 8x8x8 cube, the performance using DOFs at all vertices is
```
Simulation time : 18.74 s
Steps per second : 533
Realtime factor : 0.53 x
Time per step : 1874.4 µs
Contacts per step : 114.88
Constraints per step : 3322.51
Degrees of freedom : 1536
```
With the new implementation, it is the following:
```
Simulation time : 1.82 s
Steps per second : 5507
Realtime factor : 5.51 x
Time per step : 181.6 µs
Contacts per step : 38.84
Constraints per step : 155.36
Degrees of freedom : 24
```
PiperOrigin-RevId: 721008829
Change-Id: I833df027527db578d86667cc4b24295bcf6f7d22
2025-01-29 09:38:22 -08:00
Yuval Tassa
6a23841aad
manually inline mju_combineSparse
...
PiperOrigin-RevId: 720326669
Change-Id: I03727291f133e3d481e73ad88735e54af8f62f1f
2025-01-27 15:22:18 -08:00