在本教程中,我们将构建一个从a到z的传送带,在本教程的最后我们会看到这种情况。
我们将建立一个几乎真实的传送带,其中每个输送带垫片是单独的动态模拟。这意味着更小的物体可能被困在两个相邻的垫片之间。这种类型的模拟可能需要大量的计算,并且会降低整个模拟过程的速度。存在有一种替代的、简化的方法来模拟传送带,明确标记为方法B(与方法A相比,在方法A中模拟单个的垫块)。
首先,重新开始V-REP。上图中的传送带基本上是由一个路径对象构成,该路径对象沿着其轨迹驱动多个垫块。添加圆形路径 [Popup menu --> Add --> Path --> Circle type]。要从上面看到路径,请切换到page6,使用“fit-to -view”工具栏按钮将相机拉近:
选择path对象后,请注意路径是如何由蓝点定义的,在蓝点之间执行贝塞尔插值。区分一个红色的球,它代表路径位置,不是路径的位置,而是沿着路径的位置。
在将垫片附加到路径之前,让我们准备路径的正确大小和形状。我们可以导入路径,也可以修改和编辑现有路径,我们将选择第二种选择。选择路径后,点击路径编辑模式工具栏按钮,进入路径编辑模式:
我们现在处于路径编辑模式。我们想设计一条10厘米厚,20厘米宽,1米长的传送带。每个垫片组成的皮带将是5毫米厚。
在路径编辑模式对话框中,检查路径是否平坦并保持x项不变。选择所有路径点,然后打开位置对话框,在位置缩放选项卡上,在右边输入3倍的比例因子“0.19”,然后点击比例位置。这只是适当地调整了路径。使用鼠标滚轮,靠近路径。选择最上面的路径点。用ctrl-c复制它。然后再次选择它,用ctrl-v将缓冲区粘贴到选定位置之后。我们刚刚创建了一个与最上面的路径点一致的路径点:我们复制了路径点#13,然后粘贴了它的一个副本。新的路径点是路径点#14,如图所示:
现在对最下面的路径点重复相同的过程。现在我们有两个中间路径点重复,我们可以延伸的道路,即左右移动部件分开:选择场景中层次路径点路径# 6到# 14 ,在移动选项卡的位置对话框中,为项目沿着X输入“-0.5”然后单击X-translate选择。现在缩小一点。这是应该拥有的:
现在选择左侧路径点,以类似的方式将它们向正x坐标移动0.5 m。路径准备好了:
离开路径编辑模式,选择路径,在主窗口的信息文本部分注意到一行“最后选择的对象类型:path (Bezier curve point count=270, total length=2.2985, p= 0.0000, Vn= 0.0000)”。这告诉我们路径的长度是2.2985米。我们现在可以算出我们想要多少垫子,它们的宽度,以及垫子之间的距离应该是多少。我们使用40个垫和5厘米的宽度,这导致垫间距离0.75厘米
点击 [Popup menu --> Add --> Primitive shape --> Cuboid]。原始形状对话框出现,允许调整各种参数。输入(0.05;0.005;0.18)对于x、y和z的大小。
接下来,我们想要把pad附加到路径上,这样它就会自动跟随路径的轨迹,如果路径的固有位置被sim. setpathposition修改的话。对于这个任务,我们需要一个helper对象:一个dummy。点击[Popup menu --> Add --> Dummy]。将这个虚拟重命名为“padLink0”。通过方向对话框,在方向选项卡上调整dummy的方向为(0;-90;0)。通过选择pad,然后选择dummy,将pad附加到dummy上,然后点击[Popup menu --> Edit --> Make last selected object parent]。接下来,以类似的方式将dummy连接到路径上(父子关系也可以通过在场景层次结构中拖放来实现)。双击场景层级中的dummy的图标,打开dummy属性对话框。检查跟随父路径(只有直接父)Follow parent path (only direct parent)项目:注意如何dummy和垫子刚刚跳到路径的红色球体的位置。当dummy仍然被选中时,将复制增量项设置为“0.0575”。这表明,如果dummy被复制,那么它在路径上的偏移量将自动增加0.0575米,即垫片的宽度加上垫块之间的距离。在对象公共属性对话框中,将dummy设置于11层隐藏(关闭层3并激活层11)。
现在我们将添加剩下的39个垫片。选择dummy和pad,然后按ctrl-c复制选择。然后通过按39次ctrl-v粘贴缓冲区39次。用esc键清除选择,然后在场景层次中选择“padLink1”到“padLink39”(确保你没有选择pads,而只是dummies!),然后选择路径,然后点击 [Popup menu --> Edit --> Make last selected object parent]。
在下一步,我们将为传送带增加一个简化的主体。添加尺寸为(0.12;0.12;0.2)的纯圆柱体到场景中中。设置它的z位置为0,x位置为0.5,然后调整它的颜色。复制粘贴,并移动副本到x坐标-0.5米。添加一个尺寸为(1.0;0.09;0.18)的纯长方体。设置它的z位置为0,并调整它的颜色。选择刚才添加的两个圆柱体和长方体,点击 [Popup menu --> Edit --> Grouping/Merging --> Group selected shapes]。将产生的形状重新命名为“conveyorBelt”。在形状动态属性对话框中,使“输送带”静态,并在对象公共属性中,检查可碰撞、可测量、可渲染和所有可检测的属性。同时按下能见度层按钮9。然后将路径连接到“传送带”上。
现在将传送带体绕绝对x轴旋转90度,并设置其坐标为(0.0;0.0;0.5)。选择路径,在路径属性中取消选中显示路径线,显示点的方向和显示当前路径上的位置。选择“输送带”,在对象通用属性对话框中,检查对象是模型基础项。单击编辑模型属性,并在模型内容确认/信息部分Model content acknowledgments/Info中,添加希望在每次加载输送带模型时显示的一些文本。最后从“conveyorBelt”开始折叠层次树。我们的模型已基本就绪:
注意,点击输送带模型上的任意对象,整个模型都会被选中。如果你想选择单独的对象,你仍然可以在场景层次结构中这样做,或者在点击对象时同时按住shift和ctrl键。
路径的内在位置(路径的移动)也可以通过API函数sim.setPathPosition进行修改。在模型浏览器中查看其他传送带模型,以了解如何做到这一点。
通过此次的介绍,大家可以构建一个下图所示的履带来进行练习。
由于在忙其他的事情,以上过程我没有用软件亲自尝试,如果哪里有问题欢迎大家批评指正。