我想基于物理引擎生成用于感知和掌握的数据集。我尝试将Google研究最近(https://app.ignitionrobotics.org/GoogleResearch)发布的以下3D模型导入德雷克,并为各种鞋子创建细分数据集,即将网格放入箱中/使其静止并读取rgb /深度和细分图片。
但是,将对象网格(.obj文件)指定为Drake中的碰撞几何体似乎不起作用,因为鞋子只是穿过垃圾箱并不断掉入深渊(附加快照)。
我还注意到YCB对象具有使用简单的盒子和点接触描述的碰撞几何。这是相同的可视化效果(您可能已经很熟悉了)。绿色是碰撞几何。
如果我必须模拟上述内容,是否需要为Google研究数据集中的所有对象描述简单的几何图形?如果是这样,它们是如何产生的?是否有一些工具可以用来生成此信息,还是可以手动完成?还是在将网格用于碰撞几何时启用水弹性接触仿真以使其工作?
如果它可以处理任何凸面网格,则可以选择将原始网格的凸面外壳作为碰撞几何体。
另外,我也尝试过使用pybullet。我用飞机代替垃圾箱。 Pybullet似乎正在正确地将网格指定为碰撞几何。这是pybullet中数据的快照。
一种中间解决方案(尚未解决抓取部分):
在与Sean&Russ讨论之后,我创建了三角形网格的凸包(使用open3D),看来使用该凸包作为碰撞网格并使用<drake:declare_convex/>
标注网格标签,鞋子变得稳定了姿势我认为该解决方案对于使用Drake生成感知数据已经足够了。这是使用以下解决方案后的快照:
答案 0 :(得分:3)
您的观察点就出现了。
Drake当前不支持用于接触的任意网格(也称为“接近”角色)(仅用于“插图”和“感知”)。实际上,如果您可以使用该控制台,则可能会打印警告以指示该控制台。在添加该功能之前,您可以使用以下选项:
<drake:declare_convex>
标记添加为<mesh>
几何的子代。这将使Drake期望接触中支持 的凸网格。因此,如果您可以轻松地创建凸包,那可能是一个不错的选择。很难推荐使用水弹性接触。它尚未完全可以实际使用,并且存在一些限制(限制可能对您来说太麻烦了)。如果您有兴趣进一步调查,我们可以进行探讨。但现在,我建议您对对象进行一些凸形表示。