Commit Graph

897 Commits

Author SHA1 Message Date
Yuval Tassa b6037d1759 Improve mjSpec documentation. Fixes #2074.
PiperOrigin-RevId: 692251710
Change-Id: Ia46bbbe5b7eaa890433b38fed66824f716cc9ea0
2024-11-01 12:06:14 -07:00
Kyle Bayes 1d58576d28 Fetch source code line links for API functions on docs client side.
PiperOrigin-RevId: 692115441
Change-Id: Ifbedf6a4998000f99e2275cb43293b3050daf0ee
2024-11-01 03:28:53 -07:00
Yuval Tassa c9f78ad8a8 Rename nnzJ to nJ in mjData.
This naming is more consistent.

PiperOrigin-RevId: 691858223
Change-Id: Ife3db822afa0b51b30d0792548b35b3742da388a
2024-10-31 10:43:10 -07:00
Alessio Quaglino 94bbf297fc Replace flex_xvert0 with flex_vert0
`flex_xvert0` stored the Cartesian position of the vertices in `qpos0`. This array was unused, so it is now replaced with `flex_vert0`, which still contains the positions of the vertices, but normalized on the bounding box of the flex so that the coordinates are in `[0,1]^m->flex_dim`. This will be useful in the future for using different interpolation methods for computing flex deformations.

PiperOrigin-RevId: 691779361
Change-Id: I5c4223103cd4558f4e268fe3e8d8177541e4754f
2024-10-31 06:30:36 -07:00
Kevin Zakka a9737c60e8 Copybara import of the project:
--
5b525ccaef3d7184d3167815be63ed630781a064 by Kevin Zakka <kevinarmandzakka@gmail.com>:

Add command line scripts to MJX docs.

COPYBARA_INTEGRATE_REVIEW=https://github.com/google-deepmind/mujoco/pull/2196 from kevinzakka:typo-fixes 5b525ccaef3d7184d3167815be63ed630781a064
PiperOrigin-RevId: 691497203
Change-Id: I7c5d6a8fcbd2a42939673cee5eadb30bebdad833
2024-10-30 11:41:11 -07:00
Yuval Tassa 32df8a515a Fix typos. fixes #2139
PiperOrigin-RevId: 691429879
Change-Id: I929b7a387ec41f68b8d85fe20de83083216da36a
2024-10-30 08:34:39 -07:00
Taylor Howell f47840e57c Add mju_dense2sparse to public API.
PiperOrigin-RevId: 691125900
Change-Id: Id9b7c739ee14bff2317168da258b1a3acbdafdbe
2024-10-29 12:47:48 -07:00
Yuval Tassa 6703a40fcf Improve plugin documentation.
PiperOrigin-RevId: 690974299
Change-Id: Iadaabafb7434ada9579d6e2f64aae435cdfedbd8
2024-10-29 05:07:31 -07:00
Yuval Tassa 864b805a6e Fix multiple bugs related to connect and weld constraints with site semantics. Fixes #2179
The introduction of site specification to connects and welds in 3.2.3 conditionally changed the semantics of `mjData.eq_obj1id` and `mjData.eq_obj2id`. These changes were not properly propagated in several places leading to incorrect computations of constraint inertia, readings of affected force/torque sensors and runtime enabling/disabling of such constraints.

PiperOrigin-RevId: 690670420
Change-Id: I55ee8a013cbee8457f8d6c7f33c2981aedafbab6
2024-10-28 10:44:04 -07:00
Yuval Tassa 3d920e6a70 Update build documentation to include instructions on how to build the docs locally.
PiperOrigin-RevId: 690616910
Change-Id: I717988e3adc67cb6d65488d39bc804c3d4f0e3b5
2024-10-28 08:17:16 -07:00
Yuval Tassa d8494fef3b Remove deprecated mjv_makeConnector function.
PiperOrigin-RevId: 690563333
Change-Id: Ice9c6b6cf41de8a55fa361477f9aee9181d50184
2024-10-28 04:51:47 -07:00
Taylor Howell 3c21abc0e5 Add ray intersection with ellipsoid to MJX.
PiperOrigin-RevId: 690557087
Change-Id: Icd2f0be1243574720baeac82b8bdd92e57c6a61c
2024-10-28 04:25:11 -07:00
Yuval Tassa 7dc8aef807 Remove the convexhull compiler option.
PiperOrigin-RevId: 690307675
Change-Id: I62d8213579ad07296ca96de004d39ae012174aa4
2024-10-27 04:31:10 -07:00
Yuval Tassa 61cb552f8a Refactor PBR texture layers from separate sub-elements to a single layer sub-element.
Add new element to PyMJCF schema.

PiperOrigin-RevId: 690115286
Change-Id: I7bb3f184cb321ca96037b2ca0ee160efef37469d
2024-10-26 07:41:38 -07:00
Baruch Tabanpour f24de91cc9 Use eq_active in MJX. Fixes #2173.
PiperOrigin-RevId: 689549368
Change-Id: I14d9817c5ca5dfc2a735ab8bacfb11b75c9feadc
2024-10-24 16:08:14 -07:00
Yuval Tassa a3ea01e57e Remove deprecated mju_rotVecMat and mju_rotVecMatT functions.
PiperOrigin-RevId: 689405782
Change-Id: I0281376d5d6f5c31ea2603d61c03c7b94aaa6312
2024-10-24 09:15:23 -07:00
Alessio Quaglino 159f23e6b4 Remember compiler options during attach.
Note:
- Move compiler options into `mjsCompiler` struct.
- The compiler options from the attached model are not written by mj_SaveXML.
PiperOrigin-RevId: 689391440
Change-Id: I1d63c146a32f87c737b7a55b64a54b0ffe3aecc9
2024-10-24 08:31:15 -07:00
Yuval Tassa 7620aef530 Fix typo in the changelog.
PiperOrigin-RevId: 689058361
Change-Id: I479efa8fc0b8d31030d3f6444b874a14419f3518
2024-10-23 12:17:32 -07:00
Alessio Quaglino d17d9e835c Do not delete attached specs after compilation.
Also, copy them when copying the spec.

PiperOrigin-RevId: 688998464
Change-Id: I7229fd8032eafede582194ccf73ab4160fe06768
2024-10-23 09:42:05 -07:00
Yuval Tassa e14aebfd16 Expose mju_sparse2dense to public API.
PiperOrigin-RevId: 688985153
Change-Id: I9559f1d47363d0afada80c86abdc729cd1910b63
2024-10-23 09:01:25 -07:00
Alessio Quaglino b598d79b3f Move mesh inertia specification from global <compiler> to <asset/mesh>.
Three options:
- Convex: Use convex hull
- Exact: Use exact geometry (requires watertight mesh)
- Legacy: Legacy approximation (deprecated)

Fixes #2152

PiperOrigin-RevId: 688949900
Change-Id: I4537f343db917195c6fd58d517b189d5ee3be1cd
2024-10-23 07:06:31 -07:00
Alessio Quaglino bfa78614c8 Require prefix for the attach tag.
For `mjs_attachFrame` and `mjs_attachBody`, require either a prefix or suffix.

It is tempting for users to not use a prefix (see #2162), but this causes issues. For example, it creates a duplicate "main" default class in the parent as a child of the already existing "main" default.

PiperOrigin-RevId: 688535755
Change-Id: I653181ca35943f1e4eb89c70fca8b5289818324e
2024-10-22 07:08:33 -07:00
Saran Tunyasuvunakool 98478f8811 Minor changes to inline comments in mjModel and mjData headers.
PiperOrigin-RevId: 688231631
Change-Id: Iae5430142cab256a73a0fb8c698992ceba21b28c
2024-10-21 12:31:15 -07:00
Yuval Tassa aa91f3c047 Fix bug in slider-crank transmission.
The associated row in `actuator_moment` was not cleared before being updated.

PiperOrigin-RevId: 688207085
Change-Id: I2f925e984c5c493e64ead66667aef57c4844acfe
2024-10-21 11:21:15 -07:00
Taylor Howell 36e8845599 Add actuator_moment Jacobian sparsity pattern to mjData.
PiperOrigin-RevId: 688124236
Change-Id: Ieccc8131d0046100ec9a2783ffb43dd784f0a63b
2024-10-21 07:11:25 -07:00
Taylor Howell b00a7c6705 Add touch sensor to MJX.
PiperOrigin-RevId: 688056696
Change-Id: I50b0ebf3141aab0a5b07e5ae770101ff8b7737d4
2024-10-21 02:48:36 -07:00
Baruch Tabanpour 680fb3e5dd Add more public support functions for MJX.
PiperOrigin-RevId: 687469475
Change-Id: I4218cc2f6d51d3f2f63b1a9a96953d550a5503a5
2024-10-18 17:15:18 -07:00
Alessio Quaglino dcf2816543 Remove copy_back from Python bindings and mj_copyBack from the C API.
PiperOrigin-RevId: 687377331
Change-Id: I355493d92857418b08b5aa90ea38cebe5c475314
2024-10-18 11:55:04 -07:00
Google DeepMind ffdb800e45 Update the MuJoCo version for the 3.2.5 release following the 3.2.4 release.
PiperOrigin-RevId: 686641388
Change-Id: I68d5183c9d369b7617f692ab97c12c53f0d2504c
2024-10-16 14:24:06 -07:00
Gabe Oppenheimer c2024ef6d1 Update the MuJoCo version for the 3.2.4 release.
PiperOrigin-RevId: 686261295
Change-Id: Ib59e44a6829a79fd480f2822a68cb05f94c38732
2024-10-15 15:34:09 -07:00
Google DeepMind d1e004aa97 Update version hashes in MuJoCo CMake files ahead of the 3.2.4 release.
PiperOrigin-RevId: 686208889
Change-Id: I19d3e6566e76c44e199f427aed984b9a530f4262
2024-10-15 13:03:13 -07:00
Yuval Tassa d646ba8de1 Update MuJoCo changelog with a video of the 100_humanoids model.
Improve the model's rendering FPS by reducing the number of shadow-casting lights from 7 to 2.

https://youtu.be/e8lUuykQPGs

PiperOrigin-RevId: 686118052
Change-Id: If376564fdc23ad8d754dac1e5825079c0b806063
2024-10-15 08:40:06 -07:00
Taylor Howell 096853e192 Add JOINTINPARENT actuator transmission type to MJX.
PiperOrigin-RevId: 686083761
Change-Id: I5159d050812d32e15ced06df132d3e434fced814
2024-10-15 06:38:02 -07:00
Nimrod Gileadi 6881ce2437 Remove support for Python 3.8.
Python 3.8 has been deprecated upstream, and any tests depending on Homebrew already stopped working. Following our support policy, we are removing support for 3.8 from our packages, too.

PiperOrigin-RevId: 686012836
Change-Id: Ibd220eb9c10e9a74bbd4443c1d7286a1fde9e5e5
2024-10-15 01:54:18 -07:00
Kyle Bayes 8d84b5f693 Disable hfields for collision sensors.
PiperOrigin-RevId: 685730321
Change-Id: Ib1d4a90b7b31ca388e018076a274e25c40409080
2024-10-14 09:19:11 -07:00
Yuval Tassa ee7b994021 Remove Newton Cholesky factor from mjData arena, rollback of b66da3d369.
PiperOrigin-RevId: 685726867
Change-Id: Ic2afd0dd35e38f403164d2cbe4618286abfa51ab
2024-10-14 09:07:22 -07:00
Taylor Howell ac91a7639d Add tendon velocity sensor to MJX.
PiperOrigin-RevId: 685689974
Change-Id: Ib5e65b19c20b74e20cffa66c6baca0d8faaaf3ae
2024-10-14 06:47:59 -07:00
Taylor Howell 1945926351 Fix computation of tangential contact forces in MJX _decode_pyramid.
PiperOrigin-RevId: 685665382
Change-Id: Icdbba4a3ee5fec804340d73d525a36ee570c2aa8
2024-10-14 05:01:00 -07:00
Alessio Quaglino 766cd20273 Add mjs_bodyToFrame() to convert a body to a frame.
Also add test for attaching the world body.

PiperOrigin-RevId: 685603933
Change-Id: I3cfe7d226d6f032b5a587e44d0f4f18207977188
2024-10-14 00:39:20 -07:00
Yuval Tassa 534aedd47d Improve documentation of joint/armature.
See Drake [discussion](https://github.com/RobotLocomotion/drake/pull/21967) for more context.

PiperOrigin-RevId: 685428316
Change-Id: I80e8d4f097697f28529f5891a763979390c59e99
2024-10-13 07:25:15 -07:00
Taylor Howell 223892c051 Add tendon position sensor to MJX.
PiperOrigin-RevId: 684851437
Change-Id: Ica0a30762a9cb3d612357b40b6f87cd2fc544fdb
2024-10-11 08:47:52 -07:00
Yuval Tassa 2dd518734f Stop over-allocating memory in Newton solver.
PiperOrigin-RevId: 684797464
Change-Id: I3389416cb69a8564b5119f6e3944b579893ea511
2024-10-11 05:09:33 -07:00
Alessio Quaglino cdb167f275 Add mjs_attachToSite for attaching a body to a site.
PiperOrigin-RevId: 684432183
Change-Id: I7100bebfb6521f9dbfbb07f31490b2b9298bf18c
2024-10-10 07:12:49 -07:00
Baruch Tabanpour 22e4f7fc31 Fix bug in MJX frictionloss.
PiperOrigin-RevId: 684198925
Change-Id: I5f6575759729712550bcb8d7659aaa7a657c66fc
2024-10-09 15:50:58 -07:00
Alessio Quaglino a26ba2012e Return 0 on success from mjs_activatePlugin instead of using mju_error.
PiperOrigin-RevId: 684102823
Change-Id: I86b7702094ae886539e1dfb6294381952d507bc1
2024-10-09 11:09:33 -07:00
Baruch Tabanpour fa22e6d001 Add sphere-ellipsoid, sphere-cylinder. #2126
PiperOrigin-RevId: 683747371
Change-Id: Ic11803bb395944380d25ce848d9fbcf19afaad77
2024-10-08 13:37:00 -07:00
Yuval Tassa b66da3d369 Add mjData.L, sparse Cholesky factor of Newton solver Hessian.
PiperOrigin-RevId: 683669555
Change-Id: I18d7530b5d68d1d48cb95d4faa0150c434109638
2024-10-08 10:13:08 -07:00
Alessio Quaglino 1f9dca8bc4 Do not expose plugin_slot.
PiperOrigin-RevId: 683215401
Change-Id: Ic64f7221ed83ca3b0c8cca16eb680ea67c67b564
2024-10-07 09:38:01 -07:00
Alessio Quaglino 66faba9aa5 Avoid changing semantics of mjsPlugin.name across XML sections.
The `extension` section used to discard the plugin name and write the instance name in `plugin.name`, while all of the other sections wrote the instance name in `plugin.instance_name` and optionally the plugin name in `plugin.name` (via the function `OnePlugin`). Now all plugin names are in `plugin.plugin_name` and the instance is written in `plugin.name`, so that it is possible to lookup a plugin via its unique instance name.

PiperOrigin-RevId: 683183804
Change-Id: I179ef5d221143b720db24d745b09e327bf1449ef
2024-10-07 07:57:03 -07:00
Taylor Howell 160ed9bfe2 Add pulley support to spatial tendons in MJX.
PiperOrigin-RevId: 683103659
Change-Id: I22544071a3fc6fbd09f9a59690106701b101ee6a
2024-10-07 03:00:53 -07:00