德雷克中基于网格的碰撞几何

时间:2020-10-04 15:54:09

标签: collision-detection drake

我想基于物理引擎生成用于感知和掌握的数据集。我尝试将Google研究最近(https://app.ignitionrobotics.org/GoogleResearch)发布的以下3D模型导入德雷克,并为各种鞋子创建细分数据集,即将网格放入箱中/使其静止并读取rgb /深度和细分图片。

但是,将对象网格(.obj文件)指定为Drake中的碰撞几何体似乎不起作用,因为鞋子只是穿过垃圾箱并不断掉入深渊(附加快照)。

enter image description here

我还注意到YCB对象具有使用简单的盒子和点接触描述的碰撞几何。这是相同的可视化效果(您可能已经很熟悉了)。绿色是碰撞几何。

enter image description here

如果我必须模拟上述内容,是否需要为Google研究数据集中的所有对象描述简单的几何图形?如果是这样,它们是如何产生的?是否有一些工具可以用来生成此信息,还是可以手动完成?还是在将网格用于碰撞几何时启用水弹性接触仿真以使其工作?

如果它可以处理任何凸面网格,则可以选择将原始网格的凸面外壳作为碰撞几何体。

另外,我也尝试过使用pybullet。我用飞机代替垃圾箱。 Pybullet似乎正在正确地将网格指定为碰撞几何。这是pybullet中数据的快照。

enter image description here

一种中间解决方案(尚未解决抓取部分):

在与Sean&Russ讨论之后,我创建了三角形网格的凸包(使用open3D),看来使用该凸包作为碰撞网格并使用<drake:declare_convex/>标注网格标签,鞋子变得稳定了姿势我认为该解决方案对于使用Drake生成感知数据已经足够了。这是使用以下解决方案后的快照:

enter image description here

1 个答案:

答案 0 :(得分:3)

您的观察点就出现了。

Drake当前不支持用于接触的任意网格(也称为“接近”角色)(仅用于“插图”和“感知”)。实际上,如果您可以使用该控制台,则可能会打印警告以指示该控制台。在添加该功能之前,您可以使用以下选项:

  • 正如您在YCB数据中观察到的,引入简单的图元来近似网格。当前,还没有用于生成简单表示的已发布技术。这主要是一种临时的手动方法。
  • 加载一个表示真正凸多面体的OBJ,并将<drake:declare_convex>标记添加为<mesh>几何的子代。这将使Drake期望接触中支持 的凸网格。因此,如果您可以轻松地创建凸包,那可能是一个不错的选择。

很难推荐使用水弹性接触。它尚未完全可以实际使用,并且存在一些限制(限制可能对您来说太麻烦了)。如果您有兴趣进一步调查,我们可以进行探讨。但现在,我建议您对对象进行一些凸形表示。