Commit Graph

230 Commits

Author SHA1 Message Date
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
Kyle Bayes 74d3d8cb4e Cache OBJ files in MuJoCo compiler.
PiperOrigin-RevId: 616211896
Change-Id: I3b765f4529957914e6154f0e62ef36fd9df93c96
2024-03-15 12:32:06 -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
Alessio Quaglino bda03af49a Add childclass support to frames.
PiperOrigin-RevId: 615487831
Change-Id: I0e4d2efd52211701b4286a0b0de84424470a3a47
2024-03-13 11:31:22 -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
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
Alessio Quaglino 9ac048e262 Add recompilation test to user_api_test.
PiperOrigin-RevId: 613192683
Change-Id: Ibb44e1c2d63ac0afb7b5f3a15dff26378deb6c82
2024-03-06 06:27:28 -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
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 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
Alessio Quaglino 34d4a69027 Remove user_objetcs and user_model includes from xml_urdf.
PiperOrigin-RevId: 609330384
Change-Id: I19b330e4063d3be4401dcf1b2b957b55e0616037
2024-02-22 04:54:49 -08:00
Alessio Quaglino 5fe3e169ab Remove mjm_finalize.
PiperOrigin-RevId: 609284351
Change-Id: I066332784d8210de6fec5aa718e097c9ef67903c
2024-02-22 01:27:06 -08:00
Alessio Quaglino 7edacd39cd Add engine settings to mjmModel.
PiperOrigin-RevId: 608915453
Change-Id: Ic58566d7a9cdb57e25954caec69f595c8c9ee88a
2024-02-21 02:26:57 -08:00
Alessio Quaglino 042760eba8 Add compiler settings to mjmModel.
PiperOrigin-RevId: 608908314
Change-Id: Id3b0d8c62ca710b5b6d6e423abbbddcb7e7079a1
2024-02-21 01:58:22 -08:00
Alessio Quaglino 78dc5aee9f Remove mjCPlugin from xml_native_reader.
PiperOrigin-RevId: 608546883
Change-Id: Ib529c2756102e4e2185d1d8e9585187c30049011
2024-02-20 03:46:42 -08:00
Alessio Quaglino b77dfc683a Use OnePlugin for parsing Composite and Flexcomp plugins.
PiperOrigin-RevId: 608265172
Change-Id: I053441a9e534d81c4847ad60fe4a3f7dce87350c
2024-02-19 02:02:29 -08:00
Alessio Quaglino d7c47de353 Add mjStatistic to mjmModel.
PiperOrigin-RevId: 607657424
Change-Id: I17f6ef37570651e002258ee2a509fc52d213c0f5
2024-02-16 05:17:35 -08:00
Yuval Tassa 05150546e3 Add inheritrange attribute to position and intvelocity actuators.
PiperOrigin-RevId: 607650147
Change-Id: Ibc1846f89179786d4f93435c3924687b4c5d1432
2024-02-16 04:42:44 -08:00
Alessio Quaglino 5e353efaaf Add mjmModel opaque pointer to C API.
PiperOrigin-RevId: 607619891
Change-Id: Ic1eaaa842438d9c2e19f742deff41967287853f5
2024-02-16 02:21:25 -08:00
Alessio Quaglino 414a67640a Add mjmDef to C API.
PiperOrigin-RevId: 607310534
Change-Id: I530f32c8fd4340dc1006585259a5e05cb4aa62b8
2024-02-15 06:17:58 -08:00
Alessio Quaglino 6f958bc404 Add mjmSkin to C API.
PiperOrigin-RevId: 607295996
Change-Id: I63bf7213d41acbfb98770c097979ce9b889f21ca
2024-02-15 05:09:10 -08:00
Yuval Tassa ddabfb9b6a Clean up handling of auto-limits.
PiperOrigin-RevId: 607266967
Change-Id: Iec8332cc8467ea3c2dc046acf87d221b5af67259
2024-02-15 02:43:53 -08:00
Alessio Quaglino 80a986c0f5 Add mjmBodyPair to C API.
PiperOrigin-RevId: 606997065
Change-Id: Iefc2dff6ae942ce93ca83ec5f5fe9d7ae8bb6a40
2024-02-14 08:40:05 -08:00
Alessio Quaglino c9e7586499 Add mjmHField to C API.
PiperOrigin-RevId: 606933108
Change-Id: I21c895ed3e137dab8f57e2d0bcfb558aae2b971a
2024-02-14 04:12:29 -08:00
Alessio Quaglino 2ee8a4dabd Add mjmNumeric, mjmText, mjmTuple, mjmKey to C API.
PiperOrigin-RevId: 606919327
Change-Id: I477f6cd8beefcb3962238722565e3b398b73446c
2024-02-14 03:10:38 -08:00
Kyle Bayes 266161ee4c Convert mju_openResource to write warnings to a given error string.
PiperOrigin-RevId: 606907392
Change-Id: Ic70e980aa9ba2bdbe1787773f51749b34f74afed
2024-02-14 02:17:40 -08:00
Alessio Quaglino 9ecd700923 Add mjmMesh to C API.
PiperOrigin-RevId: 606642150
Change-Id: Iae69ce8426729b1e2394d9da9f349a2f0f7ccf98
2024-02-13 09:09:59 -08:00
Alessio Quaglino 06505f49f9 Add mjmTexture to C API.
PiperOrigin-RevId: 606543622
Change-Id: I2db743c1c40116f0503329fb1d004d9b041e83e7
2024-02-13 02:09:39 -08:00
Alessio Quaglino 13d6eeacdd Add mjmPair to C API.
PiperOrigin-RevId: 606274243
Change-Id: I15e2a38096a61bc1377a666c96113ae20ce3ed59
2024-02-12 09:25:33 -08:00
Alessio Quaglino b224367a9b Add mjmFlex to C API.
PiperOrigin-RevId: 606264589
Change-Id: Ifd94f5241a3eaaf23653b136cece81c054f43202
2024-02-12 08:48:11 -08:00
Yuval Tassa ab209c41be Align comments in mjm_ structs.
PiperOrigin-RevId: 606214754
Change-Id: I4d5ddd98baf52fc71acc1bfca0b345cafda4ce7f
2024-02-12 04:54:03 -08:00
Alessio Quaglino 4e5b194e88 Add mjmMaterial and mjmFrame to C API.
PiperOrigin-RevId: 606191307
Change-Id: Iaf43f81522029002b28bba14ea046b1c968ab2e7
2024-02-12 02:56:03 -08:00
Yuval Tassa 3601026b1d Refactor handling of auto-limits.
PiperOrigin-RevId: 605972151
Change-Id: If468af2081182787178d805124f2d2c90ee29951
2024-02-10 22:01:13 -08:00
Yuval Tassa cebd2a657e Clean-up user_api.h and user_init.cc
PiperOrigin-RevId: 605967516
Change-Id: Ieaf75d764778d81932b860ca9f16007adc0037a1
2024-02-10 21:21:13 -08:00
Yuval Tassa 230f8c7b63 Increase maximum compiler error message length from 300 to 600.
PiperOrigin-RevId: 605947931
Change-Id: I5564d0e2d6690ee75996a10e05cd6c7eca49f279
2024-02-10 18:51:44 -08:00
Alessio Quaglino 1bd6a32af2 Add mjmEquality, mjmTendon and mjmWrap to C API.
PiperOrigin-RevId: 605853716
Change-Id: Ieb468cdec5a3032200cf1121960408a61bb08fc5
2024-02-10 03:30:31 -08:00