Yuval Tassa
be00fafc43
Various documentation improvements.
...
- Replace two "below" instances in `XMLreference.rst` with proper links (there are many more that need fixing).
- Discuss friction cones and 32-bit floats in Performance Tuning.
- Delete Damping subsection in Tips and Tricks, no longer relevant after the introduction of the implicit/fast integrators.
- Simplify discussion of free bodies, mention free joint alignment.
- Clarify frame used by kinematic Jacobians.
PiperOrigin-RevId: 672615057
Change-Id: Ib59b71e3c09cdd13415519fc4a964131b155718f
2024-09-09 11:36:07 -07:00
Kyle Bayes
81618f95f9
Update doc for mj_addFileVFS and mj_addBufferVFS as VFS is no longer memory limited.
...
PiperOrigin-RevId: 671087960
Change-Id: I0b022554f4f47fe2e64c8201cd855b63d514c344
2024-09-04 13:51:43 -07:00
Yuval Tassa
b502ceef00
Add note that XML saving requires that the spec first be compiled. Fixes #1832
...
PiperOrigin-RevId: 671046666
Change-Id: If5885545d5316537147d293fbe854caa568558b2
2024-09-04 11:47:34 -07:00
Alessio Quaglino
d3dfa6f970
Add mjs_findElement() to find any element in a spec by name.
...
Also, remove mjs_findMesh() and mjs_findKeyframe().
PiperOrigin-RevId: 670978980
Change-Id: Id88b800eb8a4c5efc40866f72a4442bf1d1437d0
2024-09-04 08:24:22 -07:00
Yuval Tassa
2d3d5415b7
Add mj_jacDot: Time derivative of kinematic Jacobian.
...
PiperOrigin-RevId: 670505417
Change-Id: Icf30cff5dc955e002bd2f5d5fb3a04f8388d0780
2024-09-03 04:49:47 -07:00
Alessio Quaglino
505d01a1c1
Add error handling to mj_recompile.
...
This CL adds error handling to the mj_recompile function. If the recompile fails, the function will return -1 and set the error message in the spec. The Python wrapper for mj_recompile will catch the error and raise a ValueError exception.
PiperOrigin-RevId: 666784579
Change-Id: I225eca1769ea839c782be3c03fc4ff1ea5885a48
2024-08-23 07:18:28 -07:00
Yuval Tassa
8b03daa09b
Add mjtSameFrame enum to specify frame alignment of bodies with their children.
...
PiperOrigin-RevId: 666303674
Change-Id: I53dc56e1ca52afa280ae5abaf4158edc465fb1e0
2024-08-22 05:17:06 -07:00
Yuval Tassa
2cb601c98d
Improve documentation w.r.t smoothness, differentiability and finite-differencing.
...
PiperOrigin-RevId: 662848709
Change-Id: Icb7dc03a2c53d43d0d3a9e4ac95d963e5bc6853c
2024-08-14 03:11:38 -07:00
Alessio Quaglino
851bb6eef4
Add option to mjspec for creating a texture directly from a buffer.
...
PiperOrigin-RevId: 662186527
Change-Id: I469c876681d52964ac971c0bb2ec3517224d3a3d
2024-08-12 12:29:08 -07:00
Kyle Bayes
5287359022
Update docs for VFS.
...
PiperOrigin-RevId: 659968022
Change-Id: I3b6c9befc8ca0dacaee5ef6da34d537dd439b7f3
2024-08-06 08:33:21 -07:00
Taylor Howell
20011a2f53
Disable RK4 integrator in mjd_transitionFD by throwing an error and improve documentation for mjd_transitionFD and mjd_inverseFD.
...
PiperOrigin-RevId: 659492713
Change-Id: I84ab7ebfba34742f239f60311d8f0a55559995fb
2024-08-05 03:18:31 -07:00
Google DeepMind
70d70bc3b7
Fix typos in MuJoCo documentation.
...
PiperOrigin-RevId: 656068822
Change-Id: I5ebbb3701148ea4d978a6a1ad3f762ffcc7e57cb
2024-07-25 13:31:13 -07:00
Yuval Tassa
39b22ebc26
Remove dangling section header from function docs.
...
PiperOrigin-RevId: 652456322
Change-Id: Ib1d7aa387b7ba8957c93f0227f530aa0b37f2668
2024-07-15 06:11:25 -07:00
Yuval Tassa
e13ddfa2ab
Improve compiler-related documentation.
...
PiperOrigin-RevId: 651827545
Change-Id: I85c12dc12967e49087c342445dbfa049c5cdbcdf
2024-07-12 11:05:16 -07:00
Alessio Quaglino
a0945e4b5a
Add non-tree element lists to python bindings.
...
Fixes #1752 .
PiperOrigin-RevId: 649405039
Change-Id: Ie0b575a3ec912b773141694397ac2f394bff1227
2024-07-04 07:24:02 -07:00
Alessio Quaglino
9107d3b507
Add mjs_findKeyframe.
...
PiperOrigin-RevId: 649036650
Change-Id: If514d5c333dd6084af9509324fd658c72576d7b5
2024-07-03 05:17:41 -07:00
Alessio Quaglino
9106f40e2b
Add mjSpec bindings.
...
Co-authored-by: Saran Tunyasuvunakool <stunya@google.com >
PiperOrigin-RevId: 648444641
Change-Id: I08ee1d3f4fae1efbc7934ba94702b1c06d8cb92a
2024-07-01 12:05:50 -07:00
Kyle Bayes
e66b9a36b2
Remove mj_makeEmptyFileVFS and mj_findFileVFS from MuJoCo API.
...
PiperOrigin-RevId: 645393666
Change-Id: Iabe939c88f60b80dce20f84c7ff9a6396717cc84
2024-06-21 08:12:51 -07:00
Alessio Quaglino
7bd7065e0e
Renamed mjs_fullInertia to mjuu_fullInertia and moved it to user_util.
...
PiperOrigin-RevId: 644769379
Change-Id: I83511eeb4c0972ce9f46f0e3443d438cccdd4d9f
2024-06-19 09:39:02 -07:00
Yuval Tassa
6067048537
Deprecate mju_rotVecMat and mju_rotVecMatT in favor of mju_mulMatVec3 and mju_mulMatTVec3.
...
These functions names and argument ordering are more consistent with the rest of the API.
PiperOrigin-RevId: 643788290
Change-Id: I783eda8021b80b82098e23ed95669b102bb82508
2024-06-16 10:02:36 -07:00
Yuval Tassa
c9bcf8371e
Add mj_setKeyframe function to save current state in k-th model keyframe.
...
Fixes #1719 .
Also improve documentation of `mju_sigmoid`, was previously only documented in changelog.
PiperOrigin-RevId: 642637458
Change-Id: I811a0bf8f881c8b76c9a62d2faec8fdec4e7585b
2024-06-12 09:22:52 -07:00
Yuval Tassa
171b0d6e06
Improve order and categorization in function API reference.
...
Also, move macros to the globals section.
PiperOrigin-RevId: 641936967
Change-Id: I5b1f6aa52c69e68cc6310093c5811f0f20828bab
2024-06-10 10:01:09 -07:00
Alessio Quaglino
7a06bcfdaf
Make model editing API public, fixes #364
...
Still missing:
- Detailed documentation.
- Python bindings.
PiperOrigin-RevId: 641445626
Change-Id: I20e67b707cf1bebae7e0cc94d17f7b76a89171f0
2024-06-07 22:28:01 -07:00
Yuval Tassa
0d1c92b20a
Add documentation on pipeline stages and mjData self-consistency. Fixes #1667
...
PiperOrigin-RevId: 638619787
Change-Id: Ic8dd0fbd178c4946757a07d74fca3b2c905f9080
2024-05-30 05:38:05 -07:00
Yuval Tassa
02d015458c
Add mj_geomDistance API function and sensors for geometric distance, normal direction and segment between between two geoms. Fixes #51
...
PiperOrigin-RevId: 632458301
Change-Id: I65b7e5bb0df59008028114cf4a07e0d6365ff3d3
2024-05-10 04:52:43 -07:00
Yuval Tassa
5a365603f8
Add mju_euler2Quat.
...
PiperOrigin-RevId: 623469398
Change-Id: Ia86b29a764018cd4c3bc57d23616bed7393081f5
2024-04-10 06:02:50 -07:00
Copybara-Service
6b7d714291
Merge pull request #1450 from v-r-a:angmomMat
...
PiperOrigin-RevId: 612835207
Change-Id: I8e7b01cc433563556a3ae4bbdd0c53612cc15e97
2024-03-05 07:35:15 -08:00
Yuval Tassa
e142bca7f2
Remove special handling of mjModel and mjData strings in autogenerated functions.rst
...
PiperOrigin-RevId: 612714709
Change-Id: Ie6c139d2c41488cd19c9bf5152b912a51b2f3a34
2024-03-04 23:00:35 -08:00
Kyle Bayes
a4a621f6e3
Add checksums (used as a timestamp) to VFS.
...
Deprecate mj_makeEmptyFileVFS in favor of mj_addBufferVFS.
PiperOrigin-RevId: 608915388
Change-Id: Id9e9b042799bc1bf547f0795ae6f386447d53cdd
2024-02-21 02:25:36 -08:00
Nimrod Gileadi
f1d4f8f0a1
Test that mj_resetDataKeyframe treats negative keyframe IDs as a normal reset.
...
PiperOrigin-RevId: 607655812
Change-Id: Ia9bb1031468f04e8f9563b9228a46983356dafef
2024-02-16 05:09:05 -08:00
Yuval Tassa
6860e953ed
Improve docstring of mju_eig3.
...
PiperOrigin-RevId: 595380013
Change-Id: Ia3663c11ff1cd50a35d5d72ba01e09ff3d9054d0
2024-01-03 06:04:08 -08:00
Yuval Tassa
822b03446c
Improve pipeline documentation, expose mj_implicit function to public header.
...
PiperOrigin-RevId: 586380774
Change-Id: I3fafa563ebc852e17e1233288455b96f4499027b
2023-11-29 10:18:57 -08:00
Kevin Zakka
e33adaca9c
Fix typos in mju_boxQP documentation.
...
PiperOrigin-RevId: 585462325
Change-Id: Ib1c15c3d5af8475ec1a62b50c66b729579a23e60
2023-11-26 11:23:52 -08:00
Yuval Tassa
0f37deca0d
Documentation improvements.
...
Fixes #598 #691 #1071 #1072
PiperOrigin-RevId: 579816915
Change-Id: Ica5e62516e2888d47030b0f44619efa2621f329a
2023-11-06 05:56:02 -08:00
Yuval Tassa
5a9239e11c
Improve inline documentation of mj_passive and mj_subtreeVel.
...
PiperOrigin-RevId: 579808998
Change-Id: I2cff167c3813964f42a30b06f1adf38b57d62196
2023-11-06 05:12:11 -08:00
Yuval Tassa
2bb8652bf6
Add User Interface documentation.
...
PiperOrigin-RevId: 575800982
Change-Id: I9b2e03932d0d3b1844b90e5da7c32a640d999e69
2023-10-23 06:35:34 -07:00
Yuval Tassa
a1b6026b8c
Delete derivative code sample.
...
PiperOrigin-RevId: 573477509
Change-Id: I0e619e36dd3fe677a27bbbdac87a15f04670cc13
2023-10-14 08:38:37 -07:00
Alessio Quaglino
5a70ad08ab
Add Flex component.
...
PiperOrigin-RevId: 572830650
Change-Id: I6908228087b7b9683be3506c8d9cdc725ed5dcd5
2023-10-12 10:49:35 +01: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
c54aba15f9
Fix typo in docs.
...
PiperOrigin-RevId: 566957533
Change-Id: I39ebafaf3ad938837d864b3272ae2c4af6510583
2023-09-20 07:29:16 -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
Saran Tunyasuvunakool
78183e60e1
Refactor thread pool implementation.
...
- Make mjTask non-opaque and remove C++ Task class.
- Make C++ thread pool a subclass of a skeletal mjThreadPool C struct.
- Make the mjTask status enum more consistent with the rest of MuJoCo.
- Change mju_threadPoolEnqueue to take just the mjTask. Users must now prepare the mjTask by assigning the function pointer and argument into the struct.
- Rename files in thread/ to be more consistent with the rest of MuJoCo.
- Run threading tests in CMake.
- Allow use of C++20 designated initializers.
Otherwise the functionality remains identical.
PiperOrigin-RevId: 564374675
Change-Id: I37c9894566bc39faf217e5aa97a4e2713a70e467
2023-09-11 07:20:34 -07:00
Matthew Bennice
6225186964
Add threading primitives.
...
PiperOrigin-RevId: 562649644
Change-Id: I9c35b270e4b3b50cc7eb5a152f24d71def8e2fcd
2023-09-04 20:09:19 -07:00
Saran Tunyasuvunakool
94a8705ad0
Add mj_markStack and mj_freeStack as public API functions.
...
Also add asan instrumentation to detect stack frame leakages (i.e. `mj_markStack` without a corresponding `mj_freeStack` in the same caller function).
PiperOrigin-RevId: 562625645
Change-Id: I4e3ff66ca0b9d08ed0a95cef45393db8e3053e22
2023-09-04 17:04:11 -07:00
Saran Tunyasuvunakool
33f51856c1
Check that alignment is power of 2 in mj_stackAlloc.
...
PiperOrigin-RevId: 562024496
Change-Id: I9230c6dc05ebb78e935f9b2f606aa77c921d67e5
2023-09-01 12:45:35 -07:00
Saran Tunyasuvunakool
215433f5f7
Implement mj_stackAlloc and mj_arenaAlloc alignment using bitwise-and.
...
This implementation explicitly avoids calling division instructions (which are generally expensive) even when link-time optimization is not active or if the alloc functions aren't inlined for some reason.
Also make mj_stackAlloc cheaper for external callers who may be linking against MuJoCo dynamically (and therefore cannot benefit from inlining).
PiperOrigin-RevId: 561299565
Change-Id: Iea4be5bf6d351ddf0c9d1fd8bd89a0c207b39309
2023-08-30 04:29:18 -07:00
Saran Tunyasuvunakool
4c899b92cc
Rename mj_stackAllocByte to mj_stackAlloc and make it public.
...
PiperOrigin-RevId: 561133040
Change-Id: I4f5ffe51c1287aa0c82af68bfe17ed6dd2ad09da
2023-08-29 14:07:54 -07:00
Saran Tunyasuvunakool
b979a26b10
Rename mj_stackAlloc to mj_stackAllocNum.
...
PiperOrigin-RevId: 561040193
Change-Id: I49ea21ffb5b596471d2aacefb1961c11c5c905d0
2023-08-29 08:43:03 -07:00
Yuval Tassa
5fe4850643
Improve mj_jac documentation. Fixes #994
...
PiperOrigin-RevId: 560748977
Change-Id: Ic776d6450175a6620eb32ab8631dcca68c3088df
2023-08-28 10:23:45 -07:00
Yuval Tassa
3e034e38b2
Add constraint island discovery
...
PiperOrigin-RevId: 557067599
Change-Id: Ic41e1d0efef02b7a79142518afe49cf9d4e74725
2023-08-15 02:30:05 -07:00