使用凸网格作为碰撞几何体时退出代码 139
exit code 139 when using convex mesh as collision geometry
我正在尝试使用凸面网格作为 drake 中的碰撞几何体。在我的简单示例中,我有一个地平面作为第一个碰撞几何体,并从下面的 urdf 文件加载对象。其中 tri_cube.obj
是来自 drake/multibody/parsing/test/urdf_parser_test
的凸网格。当我 运行 模拟时,它会继续进行,直到立方体撞击地平面。然后它停止,我收到以下错误消息:Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
。任何帮助将不胜感激。
<?xml version="1.0"?>
<robot name="my_ball">
<material name="Black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<link name="base_link">
<inertial>
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
<mass value="5"/>
<inertia ixx="0.05" ixy="0" ixz="0" iyy="0.05" iyz="0" izz="0.05"/>
</inertial>
<visual>
<geometry>
<mesh filename="tri_cube.obj" scale="1.0 1.0 1.0">
</mesh>
</geometry>
<material name="Black"/>
</visual>
<collision name='collision'>
<geometry>
<mesh filename="tri_cube.obj" scale="1.0 1.0 1.0">
<drake:declare_convex/>
</mesh>
</geometry>
<drake:proximity_properties>
<drake:mu_dynamic value="1.0" />
<drake:mu_static value="1.0" />
</drake:proximity_properties>
</collision>
</link>
</robot>
我有一个短期和长期的答案给你:
短期:将地面的一半space替换为顶面与一半space边界共面的大盒子。
长期:FCL 有一个需要修补的错误。没有理由不支持半 space-凸面接触。由于某些无法解释的原因,它未启用。因为它没有启用,所以它最终会沿着一条代码路径螺旋式下降,该代码路径明确不能支持一半 spaces,然后默默地分割错误。
我会更新 FCL,届时,Drake 将继承其优点。我可能需要几天时间来修补、测试、审查并传播到 Drake。因此,如果时间框架不起作用,请使用短期 "box" 解决方案。
当 FCL 被修补并且该补丁反映在 Drake 中时,我会更新这个。
我正在尝试使用凸面网格作为 drake 中的碰撞几何体。在我的简单示例中,我有一个地平面作为第一个碰撞几何体,并从下面的 urdf 文件加载对象。其中 tri_cube.obj
是来自 drake/multibody/parsing/test/urdf_parser_test
的凸网格。当我 运行 模拟时,它会继续进行,直到立方体撞击地平面。然后它停止,我收到以下错误消息:Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
。任何帮助将不胜感激。
<?xml version="1.0"?>
<robot name="my_ball">
<material name="Black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<link name="base_link">
<inertial>
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
<mass value="5"/>
<inertia ixx="0.05" ixy="0" ixz="0" iyy="0.05" iyz="0" izz="0.05"/>
</inertial>
<visual>
<geometry>
<mesh filename="tri_cube.obj" scale="1.0 1.0 1.0">
</mesh>
</geometry>
<material name="Black"/>
</visual>
<collision name='collision'>
<geometry>
<mesh filename="tri_cube.obj" scale="1.0 1.0 1.0">
<drake:declare_convex/>
</mesh>
</geometry>
<drake:proximity_properties>
<drake:mu_dynamic value="1.0" />
<drake:mu_static value="1.0" />
</drake:proximity_properties>
</collision>
</link>
</robot>
我有一个短期和长期的答案给你:
短期:将地面的一半space替换为顶面与一半space边界共面的大盒子。
长期:FCL 有一个需要修补的错误。没有理由不支持半 space-凸面接触。由于某些无法解释的原因,它未启用。因为它没有启用,所以它最终会沿着一条代码路径螺旋式下降,该代码路径明确不能支持一半 spaces,然后默默地分割错误。
我会更新 FCL,届时,Drake 将继承其优点。我可能需要几天时间来修补、测试、审查并传播到 Drake。因此,如果时间框架不起作用,请使用短期 "box" 解决方案。
当 FCL 被修补并且该补丁反映在 Drake 中时,我会更新这个。