Commit Graph

656 Commits

Author SHA1 Message Date
Alessio Quaglino e6bf6fc327 Fix a bug in the ellipsoid SDF gradient.
PiperOrigin-RevId: 619512430
Change-Id: Ia4c2f01d1767f36313177334ceda02d3a9e2e495
2024-03-27 06:35:40 -07:00
Google DeepMind 4f0293c6cb Added support for msh2.2
Now we can load flex with format 2.2 binary and ASCII.
There are two different parsing strategies. One for gmsh app and the other is for ftetwild.

Used the shark model from Scanned Objects by Google Research:
https://app.gazebosim.org/GoogleResearch/fuel/models/Weisshai_Great_White_Shark

PiperOrigin-RevId: 619229499
Change-Id: I6eb876afcbc8a00631914b093c45bde10c0caaf6
2024-03-26 10:12:13 -07:00
Yuval Tassa 4d2aa46e56 Rename mjmDefault -> mjsDefault
PiperOrigin-RevId: 619180662
Change-Id: Id7cedf82fbb022f08accc7c9a547495ed8eecba0
2024-03-26 07:20:03 -07:00
Yuval Tassa fa8893b443 Improve hash function for names.
PiperOrigin-RevId: 619173787
Change-Id: I7889ea71ebe7bdbe682042842c521d6631521a35
2024-03-26 06:51:31 -07:00
Kyle Bayes 709719911e Make SameVector return early.
PiperOrigin-RevId: 619128273
Change-Id: Ic47613b8322b9ff5a6a1f557cc9626a20aaee794
2024-03-26 03:19:30 -07:00
Alessio Quaglino 357ff8bbdc Remove mjCAlternative and user_objects dependency from xml_urdf.
PiperOrigin-RevId: 618832482
Change-Id: I626bb956cd3eb35317811b9b577cc7db128262ea
2024-03-25 07:21:03 -07:00
Matthew Bennice 7875e93fea Improve error text when a mesh face references an invalid vertex.
PiperOrigin-RevId: 618715730
Change-Id: I28fae1e1570d359db4be98e9c5b7713169eaf34f
2024-03-24 20:59:16 -07:00
Yuval Tassa bb42ff1657 Fix order of enable flag strings. Before this change, using the UI to toggle the "InvDiscrete" and "Sensornoise" flags would toggle the opposite flag.
PiperOrigin-RevId: 618658133
Change-Id: I35d4b9da2fdf68fed24efd518a30af60d3a806eb
2024-03-24 13:13:21 -07:00
Yuval Tassa 4660a297d1 rename mjspec api structs and functions mjm -> mjs
PiperOrigin-RevId: 618017976
Change-Id: I5f790167e5ca670f8d5f92e8e1c920db8d236144
2024-03-21 18:04:50 -07:00
Alessio Quaglino c3fb8e7f35 Do not attach elements not referenced in the subtree.
PiperOrigin-RevId: 617849280
Change-Id: I391fe7c00f67d020d7394ddd31219d727b2eaa94
2024-03-21 08:22:03 -07:00
Alessio Quaglino b0daccc234 Allow meshes with flipped faces if exactmeshinertia is false.
Fixes #1529.

PiperOrigin-RevId: 617824308
Change-Id: I926c385475dd79f07e88fe1925ecbb2adb4f8917
2024-03-21 06:36:07 -07:00
Alessio Quaglino 07da7336e8 Set mesh visual flag regardless of discardvisual.
PiperOrigin-RevId: 617428859
Change-Id: I427d888e6caa2fe1ae6597ca7165c600c9779cc7
2024-03-20 01:15:52 -07:00
Alessio Quaglino cc85a38f3c Add mjm_attachBody to the C API.
PiperOrigin-RevId: 617207000
Change-Id: I1fe59ba0d79938a4a383b115997c31dd6c71b8e5
2024-03-19 10:01:00 -07:00
Alessio Quaglino 372aa021d0 Add copy constructor and assignment to mjCModel.
PiperOrigin-RevId: 616850780
Change-Id: I7fedab2efa2a90fd7ce952eac4e195f77c5ff5bc
2024-03-18 09:25:27 -07:00
Nimrod Gileadi de918a8b2d Small cosmetic fixes to MakeBVH.
Remove the index member of BVElement, since it's redundant for the purpose of sorting. BVElement is now 32 bytes instead of 40, which should make things a bit better, as this data gets moved around during MakeBVH. Unfortunately, this has no measurable effect on the benchmark.

PiperOrigin-RevId: 616806520
Change-Id: I3b8a28c42a4a21dc25985e63ac57764fdb669afa
2024-03-18 06:19:33 -07:00
Alessio Quaglino acaf86a96f Fix input array size in mju_mulMatMat3.
PiperOrigin-RevId: 616802192
Change-Id: I4dbc07d392b23a7014331ab850b685c1b82d3dcf
2024-03-18 06:00:45 -07:00
Yuval Tassa dd2580e546 Add internal functions for 3x3 matmul.
PiperOrigin-RevId: 616749614
Change-Id: I7f3ac2ffc826076b6c97424324f03ecd9ccd4655
2024-03-18 01:44:10 -07:00
Kyle Bayes 74d3d8cb4e Cache OBJ files in MuJoCo compiler.
PiperOrigin-RevId: 616211896
Change-Id: I3b765f4529957914e6154f0e62ef36fd9df93c96
2024-03-15 12:32:06 -07:00
Yuval Tassa bf66801bc9 Move printing of model BVH data to the end, make it more compact.
PiperOrigin-RevId: 616186922
Change-Id: Id6368a5efd831698f182fe97251b9608312c663c
2024-03-15 11:10:15 -07:00
Nimrod Gileadi c5aa22b177 Speed up MakeBVH.
1. Avoid creating unnecessary temporary vectors for the left and right sides of the recursive call, since std::nth_element already splits the array in the right way.
2. Filter contype and conaffinity before calling MakeBVH. This only affects the top level of the MakeBVH recursion.
3. Avoid repeatedly computing mju_rotVecQuat for each element at each nesting level.

This is roughly a 2x speedup.

PiperOrigin-RevId: 616152673
Change-Id: I6ce7d99cd4a923c43156beb3f2493c649602260e
2024-03-15 09:24:40 -07:00
Kyle Bayes c7a8b104f9 Add modified callback for VFS resource provider.
PiperOrigin-RevId: 616152275
Change-Id: I417f9b204eaa1eb9fc68a15927f86031dcd20575
2024-03-15 09:23:29 -07:00
Kyle Bayes c42868a91b Update logic for OS filesystem timestamps for caching.
PiperOrigin-RevId: 616138153
Change-Id: I0ce966546bc4af04e57b983e27bbd75a94377237
2024-03-15 08:31:56 -07:00
Kyle Bayes 9fef77193f Fix V -> B typo in lookup table for encoding Base64.
PiperOrigin-RevId: 615968363
Change-Id: I1dae697462afcae48442610b1fe4acab93b6d62d
2024-03-14 18:29:21 -07:00
Alessio Quaglino bda03af49a Add childclass support to frames.
PiperOrigin-RevId: 615487831
Change-Id: I0e4d2efd52211701b4286a0b0de84424470a3a47
2024-03-13 11:31:22 -07:00
Kyle Bayes 0d16587135 Don't read from file until mju_readResource is called.
PiperOrigin-RevId: 615434757
Change-Id: I96a1e77f74203e91bc62dc24ac9225810fcacb20
2024-03-13 08:55:54 -07:00
Alessio Quaglino 693e3c66c8 Add copy constructors and assignments to user_objects.
All of the constructors and assignments operators are declared by this CL, but only those that are currently used are implemented here.

PiperOrigin-RevId: 615369559
Change-Id: I9f8cc4a7cd2070362baba04f2af4c5567a696596
2024-03-13 04:50:05 -07:00
Alessio Quaglino c418139fec Add copy constructor to mjCBody.
PiperOrigin-RevId: 615050891
Change-Id: I420e19a0444e93e5ec99da10f5cc20b429802d3e
2024-03-12 08:33:35 -07:00
Alessio Quaglino 93cbdaee07 Move mjC objects attributes to parent classes in user_objects.
This is in preparation of adding copy constructors for all of the objects.

PiperOrigin-RevId: 615014168
Change-Id: I24801d71d74dd6756167a6c438f9573825a396b5
2024-03-12 06:06:51 -07:00
Alessio Quaglino 8413a615d7 Add copy constructors to body subelements.
PiperOrigin-RevId: 614665384
Change-Id: I1ad2b644cf9816fb9490b5634c16e95f360a8684
2024-03-11 08:00:10 -07:00
Yuval Tassa b1a941db8b Add special handling for perturbations applied to static bodies.
These bodies have `body_invweight0 == 0` (infinite mass) and no degrees of freedom (identically 0 Jacobians). This was breaking some assumptions of the perturbation code which assumed perturbation applied only to moving bodies and led to very large forces/torques being applied. While these huge forces had no effect on the dynamics, they were reported by sensors, leading to unreasonable sensor readings.

PiperOrigin-RevId: 614398354
Change-Id: If5efe1c9e57e2be28af33d109679db8b3129da7f
2024-03-10 05:34:55 -07:00
Alessio Quaglino 655e3d0914 Renamed Model to Spec in C API function names.
PiperOrigin-RevId: 613922860
Change-Id: Ic47a83aa33b57ef96bd742088442e6237282ee92
2024-03-08 07:05:44 -08:00
Alessio Quaglino ef3cb7ec2e Renamed mjmModel to mjSpec.
PiperOrigin-RevId: 613516063
Change-Id: I09e360d3eba2accba2e260ec4754b0879b12892f
2024-03-07 02:48:32 -08:00
Meghha Dhoke 106453fa2b Updated version number to be (v3.1.4) ahead of current release (v3.1.3)
PiperOrigin-RevId: 613236845
Change-Id: I3ee759493f27cfa1e367c71e3e073b54738b73d4
2024-03-06 09:07:25 -08:00
Alessio Quaglino 9ac048e262 Add recompilation test to user_api_test.
PiperOrigin-RevId: 613192683
Change-Id: Ibb44e1c2d63ac0afb7b5f3a15dff26378deb6c82
2024-03-06 06:27:28 -08: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
Kyle Bayes 31384bdfeb Speed up String2Vector.
PiperOrigin-RevId: 612767185
Change-Id: I4a4de5e03bbd6653be7ccb3e730ad64a335e17b0
2024-03-05 02:50:26 -08:00
Alessio Quaglino 1bd44e73bb Replace mjCModel with mjmModel in mjXBase.
PiperOrigin-RevId: 611762880
Change-Id: I22254689b6cbf10fe7b61f9742b6ffd6c2074477
2024-03-01 03:38:28 -08:00
Alessio Quaglino 8f1ea05bef Add disc mesh generation to user_flexcomp.
PiperOrigin-RevId: 611462985
Change-Id: I0fc195d8733172f5f4347b04b5de0edfdd12613d
2024-02-29 07:24:47 -08:00
Alessio Quaglino 9e1d7d6ab8 Fix typo in flex and composite error message.
PiperOrigin-RevId: 611115238
Change-Id: Iadb9b4b078e60bca15184f3435380eb67b2da8a9
2024-02-28 08:45:11 -08:00
Kyle Bayes b2bd377bad Clean up mjCModel definition.
PiperOrigin-RevId: 611102699
Change-Id: I64a3927c30f16764742966f4c5e1e0e579af5f50
2024-02-28 07:58:31 -08:00
Alessio Quaglino 478ce0c8d8 Use previous edge length when setting the position of a cable body.
Fixes #1440.

PiperOrigin-RevId: 610690343
Change-Id: I0d5288e68069d1117c0c674530e0644960bab06c
2024-02-27 02:55:14 -08:00
Alessio Quaglino 1f2d673c7b Add missing global fields to mjmModel.
PiperOrigin-RevId: 610415124
Change-Id: I07f284804bf73cb67703597973b50b8c00ea8deb
2024-02-26 08:25:08 -08:00
Yuval Tassa 8679c9fc59 Fix null pointer deref for unknown class names.
PiperOrigin-RevId: 610391077
Change-Id: I5abd62ff46e31e788f06fe111adb3c25287d4fdc
2024-02-26 06:38:52 -08:00
Vyankatesh 063edf5a09 corrections 2024-02-26 12:03:42 +05:30
Vyankatesh Ashtekar fe9b057dfe minor style corrections 2024-02-25 21:17:44 +05:30
Vyankatesh Ashtekar fad7ed30d2 added function mj_subtreeAngMomMat() 2024-02-25 21:09:11 +05:30
Alessio Quaglino c6a41fbfe6 Copy default spec before assigning defaults.
PiperOrigin-RevId: 609766747
Change-Id: I79ebff62928ac2ffa5133020ee8bd001b68cdcd3
2024-02-23 10:24:13 -08:00
Alessio Quaglino ce52047c6f Remove column = -1 from error messages.
PiperOrigin-RevId: 609664538
Change-Id: I1cf27cbd0812d1d88d53724ae416a0b618140acc
2024-02-23 02:40:23 -08:00
Alessio Quaglino c248beb7e2 Remove name and classname from mjmWrap.
PiperOrigin-RevId: 609563968
Change-Id: Ic69b95412ec5914fb5a8dcd134c7e6e733bc05b0
2024-02-22 18:14:33 -08:00
Alessio Quaglino 0ae9ba37f9 Replace PointToLocal with operator overload in mjCDef.
PiperOrigin-RevId: 609376948
Change-Id: Id69909d06ab48824a9cbe0d5a305e8f8b72a193d
2024-02-22 08:12:52 -08:00