我想生成基于物理引擎的感知和抓取数据集。我尝试将google ( https://app.ignitionrobotics.org/GoogleResearch )最近发布的3D模型导入drake,并为各种鞋创建分割数据集,即将网格放到垃圾桶中/让它休息,读取rgb /深度和分割图像。
但是,在drake中将对象网格(.obj文件)指定为碰撞几何似乎不起作用,因为鞋子只会穿透垃圾箱并不断落入深渊(附在快照中)。
我还注意到,YCB对象具有用简单的框和点接触来描述的碰撞几何。这里是相同的可视化(您可能已经熟悉)。绿色是碰撞几何。
如果我必须模拟上面的内容,我需要描述来自google研究数据集的所有对象的简单几何吗?如果是的话,它们是如何产生的?是否有一些工具用来生成这个,或者它是手动完成的?或者,当网格用于碰撞几何时,是否应该使水弹性接触模拟工作?
如果它能处理任何凸网格,另一种方法是将原始网格的凸包作为碰撞几何。
另外,作为另一种选择,我也尝试了同样的方法。我用的不是垃圾箱,而是飞机。Pybullet似乎在正确地将网格指定为冲突几何。以下是pybullet中数据的快照。
中间解决方案(尚未解决抓取部分):
经过与Sean & Russ的讨论,我创建了三角形网格的凸包(使用open3D),并将该凸包作为碰撞网格,并对网格标记进行了<drake:declare_convex/>
注释,使鞋达到了稳定的姿态。我认为这个解决方案对我来说足够好,可以用drake生成感知数据。下面是使用以下解决方案后的快照:
发布于 2020-10-04 16:23:35
你的观察是对的。
德雷克目前不支持任意的接触网格(也就是“接近”角色)(只支持“插图”和“感知”)。实际上,如果控制台对您可用,可能会有警告打印出来,显示的数量也一样多。在添加该功能之前,您有以下选项:
正如您在YCB数据中观察到的那样,
<drake:declare_convex>
标记添加为<mesh>
几何的子级。这将通知德雷克期望一个凸起的网格,这是支持接触。因此,如果您可以轻松地创建凸壳,这可能是一个很好的方向。很难推荐使用水弹性接触。它还没有完全准备好实际使用,并且有一些限制(限制对您来说可能太成问题了)。如果你有兴趣进一步调查,我们可以探索。但就目前而言,我建议对你的对象进行凸表示。
https://stackoverflow.com/questions/64196799
复制相似问题