Robosuite是基于mujoco封装的机器人操作库,而mujoco的碰撞检测是基于凸壳,也就是geom必须是凸的,如果是凹的话,凹的部分会有一个透明的屏障而无法与其他物体有碰撞。但是实际场景很多物体都不是凸的,比如杯子的口是凹进去的。
pybullet的py库里集成里该函数:
import pybullet as p
input_obj = '/home/wdx/anaconda3/envs/mujoco/lib/python3.7/site-packages/robosuite/models/assets/objects/meshes/025_mug/textured.obj'
output_obj = input_obj.replace('.obj', '_vhacd.obj')
p.vhacd(input_obj, output_obj, 'log.txt')
用blender打开生成的模型:
其中每一个部分都可以单独导出成obj/stl模型文件。