基于SolidWorks的工业机器人仿真设计研究

2020-08-13 05:44吕健安
制造业自动化 2020年8期
关键词:执行器轨迹定义

吕健安

(惠州学院美术与设计学院,惠州 516007)

0 引言

近年来,在工业自动化方面的发展趋势是进一步模拟和控制工业机器人任务,使其更加系统和有效的工作[1]。采用传统方式对机器人任务进行编程和开发是非常繁琐和耗时的,通常需要专业级的操作者才能完成,这也成为了制约中小制造企业使用机器人提高生产效率的主要因素[2]。因此,使用更加简单、廉价和先进的技术来开发机器人任务成为当下的现实需要。在过去20年里,对计算机辅助设计的开发一般是通过真人示教完成的[3]。将计算机辅助设计(CAD)和专家知识库结合起来,再进行系统化编程,可以极大提高制造企业在技术应用上的自动化和通用性,使工业产品设计和机器手程序能够无缝整合,推动现代工业向前发展。

目前,工业机器人系统广泛使用CAD和嵌入式知识来设计机械臂,通过模拟操纵者的动作来实现机械臂的自动化[4]。但这些系统大都需要额外的软件包和专用模块来进行机器人任务的开发,无法使用标准的CAD软件包,由此大大增加了用户的建模难度和使用成本[5]。通过将标准CAD机器人系统与CAD软件相结合的方式,能较好的解决上述问题,它不仅能简化使用方式,还能使用户直观地和机械臂进行交互,基于此,本研究提出一种基于标准CAD专家库的工业机器人仿真平台,该平台能让用户按步骤来实现预期目标,如任务定义、机械臂的三维设计、可访问性验证、任务执行时间优化、图形仿真、碰撞检测等。本研究的目的是通过整合机器人系统和标准CAD专家知识库,简化CAD机器人仿真任务开发。

1 基于CAD的仿真设计方法

以SolidWorks为例,SolidWorks API作为一种CAD开发工具,已经被广泛应用于设计和模拟各种工业级机械臂的轨迹运行[6]。比如,SolidWorks API可以提供基于真实机器人单元的三维模型来计算任务参数。同时,利用集成开发环境,参数的修改和重载也可以和用户进行友好的交互[7]。本研究使用产品生命周期管理软件(PLM)为SolidWorks API的应用开发一系列步骤平台可以对相关工业级任务进行仿真和验证。基于本研究设计的平台,用户只需基本的机器人知识就能生成并控制机械臂的运动,实现和机械臂的交互,平台工作流程如图1所示。

1.1 CAD机器人工具包

1.1.1 数据采集

数据采集是机械臂离线编程的关键步骤,它基于各个机械臂组成部分物理模型的虚拟呈现,本研究开发了一种CAD学习算法,它可以从虚拟环境中提取相关数据构建三维模型,这种方式除了能实现任务定义之外,还能更好的将虚拟机械臂和任务进行绑定,让它们协同工作。

1.1.2 环境相关的三维建模过程

图1 SolidWorks GUI仿真流程图

三维建模:利用CAD组件,各机器构成单元可以基于体或面进行三维建模,这些组件包括,机械臂模型库、末端执行器、三维任务模型以及环境对象等[8]。一般而言,按体建模的机器臂的工作空间比按面建模的具有更多的几何信息。不过,辅助三维对象也可以根据特定的需求进行面建模,值得注意的是,实际工作中以上对象的数据表示在精度上要比数据获取仿真原型更高。

任务定义:自动化任务可以表示为二维或三维的点集,然后通过机床的末端执行器访问。点集轨迹可以分为两种:离散型和连续型。离散型的轨迹任务包括点焊和钻孔,连续型轨迹任务包括弧焊、激光切割、喷绘和抛光等[9]。

机械臂模型库:该平台包括整套机器人操纵器,这些操纵器的三维模型已经整合进了SolidWorks的标准模型库。同时,为了便于对新型机械臂模型进行整合,平台保持接口开放。此外,为了便于在特定的虚拟场景中运行,该模型库还包含了一些其他辅助模型,如:点焊工具、传输工具、表工具、钻具、干燥工具、喷枪工具等。

1.2 计算机辅助设计的学习

1.2.1 智能软件和VBA

智能软件技术基于程序或控件集(如VBA)而开发,程序或控件集的核心是嵌入到CAD模型中的专家知识,这些技术是构成现代PLM系统的核心[9]。利用VBA通用控件,许多PLM系统都能实现机械行为的自动化,如CATIA、SolidWorks以及AutoCAD的二次开发,因此,在工业仿真平台上,可以认为对模型进行实质操作的是以VBA为代表的控件集中关于装配和运动学的相关算法。

1.2.2 学习过程

本研究平台基于SolidWorks的VBA插件运行,目的是根据式(1)给出的任务定义,从图像区域中提取轨迹s的实质性转换条件。

Ti表示末端执行器坐标系统w.r.t.机器人基本框架的齐次矩阵。在Ti中,当最后一列向量通过赋值给出点集位置时,机械臂的运行方向就可以通过左上四阶矩阵计算得到。

本研究平台操作较为简单,学习过程通过GUI接口优化整合。首先,平台需要一个有关任务的CAD三维模型和末端执行器三维模型,其细节可以通过应用程序的主GUI描述,用户可以通过使用本平台的GUI或SolidWorks自带GUI来操作X、Y和Z轴,从而在图形区域中移动末端执行器的三维模型。

第一步,用户需要获取用于从图形区域学习的关键信息,比如点(例如N点)坐标,机械臂将在这里进行钻、点、焊等各种操作。我们需要从这些信息中提取每个点的方向,作为点所在表面的法向,以上数据最终表示为由4位二进制序列,3位表示位置,1位表示方向,这些数据可以用于下一阶段的智能学习,同时以伪代码的形式转换为P2P轨迹过程中涉及的步骤序列。

第二步,用户需要在虚拟环境中调整末端执行器的三维模型。该平台在GUI环境下,可以对所有可能轴向的末端执行器,进行替换和旋转。在涉及如抓取等点对点(P2P)的轨迹任务时,此过程则要在两个位置先后进行:预抓取与正式抓取位置。针对每个位置,我们都会得到一个式(2)中给出的变换矩阵,用于之后的轨迹规划。

2 任务的可访问性

要实现精确完成工业任务,仿真机器人至少必须能够到达所有由用户定义的任务点,因此,平台必须对任务点的可访问性进行验证。在本研究中,任务的可访问性验证由工作空间的三维模型生成、任务点的表示和最后的干扰检查三部分共同完成。

2.1 工作空间生成

仿真策略的主要内容包括任务点和工作空间。机器人操纵器工作空间的三维形态由其功能决定,包括DH设计参数、连杆长度和关节的运动范围。由于多数操纵器都是前三个关节用于物体定位,后三个关节用于控制方向,因此本研究重点考虑对生成工作空间三维模型起决定作用的前三个关节[10]。通过与第一关节的配合,第二和第三关节主要可以在垂直平面上绘制草图,第一关节通过挤压和旋转,也可以用作体的创建,以上这些工作必须在SolidWorks API中事先定义,以达到生成精确三维模型的目的。利用相关算法,可以描述生成工作空间所涉及的主要步骤。另外,平台还需通过一个虚拟三维容器来完成对所生成空间的有效性验证。

2.2 可达性验证算法

各种操作任务的可达性与机械臂可访问关节域的位置和方向成正比,通过SolidWorks的API函数,GUI利用任务点的几何特征和操纵器的三维工作空间模型来检测干扰,干扰利用多个平行四边形临时物体进行检测,前者围绕任务点和机械臂工作空间创建,以观察机器人是否能到达任务点[11]。如果任务点不可达,该平台的图形可访问性验证过程可以重新定义任务或重新定义机器人的DH参数,直到任务完成。检查任务可达性的步骤包括:

1)从CAD模型中获取任务点数据;

2)围绕任务点创建虚拟三维对象;

3)通过持续位移到任务点位置来导航工作空间的三维模型;

4)在目标点和工作空间三维模型中检测干扰。

3 时间优化

考虑到建立一个包含完成机器人任务所有必要阶段工业框架的复杂性,本研究需要对仿真平台进行时间优化,用以提高仿真工作效率。

在机械化制造工厂里,完成一项特定任务的周期时间取决于机械臂关节之间的连接距离,前者又与末端执行器所需遍历任务点的顺序有关。

点集的位置可以映射为坐标空间中机械臂的动作轨迹,最终让机械臂完成特定任务,因此,优化中可以考虑利用遍历距离表示机械手臂的逆运动学模型IKM函数。实际上,优化问题可转换为一个在每两个连续的轨迹点之间寻找最小距离的问题,而且,机械臂逆运动学模型节点的任何最优解还受机械臂位置和方向的影响,因此,本研究提出一种包含目标函数的算法,它包含了任务点的实现顺序、每个任务点机械臂的逆运动学模型、以及在操作器和任务点之间的相对位置和方向,最后,根据关节在各连续点之间的位移和对应关节的平均速度,计算出最小周期时间。

3.1 向量优化基础

如果是一个包含n自由度(degree of freedom)的操纵器,那么在任务空间中则必须访问n个离散点[12]。操纵器必须在任务完成后返回初始位置,关节空间和操作空间之间的函数关系可以用式(3)来表示。

机器人从k点到k+1点所花费的任务时间由式(4)定义:

其中的m=1,2,…,n表示在任务点k-1可能的IKM配置序号,l=1,2,…,n表示在任务点k可能的IKM配置序号。

σ用于表示操纵器任务点的相对位置和方向,同时也用于确定从任务帧到固定帧的转换方式,rj是第j个关节的平均速度。任务所需总周期时间由式(5)给出。

其中的N+1表示每两个连续配置之间的位移量,以及回归到初始配置的次数,初始配置与任务点无关。完整的任务时间优化函数可表示如下:

由式(6)所给出的最小周期时间tmin的计算需要对所有可能的解进行仔细检验,因为它是各种变量的函数。该函数的参数数量众多,关联解决方案的数量庞大,因此,会大大增加函数计算的复杂性。

一个操纵器逆运动学模型配置的标准6自由度的数量是24,通过操纵器最后三个关节的轴相交,可以把数量降至16。由此,在每个任务点可能的IKM配置可以定义为2d,其中d从1、2、3、4四个数中选取,所有任务点的IKM配置数量为(2d)N。任务点排列的可能数由N!决定,考虑到问题的对称性,以及操纵器w.r.t的位置和方向的数量和用以进行区域采样的网格数有关,任务点的数量可以减少到一半,例如,同样四个任务点,访问顺序1-2-3-4与4-3-2-1相同。

3.2 基于遗传的优化方法

遗传算法(GA)是一种寻找最优解的全局搜索算法,主要受到自然选择机制的启发而得名[13]。在本研究提出的方法中,每个染色体由四个相互连接的部分组成:点的访问顺序,每个点上操纵器逆运动学模型(IKM)的配置,点的相对位置以及点的方向,然后根据目标函数(6),选取近似最优解。其中任务点的访问顺序由整型字母进行编码,以避免突变操作中的未知冲突。

为了辅助遗传优化,本研究还开发了一种特定算法来纠正在交叉操作中导致相同基因的二进制位。对于操纵器的逆运动学模型(IKM)配置及其相对位置和方向,选择相应的二进制序列进行编码表示。从遗传算法的角度来讲,本研究平台的可选种子数量范围从6到1万。优化过程依赖于式(6)所给出的目标函数,该函数基于每个解,即染色体,能产生的周期时间,然后,平台再对具有高度适应性的最小时间解决方案,进行复制。

选择约束基于等级,在该等级中,10%的最优秀基因序列保持不变,从而使遗传既不发生突变,也不会将之前的突变遗传到下一代,以保证最好的解决方案得到保留。通过在平台相应位置定义的交叉变异概率,可以对与剩余种群相对应的染色体进行复制。实际操作过程中,单点独立交叉比两点交叉表现更优秀,因为两点交叉容易产生非均匀的染色体,容易导致检索最小时间解决方案失败。

4 设计实践

为了检验仿真优化效果,我们对该平台的点焊和喷绘功能分别进行了仿真测试。从对工业车身实施的总计4个点的点焊仿真情况来看,该平台能够找到涉及点焊精度的六个主要参考点X、Y、Z、θ、ψ、φ的最优坐标值(本例中,分别是170.35mm、172.42mm、315.12mm、83.72°、178.47°和217.36°),实现点焊的精确仿真。从对工业车门的喷绘过程仿真情况来看,在忽略放置位置和定向区域的前提下,在给定一个固定访问点序列的前提下,机械手臂能实施从第一传送带上抓取、精确绘制并放置于第二传送带的系列重复动作,成功实现喷绘的仿真操作。需要说明的是,机械臂实施抓取和放置操作并非绝对精确,因为从实际生产情况来看,放置位置和定向区域一般被流水线上级操作限制在了一定的范围之内,因此喷绘仿真过程的计算并不涉及以上两个参数。

5 结语

本文中,我们介绍了一种用于工业机器人仿真设计优化的软件平台,该平台的使用分为配置初始化、连接、核心定义、优化、模拟和任务验证等几个步骤。通过这些步骤,用户可以方便的定义和模拟机械臂的相关任务,然后将其映射到实际环境中,这样可以有效解决时间优化的相关问题,避免冲突。所有的定义步骤可以在部分程序集或完整程序集文档中执行。

通过用户图形界面(GUI),平台可以提供许多实用工具,可以处理包括但不限于钻孔、喷绘、点焊、拾取和放置以及其他对象操作任务在内的多种自动化任务。该平台与SolidWorks 的GUI完全集成,进一步提高了平台的使用有效性。利用遗传算法,平台通过寻找基于最小周期时间的最优解,实现对任务的自动时间优化,在优化过程中,本研究还考虑了影响任务时间的四个主要部分:访问顺序、逆向运动学模型IKM参数配置、相对位置和定位以及任务点集。仿真结果表明,该平台的CAD学习算法在简化可访问性验证以及轨迹生成方面是实用和高效的。

该平台目前只支持对单个机械手臂进行仿真和控制,因此,如何通过增加平台功能模块,实现多路机械手臂的并行处理,增强和扩展平台的功能,将是本研究后续的发展方向。

猜你喜欢
执行器轨迹定义
多场下压电喷油器执行器电学特性试验研究
自动驾驶汽车执行器故障冗余算法
轨迹
轨迹
高锁螺母自动化安装机器人末端执行器设计
X-431实测篇2010年奔驰B200空调执行器电机学习
轨迹
进化的轨迹(一)——进化,无尽的适应
成功的定义
修辞学的重大定义