Commit Graph

707 Commits

Author SHA1 Message Date
Saran Tunyasuvunakool b28d149f8d Update Python dependency versions.
PiperOrigin-RevId: 525759204
Change-Id: I120dfc5a92e207dbe0ee31b04168c84d3ea47008
2023-04-20 08:51:53 -07:00
Nimrod Gileadi 707fcdb44f Correct return type on viewer.launch_passive.
PiperOrigin-RevId: 525753923
Change-Id: Idfff26e89deaeb37dd8b179106640f05c0deabb2
2023-04-20 08:30:42 -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
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
Saran Tunyasuvunakool c6e35d255c Update dependency versions.
PiperOrigin-RevId: 525487198
Change-Id: Ic352c0dc6aaa4120e1f2fa637a8c483c885ca4cd
2023-04-19 10:33:11 -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
Yuval Tassa d7ec409eb6 Improve code block for mjFREESTACK documentation.
PiperOrigin-RevId: 525150006
Change-Id: Ief5af7ea78658f89449795b58466dac14ab7e32a
2023-04-18 08:11:45 -07:00
Yuval Tassa c69e0b97fb Improve documentation of the internal stack.
PiperOrigin-RevId: 525119946
Change-Id: I49c757506f4af2b588dc07f978c8a72acad1b5bc
2023-04-18 05:40: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
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
Yuval Tassa 27742da9d7 Fix formatting in cable.cc
PiperOrigin-RevId: 524846500
Change-Id: I4e07a68b443a78ea1c46812f64ecf99804b26020
2023-04-17 07:56:42 -07:00
Yuval Tassa 9b7d42acb8 Improved numeric constants docs section.
PiperOrigin-RevId: 524799733
Change-Id: Ibb941d5bbb57f884ec31e1f00ae0e99cedac2980
2023-04-17 03:26:30 -07:00
Nimrod Gileadi 0e1f948c0a Change some redirecting links to direct links.
Files in github should be linked to using /blob/ rather than /tree/ URLs, while directories should be linked with /tree/.

PiperOrigin-RevId: 524796430
Change-Id: I72492a6acde0709b55d8d8620ad9b538619e7606
2023-04-17 03:06:06 -07:00
Yuval Tassa d7456f5d35 Add image and model explaining the geom-fromto attribute.
PiperOrigin-RevId: 524796118
Change-Id: I9e694d84a4be308baafbdbaab89cfb2570b13586
2023-04-17 03:05:10 -07:00
Nimrod Gileadi a1de6ee693 Update MuJoCo docs dependencies.
PiperOrigin-RevId: 524796002
Change-Id: I8fa2492e3fc5544bc8dadab710b4eae9822a5bb8
2023-04-17 03:04:08 -07:00
Tom Erez 4204109a5a Add some notes to the Python documentation.
PiperOrigin-RevId: 524293742
Change-Id: I43fcfcddd374a73e3a8fe4929784a4ac070fa067
2023-04-14 08:10:04 -07:00
Yuval Tassa 018503a0ec Fix badly formed links in the changelog.
PiperOrigin-RevId: 523988103
Change-Id: I069700af2328104b38831a544b61e136e8d8c6db
2023-04-13 06:51:56 -07:00
Saran Tunyasuvunakool cefc290eac Reorder arguments of Simulate::Load in Python to match C++.
PiperOrigin-RevId: 523973129
Change-Id: I58760e3e392a208dd8257c340da146aa8f745fb7
2023-04-13 05:22:13 -07:00
Saran Tunyasuvunakool 5646c905cd Rename a few functions and variables to be a bit more Googley.
PiperOrigin-RevId: 523963645
Change-Id: Ife7ed3f44aa83c64dfbdc3ca78ee6de2092b0d63
2023-04-13 04:24:31 -07:00
Saran Tunyasuvunakool 2e23594fe8 Add an introspect module for structs.
Also missing struct fields to the Python bindings that were discovered as a result of the new `introspect` metadata.

PiperOrigin-RevId: 523947396
Change-Id: I367fd2dc8d5fd7e5712a45b70a5c50da51d152e4
2023-04-13 02:50:23 -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 814581dc59 Merge pull request #815 from limymy:main
PiperOrigin-RevId: 523697282
Change-Id: I5e82268f3be861f9d187fe50dcb9d5b961b45dfd
2023-04-12 07:45:48 -07:00
limymy dd32843e89 Disable the propagation of MUJOCO_SIMULATE_COMPILE_OPTIONS 2023-04-12 21:50:50 +08:00
Saran Tunyasuvunakool 34226bf52d Fix a race condition in launch_passive and launch_repl.
Before this change, these functions can return before an internal call to `mj_forward`, which results in a race condition if the user script then tries to modify the physics state.

Fixes #783
Fixes #790

PiperOrigin-RevId: 523214378
Change-Id: I8a4c6cef0f5d3ec781fd2c5cae3c20dd4b8be67f
2023-04-10 14:35:53 -07:00
Saran Tunyasuvunakool 6d63e046fd Add low-level CGL context management for macOS.
This allows rendering from non-main threads as the context is not tied to a Cocoa window.

Fixes #742
Fixes #798

PiperOrigin-RevId: 523144359
Change-Id: I98432debdd034814c313eda94e38c248c3c1f76c
2023-04-10 10:09:49 -07:00
Yuval Tassa b536e46cc0 Add implicitfast to XML reference.
PiperOrigin-RevId: 522916631
Change-Id: Ica9261b7b84a3c269503a4ae21af251803c76b63
2023-04-09 02:06:00 -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 f287fb020c Fix mj_sizeModel 2023-04-05 11:09:23 +01:00
Kristian Hartikainen 98c9718aaf Add (currently-failing) mj_sizeModel test 2023-04-05 11:09:23 +01:00
Saran Tunyasuvunakool 55cc9d1e95 Fix what appears to be a typo in humanoid texture size.
Note that for builtin cube textures, MuJoCo ignores the height setting anyway.

PiperOrigin-RevId: 522000719
Change-Id: Ida34b1b2d25a59ac3f4f111aa44218aa9cd9da30
2023-04-05 03:07:22 -07: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
Yuval Tassa 01b84089dd Document engine plugins.
Rename `mjPLUGIN_DYNAMIC_LIBRARY_INIT` -> `mjPLUGIN_LIB_INIT`.

PiperOrigin-RevId: 521458377
Change-Id: I42aaec923e4f392899dfe53ab6ce1dddc75a83b3
2023-04-03 07:55:21 -07:00
Yuval Tassa ebb150fa3d Change docs preferred monospace font to Inconsolata
PiperOrigin-RevId: 521425957
Change-Id: Ie3014b924fbf711ce643f1e555aa723b85383023
2023-04-03 04:53:38 -07:00
Yuval Tassa 4ce00f7e2d Add notes section to APItypes documentation, add note about representation of convex hulls.
PiperOrigin-RevId: 521416156
Change-Id: Ia752b2fc5e4826a8d27af4167c40d9d7424bb069
2023-04-03 03:55:10 -07:00
Yuval Tassa 64229c089a Cosmetic improvements to public headers.
PiperOrigin-RevId: 521415262
Change-Id: Iee5d6baec78242f5a033c8b5cdd285af4a0895fa
2023-04-03 03:49:24 -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 c29f32657c Fix broken links in the documentation.
PiperOrigin-RevId: 520657874
Change-Id: Idd01c40f87e0f2afcbd2d2bfd98fab95edc2371e
2023-03-30 09:18:06 -07:00
Yuval Tassa 3fd5164524 Fix heading level of function types.
PiperOrigin-RevId: 520653499
Change-Id: I8b5265b9a9b43eab40616a78570f558ff85e4ec8
2023-03-30 09:00:46 -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