Commit Graph

853 Commits

Author SHA1 Message Date
Alessio Quaglino 4b88e9bebf Do not delete keyframes during mjs_detachBody.
PiperOrigin-RevId: 663281082
Change-Id: I6eedf8c5a3a422bcd78086f2fe30c2099f0b9d16
2024-08-15 06:10:43 -07:00
Yuval Tassa b2018ff506 Replace function with static array in engine_forward.c
PiperOrigin-RevId: 663268322
Change-Id: Ibd161a8eda55fc04cf37e465f0d0ac0adcfc7847
2024-08-15 05:11:38 -07:00
Kyle Bayes 7f09a7d8c6 Fix bug in S2D and improve readability of GJK + EPA code.
PiperOrigin-RevId: 663261102
Change-Id: Ibb1d801078cc02bc7ccec246be6dc50fa4f2be18
2024-08-15 04:35:15 -07:00
Yuval Tassa 1f5f9a8a67 Improve variable naming in xml_native_reader.cc
PiperOrigin-RevId: 663236609
Change-Id: I0a3af8432054172a3fe687867706eeef14a2529d
2024-08-15 02:42:30 -07:00
Yuval Tassa d932faa1d4 Flip order of cases in user_objects.cc (readability)
PiperOrigin-RevId: 663040865
Change-Id: I27d06a6a769d5bfc41189d270021b4fc1d4b5932
2024-08-14 13:49:11 -07:00
Alessio Quaglino 4c64e6f036 Add mocap state to SaveState/RestoreState and attached keyframes.
PiperOrigin-RevId: 662975257
Change-Id: I3edb44f34426525813033902caf31db16ad7b2ab
2024-08-14 10:42:49 -07:00
Alessio Quaglino 5927b3d4d9 Add time to attached keyframes.
PiperOrigin-RevId: 662886533
Change-Id: If9118a226250d2e806d184c9715c7e6a1390fd95
2024-08-14 05:47:43 -07:00
Alessio Quaglino 7be4df7e03 Add ctrl to attached keyframes.
PiperOrigin-RevId: 662878508
Change-Id: Ie273fae0220c8b257766cbbd90a880d44b901725
2024-08-14 05:14:49 -07:00
Alessio Quaglino afd7c73f44 Attach multiple keyframes.
Still missing: support for ctrl, mocap, and time.

PiperOrigin-RevId: 662871569
Change-Id: I8a418c4007663e3063d7146bd72db4eba78ddc5d
2024-08-14 04:42:54 -07:00
Alessio Quaglino 19aa68c2b2 Add keyframe support to attach.
Limitations:
- Supports attaching a single keyframe. If multiple keyframes are present in the child, only the first one will be attached.
- Does not support time, ctrl, mpos, mquat.
- If mjs_detachBody is used, all keyframes are removed.
PiperOrigin-RevId: 662517666
Change-Id: If6e3839471e1884afc14e1a75e7ce1957c2f3581
2024-08-13 08:00:01 -07:00
Kyle Bayes 39896f8064 Restructure mjCMesh for caching.
PiperOrigin-RevId: 662496475
Change-Id: I4c3a58a63ef2c3b1196b3e6b30eb556b5528ff7f
2024-08-13 06:40:36 -07:00
Copybara-Service 4ebf381b4d Merge pull request #1899 from saran-t:saran-t-patch-5
PiperOrigin-RevId: 662454010
Change-Id: Ie3d6c59dd787aefa3c95869a91451387783b6057
2024-08-13 03:51:18 -07:00
Saran Tunyasuvunakool 1132632627 Fix for benign UBsan signed-integer-overflow complaints.
When counting nl and nc, the nnz is optionally also counted when in sparse mode. However, the functions mj_nl and mj_nc unconditionally counts nnz into a temporary accumulator, then only afterwards check whether the output nnz pointer is NULL.

When not in sparse mode, ten_J_rownnz does not get initialized by mj_tendon, however mj_nl and mj_nc are accumulating potentially spurious data from ten_J_rownnz into the temporary accumulator. While the spurious result eventually gets discarded, UBsan nevertheless detects an integer overflow in the temporary accumulator.

PiperOrigin-RevId: 662443910
Change-Id: I78a9a088d4db7f16be779c7d669167d6fb3e4401
2024-08-13 03:08:41 -07:00
Saran Tunyasuvunakool acab66d799 Remove superfluous break statements. 2024-08-13 10:46:35 +01: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 20cae556ee Encapsulate BVH class members.
PiperOrigin-RevId: 662141171
Change-Id: Ica202d31dacc9cc500d0aeecded941b79002b9a1
2024-08-12 10:27:03 -07:00
Alessio Quaglino 648fd56ed1 Preserve time when recompiling a model.
Fixes #1890.

PiperOrigin-RevId: 662084324
Change-Id: I6aed40761cee5044e63426935d102123db295b25
2024-08-12 08:00:36 -07:00
Yuval Tassa d3a976e10d Fix indent.
PiperOrigin-RevId: 662035313
Change-Id: I30ec124e8144b8130623daa6b0802a46de124aec
2024-08-12 04:23:48 -07:00
Yuval Tassa d45d13e5ad Remove uses of mjtNum-typed functions from user_objects.cc
PiperOrigin-RevId: 662026275
Change-Id: Idfb2b6ced6eac4b4b60079e219aac63fc1d00b89
2024-08-12 03:45:43 -07:00
Yuval Tassa 02ffaa8248 Yet another GCC-related fix.
PiperOrigin-RevId: 661595661
Change-Id: Ib66a0d891533be50451adc850d7350532fc39d67
2024-08-10 05:32:28 -07:00
Yuval Tassa d72f01bad4 Add break statements in user_objects.cc to appease persnickety GCC
PiperOrigin-RevId: 661590599
Change-Id: I2d167ca92cc4d5230922d221c9267a2e8d018b40
2024-08-10 04:56:18 -07:00
Yuval Tassa e397fcb5a5 Add return values to private mjJCJoint methods.
PiperOrigin-RevId: 661438758
Change-Id: I08a77eb878703610ead526040d86f3f3fccb080b
2024-08-09 16:09:17 -07:00
Taylor Howell 466368efc6 Add shellinertia support for primitives: sphere, capsule, cylinder, ellipsoid, and box.
PiperOrigin-RevId: 661407997
Change-Id: Icddac58c540c71ea26ac7a3be874788443bd1122
2024-08-09 14:40:13 -07:00
Alessio Quaglino ec43ec7c30 Remove hard-coded nPOS and nVEL from mjCModel.
PiperOrigin-RevId: 661370196
Change-Id: Ib2c1876dfea55dbf496e2358000f24bbde29fc52
2024-08-09 12:53:55 -07:00
Alessio Quaglino da15aa6a0e Improve error message for fullinertia and orientation specifiers.
Fixes #1888.

PiperOrigin-RevId: 661359190
Change-Id: Ibe38e88024b4a43922352b42347abf1026f168a2
2024-08-09 12:20:27 -07:00
Kyle Bayes 1c9d609b5b Make mj_gjkPenetration have the same signature as LibCCD penetration functions.
PiperOrigin-RevId: 661256774
Change-Id: If0ae95e27900a9d7b9c63f189837f1315fbbb987
2024-08-09 07:40:17 -07:00
Taylor Howell 2c56946547 Increase mjVERSIONSTRING to 3.2.3 after release.
PiperOrigin-RevId: 660891033
Change-Id: I2bda69d11cab60a83b0c77bb53214240eacaea62
2024-08-08 10:31:57 -07:00
Taylor Howell 82c27165f2 mjQUICKSORT uses std::sort with C++.
fixes #1638

PiperOrigin-RevId: 660887790
Change-Id: Ia3b493feda98b246d963aa749bc81b96c42fddaa
2024-08-08 10:24:34 -07:00
Gabe Oppenheimer ebc48d2783 Update the MuJoCo version to v3.2.2 following the 3.2.1 release.
PiperOrigin-RevId: 660036707
Change-Id: I7e649e5a0ce6db863bcb99dc4fc1aa851b3f5140
2024-08-06 11:39:30 -07:00
Kyle Bayes a1d9b47e2f Initial (unoptimized) implementation of EPA.
PiperOrigin-RevId: 659938320
Change-Id: I72c6c6bd7504bce36e4788d90b06b2cb3849b4db
2024-08-06 06:53:55 -07:00
Nimrod Gileadi 4dc8f884de Check for texid >= 0 before accessing texture arrays.
PiperOrigin-RevId: 659567553
Change-Id: Ia4aaa85b85e3f27e632c03a9f50b10894d29a97b
2024-08-05 08:47:50 -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
Nimrod Gileadi 6a8e28f0e9 Prevent integer overflow when computing texture sizes and allocating memory for them.
Correctly check for failed allocations when resizing std::vector

PiperOrigin-RevId: 659488680
Change-Id: I7bf4c0b416e96eda2baec32b21be78456604f4b0
2024-08-05 02:58:46 -07:00
Nimrod Gileadi ff5d339e48 GMSH loading: Check that std::stoi isn't out of range.
PiperOrigin-RevId: 659485119
Change-Id: I584ba33f87dbe3b87a8c4fb90feb8963106115da
2024-08-05 02:41:19 -07:00
Gabe Oppenheimer d538bf994d Update version to 3.2.1 following the 3.2.0 release.
PiperOrigin-RevId: 658412236
Change-Id: I4bd6ccb5dee18059eb6fc0d187afe62598845793
2024-08-01 08:35:42 -07:00
Nimrod Gileadi 70a3a541ea Unpoison destination arena when copying mjData.
PiperOrigin-RevId: 658312528
Change-Id: Ie6d3497793ef70b89eaa64dcc7aed4130678f06c
2024-08-01 01:38:14 -07:00
Alessio Quaglino b341bd391d Fix a bug with mjs_delete functions.
PiperOrigin-RevId: 657615906
Change-Id: Ic70eaa9a5c20337db3897cf882a60e9d94f2869b
2024-07-30 09:13:57 -07:00
Yuval Tassa 24a555062d Rename mjDSBL_AUTORESETNAN to mjDSBL_AUTORESET.
- Expose in MJCF.
- Add documentation.
- Improve handling in simulate.

PiperOrigin-RevId: 657606140
Change-Id: I6a27c2f4842d7d4ae32642f2a6255e5f8f1f605a
2024-07-30 08:41:59 -07:00
Copybara-Service 123a01bd83 Merge pull request #1833 from JewelryForge:main
PiperOrigin-RevId: 657249579
Change-Id: I11b9602ea685b22d0cc61add9e90e7a5c68559dd
2024-07-29 10:36:39 -07:00
Alessio Quaglino 6928e09f36 Small performance improvement: Parse body once during replicate.
PiperOrigin-RevId: 657227162
Change-Id: I5b60c25ab4634a44ed0474fdbf22e676bcb8f6d7
2024-07-29 09:32:40 -07:00
Yuval Tassa a4bd2bec0a Skip disabled actuators in mjd_actuator_vel.
Fixes a bug where the derivative of the actuator force with respect to the generalized velocities (used in implicit and implicitfast integrators) was failing to take into account disabled actuators.

Fixes #1838

PiperOrigin-RevId: 657193960
Change-Id: Id8c0ab863a39e2a01cd2703774f460e9731b4807
2024-07-29 07:31:58 -07:00
Alessio Quaglino 3f0749a0f7 Do not remove elements that contain user errors when detaching a subtree.
PiperOrigin-RevId: 657190780
Change-Id: I073a437013f80596a341f7b80bed991536efeb43
2024-07-29 07:19:12 -07:00
Kyle Bayes 5ac5cfb618 Support directories in VFS via mj_addBufferVFS.
PiperOrigin-RevId: 655286683
Change-Id: I846376a0571d8df28d979beb5981a0cbccd7a04f
2024-07-23 13:39:18 -07:00
Kyle Bayes 2746cb8559 Support FilePaths instead of raw strings in XML code.
PiperOrigin-RevId: 655177026
Change-Id: I55b055551384b01ba7a4baa5d75fbe3329b7d25d
2024-07-23 08:36:53 -07:00
Tom Erez 33e5960653 Allow multiple textures per material in MJCF.
PiperOrigin-RevId: 654795013
Change-Id: I418b72533484d00accaf801a342aa183e602a2d0
2024-07-22 09:57:51 -07:00
Alessio Quaglino e79efa60d6 Reset tree indices before recompiling.
Fixes #1822.

PiperOrigin-RevId: 654762203
Change-Id: I7f656f7dad376d4899229a8741315c8f821bfa56
2024-07-22 08:30:29 -07:00
Saran Tunyasuvunakool f62792594f Add a new disable flag mjDSBL_AUTORESETNAN.
PiperOrigin-RevId: 654677473
Change-Id: Id92383fe413729bf6697353aa6e0bc8a946ec7e8
2024-07-22 03:22:41 -07:00
Chengrui Zhu cdd8531290 Fix typos and indents. 2024-07-22 13:45:15 +08:00
Kyle Bayes b3f79e561d Fix bug in pre-counting equality constraints.
PiperOrigin-RevId: 654031345
Change-Id: If8c660b3e6fed78d8fd8de470f1cf2a709ac1244
2024-07-19 09:33:59 -07:00
Tom Erez 796173170c Add support in mjModel for tagging textures with different roles, and use the slot index of a texture to designate its role.
PiperOrigin-RevId: 654030065
Change-Id: I34a5b132a7f91a6bb8f260500c1b9c128a03b596
2024-07-19 09:29:22 -07:00