(这是来自Drake Slack conversation的。)
我正在玩一个“爆炸性的IIWA”演示,用MultibodyPlant和SceneGraph制作一些工作流的原型。基本上,我只是添加了一个具有关节(多个链接之间旋转关节)的机械臂,并从高处放下机械臂。当它到达某个点时,我想暂停仿真,删除所有运动类型,然后恢复仿真。
以下是我正在使用的代码(目前需要一些Drake PR来完成二进制构建):
multibody_plant_subgraph_test.py
但是,当我尝试所有的关节并进行模拟时,我从Drake的TAMSI Solver中得到以下断言
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:

发布于 2020-05-27 12:52:13
来自谢尔姆的回答:
,你们里面有没有无质量或无惯性的物体?只要它们位于多体树的内部,而不是作为终端节点,就可以使用它们。移除关节后,所有的身体都是末端。
结果就是这样。我只需要确保在这种情况下我移除了所有无质量的身体,一切都正常:
不做碰撞移除/速度攻击时的样子(惯性+碰撞看起来不是很好,但这是朝着正确方向迈出的一步):

https://stackoverflow.com/questions/62035674
复制相似问题