Commit Graph

696 Commits

Author SHA1 Message Date
Alessio Quaglino 7eb8c4b9f4 Set all flex edges to rigid when the flex is rigid.
PiperOrigin-RevId: 629740153
Change-Id: Ib2fb6f64e3d160268d2521d63830f41e44d03b20
2024-05-01 09:06:01 -07:00
Kyle Bayes ad5bee73ef Cache decoded PNG images for hfields and textures in the MuJoCo compiler.
PiperOrigin-RevId: 629738092
Change-Id: Ie1b69a5dcee0695aadb2f02ef3b4d7a73cdf07b4
2024-05-01 08:59:21 -07:00
Mohammad Hamid 131b1745db Added support for GMSH22 surface loading
PiperOrigin-RevId: 629734063
Change-Id: I6a250b81de4e7c8f7520795bfe74a81d719dfb50
2024-05-01 08:44:05 -07:00
Yuval Tassa 1b70907060 Convert user_api header and user_init source files to valid C code.
PiperOrigin-RevId: 629691192
Change-Id: I9be78aca27ae584fff0b733e9015b2bb3b927ca4
2024-05-01 04:53:01 -07:00
Alessio Quaglino ec84ddb5a4 Use plane-convex for plane-sdf collisions, using the marching cube mesh.
PiperOrigin-RevId: 629437563
Change-Id: Ic7fb6ec8a5c6680dd2c0a71baa7cc78636d478b1
2024-04-30 09:30:39 -07:00
Yuval Tassa 6f97f42458 Geoms of type mesh with zero density don't trigger the check for valid mesh volume.
PiperOrigin-RevId: 629416817
Change-Id: I23eaa0d61a703988a4eb96a3cad09e562384035e
2024-04-30 08:12:40 -07:00
Alessio Quaglino 26f23066d1 Add replicate element to MJCF. Fixes #553
PiperOrigin-RevId: 629393578
Change-Id: Ia1db1b9e47eba8868117b0f7b85edcd0cc1b6d79
2024-04-30 06:29:18 -07:00
Alessio Quaglino 618d879904 Make BVH generation robust to very small perturbations.
PiperOrigin-RevId: 629070367
Change-Id: I62b91a572cd59a51ed85e4e97aea53fdb2da1986
2024-04-29 08:06:32 -07:00
Alessio Quaglino d6553ed192 Update contype and conaffinity if fusestatic is true. Fixes #1577.
PiperOrigin-RevId: 628073529
Change-Id: I2fe88736d12ec16d72bbd4dce5d349b930147b50
2024-04-25 07:46:00 -07:00
Yuval Tassa 027c26a153 Improve error reporting of sensorized objects.
Also remove duplication of element name and id from most error messages.

PiperOrigin-RevId: 628065116
Change-Id: Idd962fbab7aeba09e3a70c6c9d044b23db94cf23
2024-04-25 07:13:54 -07:00
Yuval Tassa cbb048ff00 Allow parent targeting for cameras and lights.
PiperOrigin-RevId: 628002614
Change-Id: I047dd3d62cfbc6432a3ec53fe6465afc52ca615b
2024-04-25 02:10:35 -07:00
Yuval Tassa cf433a4ad9 Use enum instead of NaNs for alternative orientation specification.
PiperOrigin-RevId: 627413508
Change-Id: I9f1a682a1533e1a3fa3cac0a462f28ce9b0fa192
2024-04-23 09:32:51 -07:00
Yuval Tassa f457789de1 Improve full inertia user API.
PiperOrigin-RevId: 627399310
Change-Id: Ie2bdc6778e80b2b8127b52c73a3cc4b4755d8e0a
2024-04-23 08:40:01 -07:00
Yuval Tassa 3ddf1b492a Fix control reaches end of non-void function in engine_forward.c
PiperOrigin-RevId: 627104708
Change-Id: I790b2bd22fd83ed616605a35f3e7268e28c73aa6
2024-04-22 11:36:39 -07:00
Yuval Tassa 8ebc9ed2c8 Add mjModel.ngravcomp, number of bodies with nonzero gravcomp attribute.
PiperOrigin-RevId: 627087335
Change-Id: Ie85ae4150962463b8a8c8435fec068c44877aa16
2024-04-22 10:45:43 -07:00
Yuval Tassa 546a27ca72 Fix memory allocation error when memory size is larger than 2G. Fixes #1606
PiperOrigin-RevId: 627058355
Change-Id: Iebef647a0107d1f112a876d705f5b3ea888b4a41
2024-04-22 09:15:46 -07:00
Yuval Tassa caf215e342 Add metallic and roughness scalar attributes to materials.
Rename `light_radius` -> `light_bulbradius`, make the default value 0.02.

PiperOrigin-RevId: 627032170
Change-Id: I1e01e2eca028c0aefc2e7dc384e8b34abac184aa
2024-04-22 07:39:06 -07:00
Yuval Tassa 9aa885aa63 Fix attribute order in mjsDefault.
PiperOrigin-RevId: 626992244
Change-Id: I0755745d2d4a55fbf6c685ad383a5be0842e7984
2024-04-22 04:36:56 -07:00
Alessio Quaglino cc78db41f4 Add mjs_detachBody to C API.
PiperOrigin-RevId: 626947850
Change-Id: I7c897048098ecd4f2247725ef2d378dbd00ef4a0
2024-04-22 01:11:13 -07:00
Alessio Quaglino c331d18a6e Support nested frames in mjs_attachFrame.
PiperOrigin-RevId: 626001651
Change-Id: I3dc52baa6aad875504dd4c7d969a4091f52c4c16
2024-04-18 05:37:12 -07:00
Alessio Quaglino 4a76496533 Compile frames during compilation instead of parsing.
PiperOrigin-RevId: 625717564
Change-Id: Ib82230f6cb423bb3091efd04a7fa0b1411e7cdf1
2024-04-17 09:56:24 -07:00
Yuval Tassa a4c31c09a8 Clean up user_api.h
PiperOrigin-RevId: 625693719
Change-Id: I8e75abb9a38bd45ba7a81938eda3baf68b878d4a
2024-04-17 08:35:37 -07:00
Alessio Quaglino 81feadad5c Add mjs_attachFrame to user_api.
PiperOrigin-RevId: 625648309
Change-Id: I4d6dfc4d38ad6ce688df83eb7cc2c34676076193
2024-04-17 05:25:16 -07:00
Alessio Quaglino 4b6c07cd7d Prevent bodies from overwriting the frame names in xml_native_writer.
PiperOrigin-RevId: 625632369
Change-Id: If3bd048ac40e116fcb97beb3dca3d99826fe4ad0
2024-04-17 04:07:50 -07:00
Yuval Tassa 7c86a02a80 Improve printing of geom/geom contacts.
PiperOrigin-RevId: 625338796
Change-Id: I89267c3512c0ab28c0e1d35c571fd4d4bafa9b43
2024-04-16 08:25:02 -07:00
Alessio Quaglino 961124ab0b Changed semantics of mjCBody::operator+=
PiperOrigin-RevId: 625318655
Change-Id: I0b722bf22125bb0dfb886661e7de5c1638bbe1f9
2024-04-16 07:07:31 -07:00
Google DeepMind f086dc9b4b Better parsing for GMSH2.2
PiperOrigin-RevId: 625267106
Change-Id: Iecf767c43cee1067fdab3859df28050f8a365e2b
2024-04-16 03:23:52 -07:00
Yuval Tassa 0cd28d2423 Add light radius attribute.
Also fix bug: light defaults were not being saved.

PiperOrigin-RevId: 625142278
Change-Id: I8ec3a5a06e9f314e98b7c34346db3c24b34d7e0b
2024-04-15 17:55:15 -07:00
Yuval Tassa 7b3f1a0261 Add mjModel.mesh_scale: scaling applied to asset vertices.
PiperOrigin-RevId: 625083195
Change-Id: I36290282379e57ad23ec771d65d1bd6bf2a75b07
2024-04-15 14:26:06 -07:00
Nimrod Gileadi 9463a8816d Add more validation in gmsh parsing.
PiperOrigin-RevId: 624179874
Change-Id: I423a740d7c2aae617a87ff31329a49b8275bb578
2024-04-12 08:02:49 -07:00
Alessio Quaglino 70f00b05a1 Allow attaching a model to itself.
PiperOrigin-RevId: 623806812
Change-Id: I9b0e36308be754e838790ead8ec717953e4b2350
2024-04-11 06:28:48 -07:00
Gabe Oppenheimer 225619c964 Update MuJoCo internal version to be the external version +1
PiperOrigin-RevId: 623607403
Change-Id: Ia8f6516bb6b2fb6a3ecb8273b59e61667098f308
2024-04-10 14:32:54 -07:00
Yuval Tassa 5a365603f8 Add mju_euler2Quat.
PiperOrigin-RevId: 623469398
Change-Id: Ia86b29a764018cd4c3bc57d23616bed7393081f5
2024-04-10 06:02:50 -07:00
Nimrod Gileadi 7d3b662d5b Check for invalid node tags in gmsh parser.
PiperOrigin-RevId: 621538409
Change-Id: I91ba56b931d815fccd65ae32281bc19ae3a45ee7
2024-04-03 08:56:57 -07:00
Nimrod Gileadi 02a7a8dc11 Fix integer overflow in MSH loading
PiperOrigin-RevId: 621151576
Change-Id: I33f44dcc5d1099502714b384d97c37fe95e72186
2024-04-02 06:11:55 -07:00
Yuval Tassa 5d26b50fce Remove native sensor noise sampling.
PiperOrigin-RevId: 620075316
Change-Id: I6a0a1d63834e7c8bfd290f89d86fea791d794739
2024-03-28 15:33:03 -07:00
Yuval Tassa 47ba72ea59 Add actuatorgravcomp joint attribute, to treat gravity compensation forces as applied by actuators, rather than passive buoyancy.
PiperOrigin-RevId: 620049593
Change-Id: I2c8a9dc152c087b408e4f904838034271a7dd910
2024-03-28 14:01:52 -07:00
Yuval Tassa a8db22f0d0 Add local vector clamping function in engine_forward.c
PiperOrigin-RevId: 619948315
Change-Id: Ie4b92f5c8facaa2c169f01982940e84a0248b9c9
2024-03-28 08:57:34 -07:00
Alessio Quaglino 96f923282c Add SetNuser function.
PiperOrigin-RevId: 619892712
Change-Id: Id528620d6af19976d965f34a3be95a48a1f9c0b2
2024-03-28 05:26:41 -07:00
Alessio Quaglino dfe2b75378 Convert mjElement to struct rather than opaque pointer.
By making mjElement the parent of mjCBase, mjCModel, and mjCDef, this CL enables safer casting using static_cast instead of reinterpret_cast and C-style casting.

PiperOrigin-RevId: 619526291
Change-Id: Ifa2b4bd3ecd95bade61f41a7005c62212f456c00
2024-03-27 07:37:49 -07:00
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