Commit Graph

240 Commits

Author SHA1 Message Date
Yuval Tassa c45996bba8 Add cell to tutorial colab demonstrating procedural camera control.
https://youtu.be/cE3s_IfO4g4

PiperOrigin-RevId: 579466532
Change-Id: I433db285bcfa2b9fab0c11e1fef1e25af8187901
2023-11-04 07:43:06 -07:00
Erik Frey 3c0a56c1e5 Adds support for Newton solver to MJX.
PiperOrigin-RevId: 578738033
Change-Id: Id0e68c7b961380cb1ed88b40d99f202c3fa8e228
2023-11-01 22:05:10 -07:00
Yuval Tassa 893c404230 Runtime disabling of actuators according to group.
Added `option-actuatorgroupdisable` attribute and associated `mjOption.disableactuator` integer bitfield, used to disable sets of actuators at runtime according to their group.

- The first 6 actuator groups are toggleable in the `simulate` viewer.
- Minor refactor and cleanup of actuator documentation.

https://youtu.be/H9qG9Zf2W44

Fixes #1092.

PiperOrigin-RevId: 578335600
Change-Id: I4cf663b90ea768e4380acfa2fe3b8c15c7cbb568
2023-10-31 16:24:38 -07:00
Baruch Tabanpour 45878b7eef Raise an exception in MJX if given a model with tendons.
Fixes #1149

PiperOrigin-RevId: 578278430
Change-Id: Ie633975b830379ca554438307a6e674675eaf8e7
2023-10-31 13:09:27 -07:00
Google DeepMind 7e419276ca Increase maximum number of UI elements per section in Simulate.
PiperOrigin-RevId: 578268786
Change-Id: Ia584fb1782a6f20cdb64ec13bfa0bbcb211b1165
2023-10-31 12:36:39 -07:00
Nimrod Gileadi 084facc9ab Python bindings: Store a reference to MjModel in MjDataWrapper.
Before this change, MjDataWrapper contained a custom data structure called MjDataMetadata, which contained the sizes of various arrays needed to create MjData. This was used for serialization and deserialization, as well as copying MjData instances.

This worked fine for native MuJoCo models, but as soon as plugins were used, there was information in the model that was needed and not available in MjDataMetadata. Since plugins are so general, keeping MjDataMetadata was untenable.

PiperOrigin-RevId: 578205355
Change-Id: I11b9ee797d1da5aaf1fecbbe170b3b0f1f1a3e6c
2023-10-31 09:16:40 -07:00
Erik Frey 7069976557 Implement joint equality constraint. Streamline constraint functions.
PiperOrigin-RevId: 577905570
Change-Id: I70580d21e3c612606b967cdd84ad22794c672397
2023-10-30 11:38:15 -07:00
Yuval Tassa 86d9c84e59 Fix bug in implementation of torquescale
PiperOrigin-RevId: 577466789
Change-Id: I3c8e5dd9b4af9a629e777f7ccad8417075b0046c
2023-10-28 08:25:25 -07:00
Saran Tunyasuvunakool 4c24be9ee3 Make mjpython.py work with Python from CommandLineTools.
PiperOrigin-RevId: 577305478
Change-Id: Iec4b23c97f80462e5c16aca5ac4450faf3181a0c
2023-10-27 14:26:16 -07:00
Saran Tunyasuvunakool 621487bd92 Reorganise the changelog.
PiperOrigin-RevId: 577290399
Change-Id: Idb831c48dddf9384cfae23a11bcb7dce6899fb47
2023-10-27 13:31:03 -07:00
Yuval Tassa a89412bb4a Add components of qfrc_passive to mjData: qfrc_{spring, damper, gravcomp, fluid}.
PiperOrigin-RevId: 576493532
Change-Id: If8eda1a2bb728fe8ab91b8004f97fc729d999ad9
2023-10-25 05:01:45 -07:00
Erik Frey 843360b732 Avoid efc rows for joints with no limit.
Fixes #1117

PiperOrigin-RevId: 576276387
Change-Id: I7d2a3860b19d83d65acf1995f7be05cb2d1247d4
2023-10-24 14:12:28 -07:00
Yuval Tassa 2bb8652bf6 Add User Interface documentation.
PiperOrigin-RevId: 575800982
Change-Id: I9b2e03932d0d3b1844b90e5da7c32a640d999e69
2023-10-23 06:35:34 -07:00
Yuval Tassa f6ed57e9e8 Fix typos in changelog
PiperOrigin-RevId: 575618675
Change-Id: I51a8e5aee124c632ff17d0cb0610ca95822bf859
2023-10-22 08:19:21 -07:00
Baruch Tabanpour e4a9f535a4 Make MJX device_put type validation more verbose.
PiperOrigin-RevId: 575050350
Change-Id: I7cab4ee54d462b61e9478dbd58d99bb9fb662daf
2023-10-19 17:30:33 -07:00
Baruch Tabanpour dd841c9283 Fix bug in joint range for MJX.
PiperOrigin-RevId: 575023489
Change-Id: I717333064ed4d6971a841bec60e8afd3019120a7
2023-10-19 15:40:09 -07:00
Baruch Tabanpour dc8bac2f4d Fix supported equality constraint in doc.
https://github.com/google-deepmind/mujoco/issues/1105

PiperOrigin-RevId: 574950690
Change-Id: I1c029e9b31235fdcaa8e8f35b5117fec373fa25f
2023-10-19 11:43:02 -07:00
Nimrod Gileadi 9393c690d4 Correctly handle full screen and vsync buttons.
Fixes #1110.

The code was using outdated indices since 48eb75ae92. It now uses the more stable pdata pointer.

PiperOrigin-RevId: 574805349
Change-Id: If6112fb2af7d60f17b35599233b24f33b6a8cac6
2023-10-19 03:38:11 -07:00
Erik Frey 8f9c690c85 Add MJX and bump version number to 3.0.0.
Co-authored-by: Baruch Tabanpour <btaba@google.com>
PiperOrigin-RevId: 574327508
Change-Id: Ia9b62fbc929c6869dfcec87636b2e10d405a1060
2023-10-18 10:33:29 +01:00
Yuval Tassa d0bdb78207 Disable island discovery for models with flexes.
PiperOrigin-RevId: 574244981
Change-Id: I7c08b23cf5f29338a04ec684ad7a0d4d8a0397df
2023-10-17 13:17:24 -07:00
Yuval Tassa 18e4e10142 Mention fluid force documentation in the changelog.
PiperOrigin-RevId: 574206986
Change-Id: Ia5246f369070c463c10a2d63cf2ae29b40317724
2023-10-17 11:08:49 -07:00
Alessio Quaglino 139a8ae298 Add flex and elasticity documentation. Fixes #873.
PiperOrigin-RevId: 574179040
Change-Id: Iaf90bbf2b2c3fe075c940c2b66b7b841f256e653
2023-10-17 09:46:07 -07:00
Yuval Tassa 93d1c3c92e Add GitHub link to the docs sidebar
PiperOrigin-RevId: 573621667
Change-Id: Iac0fe218267dd8691bc503f5c8ea31c62ba216a9
2023-10-15 07:58:24 -07:00
Yuval Tassa a1b6026b8c Delete derivative code sample.
PiperOrigin-RevId: 573477509
Change-Id: I0e619e36dd3fe677a27bbbdac87a15f04670cc13
2023-10-14 08:38:37 -07:00
Yuval Tassa c0357ef3d0 Improve documentation related to engine-internal threading.
PiperOrigin-RevId: 573346658
Change-Id: I112eba10b8f71b3a0aa27fa162a4a589be7ec3a7
2023-10-13 16:32:38 -07:00
Yuval Tassa fb4cf472ed Delete testxml code sample.
PiperOrigin-RevId: 573202693
Change-Id: Ic8d284293bd5c51693415d4186bb0b72a5416dca
2023-10-13 06:33:24 -07:00
Yuval Tassa d88675a034 Change the default of <compiler autolimits> from "false" to "true".
PiperOrigin-RevId: 573184793
Change-Id: I24075a8d953d0a3c3ddf65c67e1e18075cd029b6
2023-10-13 05:05:24 -07:00
Alessio Quaglino 389e13938e Fix typos in docs.
PiperOrigin-RevId: 573172715
Change-Id: I0073d0872597b01d84151b9eea578cc0ae0a5013
2023-10-13 04:05:30 -07:00
Copybara-Service 59164702ab Merge pull request #978 from aftersomemath:depth-precision-in-place
PiperOrigin-RevId: 572961667
Change-Id: I69011ddf835ae286e30e7f84cca67867cfe94fa4
2023-10-12 11:18:36 -07:00
Alessio Quaglino 5a70ad08ab Add Flex component.
PiperOrigin-RevId: 572830650
Change-Id: I6908228087b7b9683be3506c8d9cdc725ed5dcd5
2023-10-12 10:49:35 +01:00
Matthew Bennice 2842245ca9 Multithread parallelizable operations in mj_fwdPosition
PiperOrigin-RevId: 572576240
Change-Id: I70eb518385366a0027c5dad44ac15e3904d1b4a3
2023-10-11 08:01:53 -07:00
Saran Tunyasuvunakool a1d0cbd654 Add show_{left,right}_ui kwarg to viewer.launch(_passive).
Fixes #857

PiperOrigin-RevId: 572333909
Change-Id: I12247fe856afddf808eb8f386a594acac47c34b5
2023-10-10 12:31:11 -07:00
Saran Tunyasuvunakool 2e15574b58 Allow user-defined visualization geoms to be added to the passive viewer.
Fixes #1023, #1082

PiperOrigin-RevId: 572303635
Change-Id: Ia8399f816f311b38a7b137f5bd4f359f77a1da1c
2023-10-10 10:52:21 -07:00
Google DeepMind 1bd6c94e6d Fix setting wrong value in efc_diagApprox for rotational components of weld constraints.
PiperOrigin-RevId: 572276016
Change-Id: Ic985a342777aca976f5c4bc781133fb4a8976e3f
2023-10-10 09:34:34 -07:00
Yuval Tassa 7cd6b3db73 Fix typo in changelog
PiperOrigin-RevId: 572264830
Change-Id: Ifbbb9d7ee06a73c768b4c13aad843146e8aa9dde
2023-10-10 08:55:59 -07:00
Yuval Tassa a9b761ee1b Add double underscore suffix to all links in the changelog.
PiperOrigin-RevId: 571304907
Change-Id: Ie726f3d703421f9d13a5d16f2282123c71c2b530
2023-10-06 05:01:09 -07:00
Matthew Bennice 071af3b015 Implement threading for island constraint solving.
Humanoids22 No threads:
 Benchmark Execution Time: 9.475905812s

Humanoids22 with 10 Threads:
 Benchmark Execution Time: 4.871352s

PiperOrigin-RevId: 571214307
Change-Id: I1f4f2c761b4ae6bc8fac1f28c6c695f6c499f339
2023-10-05 21:05:19 -07:00
Yuval Tassa 3e12f0d50c Add history scrubbing mechanism to simulate.
[screen capture](https://www.youtube.com/watch?v=YSvWn_poqWs)

PiperOrigin-RevId: 570676968
Change-Id: Id9a1fccc9418b851e007ddcf3fa89acd4edff3e9
2023-10-04 06:36:34 -07:00
Yuval Tassa 1e94c12cdd Fix typos in docs.
PiperOrigin-RevId: 570643723
Change-Id: I20a999c7a5ff79bdb67ced209105cca6751a50dc
2023-10-04 03:32:49 -07:00
Yuval Tassa ee78b8f76b Added mjData.eq_active user input variable, for enabling/disabling the state of equality constraints.
Renamed `mjModel.eq_active` to `mjModel.eq_active0`, which now has the semantic of "initial value of `mjData.eq_active`".

Fixes #876.

PiperOrigin-RevId: 570410643
Change-Id: Id03171e751377c7cc453f143abee64239ee2e2ed
2023-10-03 09:32:24 -07:00
Levi Burner 9868486af0 Add changelog.rst entry for reversed Z rendering 2023-09-29 20:52:31 -04:00
Alessio Quaglino 36d2ffe4f2 Specify camera parameters using standard robotics conventions.
PiperOrigin-RevId: 569147555
Change-Id: I3443f95e5de56a17024f5e5c03f33888dd583edb
2023-09-28 05:19:19 -07:00
Alessio Quaglino d3d46e16a4 Remove cloth and rope composites and deprecate loop.
PiperOrigin-RevId: 568168329
Change-Id: Ida4a5236bef74828c7bf59affdc28adea3db53b1
2023-09-25 03:38:43 -07:00
Alessio Quaglino dd5a7115cf Add shell plugin.
- Add bending passive force
- Add two examples (plate and poncho)
- Add stretching constraints for particles using tendons on mesh edges

PiperOrigin-RevId: 566980584
Change-Id: Id0cd8e1084c05560f1008518a8afbd5311d563e2
2023-09-20 09:00:20 -07:00
Yuval Tassa 9cf1f6eba4 Remove mjOption.collision and associated option/collision attribute.
PiperOrigin-RevId: 566427090
Change-Id: I6e5873b8db707586820b17b53c7ab4bbff0f0b2b
2023-09-18 15:15:54 -07:00
Yuval Tassa 9902b73502 Rename mj_stackAlloc to mj_stackAllocByte.
PiperOrigin-RevId: 566351365
Change-Id: I91541168e83b05a730113661cc9f07985ac9ff0c
2023-09-18 10:53:35 -07:00
Yuval Tassa 2cc1205498 Add island support to CG solver.
BEGIN_PUBLIC

Add island support to CG solver.

END_PUBLIC

PiperOrigin-RevId: 565653886
Change-Id: Ib971ae37dd011b8f2cbe1f88d8875e0ed657c7af
2023-09-15 05:47:24 -07:00
Yuval Tassa 976a6df78d Fix typo in docs.
PiperOrigin-RevId: 565097458
Change-Id: I7a4440d72665d5db2853c18f72e83b130dde8d1a
2023-09-13 10:48:16 -07:00
Yuval Tassa 86d8b912f4 Rejigged solver statistics in preparation for islanding.
- See public description below.
- Stopped incrementing the iteration count in saveStats().
- `sizeof(mjSolverStat) == 40`, so this ends up costing 160KB, up from 40KB.

BEGIN_PUBLIC

Changed the size of `mjData.solver`, the structure used to collect solver diagnostic information. The array is now of length `mjNISLAND * mjNSOLVER`, where each row of length `mjNSOLVER` contains separate solver statistics for each constraint island. Until solver islanding is implemented, only row 0 is used.

- The new constant `mjNISLAND` is set to 20.
- `mjNSOLVER` is reduced from 1000 to 200.
- Added `mjData.solver_nisland`, the number of islands for which the solver ran.
- `mjData.solver_niter` (renamed from mjData.solver_iter) and `mjData.solver_nnz` are now integer vectors of length `mjNISLAND`.

END_PUBLIC

PiperOrigin-RevId: 565030093
Change-Id: I773e918805c6ced79f0dab5f19ea23956760c8c5
2023-09-13 06:18:37 -07:00
Alessio Quaglino 8064ad59c8 Add camera projection sensor.
BEGIN_PUBLIC
Add camera projection sensor.
END_PUBLIC

PiperOrigin-RevId: 564726114
Change-Id: I33b8e5562eff29c21538bf8f38ce3116c7dfc5a9
2023-09-12 08:16:20 -07:00