Alessio Quaglino
e59720833e
Add ReadVector function to touch_grid plugin, use it for size and field-of-view attributes.
...
PiperOrigin-RevId: 528783871
Change-Id: Icf3d060116826b01f68c9818a5153be4ce9511b0
2023-05-02 08:01:10 -07:00
Yuval Tassa
b0bc330b54
Add utility functions for banded-then-dense symmetric matrices.
...
PiperOrigin-RevId: 528757637
Change-Id: I916d843140322c28e857100a6b305a041f704d53
2023-05-02 05:58:08 -07:00
Alessio Quaglino
2ad82d5998
Add mj_multiRay function to perform multiple ray intersection with the same source.
...
PiperOrigin-RevId: 528684535
Change-Id: I6e1747a4a0910e6061d6154e19ad8723f56c22e3
2023-05-01 23:02:45 -07:00
Yuval Tassa
c50177d301
Add mjd_inverseFD for finite-difference approximations of inverse dynamics Jacobians.
...
Fixes #703 .
PiperOrigin-RevId: 527899700
Change-Id: I10e41a381dcecf62c53b3b9aa72a4ce666161366
2023-04-28 09:04:41 -07:00
Yuval Tassa
b397b3123e
Added touch grid sensor plugin.
...
PiperOrigin-RevId: 527512624
Change-Id: I0f316eb6eb2c52472abbec484e5538b66ba2e82e
2023-04-27 02:03:03 -07:00
Kyle Bayes
23961e24b7
Refactor user codebase to use LoadResource helper method.
...
* Fix small bug when registering resource providers.
* Add test cases for OS filesystem fallback with VFS.
* Rewrite LoadModelFromString using a resource provider (now can pass custom VFSs).
PiperOrigin-RevId: 526959705
Change-Id: Iee1773e5584535d868aab6b206d1bf362e600c8a
2023-04-25 07:24:45 -07:00
Alessio Quaglino
3db483c248
Print warning and default to computing mesh inertia from convex hull if volume is negative (malformed mesh).
...
PiperOrigin-RevId: 526053615
Change-Id: I3974b3433da513f869b1bdab5e98232e215f6509
2023-04-21 09:01:34 -07:00
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
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
Saran Tunyasuvunakool
34e62aa3c1
Don't use designated initializer in engine_resource_test.
...
MuJoCo codebase is currently C++17, not C++20.
PiperOrigin-RevId: 525507811
Change-Id: Iaa1b5a271e811bee34418be79583fc5bdda3bee9
2023-04-19 11:42:23 -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
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
Nimrod Gileadi
4b1375297b
Add a test that hfields are loaded and normalised to [0, 1].
...
PiperOrigin-RevId: 525103908
Change-Id: I3a6cc3a339cf31aa40700cd44962038d5c6bcf74
2023-04-18 04:05:04 -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
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
f91b760799
Clean model in VerifySizeModel test
2023-04-05 11:56:07 +01:00
Kristian Hartikainen
98c9718aaf
Add (currently-failing) mj_sizeModel test
2023-04-05 11:09:23 +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
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
0becf8fd98
Remove unused headers in test files.
...
PiperOrigin-RevId: 520610859
Change-Id: I5ac906b422a7c02737af85f6a2aea46206f0cb28
2023-03-30 05:26:33 -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
Kevin Zakka
3f14d97f6b
Add equivalent inertia ellipsoid visualization.
...
PiperOrigin-RevId: 519154067
Change-Id: I35f1993c1493df9be752b7163385004649498070
2023-03-24 08:47:43 -07:00
Yuval Tassa
3620376d81
Add model used for testing UI for stacking.
...
PiperOrigin-RevId: 519137042
Change-Id: Id16ea2735ea2f853c927fc6f88a9284b2f5aee95
2023-03-24 07:23:29 -07:00
Nimrod Gileadi
5322291d38
Add a test for fusestatic
...
PiperOrigin-RevId: 519112654
Change-Id: Ic15f9d572c281efb0e0b23b2f99e11a880275851
2023-03-24 04:48:04 -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
Yuval Tassa
0036f4e7ee
changes to test/testdata/model.xml
...
PiperOrigin-RevId: 518515153
Change-Id: If645f1799a171a385248fa8196b5c41dddcc4540
2023-03-22 02:43:53 -07:00
Nimrod Gileadi
8a402631a3
Add another test for sizes of arena pointers in mjData.
...
PiperOrigin-RevId: 518224754
Change-Id: I034f6778dedeeef49d2bb4a06337044469450f40
2023-03-21 03:39:19 -07:00
Kyle Bayes
dfd463cdb5
Reset nnzJ in resetData.
...
PiperOrigin-RevId: 517976421
Change-Id: I329c0096d368062f150c6dbeec181f5b0eeefcbf
2023-03-20 08:33:36 -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
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
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
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
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
Yuval Tassa
7e7cb177a4
Cosmetic changes.
...
PiperOrigin-RevId: 511008317
Change-Id: Id8d7cd4f4e22e0658857d16b47d51053f1477bb9
2023-02-20 09:23:32 -08:00
Yuval Tassa
7542c90cd2
Improved behaviour of mouse-spring interactions.
...
Also:
- Renamed recently introduced `mjvPerturb` member `reflocalpos` -> `refselpos` and corrected docstring.
- Added `mjvPerturb.localmass`: body spatial inertia at selection point.
- Removed `const` qualifier to `mjData` argument of `mjv_initPerturb()`, to facilitate spatial inertia computation.
- Improved `mj_Object{Velocity, Acceleration}` docstrings, clarifying that rotational velocities precede linear velocities.
- Removed redundant const qualifiers from non pointer arguments to `mju_dot` and `mju_writeNumBytes`.
PiperOrigin-RevId: 511002168
Change-Id: I27400f497947f330072d4abb7c9bf7e71e6c5d49
2023-02-20 08:40:33 -08:00
Alessio Quaglino
9756ed0d80
Read normals and textures from OBJ, do not duplicate vertices.
...
PiperOrigin-RevId: 510461549
Change-Id: I19245d691e722a8371e61153383f275f599353d6
2023-02-17 10:15:25 -08:00
Yuval Tassa
6a85b5db45
Improve cartesian actuator example model.
...
Significantly reduced joint-level damping, introduced damping in the actuators themselves. This reduces dynamics artifacts by matching the space in which damping and actuation forces are applied.
PiperOrigin-RevId: 509574523
Change-Id: Id99b69aea4562509c48ed1a24fb9ea3e008c0b69
2023-02-14 10:41:21 -08:00
Saran Tunyasuvunakool
db28c31f05
Rename <required> tag to <plugin>.
...
PiperOrigin-RevId: 509237786
Change-Id: I35e812830b479004ac5025cbd9477888f51fb43e
2023-02-13 08:41:52 -08:00
Saran Tunyasuvunakool
5e989d18c3
Enable compiler errors for implicit switch case fallthroughs.
...
Also unify warning options across Clang and GCC and fix minor issues that was surfaced by this.
PiperOrigin-RevId: 508619655
Change-Id: I59b777bf2dfea4422485670e2427c7d3f5cf6405
2023-02-10 03:49:00 -08:00
Nimrod Gileadi
48e95817e4
Don't compute sensors in mjd_transitionFD, if not requested.
...
PiperOrigin-RevId: 507878658
Change-Id: I97ece521fd177d97fa5758dda1eb012ba26bcabe
2023-02-07 14:02:45 -08:00
Copybara-Service
6b80b010af
Merge pull request #705 from hartikainen:bug/mj_deleteFileVFS-infinite-loop
...
PiperOrigin-RevId: 507544780
Change-Id: Ie5819d4cc567dce44ceb59624a889a06ecdd7c1b
2023-02-06 12:01:11 -08:00
Nimrod Gileadi
dc3a900809
Apply body pair filtering at broadphase.
...
mj_contactFilter removed geom pairs where their bodies share the same weldid, but this check can be applied at broadphase instead of at geom-geom level.
PiperOrigin-RevId: 507435848
Change-Id: Ia37c741071dc5e1c26686dd319f42c9bd334d305
2023-02-06 03:46:20 -08:00
Yuval Tassa
7feecf6e94
Improve behaviour of set-pose mouse interactions with free and mocap bodies.
...
PiperOrigin-RevId: 506051745
Change-Id: If666757deb743f7bf3af4113d10976c3294e0879
2023-01-31 10:57:19 -08:00
DeepMind
929e09f84a
Improve URDF geom name loading API.
...
PiperOrigin-RevId: 505112774
Change-Id: I866e58e664089256a41908dddab9ad79745fb1da
2023-01-27 07:29:45 -08:00
Kyle Bayes
c741dfce7d
Implement a more performant mju_transposeSparse that doesn't require dense memory allocation.
...
PiperOrigin-RevId: 505044194
Change-Id: Ibe0e39e3ad711b2b5bdad45180ca4f83b5c8fc82
2023-01-27 00:20:01 -08:00
Kristian Hartikainen
d35670932f
Fix for-loop syntax to match style convention
2023-01-25 19:11:13 +00:00