Commit Graph

320 Commits

Author SHA1 Message Date
Alessio Quaglino 3b2dd06c54 Add compiler C API for mjmSite.
PiperOrigin-RevId: 604573450
Change-Id: I6ba7fcece0942ddc0d109413ba5684b2df3fab96
2024-02-06 01:50:47 -08:00
Alessio Quaglino 1ed8694dbe Replace xmlpos with info string for mjCError.
PiperOrigin-RevId: 603759456
Change-Id: I0d86d8e61e31a70da77169107268728d6c052778
2024-02-02 12:34:52 -08:00
Alessio Quaglino b3f93d436b Convert mjmStruct to a C-struct.
PiperOrigin-RevId: 603357871
Change-Id: I27918b0030fc6a589c361cad965611adc3bf7247
2024-02-01 06:57:47 -08:00
Alessio Quaglino 7a98038e88 Move mjCSite attributes to mjmSite struct.
PiperOrigin-RevId: 603051589
Change-Id: I31eeeccffa15b96e7393b8e64f6be8c964fc5948
2024-01-31 08:07:48 -08:00
Yuval Tassa e143b3dbc0 Allow height-field elevation data to be specified in XML.
PiperOrigin-RevId: 602374498
Change-Id: I2d3364d68876a35799b24aca1051e2f5aebdda75
2024-01-29 06:59:28 -08:00
Alessio Quaglino fb8f77df74 Throw error if qhull is called with NaNs.
PiperOrigin-RevId: 601745538
Change-Id: I590673ca7975e4abc171f98704a6c8f8d08f8327
2024-01-26 06:13:27 -08:00
Alessio Quaglino 076db5d366 Copy face_ into facetexcoord_ if not specified and needed.
PiperOrigin-RevId: 601732448
Change-Id: Iffe01076db22201dba2611ea36174f808ae00c1e
2024-01-26 04:54:43 -08:00
Kyle Bayes 4f53d9a0d7 Add AddVector and GetVector to user cache.
PiperOrigin-RevId: 601485067
Change-Id: I1a31f15c2495de4f057316022dcddf4df39afd64
2024-01-25 10:13:13 -08:00
Kyle Bayes aede8cf5cf Rename user_asset_cache to user_cache.
PiperOrigin-RevId: 601097322
Change-Id: Iea3d6481cd214028ef63ed72868999ecb0b1eeb4
2024-01-24 06:05:56 -08:00
Kyle Bayes a1ddbdf7f8 Add an implementation of a cache for assets for compilation speedups.
PiperOrigin-RevId: 599850003
Change-Id: I83e299e127058a5657d7b262aa98d36451b530f6
2024-01-19 09:04:01 -08:00
Kyle Bayes 71b0561758 Clean up formatting issues in user_objects.h
PiperOrigin-RevId: 599127766
Change-Id: If752c00038818fb21476eb98be891ead467aad56
2024-01-17 04:21:10 -08:00
Alessio Quaglino 1e2e0b3053 Remove all visual-only assets if discardvisual is selected, not only the geoms.
PiperOrigin-RevId: 598598250
Change-Id: I12e60ce41ad436d037b4877d197decf6bdce0fc8
2024-01-15 06:39:25 -08:00
Alessio Quaglino acf698e2df Store pointer to index in mjCBoundingVolume if possible.
PiperOrigin-RevId: 598592242
Change-Id: I8dc20a8d8a9a0e967688839fa22d75263c226958
2024-01-15 06:04:20 -08:00
Alessio Quaglino cab1c6bb39 Preallocate mjCBoundingVolumeHierarchy and avoid copies during MakeBVH.
PiperOrigin-RevId: 598579741
Change-Id: Iac154affa6ee22994c571f2ec00ac602bfe7f4d6
2024-01-15 04:48:44 -08:00
Alessio Quaglino 8a9b041388 Replace objid with obj pointers.
This in preparation of adding functions to remove/add elements after compilation.

PiperOrigin-RevId: 597286844
Change-Id: I940103ade986c8d057db8cc1e9a98c073ddfab98
2024-01-10 10:20:47 -08:00
Alessio Quaglino 889353dfa8 Replace meshid and hfieldid with mjCMesh and mjCHField pointers in mjCGeom.
PiperOrigin-RevId: 597279837
Change-Id: I45ca00c70c13cd5bddb3385a0c60388fb166527c
2024-01-10 09:56:54 -08:00
Nimrod Gileadi 371da98d97 Avoid dynamically generated strings from being used as format strings in mjCError and mjXError.
PiperOrigin-RevId: 597198372
Change-Id: I2f159436091c03c7454545877cd5f7e2383cd7c8
2024-01-10 03:20:48 -08:00
Alessio Quaglino 63ec34f9f8 Add plugins to flex parent body if there are pinned vertices.
Fixes #1270.

PiperOrigin-RevId: 595429578
Change-Id: Ifc61d4bde4dd3c6b4d4a09106152de1d24e71ef0
2024-01-03 09:53:22 -08:00
Kyle Bayes 9f6be3135e Modify mjListKeyMap to be a fixed-size array, and add internal object_lists variable to mjCModel to remove redundant code.
PiperOrigin-RevId: 590997348
Change-Id: I5f4d7de605f44d40a75eb1e9ceec208325fa3be5
2023-12-14 11:12:01 -08:00
Yuval Tassa b22919543d Fix bugs related to saving of <statistics> values.
Before this change:
- User-modified values of `mjModel.stat.{meanmass, meaninertia}` would not be saved to XML.
- Non-user-modified values of `mjModel.stat.{meansize, extent, center}` would always get saved to XML.

After this change values are saved to XML only if provided by the user, either in the XML or by changing values in `mjModel` before saving.

PiperOrigin-RevId: 589473351
Change-Id: I4dcf4892ef61c35edf424226e731232d861bad8d
2023-12-09 16:06:39 -08:00
Alessio Quaglino a006b15958 Add map from objects names to their index.
Also some minor cleanup of repeated code in user_model.

PiperOrigin-RevId: 589135294
Change-Id: I16f22c4dbdde961cedc042af3bdc9d3577d33459
2023-12-08 08:14:16 -08:00
Alessio Quaglino 623201ec76 Throw error if scale attribute is used with an SDF.
Fixes #1210.

PiperOrigin-RevId: 589101807
Change-Id: I3f2796de3438fbcdaf9221bddc5c9bd82aedb7cb
2023-12-08 05:41:22 -08:00
Alessio Quaglino 1db0a9946f Fix frame accumulation order for <frame> meta-element.
PiperOrigin-RevId: 588803425
Change-Id: Id0289c34d1a6cfb6007540a29cc1f32d879e43ed
2023-12-07 08:37:20 -08:00
Alessio Quaglino d12fe594d9 Add suffix to duplicated assets.
PiperOrigin-RevId: 588775467
Change-Id: I3a0d2a14601cf018b0c8c56728bd3ae22adb8ec2
2023-12-07 06:46:51 -08:00
Yuval Tassa 762371c3e4 Add kv damping attribute to position and intvelocity actuator shortcuts.
PiperOrigin-RevId: 588377097
Change-Id: I8ded2ff982e52ed8673019979e29b706ef65c743
2023-12-06 04:28:30 -08:00
Matthew Bennice c0b7b9873d Store paths for hfields, textures, and skins similar to meshes.
PiperOrigin-RevId: 587283093
Change-Id: Ie6d8d2ecb185697a27d1b6f7fca1312df006af12
2023-12-02 03:51:25 -08:00
Yuval Tassa 51d80564fa Don't initialize plugins during model compilation.
PiperOrigin-RevId: 585701389
Change-Id: I4e5e34276f404abadf6f5d4d9764ca717304ee34
2023-11-27 11:01:08 -08:00
Yuval Tassa 21334ea704 Delete local frame members from MJC objects.
PiperOrigin-RevId: 585629699
Change-Id: I12dbd235dee49223fa7b1a097f04561da69550a0
2023-11-27 06:07:53 -08:00
Alessio Quaglino eb9568a48b Add frame element to MJCF.
PiperOrigin-RevId: 585598244
Change-Id: I4c06be3dd586dab5a4458f05faaf1e7f2b615458
2023-11-27 03:32:18 -08:00
Nimrod Gileadi f2025c6abf Allow plugin actuators to have activation state.
Accept new attributes on the plugin/actuator tag:
  - dyntype
  - dynprm
  - actlimited
  - actrange
  - actearly

This addresses some of the requests in #1098.

PiperOrigin-RevId: 584866281
Change-Id: I4f7559e446888216093efba4ced9119cfc0528a4
2023-11-23 05:14:03 -08:00
Alessio Quaglino ffca553f64 Do not use the inertia box for volume computation.
PiperOrigin-RevId: 582319067
Change-Id: I347d820f48faab15b609bcfc8295b07bd2d0f7ed
2023-11-14 07:46:33 -08:00
Alessio Quaglino 19de607ec8 Undo incorrect change in height field processing.
PiperOrigin-RevId: 579502934
Change-Id: Id1fba8fe29a8eb4d4f0358173b34093401e6230e
2023-11-04 12:33:21 -07:00
Alessio Quaglino 549fdddf3d Fixed a bug with height fields AABB.
PiperOrigin-RevId: 579488048
Change-Id: I69a2d05f922b58947b1d468b5b31a4743d375d71
2023-11-04 10:28:00 -07:00
Alessio Quaglino 50843cad30 Add defaults to SDF plugin attributes.
Expose diameter and number of teeth for the gear SDF.

PiperOrigin-RevId: 577779297
Change-Id: Iec5890ab7f39080b395cf06a76f9c2216f4f39ed
2023-10-30 03:09:25 -07:00
Nimrod Gileadi f8c5ad2ba8 Check for errors when calling std::stod in XML loading.
PiperOrigin-RevId: 576608985
Change-Id: I148ca67d8960d73c281df2d6f2440d47940a6369
2023-10-25 12:26:43 -07:00
Nimrod Gileadi 97d99c84ce Delete the temporary mjData if model reference validation fails.
PiperOrigin-RevId: 575852845
Change-Id: I2146dbc510b48c310ac338adcd5d53cb9f38b383
2023-10-23 10:07:55 -07:00
Alessio Quaglino 01a932e052 Fix flex constraint Jacobian for edges belonging to a single body.
PiperOrigin-RevId: 575161094
Change-Id: If4153bcb751cdd6dbdddeb08672f7107c7c5bbc2
2023-10-20 02:49:34 -07:00
Alessio Quaglino 317d6d9ebe Move edge creation after element reordering in mjCFlex.
PiperOrigin-RevId: 574193046
Change-Id: If2fb01b3494d637d4b220d03e7d7d84e4a9f7a2d
2023-10-17 10:28:43 -07:00
Alessio Quaglino d67b8c6251 Add membrane plugin (2D Flex elastic stiffness).
PiperOrigin-RevId: 574109411
Change-Id: I4a701d8189cecf540cd200bd30cb4582f3c7dd43
2023-10-17 04:55:33 -07:00
Alessio Quaglino 110ade1435 Update Solid and Shell plugins to use FlexComp.
PiperOrigin-RevId: 573755821
Change-Id: I3b8d7fb27f0e940038fa9fd2b26ecc746df4f7ac
2023-10-16 03:03:06 -07:00
Yuval Tassa d88675a034 Change the default of <compiler autolimits> from "false" to "true".
PiperOrigin-RevId: 573184793
Change-Id: I24075a8d953d0a3c3ddf65c67e1e18075cd029b6
2023-10-13 05:05:24 -07:00
Alessio Quaglino 5a70ad08ab Add Flex component.
PiperOrigin-RevId: 572830650
Change-Id: I6908228087b7b9683be3506c8d9cdc725ed5dcd5
2023-10-12 10:49:35 +01:00
Alessio Quaglino 77d0400733 Accelerate inertia computation for simple bodies.
PiperOrigin-RevId: 571411319
Change-Id: I82732e95795cc0f0645f8273a1b084f2a9187a75
2023-10-06 12:51:14 -07:00
Yuval Tassa ee78b8f76b Added mjData.eq_active user input variable, for enabling/disabling the state of equality constraints.
Renamed `mjModel.eq_active` to `mjModel.eq_active0`, which now has the semantic of "initial value of `mjData.eq_active`".

Fixes #876.

PiperOrigin-RevId: 570410643
Change-Id: Id03171e751377c7cc453f143abee64239ee2e2ed
2023-10-03 09:32:24 -07:00
Alessio Quaglino 36d2ffe4f2 Specify camera parameters using standard robotics conventions.
PiperOrigin-RevId: 569147555
Change-Id: I3443f95e5de56a17024f5e5c03f33888dd583edb
2023-09-28 05:19:19 -07:00
Saran Tunyasuvunakool 8ed321d469 Rename mesh_assetpathadr to mesh_pathadr and move it to the end of the mesh section.
PiperOrigin-RevId: 568911603
Change-Id: I8f21c3d1cc9c73b6a95292a50f262b1a199d0898
2023-09-27 11:32:10 -07:00
Chengrui Zhu dff0bc2683 Copybara import of the project:
--
3add02bc2e20eb2895fdcaedfdf6be271decb448 by Chengrui Zhu <jewelry.zju@gmail.com>:

correct spelling "Bunding" to "Bounding"

COPYBARA_INTEGRATE_REVIEW=https://github.com/google-deepmind/mujoco/pull/1068 from JewelryForge:main 3add02bc2e20eb2895fdcaedfdf6be271decb448
PiperOrigin-RevId: 568207690
Change-Id: I3262d459bfdbac6ebf097ddffc10c4d74b388946
2023-09-25 07:06:59 -07:00
Alessio Quaglino d3d46e16a4 Remove cloth and rope composites and deprecate loop.
PiperOrigin-RevId: 568168329
Change-Id: Ida4a5236bef74828c7bf59affdc28adea3db53b1
2023-09-25 03:38:43 -07:00
Matthew Bennice 7f8018a3f3 Update XML parsing to store asset path so that assets can be recovered and sent to external renderers
PiperOrigin-RevId: 567347908
Change-Id: I4d8e1abe35be3a67643ff925af709921280856f8
2023-09-21 10:27:52 -07:00
Alessio Quaglino dd5a7115cf Add shell plugin.
- Add bending passive force
- Add two examples (plate and poncho)
- Add stretching constraints for particles using tendons on mesh edges

PiperOrigin-RevId: 566980584
Change-Id: Id0cd8e1084c05560f1008518a8afbd5311d563e2
2023-09-20 09:00:20 -07:00