Use geom margin in the midphase.
At the leaves of the midphase trees in `mj_collideTree`, a bounding sphere test is performed. The margin was incorrectly set to zero instead of reading it from `geom_margin`. PiperOrigin-RevId: 559782262 Change-Id: Icfceb8445bbf6977582e0061566d7bd4def2f0ae
This commit is contained in:
committed by
Copybara-Service
parent
9255cc58a9
commit
b0077e4052
@@ -43,6 +43,11 @@ Python bindings
|
|||||||
7. Fixed `#870 <https://github.com/deepmind/mujoco/issues/870>`__ where calling ``update_scene`` with an invalid
|
7. Fixed `#870 <https://github.com/deepmind/mujoco/issues/870>`__ where calling ``update_scene`` with an invalid
|
||||||
camera name used the default camera.
|
camera name used the default camera.
|
||||||
|
|
||||||
|
Bug fixes
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
#. Fixed a bug that was causing the geom margins to be ignored during the midphase.
|
||||||
|
|
||||||
|
|
||||||
Version 2.3.7 (July 20, 2023)
|
Version 2.3.7 (July 20, 2023)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|||||||
@@ -244,7 +244,8 @@ void mj_collideTree(const mjModel* m, mjData* d, int b1, int b2,
|
|||||||
|
|
||||||
// both are leaves
|
// both are leaves
|
||||||
if (isleaf1 && isleaf2 && nodeid1 != -1 && nodeid2 != -1) {
|
if (isleaf1 && isleaf2 && nodeid1 != -1 && nodeid2 != -1) {
|
||||||
if (mj_collideSphere(m, d, nodeid1, nodeid2, /*margin=*/ 0)) {
|
if (mj_collideSphere(m, d, nodeid1, nodeid2, m->geom_margin[nodeid1] +
|
||||||
|
m->geom_margin[nodeid2])) {
|
||||||
if (mj_collideOBB(m->geom_aabb + 6*nodeid1, m->geom_aabb + 6*nodeid2,
|
if (mj_collideOBB(m->geom_aabb + 6*nodeid1, m->geom_aabb + 6*nodeid2,
|
||||||
d->geom_xpos + 3*nodeid1, d->geom_xmat + 9*nodeid1,
|
d->geom_xpos + 3*nodeid1, d->geom_xmat + 9*nodeid1,
|
||||||
d->geom_xpos + 3*nodeid2, d->geom_xmat + 9*nodeid2,
|
d->geom_xpos + 3*nodeid2, d->geom_xmat + 9*nodeid2,
|
||||||
|
|||||||
Reference in New Issue
Block a user