Yuval Tassa
a2a1ac9fc2
Pass mjvOption to plugin visualize callback.
...
PiperOrigin-RevId: 526047180
Change-Id: Ia63f02184f5c6a7e3b588298639fa0ab4a6da649
2023-04-21 08:44:20 -07:00
Saran Tunyasuvunakool
0630b7543d
Bump version number to 2.3.4.
...
PiperOrigin-RevId: 525745444
Change-Id: I8a9994b72a0a2ba3f371bee2c2bea947ad8f4fd1
2023-04-20 07:52:46 -07:00
Saran Tunyasuvunakool
b362cb4972
Expose a handle for the Python viewer.
...
This change also requires user scripts to explicitly synchronize changes to physics state to the viewer. The Simulate class was reconfigured so that certain UI events are handled during this sync operation, outside of the render loop on the main thread. These correspond to operations that require access to the full mjModel/mjData.
To support other, more interactive operations (e.g. camera movements), a new mjvSceneState struct is introduced which captures only the portion of the physics state required for scene re-rendering. The mjvSceneState is updated from mjModel/mjData during the viewer sync operation, and is significantly cheaper than a full mj_copyModel and mj_copyData.
Fixes https://github.com/deepmind/mujoco/issues/796
PiperOrigin-RevId: 525723636
Change-Id: Id08d0210a2c067d5afe85e2bf104f276aeddd75e
2023-04-20 05:59:19 -07:00
Alessio Quaglino
4f5da9c554
Add OnePlugin read/write functions and remove redundant plugin attributes from mjCActuator.
...
PiperOrigin-RevId: 525708657
Change-Id: I762de238f989b13877d5f9198c83c16ea9dc1d8b
2023-04-20 04:25:43 -07:00
Kyle Bayes
fe3dccfd1d
Add a new plugin / extension mechanism called a resource provider along with retrofitting VFS on top of it.
...
A resource provider provides a mechanism for MuJoCo to read from filesystems other than the OS filesystem or the Virtual File System (VFS).
PiperOrigin-RevId: 525394983
Change-Id: I077ff5a7e2e76806b48b6defb531280aadc8b169
2023-04-19 03:02:22 -07:00
Alessio Quaglino
b25728cc2e
Move tree construction to helper class.
...
PiperOrigin-RevId: 525171924
Change-Id: I28b572fa09a2ccc029e56f9a84808ac53a4e6ac9
2023-04-18 09:42:43 -07:00
Alessio Quaglino
94c4f72907
Specify is volume is too small or negative in mesh error messages. Fixes #799 .
...
PiperOrigin-RevId: 525151156
Change-Id: Ia0e9d8b900b8c372e9229da934a4eb7aeb1a3b7a
2023-04-18 08:16:44 -07:00
Saran Tunyasuvunakool
3e85ef5f38
Remove spurious whole-arena copying in mj_copyData.
...
Fix #568
PiperOrigin-RevId: 524929990
Change-Id: I164cb98cff752bf5d0a506bc0a290198775da0ef
2023-04-17 13:14:58 -07:00
Alessio Quaglino
c943797591
Make shellinertia ignore exactmeshinertia, which is only used for legacy volume computations. Fixes #759 .
...
PiperOrigin-RevId: 524884880
Change-Id: Ia5b64ee33802866f792cdad4acfec6d9baf2a9e9
2023-04-17 10:30:20 -07:00
Copybara-Service
bcb19fd85c
Merge pull request #802 from hartikainen:fix-typos
...
PiperOrigin-RevId: 523698082
Change-Id: Ib12bbf8b6a1e02f87a278a230dcb6e5d722d2a94
2023-04-12 07:49:14 -07:00
Copybara-Service
9027b243b7
Merge pull request #801 from hartikainen:fix-mj_sizeModel
...
PiperOrigin-RevId: 522013801
Change-Id: Iff5e930fb7c86ae4296beb40f266ed02aabb6a7f
2023-04-05 04:20:11 -07:00
Kristian Hartikainen
f287fb020c
Fix mj_sizeModel
2023-04-05 11:09:23 +01:00
Kristian Hartikainen
a611b7bf6d
Fix typos
2023-04-04 19:58:43 +01:00
Kyle Bayes
9924cce4b7
Add nnz per row precount method for mju_sqrMatTDSparse.
...
PiperOrigin-RevId: 521744893
Change-Id: Ie0fbfab552a680127f4acf9041b07916f8a2a490
2023-04-04 06:21:22 -07:00
Yuval Tassa
7cc42ecf2a
Remove "global" option from [compiler/coordinate]( https://mujoco.readthedocs.io/en/latest/XMLreference.html#compiler-coordinate ) attribute.
...
Keeping this rarely-used setting complicates the compiler logic and is blocking future improvements. In order to convert older models which used this option, load and save them in MuJoCo 2.3.3 or older.
PiperOrigin-RevId: 521739137
Change-Id: If0cb40d5db4879a4db9318cc2be258a7923e6e85
2023-04-04 05:59:38 -07:00
Kyle Bayes
b327058641
Avoid computing constraint Jacobian matrix supernodes when not using AVX.
...
PiperOrigin-RevId: 521728016
Change-Id: I308e6283a6a1968a3d9946f04ba4367c50b1c63d
2023-04-04 04:52:49 -07:00
Alessio Quaglino
5f132af625
Add midphase and broadphase statistics to mjData.
...
PiperOrigin-RevId: 521387641
Change-Id: Id50f2549d119e364216491a23b107e04d9ebb5b6
2023-04-03 00:59:59 -07:00
Yuval Tassa
c65e046043
Don't save actdim="{0,1}" for state{less,ful} actuators, respectively.
...
actdim has a default value of -1 (==unset), which means it currently gets saved for all actuators. After this change, it will only be saved if the value is > 1, errors are thrown for stateful actuators with actdim=0 and stateless actuators with actdim>0.
PiperOrigin-RevId: 520627313
Change-Id: Ia498dae5c7314cfaa0995f8077d297c2339a5c35
2023-03-30 07:00:17 -07:00
Yuval Tassa
1d6a9e09bb
Don't save body pos if "0 0 0".
...
PiperOrigin-RevId: 520598416
Change-Id: I5bb6ffaec386f228ac7a5fa221822000635900ae
2023-03-30 04:09:22 -07:00
Yuval Tassa
3f9defa8d0
Don't save an empty <default/> section.
...
PiperOrigin-RevId: 520594748
Change-Id: Ib5e1eb3a93e9d579adeda1052a2c29d724d6b497
2023-03-30 03:51:14 -07:00
Yuval Tassa
ddfcd3b325
Don't save body gravcomp if 0.
...
PiperOrigin-RevId: 520592156
Change-Id: Ifb85c1e78498877bc576cfca224c41b3cf47c9ab
2023-03-30 03:34:04 -07:00
Nimrod Gileadi
e4d27d4b90
Remove unnecessary null check.
...
This checked that individual char arrays in the MJCF schema were not null, which would never really happen, and triggered some compiler warnings
PiperOrigin-RevId: 520348916
Change-Id: Ic8b82737460ed3bcf44d9629cd0c7de5782bee8c
2023-03-29 08:54:15 -07:00
Yuval Tassa
d6f2dd143d
Avoid variable name shadowing in all engine source files.
...
PiperOrigin-RevId: 519179975
Change-Id: I2f9269cd88857b9e758c63978b20f9c9dd17207e
2023-03-24 10:33:42 -07:00
Kevin Zakka
3f14d97f6b
Add equivalent inertia ellipsoid visualization.
...
PiperOrigin-RevId: 519154067
Change-Id: I35f1993c1493df9be752b7163385004649498070
2023-03-24 08:47:43 -07:00
Yuval Tassa
15ec12b296
Use mju_symmetrize in engine_derivative.c
...
PiperOrigin-RevId: 519111361
Change-Id: I3125538dee70eebca7e1e9e7830bde7863be956f
2023-03-24 04:39:00 -07:00
Nimrod Gileadi
0e7e299bf6
Declare loop variables inside for loop in C++ files.
...
PiperOrigin-RevId: 518852339
Change-Id: I0174d873d89e48f11b816d337728f213c2798248
2023-03-23 07:22:36 -07:00
Nimrod Gileadi
145fe7f354
Declare loop variables inside for loop declaration where possible.
...
PiperOrigin-RevId: 518846098
Change-Id: Icdb2e5894bd80110552e29270472eeb242e6cf2c
2023-03-23 06:49:09 -07:00
Yuval Tassa
ce6c9053e2
Fix bug in engine_derivative.c
...
- The inner loop was reusing and modifying an outer loop variable.
PiperOrigin-RevId: 518843275
Change-Id: I922f8768c4e8ef74c2fb2b1fd897de8234336acf
2023-03-23 06:32:31 -07:00
Nimrod Gileadi
a01318712c
Fix a couple of comment typos.
...
PiperOrigin-RevId: 518347854
Change-Id: I552554fff199ce244b7b364cf0b0486058de0e22
2023-03-21 12:27:53 -07:00
Kyle Bayes
dfd463cdb5
Reset nnzJ in resetData.
...
PiperOrigin-RevId: 517976421
Change-Id: I329c0096d368062f150c6dbeec181f5b0eeefcbf
2023-03-20 08:33:36 -07:00
Nimrod Gileadi
33a2ce73d4
Update MuJoCo version to 2.3.3.
...
PiperOrigin-RevId: 517931617
Change-Id: I7c9960290f1b6e5d5f68a54df617a580f23c57e9
2023-03-20 04:36:09 -07:00
Kyle Bayes
8696247f9d
Add mj_stackAllocInt to get correct size for allocating ints on mjData stack. Reducing stack memory usage by 10% - 15%.
...
PiperOrigin-RevId: 517672195
Change-Id: Ie14e6c9c99e8b9e1c5d3686b77631f2df0651c67
2023-03-18 13:04:14 -07:00
Yuval Tassa
d97ff39e86
Improvements to schema table.
...
- Schema table now has attribute links and is open by default.
- Attributes are in 4 columns.
- Fixed various documentation bugs made visible by this change.
- Removed distance equality constraint from xml_native_reader.cc
PiperOrigin-RevId: 517558035
Change-Id: Ibc7715587dd4e72253231bfd55bd037f0193b3fd
2023-03-17 18:57:34 -07:00
Alessio Quaglino
ee566eb880
Remove empty initializers to ensure MSVC compatibility.
...
Add -Wgnu-empty-initializer to Clang builds to catch this issue in the future. Initialising arrays with empty braces is not part of the C standard and fails on MSVC. This commit should catch the issue earlier by detecting it in Clang.
PiperOrigin-RevId: 517373961
Change-Id: I518006e84151e8d5b45a7fe00ba7675dfb031ca0
2023-03-17 04:02:24 -07:00
Alessio Quaglino
70959c1a2c
Added a collision midphase on geom pairs using rotated AABBs static trees.
...
PiperOrigin-RevId: 517357695
Change-Id: I068fee714d9638be2fb6d042d5d86f8ff970635b
2023-03-17 02:37:29 -07:00
Yuval Tassa
47b58f5ccb
Move memory-alignment static utility from engine_macro.h to engine_io.c
...
PiperOrigin-RevId: 517259347
Change-Id: Ic3f67e9018fe8903e709128674c0da10032e2162
2023-03-16 16:27:29 -07:00
Yuval Tassa
9a97674e1e
Break up engine_derivative.c into analytical and finite-differencing functions (moved to engine_derivative_fd.c)
...
PiperOrigin-RevId: 517165392
Change-Id: I649f5521364877d36d7564bb650a889298f0c8a1
2023-03-16 10:45:15 -07:00
Yuval Tassa
8c7f6ce5a0
New implicitfast integrator and sparse RNE derivatives for implicit.
...
PiperOrigin-RevId: 516910733
Change-Id: I29a0465c0f0b1749a73e3d7e01925200d025ddd0
2023-03-15 13:17:41 -07:00
Kyle Bayes
056e849273
Provide improved mju_sqrMatTDSparse implementation that doesn't require dense memory allocation for sparse matrices.
...
PiperOrigin-RevId: 516812783
Change-Id: Ieb43337831d8d3b2c7f18a7facd8e0a0f2b0eff5
2023-03-15 06:56:16 -07:00
Yuval Tassa
fe18e58ad2
Rendering of mjGEOM_LINE respects size[0] (width argument of mjv_makeconnector), denominated in pixels.
...
- Before this change, line width was hardcoded to 3 pixels and the width argument of mjv_makeConnector was ignored.
- After this change, the width argument is respected and interpreted in units of pixel. The non-standard width unit is ok since lines can only be drawn programmatically.
PiperOrigin-RevId: 516529265
Change-Id: I27bffabba69cde415d2ada67263a887c9240efbf
2023-03-14 08:17:36 -07:00
Alessio Quaglino
ae2c530d8b
Tighter axis-aligned bounding box for meshes.
...
PiperOrigin-RevId: 516166936
Change-Id: Ie99217f8894bdd4bb093900fc0df9d4a1e5030d3
2023-03-13 03:54:33 -07:00
Kyle Bayes
d3d789cf7d
Convert mju_error and mju_warning to variadic functions, supporting printf-like arguments. The functions mju_error_i, mju_error_s, mju_warning_i, and mju_warning_s are now deprecated.
...
PiperOrigin-RevId: 515431052
Change-Id: I440de0cb417ce216b6d636a5d86dc9ef6cc1fc06
2023-03-09 13:51:27 -08:00
Kevin Zakka
bddc4b88b2
Fix comment typos.
...
PiperOrigin-RevId: 514360878
Change-Id: If119beec09d7eae568d8f6d8e3fa150ec7de88b6
2023-03-06 06:37:42 -08:00
Kyle Bayes
49dd6b4193
Clean up mj_id2name and mj_name2id.
...
PiperOrigin-RevId: 514340647
Change-Id: Idf895b2d7a4a8833725afbe5c71c777081b42d9e
2023-03-06 06:36:48 -08:00
Yuval Tassa
222ee00a66
Break out passive force functions into a new file engine_passive.c
...
PiperOrigin-RevId: 513834952
Change-Id: I5347440f24d767a7dc81a34e48e1e17d8c10173f
2023-03-03 08:32:16 -08:00
Yuval Tassa
fd1070cf03
Delete remaining code related to now-removed distance equality constraint.
...
PiperOrigin-RevId: 513391064
Change-Id: I47fc344708a580c1e99bd2753113aaa408812966
2023-03-01 17:57:54 -08:00
Kyle Bayes
50bebcb4ee
Precount number of non-zeros for constraint Jacobian sparse matrix.
...
PiperOrigin-RevId: 512947632
Change-Id: I9605e81b4e51fbc90854c13153e4fee38ad48fb9
2023-02-28 08:57:56 -08:00
Kyle Bayes
90b5dd14ca
Fix issue where mj_addConstraint was writing values into efc_J_rowadr and efc_J_rownnz that are not needed.
...
PiperOrigin-RevId: 512919818
Change-Id: I8ee7443a2bf2265934899673f8943a83cdd4ef69
2023-02-28 06:47:56 -08:00
Alessio Quaglino
f2413a5d55
Remove overwriting of particle geoms as spheres that was restored by mistake in commit d0b1a97.
...
PiperOrigin-RevId: 512597403
Change-Id: Ifa29ccc405d1c98ffadf65b2cefa164067f95220
2023-02-27 05:09:39 -08:00
Alessio Quaglino
7e5419f806
Remove trailing spaces in printArray, printArrayInt, printVector, and printSparse.
...
PiperOrigin-RevId: 512596881
Change-Id: Icfa955628b9a2955df73093b6c8df7751260adfb
2023-02-27 05:06:33 -08:00