Commit Graph

2637 Commits

Author SHA1 Message Date
Yuval Tassa 1d47a91c19 Add a test for mj_solveM2
PiperOrigin-RevId: 717278730
Change-Id: I7507e569620c34f250482eec8402c08c793f4e48
2025-01-19 11:34:20 -08:00
Yuval Tassa b2d353d062 Document default visible geom groups in XMLreference.
PiperOrigin-RevId: 717050528
Change-Id: I0414495d2f5a17ac2d8ba35c9353ecf0b7e8a18d
2025-01-18 12:42:01 -08:00
Yuval Tassa 463bc47633 Clarify that equality constraints defined using the body-based semantic are assumed to be satisfied at `mjData.qpos0`.
PiperOrigin-RevId: 717050088
Change-Id: I02e82cab5a60f0af48f7f921ba9bca11837f8063
2025-01-18 12:39:40 -08:00
Yuval Tassa 69c66aa1bb Fix typo.
PiperOrigin-RevId: 716820809
Change-Id: I51f8608f0c01f4fc8016b4be779d98c8972bc913
2025-01-17 15:39:56 -08:00
Baruch Tabanpour 1b34246c6e Update MJX notebook to point to playground.
PiperOrigin-RevId: 716778081
Change-Id: Ic99734ba386c4db551766de6f209cb397e7aa967
2025-01-17 13:18:07 -08:00
Yuval Tassa 240a7afdee Add sensors for potential and kinetic energy.
PiperOrigin-RevId: 716775375
Change-Id: Ic8ab7f1a51df970ab551dabe7c797cde13cd97fd
2025-01-17 13:10:12 -08:00
Taylor Howell 688d367733 Modify model loading in MJX tutorial.
PiperOrigin-RevId: 716745232
Change-Id: Ib89f8c00a58b493c89f72c82b47f1c8ff8326536
2025-01-17 11:49:45 -08:00
Yuval Tassa 71e5e376bc Remove units from zero valued size in CSS, fix a typo.
PiperOrigin-RevId: 716345043
Change-Id: I22b28e8e1d6db8ae4e482541169f1ffc46d3db34
2025-01-16 12:55:21 -08:00
Alessio Quaglino 9fc1ac2c7d Fix typo in sensordata binding.
PiperOrigin-RevId: 716257343
Change-Id: I4da12d8cda4342eb9f5a4df664bb43841db8e332
2025-01-16 09:05:01 -08:00
Alessio Quaglino c16f95f62c Add sensordata MJX binding.
PiperOrigin-RevId: 716241711
Change-Id: I11a82f58c41dca93e9a5337f0c573158026fa971
2025-01-16 08:14:58 -08:00
Silvia Cruciani 4903d5321c add find_geom property to mjSpec
PiperOrigin-RevId: 716225290
Change-Id: Ie6e229b0e802e7df06148f994d598334592e8ad1
2025-01-16 07:20:19 -08:00
Alessio Quaglino f899e717d4 Raise error for invalid name in MJX bind.
PiperOrigin-RevId: 716214444
Change-Id: Ie9e3156b32b0c218cdbd0beb93a4a78800e07c43
2025-01-16 06:40:48 -08:00
Yuval Tassa 893a993bf6 Fix typos.
PiperOrigin-RevId: 716211176
Change-Id: Ibadfe13db89ed9047832b977e918faa3c5c6d9f1
2025-01-16 06:28:54 -08:00
Kyle Bayes 4da2ddce29 Only correct box-box collisions with the mjc_BoxBox function.
PiperOrigin-RevId: 716209565
Change-Id: I3419ce82f9934606bed80acd8372284fc7ac7ac8
2025-01-16 06:22:20 -08:00
Saran Tunyasuvunakool 26bac8c8af Fix changelog.
PiperOrigin-RevId: 716194356
Change-Id: I23e1717867847c342d7bac82d2fae7d26df48473
2025-01-16 05:21:35 -08:00
Alessio Quaglino c2138c3fb0 Do not copy the spec during attach.
Use a reference count for managing the memory.

PiperOrigin-RevId: 716169486
Change-Id: Id270c4858c17b9250115e9544d5ea143584e2d5f
2025-01-16 03:53:17 -08:00
Gabe Oppenheimer 6436055c6c Update the version number to 3.2.8 following the 3.2.7 release.
PiperOrigin-RevId: 715870970
Change-Id: I9fc9a09d959043f3029faa7296a717ea56f75c89
2025-01-15 11:13:27 -08:00
Alessio Quaglino f1d557c125 Support for MJX bind set() for scalars.
PiperOrigin-RevId: 715832281
Change-Id: I217021e81fae95e44e9297a1c447891ff76572bd
2025-01-15 09:38:02 -08:00
Alessio Quaglino ff1ff44e34 Fix typo MjsHfield->MjsHField.
PiperOrigin-RevId: 715808003
Change-Id: Ic510f7a3dc4d2c93789ce27162d004b20762bd12
2025-01-15 08:21:38 -08:00
Alessio Quaglino 05d4c3d670 Add mjs_getParent to retrieve the parent body of an object.
PiperOrigin-RevId: 715794859
Change-Id: Ib9792787cdb966f579938dde3f94ebabca8ef1fc
2025-01-15 07:42:43 -08:00
Alessio Quaglino 10c7207cea Process asset path before adding VFS buffer.
Also, handle VFS errors.

PiperOrigin-RevId: 715755127
Change-Id: Iaf455d448f16e37ab89ceaa5797319135acd73c9
2025-01-15 05:10:00 -08:00
Andrea Gesmundo 66f2758ea5 Minor updates.
Fix a typo and a comment.

PiperOrigin-RevId: 715672977
Change-Id: I281002aad2b40b59544c30f41aa113e13ae9d09e
2025-01-14 23:56:39 -08:00
Gabe Oppenheimer 61973a33c9 Update eigen3 and the changelog ahead of the 3.2.7 release.
PiperOrigin-RevId: 715467319
Change-Id: I4a6a168bc981c976890c46b784e94805afc86323
2025-01-14 11:51:12 -08:00
Alessio Quaglino ba183adb67 Add assets to MjSpec wrapper.
This enables associating assets with a spec object.

Also, remove `spec.compile(assets)` and replace it with the `spec.assets` attribute, which must be be set before compile if assets are present.

PiperOrigin-RevId: 714981385
Change-Id: Ic3a33c3b75d3a7e14868622aadb57b2a8461a649
2025-01-13 08:41:51 -08:00
Taylor Howell 64d0f57c50 Fixes for MJX tendons and muscle actuators. Fixes #2317.
PiperOrigin-RevId: 714951834
Change-Id: I823b3a01b2b76cb4707cb313afd1a187f9bdb333
2025-01-13 06:58:12 -08:00
Andrea Gesmundo 1c32b5d2dd Fix attach logic.
Replace .attach() with .attach_body() where a body is passed as a first argument instead of a spec that is expected by .attach().
+Fix typo.

PiperOrigin-RevId: 714933134
Change-Id: Idb242fbef0fe164075826c01d4e1995c7d4ae565
2025-01-13 05:41:49 -08:00
Yuval Tassa d4ca66a47b Allocate dual-solver memory inside mj_projectConstraint, no more than required.
PiperOrigin-RevId: 714093658
Change-Id: Id7e710c5dffd24871019a72a7bf2aa6eb3f7a36e
2025-01-10 10:19:13 -08:00
Yuval Tassa 2409a6e537 Add mjData.nA the number of non-zeros in the constraint inverse inertia matrix.
PiperOrigin-RevId: 714076988
Change-Id: I4c323a6e81dfb23f7972b662719bbcb688bacf4a
2025-01-10 09:23:55 -08:00
Yuval Tassa ca6162e6d0 Refactor mj_projectConstraint to use CSR representation, don't allocate quadratic memory inside the function.
PiperOrigin-RevId: 714062168
Change-Id: Ib6ddd0e751fabcded20911e3ced59672be0da8b5
2025-01-10 08:32:05 -08:00
Alessio Quaglino da32b0db30 Handle ctrl special case explicitly in bind().
PiperOrigin-RevId: 714055763
Change-Id: I020008723af4a590926268a2ea615af54e20aa0b
2025-01-10 08:08:03 -08:00
Alessio Quaglino 3f32cc2479 Add mjSpec binding to MJX.
PiperOrigin-RevId: 714026500
Change-Id: I5cb3fe6cc975b3aa43d44185e3bc186b45845cf3
2025-01-10 06:16:32 -08:00
Copybara-Service 6f7fba794b Merge pull request #2336 from xela-95:patch-2
PiperOrigin-RevId: 713991183
Change-Id: I0869a068f463513e89fe2f88bca4b82177cfffa3
2025-01-10 03:46:20 -08:00
Copybara-Service d3a0c28457 Merge pull request #2334 from jjyyxx:patch-3
PiperOrigin-RevId: 713952754
Change-Id: Ic388f4dc05389fbe3e5a20b365b27f800d4147ab
2025-01-10 01:12:43 -08:00
Yuval Tassa b0f885ead0 Minor edits to the Programming/Simulation docs page.
PiperOrigin-RevId: 713952376
Change-Id: I5b7230a001bd49954d401846f40cd122ee4e748c
2025-01-10 01:11:27 -08:00
Yuval Tassa 00010f5848 Compute diagonal indices in mj_sqrMatTDSparse
PiperOrigin-RevId: 713714087
Change-Id: Icc8eae74e6e47ba1d12a6e9aa0d774ab006cfe38
2025-01-09 10:17:31 -08:00
Kyle Bayes daba00ca9d Fix a box-box bad collision in NativeCCD.
PiperOrigin-RevId: 713683497
Change-Id: I0c4cfd55d00faa196d8759046c87ee4ef74f01ab
2025-01-09 08:35:50 -08:00
Alessio Quaglino 90049343b9 Fix texture indexing bug in bindings.
Fixes #2341.

PiperOrigin-RevId: 713667648
Change-Id: I7fa5da1506306c5374febf762ce54aff9146079b
2025-01-09 07:38:22 -08:00
Andrea Gesmundo 419da17395 Fix plot label.
PiperOrigin-RevId: 713635908
Change-Id: Icbeef26053b10747024ea65b23ca86816f4fdb2e
2025-01-09 05:23:32 -08:00
Alessio Quaglino f7d38dac62 Add recursive call to FindSpec for handling nested attachments.
PiperOrigin-RevId: 713629578
Change-Id: I23efa5a86bac187fc42eb955d29cc03cbacfd9e0
2025-01-09 04:56:12 -08:00
Saran Tunyasuvunakool 40ef08c8ed Don't pollute the global namespace when using mjpython.
Fixes #2265

PiperOrigin-RevId: 713442833
Change-Id: If155d9f57d4deef8b848478ebd8077a00417d5c5
2025-01-08 15:48:20 -08:00
Saran Tunyasuvunakool 357ea024c0 Remove unconditional mj_markStack in mjv_addGeoms.
Prior to commit 3f855f32d9, calling `mjv_updateScene` and `mjv_updateSceneFromState` on an "empty" `mjData` (one without a buffer but where all sizes are also zero) was a valid operation. The `mj_markStack` call requires free stack space, so a call to `mjv_addGeoms` on an empty `mjData` results in a stack overflow whenever `mjVIS_TENDON` is enabled.

Fixes #2305.

PiperOrigin-RevId: 713418586
Change-Id: I99b5de23fe94ba9aa86eeef0700c891976c9aecc
2025-01-08 14:32:44 -08:00
Yuval Tassa f912e8df16 Print sparsity structure of mjData.efc_AR
PiperOrigin-RevId: 713296073
Change-Id: Ifede6ea66dd1177f5e85c8498860decebaa65f06
2025-01-08 08:12:47 -08:00
Alessio Quaglino 6654d63438 Add spec lookup in the attached spec array using the compiler option pointer.
This enables to find the spec associated with the compiler option stored in the objects, which do not necessarily belong to the model that owns them.

PiperOrigin-RevId: 713259419
Change-Id: I579c770147ff07ed2a5edd20e7a795ee7cc27147
2025-01-08 05:44:00 -08:00
Alessandro Croci 7a6bf06706 Update simulation.rst
Add missing backticks to `mjData.xfrc_applied`
2025-01-08 14:27:46 +01:00
Alessandro Croci 661c3e01dc Update simulation.rst
Add missing backticks to `mjData.mocap_quat` in simulation.rst
2025-01-08 14:21:24 +01:00
Yuval Tassa 8a5f092081 Allow CSR back-substitution to handle multiple vectors.
PiperOrigin-RevId: 713229673
Change-Id: I7a5b43fe966cf9e482bd41e2eea6c30dd3ffa1d4
2025-01-08 03:32:16 -08:00
Yuxuan Jiang df1d15fa38 Fix typo in modeling.rst 2025-01-08 09:53:36 +08:00
Yuval Tassa 4d82ab5762 Add function to merge chains of indices.
PiperOrigin-RevId: 712863690
Change-Id: I15652bec03dc9ce90e230788bd12b44b1a2b8217
2025-01-07 04:42:11 -08:00
Yuval Tassa 1c69e64e6e Extend test comparing dense and sparse pipelines to all solvers.
PiperOrigin-RevId: 712862658
Change-Id: Ieb8515d32a225a098ab96055598a5d56bad7e476
2025-01-07 04:37:04 -08:00
Yuval Tassa 674d227050 Standardize names of sparse fill-in pre-counting functions
PiperOrigin-RevId: 712835830
Change-Id: I8e90dfa52af56ede917e1fd90b8d551898c244e5
2025-01-07 02:39:46 -08:00