since parent collision is always disabled by default for self-collision, we add a new flag

URDF_USE_SELF_COLLISION_INCLUDE_PARENT, to force self-collision between direct parent/child (not recommended in general)
This commit is contained in:
erwincoumans
2018-09-08 14:46:43 -07:00
parent bc0a201bd1
commit 63f4a63e15
4 changed files with 7 additions and 2 deletions

View File

@@ -599,10 +599,11 @@ void ConvertURDF2BulletInternal(
if (mbLinkIndex>=0) //???? double-check +/- 1
{
cache.m_bulletMultiBody->getLink(mbLinkIndex).m_collider=col;
if (flags&CUF_USE_SELF_COLLISION_EXCLUDE_PARENT)
if (flags&CUF_USE_SELF_COLLISION_INCLUDE_PARENT)
{
cache.m_bulletMultiBody->getLink(mbLinkIndex).m_flags |= BT_MULTIBODYLINKFLAGS_DISABLE_PARENT_COLLISION;
cache.m_bulletMultiBody->getLink(mbLinkIndex).m_flags &= ~BT_MULTIBODYLINKFLAGS_DISABLE_PARENT_COLLISION;
}
if (flags&CUF_USE_SELF_COLLISION_EXCLUDE_ALL_PARENTS)
{

View File

@@ -31,6 +31,7 @@ enum ConvertURDFFlags {
CUF_ENABLE_CACHED_GRAPHICS_SHAPES = 1024,
CUF_ENABLE_SLEEPING=2048,
CUF_INITIALIZE_SAT_FEATURES=4096,
CUF_USE_SELF_COLLISION_INCLUDE_PARENT = 8192,
};
struct UrdfVisualShapeCache