V-REP是用于机器人建模的灵活且可扩展的平台。文章的继续

图片
我向您介绍了本文第二部分的翻译,该文章的第一部分已经发布,可以在此处找到
在第一部分中,我们熟悉了V-REP建模环境,研究了建模控制方法以及在建模中实现V-REP的可能性。
现在,我们将研究V-REP中的建模功能,并考虑使用V-REP平台的几个示例。

V-REP建模功能
V-REP是基于通用架构开发的,没有主模块或中央模块。相反,V-REP由相对独立的功能组组成,可以根据需要打开或关闭它们。

想象一下一个模拟场景,其中工业机器人必须捡起盒子并将它们移动到另一个位置。 V-REP计算捕捉和保持盒子的动力学,并在动态效果可忽略的情况下针对循环的其他部分执行运动学建模。这种方法使您可以快速而准确地计算工业机器人的运动,如果使用复杂的动态库进行完全模拟,则该方法将无法工作。当机器人被严格固定且不受环境影响时,使用这种混合仿真是合理的。

除了自适应选择性地包含各种功能之外,V-REP还可将它们一起使用,从而迫使一个与另一个进行交互。例如,在对人形机器人建模时,V-REP可以通过以下方式处理腿部运动:首先,计算每条腿的逆运动学(即,从所需的脚的位置和方向计算出整条腿的总位置);然后将关节的位置计算为动力学模块的目标。这允许您以非常通用的方式设置人形动作,因为将为每条腿分配6维路径的重复运动:剩余的计算将自动执行。

功能指的是特定的脚本对象或特定的计算模块,下面分别介绍每个功能。

模拟对象

V-REP仿真模型包含几个对象或元素,这些对象或元素被组装到树层次结构中。 V-REP支持以下模拟场景:

关节运动:将两个或多个场景对象链接在一起的元素,提供一到三个自由度(棱镜,旋转,螺旋或球形)。它们可以以多种模式工作(例如,以动力/旋转模式,逆运动学等)。

形式:用于对实体进行建模和可视化的三角形多边形网格。

非接触式传感器(图3):它们计算到检测范围内的图形部分的精确最小距离。与基于大量定向射线的检测相比,这提供了连续且更现实的仿真。

视觉传感器:视觉传感器使您可以从建模场景中提取复杂的图像和信息(颜色,对象大小,地图深度等)。内置的过滤和图像处理功能启动了一系列过滤元素。视觉传感器使用硬件加速来获取RAW图像(OpenGL支持)。

力传感器:它们是图形之间的硬链接,可以记录施加的力和扭矩,并且在超过给定阈值时可能会断开。

图表:图表可以记录各种各样的预定义或用户数据流。然后可以直接显示数据流(给定数据类型的时间轴),或将它们相互组合以显示X / Y图形或3D曲线。

相机:它们使您可以可视化取决于视角的场景。

照明:照亮场景或场景中的单个对象,并影响相机或视觉传感器。

方式:它们确定空间中的复杂运动(一系列自由组合的平移,旋转和/或停顿),并用于例如沿给定路径引导机器人焊炬,或允许您指定传送带的运动。

要点:这些是辅助参考系统,可以用于各种任务。主要与场景中的其他对象结合使用。

铣刀:可用于模拟模板上的切割操作表面(例如,铣削,激光切割等)。





模拟对象很少单独使用,它们更喜欢在其他对象上或与其他对象结合使用(例如,接近传感器检测表单)。此外,V-REP提供了多个计算模块,这些模块可以直接在一个或多个仿真场景上工作。以下是主要的计算模块:

运动学模块:允许您对任何类型的机制(分支,闭合,冗余,包含嵌套循环等)执行运动学计算(正向和逆向)。该模块基于最小衰落平方的计算。

动态模块:允许您使用Bullet Physics Library和Open Dynamics Engine调整计算实体和相互作用(碰撞,粘着等)的动力学。动态系统的仿真仍处于起步阶段,通常基于近似指标。为了确认结果,重要的是不仅要依靠一个物理引擎。

碰撞检测模块:允许您快速检查任何形状或一组形状之间的碰撞。该模块完全独立于用于计算模块动态性的算法的响应。基于矩形框的二叉树的数据结构用于加速。通过缓存技术可以实现其他优化。

距离计算模块(Mech-mech模块):允许您快速最小化任何形状(凸形,凹形,打开,闭合等)或一组形状之间的计算距离。该模块使用与冲突检测模块相同的数据结构。

运动计划模块:使用基于快速探索随机树(RRT)算法的方法手动计划完整和非完整任务。还支持运动路径规划任务。

为了通用,上述模块以通用形式实现。它们与V-REP集成的目标在某种程度上类似于内置脚本的集成,这在本文的第一部分中进行了描述。绝大多数仿真或仿真模型不需要任何特定的工具,也不需要足够的基本工具集。如果将工具集成到仿真器中,并且定义了与仿真模型直接相关的任务,那么该模型将变得非常容易移植。仿真模型是使用一个模型文件在另一台机器或平台上启动的:无需重新编译,安装或重新启动插件。同样,这使模型具有高度可伸缩性:模型的重复保留了功能,而无需更改源代码。即使在仿真过程中也可以执行复制过程。

V-REP还支持使用插件扩展功能以支持特定仿真模型的传统方法。

示例
在某些情况下,不可能与模拟实体分开使用控制器。通常,在使用包含非常复杂元素的机器人主控制器时会发生这种情况。或控制器应本机运行的时间。但是,另一方面,是否真的有必要为每个小传感器,新的附加功能或小功能创建自己的插件?以下三个示例说明了V-REP中提供的仿真模型具有吸引力的多功能性和便携性。

1)激光扫描仪型号

图4显示了V-REP中的激光扫描仪模型。该模型由外壳或壳体,铰链,安装在铰链中的接近传感器组成。
中断的子脚本附加到传感器主体,并负责将关节移动到给定角度,读取接近传感器,在建模场景中生成基本线(和接触点),然后移动到下一个角度位置。由于子脚本是在主线程中执行的,因此其处理的关节角度位置正好与模拟期间该关节移动的位置一样多。

您可以将模型拖到仿真场景中,它将立即开始工作。整个模型放在一个文件中,也适合在其他平台上直接使用,并且与当前和将来的V-REP兼容。一个模型可以根据需要重复多次,并且可以根据需要更改其控制代码。

图片

可以以相同方式创建其他模型,无论是用于绘画的笔,喷嘴,把手,污点检测相机还是整个机器人。

2)并联机械手的仿真模型

图5显示了通过外部API通过远程应用程序以直接运动学模式控制的并行操纵器的模型。为了正确处理所有约束,该模型通过V-REP运动学模块工作。由于与此相关的所有运动学问题都与一个模型相关联,因此该模型是自给自足的,易于复制,并且可以在其他平台上运行。模型的物理缩放是V-REP支持的另一个功能,它将自动调整所有运动任务(以及其他任务),并使内部运动学保持一致,而无需更改代码。

图片

3)聪明人的仿真模型

图6显示了一个人的仿真模型,该人执行计划在其当前位置和所需最终位置之间的轨迹的任务。在V-REP路径规划模块中执行路径规划任务本身时,附加在模型上的子脚本会调用手臂和腿部动作的计算,将其付诸行动并沿着计算出的路径正确移动模型。在这种情况下,该模型也是完全自主和完全可移植的。

图片

结论

V-REP是一种通用且可扩展的建模环境。它为控制器提供了许多不同的编程技术,并且能够将控制器和功能集成到仿真模型中,这使程序员可以更轻松地进行操作并降低用户的部署复杂性。

迄今为止,V-REP已发展成为一种健壮且广泛使用的机器人和控制器模拟器,广泛用于科学和工业领域。它执行各种任务:从检查系统,优化算法,在工业自动化中为复杂的组装电路建模到调度机器人和控制器的任务。

文章作者:marc@coppeliarobotics.com
Eric Romer,巴西坎皮纳斯州立大学讲师
Surya Singh,澳大利亚昆士兰大学教授
Mark Frieze,瑞士Coppelia机器人技术首席执行官。

翻译:喀山 Robotnopark Navigator校园的 Ales Khanieva

Source: https://habr.com/ru/post/zh-CN385725/


All Articles