При вызове ComputePointPairPenetration()
из QueryObject в Drake в Python в среде Jupyter Notebook ComputePointPairPenetration()
надежно уничтожает ядро. Я не уверен, что это за причина, и не мог понять, как получить сообщение об ошибке.
Если это актуально, я запускаю pydrake локально на Ma c.
Вот соответствующий код:
builder = DiagramBuilder()
plant, scene_graph = AddMultibodyPlantSceneGraph(builder, time_step=0.00001)
file_name = FindResource("models/robot.urdf")
model = Parser(plant).AddModelFromFile(file_name)
file_name = FindResource("models/object.urdf")
object_model = Parser(plant).AddModelFromFile(file_name)
plant.Finalize()
diagram = builder.Build()
# Run simulation...
# Get geometry info from scene graph
context = scene_graph.AllocateContext()
q_obj = scene_graph.get_query_output_port().Eval(context)
q_obj.ComputePointPairPenetration()
Edit: комментарий @ Sherm исправил мою проблему :) Большое вам спасибо!
Для справки:
diagram_context = diagram.CreateDefaultContext()
scene_graph_context = scene_graph.GetMyContextFromRoot(diagram_context)
q_obj = scene_graph.get_query_output_port().Eval(scene_graph_context)
q_obj.ComputePointPairPenetration()