Add nativeccd flag. When this flag is enabled, general convex collision detection is handled natively, as opposed to using libccd.
PiperOrigin-RevId: 663859009 Change-Id: Ife18bb1de62f2154e4725fdf764484a18586b836
This commit is contained in:
committed by
Copybara-Service
parent
390bce2352
commit
0bffd744f9
+13
-9
@@ -623,13 +623,13 @@ from its default.
|
||||
.. _option-flag-multiccd:
|
||||
|
||||
:at:`multiccd`: :at-val:`[disable, enable], "disable"` |nbsp| |nbsp| |nbsp| (experimental feature)
|
||||
This flag enables multiple-contact collision detection for geom pairs that use the general-purpose convex-convex
|
||||
collider based on :ref:`libccd <coChecking>` e.g., mesh-mesh collisions. This can be useful when the contacting geoms
|
||||
have a flat surface, and the single contact point generated by the convex-convex collider cannot accurately capture
|
||||
the surface contact, leading to instabilities that typically manifest as sliding or wobbling. Multiple contact points
|
||||
are found by rotating the two geoms by ±1e-3 radians around the tangential axes and re-running the collision
|
||||
function. If a new contact is detected it is added, allowing for up to 4 additional contact points. This feature is
|
||||
currently considered experimental, and both the behavior and the way it is activated may change in the future.
|
||||
This flag enables multiple-contact collision detection for geom pairs that use a general-purpose convex-convex
|
||||
collider e.g., mesh-mesh collisions. This can be useful when the contacting geoms have a flat surface, and the
|
||||
single contact point generated by the convex-convex collider cannot accurately capture the surface contact, leading
|
||||
to instabilities that typically manifest as sliding or wobbling. Multiple contact points are found by rotating the
|
||||
two geoms by ±1e-3 radians around the tangential axes and re-running the collision function. If a new contact is
|
||||
detected it is added, allowing for up to 4 additional contact points. This feature is currently considered
|
||||
experimental, and both the behavior and the way it is activated may change in the future.
|
||||
|
||||
.. _option-flag-island:
|
||||
|
||||
@@ -639,15 +639,19 @@ from its default.
|
||||
allows for `island visualization <https://youtu.be/Vc1tq0fFvQA>`__.
|
||||
In a future release, the constraint solver will exploit the disjoint nature of constraint islands.
|
||||
|
||||
.. _option-flag-nativeccd:
|
||||
|
||||
:at:`nativeccd`: :at-val:`[disable, enable], "disable"`
|
||||
This flag enables the native convex collision detection pipeline instead of using the
|
||||
`libccd library <https://github.com/danfis/libccd>`__.
|
||||
|
||||
.. _compiler:
|
||||
|
||||
**compiler** (*)
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
This element is used to set options for the built-in parser and compiler. After parsing and compilation it no longer has
|
||||
any effect. The settings here are global and apply to the entire model.
|
||||
This element is used to set options for the built-in parser and compiler. After parsing and compilation it no longer
|
||||
has any effect. The settings here are global and apply to the entire model.
|
||||
|
||||
.. _compiler-autolimits:
|
||||
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@
|
||||
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
|
||||
| | | | :ref:`override<option-flag-override>` | :ref:`energy<option-flag-energy>` | :ref:`fwdinv<option-flag-fwdinv>` | :ref:`invdiscrete<option-flag-invdiscrete>` | |
|
||||
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
|
||||
| | | | :ref:`multiccd<option-flag-multiccd>` | :ref:`island<option-flag-island>` | | | |
|
||||
| | | | :ref:`multiccd<option-flag-multiccd>` | :ref:`island<option-flag-island>` | :ref:`nativeccd<option-flag-nativeccd>` | | |
|
||||
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
|
||||
+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| mujoco |br| |L| | | .. table:: |
|
||||
|
||||
+15
-12
@@ -7,28 +7,31 @@ Upcoming version (not yet released)
|
||||
|
||||
General
|
||||
^^^^^^^
|
||||
1. Added :ref:`mjSpec` option for creating a texture from a buffer.
|
||||
2. :ref:`shellinertia <body-geom-shellinertia>` is now supported by all geom types.
|
||||
3. Added support for :ref:`attaching<meAttachment>` keyframes.
|
||||
1. Added the :ref:`nativeccd<option-flag-nativeccd>` flag. When this flag is enabled, general convex collision
|
||||
detection is handled natively, as opposed to using `libccd <https://github.com/danfis/libccd>`__. This feature is in
|
||||
early stages of testing.
|
||||
2. Added :ref:`mjSpec` option for creating a texture from a buffer.
|
||||
3. :ref:`shellinertia <body-geom-shellinertia>` is now supported by all geom types.
|
||||
4. Added support for :ref:`attaching<meAttachment>` keyframes.
|
||||
|
||||
MJX
|
||||
^^^
|
||||
4. Added ``efc_pos`` to ``mjx.Data`` (:github:issue:`1388`).
|
||||
5. Added position-dependent sensors: ``MAGNETOMETER``, ``JOINTPOS``, ``ACTUATORPOS``, ``BALLQUAT``, ``FRAMEPOS``,
|
||||
5. Added ``efc_pos`` to ``mjx.Data`` (:github:issue:`1388`).
|
||||
6. Added position-dependent sensors: ``MAGNETOMETER``, ``JOINTPOS``, ``ACTUATORPOS``, ``BALLQUAT``, ``FRAMEPOS``,
|
||||
``FRAMEXAXIS``, ``FRAMEYAXIS``, ``FRAMEZAXIS``, ``SUBTREECOM``, ``CLOCK``.
|
||||
6. Changed default policy to avoid placing unused (MuJoCo-only) arrays on device.
|
||||
7. Added ``device`` parameter to ``mjx.make_data`` to bring it to parity with ``mjx.put_model`` and ``mjx.put_data``.
|
||||
7. Changed default policy to avoid placing unused (MuJoCo-only) arrays on device.
|
||||
8. Added ``device`` parameter to ``mjx.make_data`` to bring it to parity with ``mjx.put_model`` and ``mjx.put_data``.
|
||||
|
||||
Bug fixes
|
||||
^^^^^^^^^
|
||||
8. Fixed a performance regression introduced in 3.1.7 in mesh Bounding Volume Hierarchies (:github:issue:`1875`,
|
||||
contribution by :github:user:`michael-ahn`).
|
||||
9. Fixed a bug wherein, for models that have both muscles and stateless actuators and used one of the implicit
|
||||
integrators, wrong derivatives would be computed.
|
||||
9. Fixed a performance regression introduced in 3.1.7 in mesh Bounding Volume Hierarchies (:github:issue:`1875`,
|
||||
contribution by :github:user:`michael-ahn`).
|
||||
10. Fixed a bug wherein, for models that have both muscles and stateless actuators and used one of the implicit
|
||||
integrators, wrong derivatives would be computed.
|
||||
|
||||
Python bindings
|
||||
^^^^^^^^^^^^^^^
|
||||
10. Added support for engine plugins in :ref:`mjSpec` (:github:issue:`1903`).
|
||||
11. Added support for engine plugins in :ref:`mjSpec` (:github:issue:`1903`).
|
||||
|
||||
|
||||
Version 3.2.2 (Aug 8, 2024)
|
||||
|
||||
@@ -430,8 +430,9 @@ typedef enum mjtEnableBit_ { // enable optional feature bitflags
|
||||
// experimental features:
|
||||
mjENBL_MULTICCD = 1<<4, // multi-point convex collision detection
|
||||
mjENBL_ISLAND = 1<<5, // constraint island discovery
|
||||
mjENBL_NATIVECCD = 1<<6, // native convex collision detection
|
||||
|
||||
mjNENABLE = 6 // number of enable flags
|
||||
mjNENABLE = 7 // number of enable flags
|
||||
} mjtEnableBit;
|
||||
typedef enum mjtJoint_ { // type of degree of freedom
|
||||
mjJNT_FREE = 0, // global position and orientation (quat) (7)
|
||||
|
||||
Reference in New Issue
Block a user