mujoco 3.5.0__tar.gz → 3.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mujoco-3.5.0/mujoco.egg-info → mujoco-3.7.0}/PKG-INFO +5 -5
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/CMakeLists.txt +5 -3
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/__init__.py +15 -3
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/bindings_test.py +23 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/callbacks.cc +1 -2
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/MujocoDependencies.cmake +2 -34
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/MujocoLinkOptions.cmake +7 -11
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/constants.cc +1 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/enum_traits.h +4 -1
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/function_traits.h +67 -1
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/functions.cc +1 -1
- mujoco-3.7.0/mujoco/gl_context.py +21 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/indexer_xmacro.h +9 -6
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/codegen/generate_structs.py +2 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/enums.py +13 -10
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/functions.py +206 -1
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/structs.py +142 -45
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/structs_test.py +1 -3
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/mjpython/Info.plist +4 -4
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/mjpython/mjpython.mm +31 -3
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/msh2obj_test.py +1 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/render.cc +0 -19
- mujoco-3.7.0/mujoco/renderer.py +21 -0
- mujoco-3.7.0/mujoco/rendering/classic/__init__.py +16 -0
- {mujoco-3.5.0/mujoco → mujoco-3.7.0/mujoco/rendering/classic}/renderer.py +32 -33
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/CMakeLists.txt +1 -1
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/MujocoLinkOptions.cmake +7 -11
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/simulate.cc +176 -27
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/simulate.h +11 -2
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate.cc +31 -41
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/specs.cc +79 -18
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/specs.cc.inc +1075 -551
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/specs_test.py +102 -3
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/structs.cc +84 -119
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/structs.h +16 -36
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/structs_wrappers.cc +19 -6
- {mujoco-3.5.0 → mujoco-3.7.0/mujoco.egg-info}/PKG-INFO +5 -5
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco.egg-info/SOURCES.txt +3 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/pyproject.toml +5 -5
- {mujoco-3.5.0 → mujoco-3.7.0}/LICENSE +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/LICENSES_THIRD_PARTY.md +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/MANIFEST.in +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/README.md +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cgl/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cgl/cgl.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/CheckAvxSupport.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/FindOrFetch.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/MujocoHarden.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/MujocoMacOS.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/MujocoOptions.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/ShellTests.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/cmake/TargetAddRpath.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/egl/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/egl/egl_ext.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/enums.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/errors.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/errors.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/functions.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/glfw/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/indexers.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/indexers.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/ast_nodes.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/ast_nodes_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/codegen/formatter.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/codegen/generate_enums.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/codegen/generate_functions.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/enums_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/functions_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/mjxmacro.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/type_parsing.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/introspect/type_parsing_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/memory_leak_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/minimize.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/minimize_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/mjpython/mjpython.icns +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/mjpython/mjpython.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/msh2obj.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/osmesa/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/private.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/raw.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/render_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/renderer_test.py +0 -0
- {mujoco-3.5.0/mujoco → mujoco-3.7.0/mujoco/rendering/classic}/gl_context.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/rollout.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/rollout.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/rollout_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/serialization.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/array_safety.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/CheckAvxSupport.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/FindOrFetch.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/MujocoHarden.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/MujocoMacOS.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/SimulateDependencies.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/cmake/SimulateOptions.cmake +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/glfw_adapter.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/glfw_adapter.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/glfw_corevideo.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/glfw_corevideo.mm +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/glfw_dispatch.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/glfw_dispatch.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/macos_gui.mm +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/main.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/platform_ui_adapter.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/simulate/platform_ui_adapter.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/specs_wrapper.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/specs_wrapper.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/io.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/model_modifier.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/optimize.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/parameter.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/plotting.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/residual.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/signal_modifier.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/signal_transform.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/timeseries.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/_src/trajectory.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/py.typed +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/builder.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/defaults.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/base.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/covariance.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/group.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/insights.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/optimization_trace.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/parameter_distribution.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/parameters.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/row.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/signals.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/sections/video.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/covariance.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/group.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/insights.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/layout.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/optimization_trace.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/parameter_confidence.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/parameters_table.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/plot_generic.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/row.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/signals.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/templates/video.html +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/report/utils.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/__init__.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/conftest.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/test_integration.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/test_model_modifier.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/test_parameter.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/test_signal.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/test_timeseries.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/sysid/tests/test_trajectory.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/MJCF_NoRoot.zip +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/MJCF_Root.zip +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/abdomen_1_body.msh +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/model.urdf +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/model.xml +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/msh.xml +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/simple_usd_preview_surface.usda +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/testdata/usd_golden.usda +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/threadpool.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/threadpool.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/camera.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/demo.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/exporter.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/exporter_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/lights.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/objects.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/shapes.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/usd/utils.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/CMakeLists.txt +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/array_traits.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/array_traits_test.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/crossplatform.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/func_traits.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/func_traits_test.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/func_wrap.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/func_wrap_test.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/tuple_tools.h +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/util/tuple_tools_test.cc +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/viewer.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco/viewer_test.py +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco.egg-info/dependency_links.txt +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco.egg-info/requires.txt +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/mujoco.egg-info/top_level.txt +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/setup.cfg +0 -0
- {mujoco-3.5.0 → mujoco-3.7.0}/setup.py +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mujoco
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.7.0
|
|
4
4
|
Summary: MuJoCo Physics Simulator
|
|
5
5
|
Author-email: Google DeepMind <mujoco@deepmind.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/google-deepmind/mujoco
|
|
8
|
-
Project-URL: Documentation, https://mujoco.readthedocs.io/en/3.
|
|
8
|
+
Project-URL: Documentation, https://mujoco.readthedocs.io/en/3.7.0
|
|
9
9
|
Project-URL: Repository, https://github.com/google-deepmind/mujoco
|
|
10
|
-
Project-URL: Changelog, https://mujoco.readthedocs.io/en/3.
|
|
10
|
+
Project-URL: Changelog, https://mujoco.readthedocs.io/en/3.7.0/changelog.html
|
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
14
|
Classifier: Natural Language :: English
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
20
|
Classifier: Topic :: Scientific/Engineering
|
|
21
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
License-File: LICENSES_THIRD_PARTY.md
|
|
@@ -51,6 +51,8 @@ endif()
|
|
|
51
51
|
|
|
52
52
|
include(MujocoLinkOptions)
|
|
53
53
|
get_mujoco_extra_link_options(EXTRA_LINK_OPTIONS)
|
|
54
|
+
list(FILTER EXTRA_LINK_OPTIONS EXCLUDE REGEX "STACK")
|
|
55
|
+
list(FILTER EXTRA_LINK_OPTIONS EXCLUDE REGEX "stack")
|
|
54
56
|
add_link_options(${EXTRA_LINK_OPTIONS})
|
|
55
57
|
|
|
56
58
|
include(MujocoMacOS)
|
|
@@ -84,7 +86,7 @@ if(NOT TARGET mujoco)
|
|
|
84
86
|
if(MUJOCO_FRAMEWORK)
|
|
85
87
|
message("MuJoCo framework is at ${MUJOCO_FRAMEWORK}/mujoco.framework")
|
|
86
88
|
set(MUJOCO_LIBRARY
|
|
87
|
-
${MUJOCO_FRAMEWORK}/mujoco.framework/Versions/A/libmujoco.3.
|
|
89
|
+
${MUJOCO_FRAMEWORK}/mujoco.framework/Versions/A/libmujoco.3.7.0.dylib
|
|
88
90
|
)
|
|
89
91
|
target_compile_options(mujoco INTERFACE -F${MUJOCO_FRAMEWORK})
|
|
90
92
|
endif()
|
|
@@ -92,7 +94,7 @@ if(NOT TARGET mujoco)
|
|
|
92
94
|
|
|
93
95
|
if(NOT MUJOCO_FRAMEWORK)
|
|
94
96
|
find_library(
|
|
95
|
-
MUJOCO_LIBRARY mujoco mujoco.3.
|
|
97
|
+
MUJOCO_LIBRARY mujoco mujoco.3.7.0 HINTS ${MUJOCO_LIBRARY_DIR} REQUIRED
|
|
96
98
|
)
|
|
97
99
|
find_path(MUJOCO_INCLUDE mujoco/mujoco.h HINTS ${MUJOCO_INCLUDE_DIR} REQUIRED)
|
|
98
100
|
message("MuJoCo is at ${MUJOCO_LIBRARY}")
|
|
@@ -191,7 +193,7 @@ findorfetch(
|
|
|
191
193
|
GIT_REPO
|
|
192
194
|
https://github.com/pybind/pybind11
|
|
193
195
|
GIT_TAG
|
|
194
|
-
|
|
196
|
+
d0f1a2168f3335426f544171a3463c36edbd5cc3 # v3.0.3
|
|
195
197
|
TARGETS
|
|
196
198
|
pybind11::pybind11_headers
|
|
197
199
|
EXCLUDE_FROM_ALL
|
|
@@ -56,11 +56,23 @@ from mujoco._constants import *
|
|
|
56
56
|
from mujoco._enums import *
|
|
57
57
|
from mujoco._errors import *
|
|
58
58
|
from mujoco._functions import *
|
|
59
|
-
from mujoco._render import *
|
|
60
59
|
from mujoco._specs import *
|
|
61
60
|
from mujoco._structs import *
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
|
|
62
|
+
try:
|
|
63
|
+
from mujoco._render import * # pytype: disable=import-error
|
|
64
|
+
except ImportError:
|
|
65
|
+
pass
|
|
66
|
+
|
|
67
|
+
try:
|
|
68
|
+
from mujoco.rendering.classic.renderer import Renderer # pytype: disable=import-error
|
|
69
|
+
except ImportError:
|
|
70
|
+
pass
|
|
71
|
+
|
|
72
|
+
try:
|
|
73
|
+
from mujoco.rendering.classic.gl_context import * # pytype: disable=import-error
|
|
74
|
+
except ImportError:
|
|
75
|
+
pass
|
|
64
76
|
|
|
65
77
|
MjStruct: TypeAlias = Union[
|
|
66
78
|
_specs.MjsBody,
|
|
@@ -1881,6 +1881,29 @@ Euler integrator, semi-implicit in velocity.
|
|
|
1881
1881
|
mujoco.mj_readSensor(model, data, 0, delay, result, interp=0)
|
|
1882
1882
|
np.testing.assert_array_equal(result, [1, 0, 0, 0])
|
|
1883
1883
|
|
|
1884
|
+
def test_poly_stiffness(self):
|
|
1885
|
+
xml = r"""
|
|
1886
|
+
<mujoco>
|
|
1887
|
+
<worldbody>
|
|
1888
|
+
<body>
|
|
1889
|
+
<geom type="sphere" size="0.1"/>
|
|
1890
|
+
<joint name="slide" type="slide" stiffness="1 2 3"/>
|
|
1891
|
+
</body>
|
|
1892
|
+
</worldbody>
|
|
1893
|
+
</mujoco>
|
|
1894
|
+
"""
|
|
1895
|
+
model = mujoco.MjModel.from_xml_string(xml)
|
|
1896
|
+
data = mujoco.MjData(model)
|
|
1897
|
+
self.assertEqual(model.jnt_stiffness[0], 1)
|
|
1898
|
+
np.testing.assert_array_equal(
|
|
1899
|
+
model.jnt_stiffnesspoly[0], [2, 3])
|
|
1900
|
+
|
|
1901
|
+
x = 0.5
|
|
1902
|
+
data.qpos[0] = x
|
|
1903
|
+
mujoco.mj_forward(model, data)
|
|
1904
|
+
expected = -(1*x + 2*x*abs(x) + 3*x**3)
|
|
1905
|
+
np.testing.assert_allclose(data.qfrc_spring[0], expected)
|
|
1906
|
+
|
|
1884
1907
|
def _assert_attributes_equal(self, actual_obj, expected_obj, attr_to_compare):
|
|
1885
1908
|
for name in attr_to_compare:
|
|
1886
1909
|
actual_value = getattr(actual_obj, name)
|
|
@@ -91,8 +91,7 @@ static enable_if_not_const_t<Raw, py::handle> MjWrapperLookup(Raw* ptr) {
|
|
|
91
91
|
// TODO(stunya): Figure out a way to do this without invoking py::detail.
|
|
92
92
|
{
|
|
93
93
|
py::gil_scoped_acquire gil;
|
|
94
|
-
|
|
95
|
-
py::detail::type_caster_base<MjWrapper<Raw>>::src_and_type(wrapper);
|
|
94
|
+
auto* type = py::detail::get_type_info(typeid(MjWrapper<Raw>));
|
|
96
95
|
if (type) {
|
|
97
96
|
py::object instance = py::reinterpret_steal<py::object>(
|
|
98
97
|
py::detail::find_registered_python_instance(wrapper, type));
|
|
@@ -54,15 +54,10 @@ set(MUJOCO_DEP_VERSION_gtest
|
|
|
54
54
|
)
|
|
55
55
|
|
|
56
56
|
set(MUJOCO_DEP_VERSION_benchmark
|
|
57
|
-
|
|
57
|
+
5c55f5d4f45a1b09c5d98aa63a671993ebd42c69
|
|
58
58
|
CACHE STRING "Version of `benchmark` to be fetched."
|
|
59
59
|
)
|
|
60
60
|
|
|
61
|
-
set(MUJOCO_DEP_VERSION_TriangleMeshDistance
|
|
62
|
-
2cb643de1436e1ba8e2be49b07ec5491ac604457
|
|
63
|
-
CACHE STRING "Version of `TriangleMeshDistance` to be fetched."
|
|
64
|
-
)
|
|
65
|
-
|
|
66
61
|
mark_as_advanced(MUJOCO_DEP_VERSION_lodepng)
|
|
67
62
|
mark_as_advanced(MUJOCO_DEP_VERSION_MarchingCubeCpp)
|
|
68
63
|
mark_as_advanced(MUJOCO_DEP_VERSION_tinyxml2)
|
|
@@ -73,7 +68,6 @@ mark_as_advanced(MUJOCO_DEP_VERSION_Eigen3)
|
|
|
73
68
|
mark_as_advanced(MUJOCO_DEP_VERSION_abseil)
|
|
74
69
|
mark_as_advanced(MUJOCO_DEP_VERSION_gtest)
|
|
75
70
|
mark_as_advanced(MUJOCO_DEP_VERSION_benchmark)
|
|
76
|
-
mark_as_advanced(MUJOCO_DEP_VERSION_TriangleMeshDistance)
|
|
77
71
|
|
|
78
72
|
include(FetchContent)
|
|
79
73
|
include(FindOrFetch)
|
|
@@ -202,30 +196,6 @@ if(CMAKE_POLICY_VERSION_MINIMUM_LOCALLY_DEFINED)
|
|
|
202
196
|
unset(CMAKE_POLICY_VERSION_MINIMUM_LOCALLY_DEFINED)
|
|
203
197
|
endif()
|
|
204
198
|
|
|
205
|
-
if(NOT TARGET trianglemeshdistance)
|
|
206
|
-
FetchContent_Declare(
|
|
207
|
-
trianglemeshdistance
|
|
208
|
-
GIT_REPOSITORY https://github.com/InteractiveComputerGraphics/TriangleMeshDistance.git
|
|
209
|
-
GIT_TAG ${MUJOCO_DEP_VERSION_TriangleMeshDistance}
|
|
210
|
-
)
|
|
211
|
-
|
|
212
|
-
FetchContent_GetProperties(trianglemeshdistance)
|
|
213
|
-
if(NOT trianglemeshdistance_POPULATED)
|
|
214
|
-
FetchContent_Populate(trianglemeshdistance)
|
|
215
|
-
# Patch the source code to silence a warning/error related to a loop variable creating a copy.
|
|
216
|
-
# Since this is a header only library this fix is less intrusive than disabling the warning for
|
|
217
|
-
# any target including the header.
|
|
218
|
-
set(TMD_HEADER ${trianglemeshdistance_SOURCE_DIR}/TriangleMeshDistance/include/tmd/TriangleMeshDistance.h)
|
|
219
|
-
file(READ ${TMD_HEADER} TMD_CONTENT)
|
|
220
|
-
string(REPLACE
|
|
221
|
-
"for (const auto edge_count : edges_count) {"
|
|
222
|
-
"for (const auto& edge_count : edges_count) {"
|
|
223
|
-
TMD_CONTENT "${TMD_CONTENT}")
|
|
224
|
-
file(WRITE ${TMD_HEADER} "${TMD_CONTENT}")
|
|
225
|
-
include_directories(${trianglemeshdistance_SOURCE_DIR})
|
|
226
|
-
endif()
|
|
227
|
-
endif()
|
|
228
|
-
|
|
229
199
|
set(ENABLE_DOUBLE_PRECISION ON)
|
|
230
200
|
set(CCD_HIDE_ALL_SYMBOLS ON)
|
|
231
201
|
|
|
@@ -339,9 +309,7 @@ if(MUJOCO_BUILD_TESTS)
|
|
|
339
309
|
"sed"
|
|
340
310
|
"-i"
|
|
341
311
|
"-e"
|
|
342
|
-
"s/-
|
|
343
|
-
"-e"
|
|
344
|
-
"s/HAVE_CXX_FLAG_STD_CXX11/HAVE_CXX_FLAG_STD_CXX14/g"
|
|
312
|
+
"s/-Wformat=2/-Wformat/g"
|
|
345
313
|
"${CMAKE_BINARY_DIR}/_deps/benchmark-src/CMakeLists.txt"
|
|
346
314
|
)
|
|
347
315
|
endif()
|
|
@@ -23,16 +23,12 @@ function(get_mujoco_extra_link_options OUTPUT_VAR)
|
|
|
23
23
|
set(EXTRA_LINK_OPTIONS)
|
|
24
24
|
|
|
25
25
|
if(WIN32)
|
|
26
|
-
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -Wl,/STACK:16777216)
|
|
27
26
|
set(CMAKE_REQUIRED_FLAGS "-fuse-ld=lld-link")
|
|
28
|
-
check_c_source_compiles("int main() {}"
|
|
29
|
-
if(
|
|
30
|
-
set(EXTRA_LINK_OPTIONS
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-Wl,/OPT:REF
|
|
34
|
-
-Wl,/OPT:ICF
|
|
35
|
-
)
|
|
27
|
+
check_c_source_compiles("int main() {}" SUPPORTS_LLD_LINK)
|
|
28
|
+
if(SUPPORTS_LLD_LINK)
|
|
29
|
+
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -fuse-ld=lld-link -Wl,/STACK:16777216 -Wl,/OPT:REF -Wl,/OPT:ICF)
|
|
30
|
+
else()
|
|
31
|
+
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -Wl,--stack,16777216)
|
|
36
32
|
endif()
|
|
37
33
|
else()
|
|
38
34
|
set(CMAKE_REQUIRED_FLAGS "-fuse-ld=lld")
|
|
@@ -47,12 +43,12 @@ function(get_mujoco_extra_link_options OUTPUT_VAR)
|
|
|
47
43
|
endif()
|
|
48
44
|
endif()
|
|
49
45
|
|
|
50
|
-
set(CMAKE_REQUIRED_FLAGS ${EXTRA_LINK_OPTIONS}
|
|
46
|
+
set(CMAKE_REQUIRED_FLAGS "${EXTRA_LINK_OPTIONS} -Wl,--gc-sections")
|
|
51
47
|
check_c_source_compiles("int main() {}" SUPPORTS_GC_SECTIONS)
|
|
52
48
|
if(SUPPORTS_GC_SECTIONS)
|
|
53
49
|
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -Wl,--gc-sections)
|
|
54
50
|
else()
|
|
55
|
-
set(CMAKE_REQUIRED_FLAGS ${EXTRA_LINK_OPTIONS}
|
|
51
|
+
set(CMAKE_REQUIRED_FLAGS "${EXTRA_LINK_OPTIONS} -Wl,-dead_strip")
|
|
56
52
|
check_c_source_compiles("int main() {}" SUPPORTS_DEAD_STRIP)
|
|
57
53
|
if(SUPPORTS_DEAD_STRIP)
|
|
58
54
|
set(EXTRA_LINK_OPTIONS ${EXTRA_LINK_OPTIONS} -Wl,-dead_strip)
|
|
@@ -208,6 +208,7 @@ struct mjtEq {
|
|
|
208
208
|
std::make_pair("mjEQ_TENDON", ::mjtEq::mjEQ_TENDON),
|
|
209
209
|
std::make_pair("mjEQ_FLEX", ::mjtEq::mjEQ_FLEX),
|
|
210
210
|
std::make_pair("mjEQ_FLEXVERT", ::mjtEq::mjEQ_FLEXVERT),
|
|
211
|
+
std::make_pair("mjEQ_FLEXSTRAIN", ::mjtEq::mjEQ_FLEXSTRAIN),
|
|
211
212
|
std::make_pair("mjEQ_DISTANCE", ::mjtEq::mjEQ_DISTANCE)};
|
|
212
213
|
};
|
|
213
214
|
|
|
@@ -245,6 +246,7 @@ struct mjtDyn {
|
|
|
245
246
|
std::make_pair("mjDYN_FILTER", ::mjtDyn::mjDYN_FILTER),
|
|
246
247
|
std::make_pair("mjDYN_FILTEREXACT", ::mjtDyn::mjDYN_FILTEREXACT),
|
|
247
248
|
std::make_pair("mjDYN_MUSCLE", ::mjtDyn::mjDYN_MUSCLE),
|
|
249
|
+
std::make_pair("mjDYN_DCMOTOR", ::mjtDyn::mjDYN_DCMOTOR),
|
|
248
250
|
std::make_pair("mjDYN_USER", ::mjtDyn::mjDYN_USER)};
|
|
249
251
|
};
|
|
250
252
|
|
|
@@ -255,6 +257,7 @@ struct mjtGain {
|
|
|
255
257
|
std::make_pair("mjGAIN_FIXED", ::mjtGain::mjGAIN_FIXED),
|
|
256
258
|
std::make_pair("mjGAIN_AFFINE", ::mjtGain::mjGAIN_AFFINE),
|
|
257
259
|
std::make_pair("mjGAIN_MUSCLE", ::mjtGain::mjGAIN_MUSCLE),
|
|
260
|
+
std::make_pair("mjGAIN_DCMOTOR", ::mjtGain::mjGAIN_DCMOTOR),
|
|
258
261
|
std::make_pair("mjGAIN_USER", ::mjtGain::mjGAIN_USER)};
|
|
259
262
|
};
|
|
260
263
|
|
|
@@ -265,6 +268,7 @@ struct mjtBias {
|
|
|
265
268
|
std::make_pair("mjBIAS_NONE", ::mjtBias::mjBIAS_NONE),
|
|
266
269
|
std::make_pair("mjBIAS_AFFINE", ::mjtBias::mjBIAS_AFFINE),
|
|
267
270
|
std::make_pair("mjBIAS_MUSCLE", ::mjtBias::mjBIAS_MUSCLE),
|
|
271
|
+
std::make_pair("mjBIAS_DCMOTOR", ::mjtBias::mjBIAS_DCMOTOR),
|
|
268
272
|
std::make_pair("mjBIAS_USER", ::mjtBias::mjBIAS_USER)};
|
|
269
273
|
};
|
|
270
274
|
|
|
@@ -538,7 +542,6 @@ struct mjtWarning {
|
|
|
538
542
|
std::make_pair("mjWARN_INERTIA", ::mjtWarning::mjWARN_INERTIA),
|
|
539
543
|
std::make_pair("mjWARN_CONTACTFULL", ::mjtWarning::mjWARN_CONTACTFULL),
|
|
540
544
|
std::make_pair("mjWARN_CNSTRFULL", ::mjtWarning::mjWARN_CNSTRFULL),
|
|
541
|
-
std::make_pair("mjWARN_VGEOMFULL", ::mjtWarning::mjWARN_VGEOMFULL),
|
|
542
545
|
std::make_pair("mjWARN_BADQPOS", ::mjtWarning::mjWARN_BADQPOS),
|
|
543
546
|
std::make_pair("mjWARN_BADQVEL", ::mjtWarning::mjWARN_BADQVEL),
|
|
544
547
|
std::make_pair("mjWARN_BADQACC", ::mjtWarning::mjWARN_BADQACC),
|
|
@@ -198,6 +198,17 @@ struct mj_parse {
|
|
|
198
198
|
}
|
|
199
199
|
};
|
|
200
200
|
|
|
201
|
+
struct mj_encode {
|
|
202
|
+
static constexpr char name[] = "mj_encode";
|
|
203
|
+
static constexpr char doc[] = "Encode spec/model to a file using a registered encoder. Returns the number of bytes written on success, -1 on failure.";
|
|
204
|
+
using type = int (const mjSpec *, const mjModel *, const char *, const char *, const mjVFS *, char *, int);
|
|
205
|
+
static constexpr auto param_names = std::make_tuple("s", "m", "filename", "content_type", "vfs", "error", "error_sz");
|
|
206
|
+
|
|
207
|
+
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
208
|
+
return ::mj_encode;
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
|
|
201
212
|
struct mj_compile {
|
|
202
213
|
static constexpr char name[] = "mj_compile";
|
|
203
214
|
static constexpr char doc[] = "Compile spec to model.";
|
|
@@ -1642,7 +1653,7 @@ struct mj_objectAcceleration {
|
|
|
1642
1653
|
struct mj_geomDistance {
|
|
1643
1654
|
static constexpr char name[] = "mj_geomDistance";
|
|
1644
1655
|
static constexpr char doc[] = "Return smallest signed distance between two geoms and optionally segment from geom1 to geom2.";
|
|
1645
|
-
using type = mjtNum (const mjModel *,
|
|
1656
|
+
using type = mjtNum (const mjModel *, mjData *, int, int, mjtNum, mjtNum (*)[6]);
|
|
1646
1657
|
static constexpr auto param_names = std::make_tuple("m", "d", "geom1", "geom2", "distmax", "fromto");
|
|
1647
1658
|
|
|
1648
1659
|
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
@@ -4048,6 +4059,39 @@ struct mjp_findDecoder {
|
|
|
4048
4059
|
}
|
|
4049
4060
|
};
|
|
4050
4061
|
|
|
4062
|
+
struct mjp_registerEncoder {
|
|
4063
|
+
static constexpr char name[] = "mjp_registerEncoder";
|
|
4064
|
+
static constexpr char doc[] = "Globally register an encoder. This function is thread-safe. If an identical mjpEncoder is already registered, this function does nothing. If a non-identical mjpEncoder with the same name is already registered, an mju_error is raised.";
|
|
4065
|
+
using type = void (const mjpEncoder *);
|
|
4066
|
+
static constexpr auto param_names = std::make_tuple("encoder");
|
|
4067
|
+
|
|
4068
|
+
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
4069
|
+
return ::mjp_registerEncoder;
|
|
4070
|
+
}
|
|
4071
|
+
};
|
|
4072
|
+
|
|
4073
|
+
struct mjp_defaultEncoder {
|
|
4074
|
+
static constexpr char name[] = "mjp_defaultEncoder";
|
|
4075
|
+
static constexpr char doc[] = "Set default resource encoder definition.";
|
|
4076
|
+
using type = void (mjpEncoder *);
|
|
4077
|
+
static constexpr auto param_names = std::make_tuple("encoder");
|
|
4078
|
+
|
|
4079
|
+
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
4080
|
+
return ::mjp_defaultEncoder;
|
|
4081
|
+
}
|
|
4082
|
+
};
|
|
4083
|
+
|
|
4084
|
+
struct mjp_findEncoder {
|
|
4085
|
+
static constexpr char name[] = "mjp_findEncoder";
|
|
4086
|
+
static constexpr char doc[] = "Return the encoder that matches against the content type or filename extension. If no match, return NULL.";
|
|
4087
|
+
using type = const mjpEncoder * (const char *, const char *);
|
|
4088
|
+
static constexpr auto param_names = std::make_tuple("filename", "content_type");
|
|
4089
|
+
|
|
4090
|
+
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
4091
|
+
return ::mjp_findEncoder;
|
|
4092
|
+
}
|
|
4093
|
+
};
|
|
4094
|
+
|
|
4051
4095
|
struct mju_openResource {
|
|
4052
4096
|
static constexpr char name[] = "mju_openResource";
|
|
4053
4097
|
static constexpr char doc[] = "Open a resource; if the name doesn't have a prefix matching a registered resource provider, then the OS filesystem is used.";
|
|
@@ -4565,6 +4609,17 @@ struct mjs_setToAdhesion {
|
|
|
4565
4609
|
}
|
|
4566
4610
|
};
|
|
4567
4611
|
|
|
4612
|
+
struct mjs_setToDCMotor {
|
|
4613
|
+
static constexpr char name[] = "mjs_setToDCMotor";
|
|
4614
|
+
static constexpr char doc[] = "Set actuator to DC motor; return error if any.";
|
|
4615
|
+
using type = const char * (mjsActuator *, double (*)[2], double, double (*)[3], double (*)[3], double (*)[2], double (*)[3], double (*)[6], double (*)[6], double (*)[5], int);
|
|
4616
|
+
static constexpr auto param_names = std::make_tuple("actuator", "motorconst", "resistance", "nominal", "saturation", "inductance", "cogging", "controller", "thermal", "lugre", "input_mode");
|
|
4617
|
+
|
|
4618
|
+
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
4619
|
+
return *reinterpret_cast<type*>(&::mjs_setToDCMotor);
|
|
4620
|
+
}
|
|
4621
|
+
};
|
|
4622
|
+
|
|
4568
4623
|
struct mjs_addMesh {
|
|
4569
4624
|
static constexpr char name[] = "mjs_addMesh";
|
|
4570
4625
|
static constexpr char doc[] = "Add mesh.";
|
|
@@ -4642,6 +4697,17 @@ struct mjs_getSpec {
|
|
|
4642
4697
|
}
|
|
4643
4698
|
};
|
|
4644
4699
|
|
|
4700
|
+
struct mjs_getCompiler {
|
|
4701
|
+
static constexpr char name[] = "mjs_getCompiler";
|
|
4702
|
+
static constexpr char doc[] = "Get compiler associated with element's origin spec.";
|
|
4703
|
+
using type = mjsCompiler * (mjsElement *);
|
|
4704
|
+
static constexpr auto param_names = std::make_tuple("element");
|
|
4705
|
+
|
|
4706
|
+
MUJOCO_ALWAYS_INLINE static type& GetFunc() {
|
|
4707
|
+
return ::mjs_getCompiler;
|
|
4708
|
+
}
|
|
4709
|
+
};
|
|
4710
|
+
|
|
4645
4711
|
struct mjs_findSpec {
|
|
4646
4712
|
static constexpr char name[] = "mjs_findSpec";
|
|
4647
4713
|
static constexpr char doc[] = "Find spec (model asset) by name.";
|
|
@@ -663,7 +663,7 @@ PYBIND11_MODULE(_functions, pymodule) {
|
|
|
663
663
|
Def<traits::mj_contactForce>(pymodule);
|
|
664
664
|
Def<traits::mj_geomDistance>(
|
|
665
665
|
pymodule,
|
|
666
|
-
[](const raw::MjModel* m,
|
|
666
|
+
[](const raw::MjModel* m, raw::MjData* d,
|
|
667
667
|
int geom1, int geom2, mjtNum distmax,
|
|
668
668
|
std::optional<Eigen::Ref<EigenArrayXX>> fromto) {
|
|
669
669
|
if (fromto.has_value() && fromto->size() != 6) {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright 2022 DeepMind Technologies Limited
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ==============================================================================
|
|
15
|
+
"""Wrapper around mujoco.rendering.classic.gl_context for backwards compatibility."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
try:
|
|
19
|
+
from mujoco.rendering.classic.gl_context import * # pytype: disable=import-error
|
|
20
|
+
except ImportError:
|
|
21
|
+
pass
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
#ifndef MUJOCO_PYTHON_INDEXER_XMACRO_H_
|
|
16
16
|
#define MUJOCO_PYTHON_INDEXER_XMACRO_H_
|
|
17
17
|
|
|
18
|
-
#include <mujoco/mjxmacro.h>
|
|
18
|
+
#include <mujoco/mjxmacro.h> // IWYU pragma: keep
|
|
19
19
|
|
|
20
20
|
#define MJMODEL_ACTUATOR \
|
|
21
21
|
X( int, actuator_, trntype, nu, 1 ) \
|
|
@@ -132,6 +132,7 @@
|
|
|
132
132
|
X( mjtNum, jnt_, pos, njnt, 3 ) \
|
|
133
133
|
X( mjtNum, jnt_, axis, njnt, 3 ) \
|
|
134
134
|
X( mjtNum, jnt_, stiffness, njnt, 1 ) \
|
|
135
|
+
X( mjtNum, jnt_, stiffnesspoly, njnt, mjNPOLY ) \
|
|
135
136
|
X( mjtNum, jnt_, range, njnt, 2 ) \
|
|
136
137
|
X( mjtNum, jnt_, margin, njnt, 1 ) \
|
|
137
138
|
X( mjtNum, jnt_, user, njnt, MJ_M(nuser_jnt) ) \
|
|
@@ -145,6 +146,7 @@
|
|
|
145
146
|
X( mjtNum, dof_, frictionloss, nv, 1 ) \
|
|
146
147
|
X( mjtNum, dof_, armature, nv, 1 ) \
|
|
147
148
|
X( mjtNum, dof_, damping, nv, 1 ) \
|
|
149
|
+
X( mjtNum, dof_, dampingpoly, nv, mjNPOLY ) \
|
|
148
150
|
X( mjtNum, dof_, invweight0, nv, 1 ) \
|
|
149
151
|
X( mjtNum, dof_, M0, nv, 1 )
|
|
150
152
|
|
|
@@ -253,13 +255,18 @@
|
|
|
253
255
|
X( mjtNum, tendon, _range, ntendon, 2 ) \
|
|
254
256
|
X( mjtNum, tendon, _margin, ntendon, 1 ) \
|
|
255
257
|
X( mjtNum, tendon, _stiffness, ntendon, 1 ) \
|
|
258
|
+
X( mjtNum, tendon, _stiffnesspoly, ntendon, mjNPOLY ) \
|
|
256
259
|
X( mjtNum, tendon, _damping, ntendon, 1 ) \
|
|
260
|
+
X( mjtNum, tendon, _dampingpoly, ntendon, mjNPOLY ) \
|
|
257
261
|
X( mjtNum, tendon, _frictionloss, ntendon, 1 ) \
|
|
258
262
|
X( mjtNum, tendon, _lengthspring, ntendon, 1 ) \
|
|
259
263
|
X( mjtNum, tendon, _length0, ntendon, 1 ) \
|
|
260
264
|
X( mjtNum, tendon, _invweight0, ntendon, 1 ) \
|
|
261
265
|
X( mjtNum, tendon, _user, ntendon, MJ_M(nuser_tendon) ) \
|
|
262
|
-
X( float, tendon, _rgba, ntendon, 4 )
|
|
266
|
+
X( float, tendon, _rgba, ntendon, 4 ) \
|
|
267
|
+
X( int, ten_, J_rownnz, ntendon, 1 ) \
|
|
268
|
+
X( int, ten_, J_rowadr, ntendon, 1 ) \
|
|
269
|
+
X( int, ten_, J_colind, ntendon, MJ_M(nv) )
|
|
263
270
|
|
|
264
271
|
#define MJMODEL_TEXTURE \
|
|
265
272
|
X( int, tex_, type, ntex, 1 ) \
|
|
@@ -402,11 +409,7 @@
|
|
|
402
409
|
#define MJDATA_TENDON \
|
|
403
410
|
X( int, ten_, wrapadr , ntendon, 1 ) \
|
|
404
411
|
X( int, ten_, wrapnum , ntendon, 1 ) \
|
|
405
|
-
X( int, ten_, J_rownnz, ntendon, 1 ) \
|
|
406
|
-
X( int, ten_, J_rowadr, ntendon, 1 ) \
|
|
407
|
-
X( int, ten_, J_colind, ntendon, MJ_M(nv) ) \
|
|
408
412
|
X( mjtNum, ten_, length , ntendon, 1 ) \
|
|
409
|
-
X( mjtNum, ten_, J , ntendon, MJ_M(nv) ) \
|
|
410
413
|
X( mjtNum, ten_, velocity, ntendon, 1 )
|
|
411
414
|
|
|
412
415
|
#define MJDATA_VIEW_GROUPS \
|
|
@@ -222,7 +222,8 @@ ENUMS: Mapping[str, EnumDecl] = dict([
|
|
|
222
222
|
('mjEQ_TENDON', 3),
|
|
223
223
|
('mjEQ_FLEX', 4),
|
|
224
224
|
('mjEQ_FLEXVERT', 5),
|
|
225
|
-
('
|
|
225
|
+
('mjEQ_FLEXSTRAIN', 6),
|
|
226
|
+
('mjEQ_DISTANCE', 7),
|
|
226
227
|
]),
|
|
227
228
|
)),
|
|
228
229
|
('mjtWrap',
|
|
@@ -262,7 +263,8 @@ ENUMS: Mapping[str, EnumDecl] = dict([
|
|
|
262
263
|
('mjDYN_FILTER', 2),
|
|
263
264
|
('mjDYN_FILTEREXACT', 3),
|
|
264
265
|
('mjDYN_MUSCLE', 4),
|
|
265
|
-
('
|
|
266
|
+
('mjDYN_DCMOTOR', 5),
|
|
267
|
+
('mjDYN_USER', 6),
|
|
266
268
|
]),
|
|
267
269
|
)),
|
|
268
270
|
('mjtGain',
|
|
@@ -273,7 +275,8 @@ ENUMS: Mapping[str, EnumDecl] = dict([
|
|
|
273
275
|
('mjGAIN_FIXED', 0),
|
|
274
276
|
('mjGAIN_AFFINE', 1),
|
|
275
277
|
('mjGAIN_MUSCLE', 2),
|
|
276
|
-
('
|
|
278
|
+
('mjGAIN_DCMOTOR', 3),
|
|
279
|
+
('mjGAIN_USER', 4),
|
|
277
280
|
]),
|
|
278
281
|
)),
|
|
279
282
|
('mjtBias',
|
|
@@ -284,7 +287,8 @@ ENUMS: Mapping[str, EnumDecl] = dict([
|
|
|
284
287
|
('mjBIAS_NONE', 0),
|
|
285
288
|
('mjBIAS_AFFINE', 1),
|
|
286
289
|
('mjBIAS_MUSCLE', 2),
|
|
287
|
-
('
|
|
290
|
+
('mjBIAS_DCMOTOR', 3),
|
|
291
|
+
('mjBIAS_USER', 4),
|
|
288
292
|
]),
|
|
289
293
|
)),
|
|
290
294
|
('mjtObj',
|
|
@@ -574,12 +578,11 @@ ENUMS: Mapping[str, EnumDecl] = dict([
|
|
|
574
578
|
('mjWARN_INERTIA', 0),
|
|
575
579
|
('mjWARN_CONTACTFULL', 1),
|
|
576
580
|
('mjWARN_CNSTRFULL', 2),
|
|
577
|
-
('
|
|
578
|
-
('
|
|
579
|
-
('
|
|
580
|
-
('
|
|
581
|
-
('
|
|
582
|
-
('mjNWARNING', 8),
|
|
581
|
+
('mjWARN_BADQPOS', 3),
|
|
582
|
+
('mjWARN_BADQVEL', 4),
|
|
583
|
+
('mjWARN_BADQACC', 5),
|
|
584
|
+
('mjWARN_BADCTRL', 6),
|
|
585
|
+
('mjNWARNING', 7),
|
|
583
586
|
]),
|
|
584
587
|
)),
|
|
585
588
|
('mjtTimer',
|