首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MultibodyPlant,为什么会得到` `SolveQuadraticForTheSmallestPositiveRoot():条件‘增量> 0’失败`?

使用MultibodyPlant,为什么会得到` `SolveQuadraticForTheSmallestPositiveRoot():条件‘增量> 0’失败`?
EN

Stack Overflow用户
提问于 2020-05-27 12:49:06
回答 1查看 86关注 0票数 3

(这是来自Drake Slack conversation的。)

我正在玩一个“爆炸性的IIWA”演示,用MultibodyPlantSceneGraph制作一些工作流的原型。基本上,我只是添加了一个具有关节(多个链接之间旋转关节)的机械臂,并从高处放下机械臂。当它到达某个点时,我想暂停仿真,删除所有运动类型,然后恢复仿真。

以下是我正在使用的代码(目前需要一些Drake PR来完成二进制构建):

multibody_plant_subgraph_test.py

但是,当我尝试所有的关节并进行模拟时,我从Drake的TAMSI Solver中得到以下断言

代码语言:javascript
运行
复制
  File ".../common/test/multibody_plant_subgraph_test.py", line 345, in do_falling_exploding_sim
    simulator_new.AdvanceTo(2.)
SystemExit: Failure at external/drake/multibody/plant/tamsi_solver.cc:217 in SolveQuadraticForTheSmallestPositiveRoot(): condition 'Delta > 0' failed.

你知道为什么会发生这种情况吗?

这就是模拟的样子,如果我只是去掉碰撞和速度的futz:

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 12:52:13

来自谢尔姆的回答:

,你们里面有没有无质量或无惯性的物体?只要它们位于多体树的内部,而不是作为终端节点,就可以使用它们。移除关节后,所有的身体都是末端。

结果就是这样。我只需要确保在这种情况下我移除了所有无质量的身体,一切都正常:

commit with relevant change

不做碰撞移除/速度攻击时的样子(惯性+碰撞看起来不是很好,但这是朝着正确方向迈出的一步):

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62035674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档