код выхода 139 при использовании выпуклого меня sh в качестве геометрии столкновения - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь использовать выпуклую меня sh в качестве геометрии столкновения в селезне. В моем простом примере в качестве геометрии первого столкновения я использовал плоскость заземления и загружаю объект из файла urdf ниже. Где tri_cube.obj - это выпуклое Я sh из 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>

1 Ответ

1 голос
/ 01 мая 2020

У меня есть краткосрочный и долгосрочный ответ для вас:

Краткосрочный: замените наземное полупространство большой коробкой, верхняя грань которой копланарна с границей полупространства.

Долгосрочные: в FCL есть ошибка, которую необходимо исправить. Нет причин, по которым он не должен поддерживать выпуклый контакт наполовину. По какой-то необъяснимой причине он не включен. Поскольку он не включен, он заканчивается спиральным путем кода, который явно не может поддерживать полупространства, а затем молча сегментирует ошибки.

Я обновлю FCL, и когда это произойдет, Дрейк унаследует доброту , Вероятно, мне понадобится несколько дней, чтобы пропатчить, протестировать, проверить и распространить на Дрейка. Поэтому, если временные рамки не работают, используйте краткосрочное решение «box».

Я обновлю это, когда будет исправлен FCL, и этот патч будет отражен в Drake.

...