今天介绍下如何向VREP中导入三维图以及如何将VREP中的三维图导出。
01
Importing Shapes
V-REP使用三角形网格来描述和显示形状。因此,V-REP将导入的三维图描述为三角形网格的格式。如果想导入参数化表面的对象(例如IGES等,注:IGES 是初始化图形交换规范),那么首先需要将文件转换成合适的三角网格格式。有几个转换应用程序允许这个操作,而且大多数3D绘图应用程序也很好地支持这一点。
V-REP支持以下文件格式的形状导入,通过[Menu bar --> File --> Import --> Mesh...]
- OBJ : Wavefront Technologies 文件格式。这是目前唯一的格式,允许在V-REP导入纹理网格。
- DXF : AutoCAD文件格式(Autodesk)。文件中可能包含的非3D信息将被忽略。
- STL (ASCII或二进制) : 3D系统文件格式。支持ASCII和二进制文件。
- COLLADA : 有关详细信息,请参考COLLADA插件。
- URDF : 详细信息请参考URDF插件。
导入功能由V-REP的Assimp插件处理。查看这里的API函数。如果使用所需的标志重新编译Assimp库(和Assimp插件),就可以支持更多格式。
如果在导入操作之后,你在场景中看不到任何形状,但是场景层次结构显示了新添加的形状,那么很可能你的形状太大或太小而无法被看到。然后可以在 object common properties对象公共属性中进行缩放操作。另外,当从CAD应用程序导出网格时,尝试将它们作为一个整体导出(最好是将它们作为一个单独的对象导出,稍后在V-REP中,可以使用 [Menu Bar --> Edit --> Grouping/Merging --> Divide selected shapes]来分割导入的形状);这是为了避免CAD应用程序在导出操作过程中根据参考框架(V-REP的参考框架是不同的!)对单个网格进行重定位/重定向,这可能导致损坏外观。
确保导入的网格不包含太多的三角形(之前有过具体的介绍,对于机器人来说,通常在10000-20000个三角形之间),否则V-REP会大大降低速度(渲染,计算,加载/保存操作等等)。有些应用程序允许减少网格中的多边形数量(例如MeshLab或polygon crunsher)。另外,也可以使用以下V-REP功能:
[Menu bar --> Edit --> Morph selection into convex shapes]:允许将选择的形状转换为凸形。
[Menu bar --> Edit --> Morph selection into its convex decomposition...] :允许转换选择的形状到他们的凸分解表示。
[Menu bar --> Edit --> Decimate selected shape...]:可以减少选择形状中的三角形数量。
[Menu bar --> Edit --> Extract inside of selected shape...] :可将一个形状的内部(即不可见部分)与该形状的外部(即可见部分)提取/分离。这个功能是基于视觉传感器的。
从一个将形状处理为参数化表面的应用程序(例如IGES等)导出形状以及绘图中包含大对象和小对象时,分几步导出对象是十分必要的。能够有效避免大对象定义得太精确(三角形太多)和小对象定义得太粗略(三角形太少):简单地首先导出大对象(通过调整所需的精度设置),然后导出小对象(通过调整精度设置)。
还请确保遵循how to build a clean simulation model的教程,这个教程上次只出了一半。
02
Exporting Shapes
V-REP支持以下文件格式的形状导出t [Menu bar --> File --> Export --> Selected shapes...](注意:只会导出选中的对象):
- OBJ:波前技术文件格式。
- STL(二进制):3D系统文件格式。导出只支持二进制格式。这是V-REP中最紧凑的导出选项。
- COLLADA:详细信息请参考COLLADA插件。
V-REP的Assimp插件也处理导出功能。请查看这里的API函数。
03
Importing Heightfields
V-REP支持以下文件格式的heightfield形状导入( [Menu bar --> File --> Export --> Selected shapes...] ):
- Image file图像文件:一个图像文件(JPEG, PNG, TGA, BMP, TIFF或GIF文件),其中不同的高度值从红-,绿-,蓝组件:height=(红+绿+蓝)/3。
- CSV或TXT:逗号分隔值文件格式。该文件应该包含y行,其中每一行的x值用逗号分隔。
选择要导入的文件后,会打开一个对话框:
x -size / y -size:指定高度字段的x和y维度。单个高场单元总是正方形的。
z -scaling:指定应用于高度值的缩放。