Alessio Quaglino
1a4ddca6cf
Make mjs_findElement find meshes by file name.
...
PiperOrigin-RevId: 780150428
Change-Id: Ie500062fa8cca755683b66540e84ede588d7c331
2025-07-07 09:51:33 -07:00
Alessio Quaglino
af7d20c035
Change mjs_nextChild to be DFS to match XML parsing.
...
PiperOrigin-RevId: 778915232
Change-Id: I5e290f47b7d2530597bb6c85b66ff2ae807e5510
2025-07-03 10:07:13 -07:00
Alessio Quaglino
69ce5dbd05
Consolidate tree traversal tests in the C and Python APIs.
...
PiperOrigin-RevId: 778883024
Change-Id: I0d30ed011e60a6da7148cebc1f715895fd0c6fd6
2025-07-03 07:25:23 -07:00
Alessio Quaglino
564c51ddb9
Check for duplicated names when setting element names.
...
PiperOrigin-RevId: 778827590
Change-Id: I77a208c1571cf735cae80840ea830aa347681f71
2025-07-03 03:20:55 -07:00
Alessio Quaglino
a2acd2d4ed
Rename detach_default and detach_body to delete in the mjSpec bindings.
...
PiperOrigin-RevId: 773674361
Change-Id: I3977060e19e9ff0afc65ad91693c017958576b78
2025-06-20 06:23:30 -07:00
Alessio Quaglino
0488d9f4eb
Replace mjs_detachBody and mjs_detachDefault with mjs_detach.
...
In a follow-up, mjs_detach will be changed to only remove without deleting an element.
PiperOrigin-RevId: 773637351
Change-Id: I9ee4d3584ba88ccc225591337cf036bab806e25c
2025-06-20 04:12:27 -07:00
Alessio Quaglino
92bc486558
Make mjs_findElement find textures by file name.
...
This is done if the model is uncompiled and their name is empty.
PiperOrigin-RevId: 772885774
Change-Id: I827d5b679637fa0571cfb0a69833ed688df16304
2025-06-18 05:54:12 -07:00
Alessio Quaglino
d2501eff68
Use procedural model creation in plugin tests.
...
This will be useful for simplifying the mjSpec API for plugins.
PiperOrigin-RevId: 772505558
Change-Id: I8eb57d7e129e0f6430fb4c610a543e0dc0f3b295
2025-06-17 09:30:54 -07:00
Alessio Quaglino
f75772587a
Add functions for setting an mjsActuator to a specific shortcut type.
...
PiperOrigin-RevId: 769049331
Change-Id: If5bb04966bd29a57569a2c17d712b9ae3d33324d
2025-06-09 02:17:02 -07:00
Alessio Quaglino
7a5b55f57e
Expose mjs_resolveOrientation to the Python API.
...
PiperOrigin-RevId: 762571376
Change-Id: I08d8394b24670c7f102356da4234b17f1ba4e05f
2025-05-23 14:36:47 -07:00
Alessio Quaglino
e389872c7d
Add frame property to python bindings.
...
PiperOrigin-RevId: 762452877
Change-Id: I555cec650d04700f6718b4d77a866c821b90685c
2025-05-23 09:24:24 -07:00
Alessio Quaglino
3e9d130092
Add mjs_getPluginAttributes.
...
PiperOrigin-RevId: 752691116
Change-Id: Ib503a99f8d10661b8bf92410ccf471420f924986
2025-04-29 05:19:09 -07:00
Alessio Quaglino
75f196c7ef
Add missing PointToLocal call in mjCPlugin copy constructor.
...
PiperOrigin-RevId: 752486555
Change-Id: I08b14476b9098e6473a4c00918ef3f9a287f35f6
2025-04-28 16:23:45 -07:00
Alessio Quaglino
ec186430ef
Add setting plugin config properties via Python bindings.
...
PiperOrigin-RevId: 747421357
Change-Id: Ie80f1a889f2f6ec457c1e16193fa0694e07d3fe9
2025-04-14 08:07:14 -07:00
Alessio Quaglino
a209134315
Enable procedural plugin activation in Python bindings.
...
PiperOrigin-RevId: 746055614
Change-Id: Idcc2f62fdfeccdca356e3d1acadf168b46a98881
2025-04-10 09:13:21 -07:00
Yuval Tassa
305b68ecbf
Add tests for body.find_all() of joints and geoms, fix error message.
...
Fixes #2525
PiperOrigin-RevId: 742685596
Change-Id: I5f0969967f2490d32e5691983e8d0c363d48a6bd
2025-04-01 07:14:59 -07:00
Alessio Quaglino
157b074116
Add signature to mjSpec and mjModel and use it to perform safe bind to mjModel and mjData.
...
PiperOrigin-RevId: 740378879
Change-Id: If14b326942529494f172e7aedcae30195798b458
2025-03-25 09:37:49 -07:00
Tom Power
be64747166
add mjs_detachDefault to delete a default class from mjSpec
...
PiperOrigin-RevId: 738452369
Change-Id: I5a53a6dc8f89e1e8136aeefc09d7d9b7b7204e1f
2025-03-19 10:31:04 -07:00
Alessio Quaglino
1bf24e9f67
Do not overwrite existing parent frames for worldbody elements when attaching an mjSpec to a frame or a site.
...
PiperOrigin-RevId: 737662046
Change-Id: I7028c21c803c01845ae1d53cb476f7b3df172313
2025-03-17 10:21:38 -07:00
Alessio Quaglino
da04688071
Automatically compile mjSpec in to_xml().
...
Also, move mj_compile from MjModelWrapper to MjSpec.
PiperOrigin-RevId: 737640210
Change-Id: I93d2a31c33eb359452b0d966a29939183b4c5198
2025-03-17 09:21:10 -07:00
Alessio Quaglino
f480a9e985
Add MjSpec.from_zip() constructor.
...
PiperOrigin-RevId: 736871864
Change-Id: Ib6cc189d5912a57e5c505c744a4a1d6ad61d1c84
2025-03-14 08:31:14 -07:00
Alessio Quaglino
51f6aa8b43
Store assets by address instead of value in MjSpec.
...
PiperOrigin-RevId: 733343350
Change-Id: I42ee2a184ebff37a080dace0422bb61e1ba53527
2025-03-04 08:43:27 -08:00
Yuxuan Jiang
2039629457
Expose MjSpec raw pointer via _address
2025-02-26 10:25:55 +08:00
Alessio Quaglino
d1d61925da
Do not delete the world child when doing spec.attach.
...
PiperOrigin-RevId: 730976077
Change-Id: I9aa8133241b45883e605ec80d64ae28af2962680
2025-02-25 12:02:13 -08:00
Alessio Quaglino
441b5c6082
Change MjSpec.default from method to attribute.
...
PiperOrigin-RevId: 730912407
Change-Id: I0147acbd257ecc8b72752a2992a7d4ea6e1b4c07
2025-02-25 09:17:45 -08:00
Alessio Quaglino
7f11a0df12
Add check for height fields size during compilation.
...
Fixes #2427 .
PiperOrigin-RevId: 727805729
Change-Id: Idf3192e5fb238249faaeae6b4fb9de4c55755d96
2025-02-17 04:01:27 -08:00
Alessio Quaglino
5b924fec98
Add support for binding to arrays of mjs element.
...
Fixes #2402 .
PiperOrigin-RevId: 726449592
Change-Id: I0cde44889837a71a222b20cf91fa56568b4af689
2025-02-13 06:01:30 -08:00
Alessio Quaglino
1b4258d274
Change set_default and default to classname in the bindings.
...
Having defaults in the names of the attribute or function names is confusing for the users since the defaults are not re-applied but are only used for writing to XML. The alternative would be to change mjs_setDefault to re-apply them, but this would overwrite any other attribute set by the user so far.
PiperOrigin-RevId: 726431090
Change-Id: I41f4a23e1722e278b0ecc0a00b07db9b384fe994
2025-02-13 04:52:02 -08:00
Copybara-Service
d830691f53
Merge pull request #2291 from AaronYoung5:main
...
PiperOrigin-RevId: 725933976
Change-Id: I207cf272d30e28f00fb4d07bd237385ad4c26a84
2025-02-12 00:16:10 -08:00
Alessio Quaglino
cef5b31a3f
Drop find_ prefix in Python MjSpec methods accessing elements by name.
...
PiperOrigin-RevId: 725594833
Change-Id: Ibf8a9918e98b298751d0ef2e657714e28e5fa460
2025-02-11 05:50:49 -08:00
Alessio Quaglino
4156350708
Add to_file function to save the Spec to a file.
...
Fixes #2415 .
PiperOrigin-RevId: 725161617
Change-Id: I6c374cc7f7cb3f1da1cc0da531dd7e5be5d62b6a
2025-02-10 04:33:14 -08:00
Alessio Quaglino
dec7b661c1
Add mujoco.MjSpec.MjStruct type.
...
PiperOrigin-RevId: 723552214
Change-Id: I8ecb43b4025b532ba8b48e15c9c6a2b350293d20
2025-02-05 10:01:35 -08:00
Alessio Quaglino
6bd88711a8
Add parent to MjSpec wrapper in Python bindings.
...
This keeps track of specs attached with the full attach function `attach`. It does not track fine-grained attach via `attach_body` and `attach_frame`.
PiperOrigin-RevId: 722597081
Change-Id: I56188f1718592128b7033538acc9a40553cbbed2
2025-02-03 04:04:11 -08:00
Alessio Quaglino
904b49848f
Add worldbody assertions in attach tests.
...
This clarifies the difference between attaching a full spec, which converts the worldbody to a frame, and attaching a specific body (or frame).
PiperOrigin-RevId: 721297010
Change-Id: Iff87fe99b81746e6ab3a189a3057b274d3c9a939
2025-01-30 01:35:55 -08:00
Alessio Quaglino
0643017346
Add asset argument to MjSpec constructors.
...
PiperOrigin-RevId: 720628689
Change-Id: I189aa34973e58b9fb87951e34cb923d94e081a55
2025-01-28 10:39:27 -08:00
Alessio Quaglino
5b330ca19c
Change keyword argument asset to include in spec.from_file and spec.from_string.
...
PiperOrigin-RevId: 720611881
Change-Id: I92f5e72cece8d3223bc552ea4f2ef742c47cb8c9
2025-01-28 09:55:48 -08:00
Alessio Quaglino
2546fcefa0
Add mujoco.MjSpec.to_zip()
...
PiperOrigin-RevId: 719003836
Change-Id: I310ac96b0080b3313c325cee76d3bf7f81fa9df0
2025-01-23 14:01:06 -08:00
Alessio Quaglino
6a7a7a5f80
Add the override_assets attribute to MjSpec.
...
When specified, child asset with repeated names will override parent's, rather than throw an error. Default behavior is to override.
PiperOrigin-RevId: 717979621
Change-Id: I18022dc266619b4ba1a8636d1c60f85b0eb5f862
2025-01-21 10:39:02 -08:00
Alessio Quaglino
1412a29dac
Merge child asset dictionary into parent spec during attach().
...
PiperOrigin-RevId: 717939728
Change-Id: I54f8ac87062cf19f55a16af37b777701545ed865
2025-01-21 08:57:09 -08:00
Alessio Quaglino
4bb6aeb19f
Change site and frame attach API.
...
Old API:
```
site.attach(child_spec)
frame.attach(child_spec)
```
New API:
```
parent_spec.attach(child_spec, frame=frame_name_or_object)
parent_spec.attach(site_spec, site=site_name_or_object)
```
This enables accessing the parent object during attach, which will be used in a follow-up CL to automatically append the child assets to the parent.
PiperOrigin-RevId: 717908589
Change-Id: I0fb27e99694c954cb8ba8a8c98484ffd53a4d6db
2025-01-21 07:29:27 -08:00
Silvia Cruciani
4903d5321c
add find_geom property to mjSpec
...
PiperOrigin-RevId: 716225290
Change-Id: Ie6e229b0e802e7df06148f994d598334592e8ad1
2025-01-16 07:20:19 -08:00
Alessio Quaglino
c2138c3fb0
Do not copy the spec during attach.
...
Use a reference count for managing the memory.
PiperOrigin-RevId: 716169486
Change-Id: Id270c4858c17b9250115e9544d5ea143584e2d5f
2025-01-16 03:53:17 -08:00
Alessio Quaglino
05d4c3d670
Add mjs_getParent to retrieve the parent body of an object.
...
PiperOrigin-RevId: 715794859
Change-Id: Ib9792787cdb966f579938dde3f94ebabca8ef1fc
2025-01-15 07:42:43 -08:00
Alessio Quaglino
ba183adb67
Add assets to MjSpec wrapper.
...
This enables associating assets with a spec object.
Also, remove `spec.compile(assets)` and replace it with the `spec.assets` attribute, which must be be set before compile if assets are present.
PiperOrigin-RevId: 714981385
Change-Id: Ic3a33c3b75d3a7e14868622aadb57b2a8461a649
2025-01-13 08:41:51 -08:00
AaronYoung5
0cf5500b6a
Fixed MjSpec introspection with visual.rgba and visual.headlight. Added access to MjSpec.visual.global_.
2024-12-16 14:20:18 -05:00
Alessio Quaglino
644dfc7fb5
Fix assigning bytes to texture data.
...
PiperOrigin-RevId: 706747323
Change-Id: I6b0ee67d4f35db3a149ba8d9979546d3c712bb8b
2024-12-16 10:05:23 -08:00
Baruch Tabanpour
f3b3024291
Add pyink and isort config. Reformat.
...
PiperOrigin-RevId: 704533915
Change-Id: I37e9fd51261bd166b725c7460fc65d02fed2b391
2024-12-09 21:10:50 -08:00
Alessio Quaglino
41968f1527
Support body.find_all("joint") in bindings.
...
PiperOrigin-RevId: 703071822
Change-Id: I6457ca0561c794447cc06aab29dcd0aac82c49a0
2024-12-05 04:54:42 -08:00
Alessio Quaglino
a729acb4fa
Add spec find_sensor, find_actuator functions.
...
PiperOrigin-RevId: 703054696
Change-Id: Ie384f1a31de3ecd9b22b7f4be43234d452e7bb88
2024-12-05 03:42:26 -08:00
Alessio Quaglino
503e5e1815
Change site.attach to accept a spec instead of a body.
...
Add site.attach_body for attaching a body to a site.
PiperOrigin-RevId: 703047770
Change-Id: Ibc1f916f8741872135220461cda7cebc4b418913
2024-12-05 03:10:17 -08:00