德雷克-有联系时的仿真Coredump

时间:2020-02-22 06:34:02

标签: drake

我在仿真中设置了一个Kuka手臂和一些对象(非常类似于操纵站示例),并且只要机器人与对象之间有接触,我就会遇到以下coredump错误。

“中止:CalcImplicitStribeckResults()中multibody / plant / multibody_plant.cc:1640失败:条件'info == ImplicitStribeckSolverResult :: kSuccess'失败。 中止(核心已弃用)”

减小模拟器的集成步长没有帮助,所以我最终追查了错误并注释了导致error( "DRAKE_DEMAND(info == ImplicitStribeckSolverResult::kSuccess);" )的情况,该情况似乎使转储的频率降低了。

但是,我猜测存在这种情况是有原因的,所以注释掉行会在模拟中引起其他问题吗?解决核心转储问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

在Drake PR #12503中,对ImplicitStribeck代码进行了重构以反映TAMSI arXiv paper中的符号,并且在#12361中对其进行了更改,以提供一个更有用的例外,故障排除提示:

https://github.com/RobotLocomotion/drake/blob/v0.15.0/multibody/plant/multibody_plant.cc#L1866-L1878

您可以尝试使用更高版本(例如0.15.0),然后尝试在那里进行故障排除说明吗? (您已经尝试过在模拟器中更改步长,但是您可能要检查整个系统的刚度,等等。)