CN109976259B - 一种基于vtk的机器人自由曲面工件打磨离线编程方法 - Google Patents

一种基于vtk的机器人自由曲面工件打磨离线编程方法 Download PDF

Info

Publication number
CN109976259B
CN109976259B CN201910207244.XA CN201910207244A CN109976259B CN 109976259 B CN109976259 B CN 109976259B CN 201910207244 A CN201910207244 A CN 201910207244A CN 109976259 B CN109976259 B CN 109976259B
Authority
CN
China
Prior art keywords
node
normal
robot
vtk
curved surface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910207244.XA
Other languages
English (en)
Other versions
CN109976259A (zh
Inventor
王保升
单忠德
洪磊
潘婷
邢红辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Institute of Technology
Beijing National Innovation Institute of Lightweight Ltd
Original Assignee
Nanjing Institute of Technology
Beijing National Innovation Institute of Lightweight Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Institute of Technology, Beijing National Innovation Institute of Lightweight Ltd filed Critical Nanjing Institute of Technology
Priority to CN201910207244.XA priority Critical patent/CN109976259B/zh
Publication of CN109976259A publication Critical patent/CN109976259A/zh
Application granted granted Critical
Publication of CN109976259B publication Critical patent/CN109976259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • G05B19/40937Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine concerning programming of machining or material parameters, pocket machining
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32161Object oriented control, programming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

本发明公开了一种基于VTK的机器人自由曲面工件打磨离线编程方法,包括以下步骤:导入工件磨削***的三维模型;确定待打磨曲面的截交曲线;提取打磨规划节点的位置和姿态;打磨轨迹规划;机器人运动仿真;生成机器人运动程序代码。本发明将可视化开发库VTK技术融入基于Visual Studio的VC++平台开发的机器人离线编程***中,本发明提供了基于VTK的自由曲面打磨路径节点位置和姿态提取方法,在不依赖于第三方CAD软件的情况下仅需通过鼠标拾取操作即可生成打磨轨迹,无需经过繁琐的外部数据计算和导入过程,人机交互性良好,可快速生成所需打磨机器人程序。

Description

一种基于VTK的机器人自由曲面工件打磨离线编程方法
技术领域
本发明属于工业机器人工件磨削的技术领域,具体涉及一种基于VTK的机器 人自由曲面工件打磨离线编程方法。
背景技术
在工业磨削加工领域,由于产品质量和工艺要求,大量工件如汽轮机叶片、 洁具、钛合金文体用具等表面往往呈现不规则弯曲扭转变化的自由曲面,为了能 够保证表面质量和尺寸精度,对工件表面磨削加工提出了很高的要求,使得手工 磨削和专用机械方式均不能满足需求。手工磨削工作环境恶劣,劳动强度大,严 重威胁人员的身心健康,且难以保证表面加工精度和产品质量的一致性。而专用 磨床只适合特定型号工件的大批量加工,难以适应日益多样化的市场需求,导致 其应用范围比较狭窄。机器人应用于磨削加工不仅可以用来提高表面质量,保证 加工质量的一致性,而且适应当前工件多规格、小批量的发展趋势。由于工件曲 面的复杂性和加工精度的要求,工件表面必须规划足够密集的磨削行和目标点, 使得采用机器人示教来获得磨削加工点的方式大大增加了工人的劳动强度,导致加工效率极为低下,因此研究采用离线编程方式解决复杂自由曲面工件磨削加工 具有重要意义。
目前,针对复杂自由曲面工件磨削加工的离线编程应用方法主要有三类。
第一类方法是直接依托国外成熟的离线编程软件进行应用。林少丹等人在武 汉工程大学学报,2015,37(9):50-56上发表的文章“磨抛离线编程中修正砂带位 姿及加工姿态”,利用ABB RobotStudio验证了磨抛工件曲面加工姿态的修正和加 工过程奇异位置问题;童话等人在机械工程师,2017,1:180-182上发表的文章“基 于离线编程的铸件打磨机器人***”利用FANUC Roboguide离线编程软件实现了 PUMA560机器人的打磨离线自动化应用。RobotStudio、Roboguide可依据工件模 型自动生成精度很高的机器人程序,但国外软件由于具有商业性质,产品价格昂 贵,技术开放性很低,且仅支持自身厂商生产的机器人,不具备通用性,无法应 用于国产机器人的离线编程开发。
第二类方法是利用通用的三维CAD建模软件提供的API接口进行二次开发。 中国专利文献CN105302959A公开了一种六轴磨抛工业机器人离线编程方法,其 方法是在三维建模软件Solidworks环境下,通过API二次开发接口,获取工件加 工几何信息数据,进而建立一系列加工点的三维坐标,并生成机器人运动轨迹, 实现工业机器人的离线编程。由于其机器人任务点的位姿信息需借助Solidworks API函数接口来提取,因此对计算机性能要求较高,运行耗时,同时由于自主开 发的灵活性受到Solidworks软件接口的局限,缺乏良好的人机交互性。同时在其 极限等距法实施中等距曲面取样时采用了1mm的确定数值,缺乏一定的灵活性。
中国专利文献CN107283422A公开了一种基于离线编程的机器人加持工件打 磨的轨迹规划方法,其方法可计算打磨插补点的姿态信息,解决了机器人末端姿 态点与实际运动末端不一致情况下机器人的离线轨迹规划问题。但缺点是工件打 磨点的获取需要在三维建模软件中构建,而打磨点数据需要导入离线编程软件进 一步构建B样条曲面和曲线,缺乏良好的人机交互性。同时没有指出在三维建模 软件中打磨点样条曲线选取的依据和拾取的具体方法。
第三类方法是构建开放交互式仿真环境进行自主研发。毛莉娜等人在机床与 液压,2017,45(15):60-63,112上发表的文章“夹持工件打磨机器人离线编程及 仿真***设计”基于MFC框架以及OpenGL图形库接口搭建机器人离线编程仿真 ***,可通过基于工件模型STL文件分层切片生成机器人打磨运动轨迹,但缺点 是尚不支持STL以外的其他工件模型格式。
综上所述,第一类方法存在着通用性不足,第二类方法存在着人机交互性较 差、自主开发灵活性不足的固有缺陷。而第三类方法采用开放交互式仿真环境实 现自主研发,有效地克服了前二类方法的缺点,是当前国内机器人自由曲面磨削 离线编程技术进一步发展的方向,但目前这类方法存在支持工件模型格式单一, 打磨点数据依赖外部导入、打磨点样条曲线选取方式不明确等技术问题。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足,提供一种工业机器 人自由曲面工件打磨离线编程方法。本方法应用基于OpenGL的开源可视化开发 库VTK(Visualization Toolkit)技术创建机器人三维模型与仿真环境,利用Visual Studio的VC++平台实现机器人离线编程***的开发。
为实现上述技术目的,本发明采取的技术方案为:
本发明方法的总体步骤流程框图如图1所示,一种基于VTK的机器人自由曲 面工件打磨离线编程方法,包括以下步骤:
(1)导入工件磨削***的三维模型
在三维软件中建立机器人工件磨削***的三维模型,该磨削***包括机器人、 砂带机、工件以及相应的夹具,将机器人磨削***三维模型导入基于VTK的Visual Studio离线编程软件,在该软件上完成磨削***工作环境的布局。基于VTK的 Visual Studio离线编程平台支持导入的三维模型文件格式有IGES、STEP、OBJ、STL 等4种,导入的三维模型通过VTK的vtkTransform方法实现离线编程工作环境的 布局。其中,以IGES或STEP格式导入的三维模型,通过VTK的vtkAssembly方 法能够离散化形成曲面(含平面)也能够重新装配成整体。
(2)确定待打磨曲面的截交曲线
在基于VTK的Visual Studio离线编程平台中,通过鼠标拾取待打磨曲面,首 先确定曲面的主法向量标识,然后进一步得到截平面,最后得到截交线,如图2 所示。
截交线获取的具体步骤如下:
(2.1)确定待打磨曲面的主法向量。具体过程如下:
S1)在VTK中,待打磨曲面三角面片化后,以数据类型vtkPolyData形式存 储,通过VTK交互器Widget方法实现鼠标对打磨曲面的拾取,记为曲面PD, 面片总数为n。
S2)采用VTK的vtkPolyDataNormals方法提取曲面PD每个面片的法向量 nvi(i=1~n),上述所有法向量的合成向量即为曲面的主法向量NV。
S3)判定曲面的主法向标识FNV,以主法向量NV在世界坐标系坐标轴上的 最大绝对值投影分量的方向作为主法向标识,主法向标识FNV取值范围设定为0, 1和2,分别标识曲面主法向的分量主体沿X向、Y向或Z向。
(2.2)确定截平面,具体过程如下:
S1)截平面法向量标识记为NVC,选择非曲面主法向标识FNV的另两个方向 为可选的截平面法向,记为NVC1(或
Figure BDA0001999094770000031
法向)和NVC2(或
Figure BDA0001999094770000032
法向)。
S2)确定截平面的始末平面位置:利用vtkPolyData类型的bounds方法分别 求取
Figure BDA0001999094770000041
法向截平面和
Figure BDA0001999094770000042
法向截平面在曲面PD上的坐标范围最大和最小值,分 别记为
Figure BDA0001999094770000043
(对应
Figure BDA0001999094770000044
法向),
Figure BDA0001999094770000045
(对应
Figure BDA0001999094770000046
法向),并分别由此确定为
Figure BDA0001999094770000047
法向和
Figure BDA0001999094770000048
法向始末截平面位置。
(2.3)确定截交线,具体过程如下:
Figure BDA0001999094770000049
法向始末截面
Figure BDA00019990947700000410
Figure BDA00019990947700000411
为界等间距取n个平行截面
Figure BDA00019990947700000412
(含始末 截面在内),截平面
Figure BDA00019990947700000413
在PD上形成n条切割线
Figure BDA00019990947700000414
同样, 以
Figure BDA00019990947700000415
法向始末截面
Figure BDA00019990947700000416
Figure BDA00019990947700000417
为界等间距取m个平行截面
Figure BDA00019990947700000418
(含始末 截面在内),截平面
Figure BDA00019990947700000419
在PD上形成m条切割线
Figure BDA00019990947700000420
通 过vtkCutter方法提取到构成各切割线对应的点集
Figure BDA00019990947700000421
Figure BDA00019990947700000422
并以vtkPoints类型存储。直接提取到的点集数据是无序存储的,根据唯一标识 每个点的ID(vtkIdType类型),通过割线点集排序算法可完成点的顺序排列,算 法流程见图3,经排序后每组割线构成的新点集仍记为
Figure BDA00019990947700000423
Figure BDA00019990947700000424
(3)提取打磨规划节点Knot的位置和姿态
(3.1)提取打磨规划节点Knot位置坐标数据
将步骤(2)得到的截交线点集进行排序,使截交线由顺次相连的多条直线 段构成,求出构成节点的最相邻两条直线段,并以该两条线段的交点为规划节点, 具体如下:
取切割线
Figure BDA00019990947700000425
Figure BDA00019990947700000426
的交点PCij(i=1~n,j=1~m)为 打磨规划的节点Knot。由于构成交点PCij的两个割线点集
Figure BDA00019990947700000427
Figure BDA00019990947700000428
经过排序后各由顺次相连的多条直线段构成,求交点可以转换为 求其中最相邻两条直线段之间的求交问题,包括以下步骤:
S1)求出构成交点PCij的最相邻两条直线段
Figure BDA00019990947700000429
(i=1~n,j=1~m):
顺次取点集
Figure BDA00019990947700000430
中每相邻的两点
Figure BDA00019990947700000431
判断该两点线 段是否与截平面
Figure BDA00019990947700000432
相交,如果相交则取该两点线段为
Figure BDA00019990947700000433
否则令k=k+1,继续判断下一条线段。同样的方法顺次取点集
Figure BDA0001999094770000051
中每相邻 的两点
Figure BDA0001999094770000052
判断该两点线段是否与截平面
Figure BDA0001999094770000053
相交,如 果相交则取该两点线段为
Figure BDA0001999094770000054
否则令k=k+1,继续判断下一条线段。
S2)求空间两线段
Figure BDA0001999094770000055
(i=1~n,j=1~m)的交点,由于工件CAD 模型存在微小误差,故首先判断两线段是否相交,如果相交,则计算两线段所在 直线的交点;当两线段异面时,没有真实的交点,取两线段的公垂线的中点为交 点。
节点位置特殊情况的选择:
对于常规的曲面,上述方法可以得到的n×m个交点,且均在曲面内,可选 择为最终的打磨规划节点;
对于不规则的曲面,会出现割线点集
Figure BDA0001999094770000056
Figure BDA0001999094770000057
中的一 部分无交点的情况,上述方法得到的交点出现在曲面外时,删除这些曲面外的交 点,保留剩余交点为最终的打磨规划节点。
(3.2)提取打磨规划节点Knot姿态坐标数据
S1)确定节点PCij(i=1~n,j=1~m)在曲面PD上对应的法向量:
搜索节点P在曲面实体PolyData中所在的三角面片cell单元,以该cell单元 的法向作为节点的近似法向量,参见附图4,具体方法如下:
S1.1)首先获取三角面片cell的数量,记为Ncell,下面进入循环搜索给定节 点P所在的cell单元的序号;
S1.2)提取第i个三角面片cell(i)的顶点(vi1,vi2,vi3),得到对应的平面方程 Fi(vi1,vi2,vi3);
S1.3)判定节点P是否在cell(i)所在的平面Fi上;(设置一定的阈值thres,节 点P距离平面小于thres即认为在平面内);
S1.4)如果节点P不在该面片平面Fi上,直接返回到S1.2判断下一面片;
S1.5)如果P在该面片平面Fi上,求P在该面片上的投影点PP。判断PP是 否在cell(i)所在三角形内或边上,如果PP不在面片内部,返回S1.2判断下一面 片,如果在面片内部,则以该面片cell(i)即为判定的结果,结束循环搜索;
S1.6)计算判定得到的面片cell(i)的法向量,得出结果。
由上述方法得到节点PCij在PD上对应的法向量记为
Figure BDA0001999094770000061
并作为节点姿态矩阵Z分量的近似值
Figure BDA0001999094770000062
S2)确定节点姿态矩阵X分量:
通过每连续4个节点构建3次多项式插值曲线,由此求取各节点沿曲线的切 向矢量,以某一节点P为例,其节点P的切向矢量记为
Figure BDA0001999094770000063
作为节点姿态矩阵 X分量。
S3)确定节点姿态矩阵Z分量,参见附图5,具体方法如下:
由于根据节点法向量
Figure BDA0001999094770000064
得到的
Figure BDA0001999094770000065
为近似值,不满足
Figure BDA0001999094770000066
的条件,
Figure BDA0001999094770000067
为打磨规划曲线节点P处的切向量,因此构造下面方法进行修正,构造以
Figure BDA0001999094770000068
为 法向,过节点P的平面MX,将
Figure BDA0001999094770000069
向MX投影得到的单位化矢量
Figure BDA00019990947700000610
做为修正后 的节点P处的姿态矩阵Z分量。
S4)由S2和S3得到节点姿态矩阵X分量和Z分量后,由此可得Y分量为
Figure BDA00019990947700000611
综上构造出节点姿态矩阵
Figure BDA00019990947700000612
(4)打磨轨迹规划,包括以下步骤:
(4.1)在工件坐标系下,根据节点位姿沿打磨曲线实现位置和姿态离散化;
位置离散化:
由打磨规划节点PCij(i=1~n,j=1~m)构造B样条拟合曲线:
S1)确定打磨规划曲线方向:
打磨规划曲线可以选择沿
Figure BDA00019990947700000613
割线方向,也可以选择沿
Figure BDA00019990947700000614
割线方向。当选择
Figure BDA00019990947700000615
割线方向时,共规划n条打磨 曲线,其中第i条曲线规划时需固定i,取该曲线上的m个节点PCij(j=1~m)进 行拟合;当选择
Figure BDA00019990947700000616
割线方向时,共规划m条打磨曲线,其中第j 条曲线规划时需固定j,取该曲线上的n个节点PCij(i=1~n)进行拟合。下面以规 划
Figure BDA0001999094770000071
方向的其中任意一条曲线为例进一步说明,为表述简便,下面 规划节点省略下标j,统一表述为PCi(i=1~n)。
S2)构造打磨规划曲线的p次B样条拟合曲线如公式(1)所示:
Figure BDA0001999094770000072
其中,C(u)为B样条曲线的矢量函数,Ni,p(u)为p次规范B样条基函数,Pi(i=0~n-1) 为控制点,u为参数序列,构成节点矢量U=[0,…,0,up+1,…,un,1,…,1]。
根据步骤(3)得到了打磨曲线的规划节点PCi(i=1~n),这里需要据此反推 节点矢量U和控制点Pi。工程实践中取p=3,即构成3次B样条曲线。
S3)反推节点矢量U:为避免轨迹规划中出现相邻段弦长相差悬殊的情况, 采用积累弦长参数化法反推节点矢量U。当p=3时,U端点重复度为4,则U参 数值由式(2)求解:
Figure BDA0001999094770000075
S4)反推控制点Pi(i=0~n-1):
将关键节点序列PCi(i=1~n)代入方程((1)后,构造3次B样条曲线方程组的 矩阵形式如式(3):
Figure BDA0001999094770000081
其中,系数矩阵和ei(i=1~n)由式(4)和(5)得到,如下:
Figure BDA0001999094770000082
Figure BDA0001999094770000083
其中
Figure BDA0001999094770000084
Figure BDA0001999094770000085
分别为节点PC,1和PC,n-2处的切向矢量,可以分别通过首、 末4个关键节点构建3次多项式插值,然后求取端部切矢量获得。
解方程组(3),便可以得到全部控制顶点。根据反推出来的节点矢量和控制 点便可以得到完整的B样条曲线。
姿态离散化:
利用四元数样条插值方法对节点运动姿态数据进行球面线性插值,保证磨削 运动姿态平滑连续变化。
首先,将节点姿态矩阵RP,i转化为四元数quai(i=1~n)表示,然后,相邻两 个节点姿态的四元数之间采用球面线性插值公式(Slerp)进行运算如下:
Figure BDA0001999094770000086
式中ω表示quai与quai+1之间的夹角,u为插值参数,与位置离散化相同, 采用积累弦长参数化法,u的取值由公式(2)得到。
(4.2)确定打磨***中各坐标系转换矩阵的关系,将工件坐标系下得到的 离散化位姿数据经坐标系变换后得到机器人基坐标系下的数据,最终实现打磨笛 卡尔空间轨迹规划。
附图6为打磨***各坐标系之间的转换关系示意图,打磨工具(如砂带机) 固定,机器人末端加持待打磨工件运动在砂带机上进行加工。设机器人基坐标系 为{B},砂带机砂轮工具坐标系为{S},机器人末端夹持器坐标系为{T},工件 坐标系为{WP},打磨路径离散点辅助坐标系为{Pi}。则{T}相对于的{B}位姿 关系矩阵为
Figure BDA0001999094770000091
{T}相对于{WP}的位姿关系矩阵为
Figure BDA0001999094770000092
{S}相对于{B}的位姿 关系矩阵为
Figure BDA0001999094770000093
Figure BDA0001999094770000094
可通过工件和工具标定得到;{Pi}相对于{WP}的位姿 关系矩阵为
Figure BDA0001999094770000095
由打磨轨迹规划确定;{Pi}相对于{S}的位姿关系矩阵为
Figure BDA0001999094770000096
由打磨工艺要求确定。根据公式(7)可建立机器人末端夹持器坐标系{T}相对于机 器人基座标系{B}的关系矩阵
Figure BDA0001999094770000097
为:
Figure BDA0001999094770000098
(5)机器人运动仿真:
在基于VTK的三维虚拟仿真环境下,采用vtktube方法显示步骤(4)得到的打 磨轨迹曲线,即机器人的仿真运动轨迹,通过机器人运动学逆解得到机器人运动 过程中的所需的关节角序列,进行运动仿真。***进行碰撞检测和关节角超限判 断,以验证运行轨迹的合理性。
(6)生产机器人运动程序代码:
根据选择对应的机器人厂家的程序特点,将相关坐标系(基坐标系、工件和 工具坐标系)的齐次矩阵转换成对应空间姿态描述形式(如四元数、欧拉角),在 转换完之后,按照该机器人厂家的运动控制程序代码编写的语言规则生成相应的 程序文件。
本发明具有以下有益效果:
(1)本发明采用开源的VTK可视化工具库实现了离线编程的自主开发,不 依赖于任何第三方CAD软件;
(2)本发明支持IGES、STEP、OBJ、STL 4种三维模型格式,满足了建模通 用性;
(3)本发明提供了自由曲面打磨路径节点位置和姿态的提取方法;
(4)本发明仅需通过鼠标拾取操作即可生成焊缝轨迹,无需经过繁琐的外 部数据计算和导入过程,操作简单实用,人机交互性良好,能快速生成所需机器 人程序。
附图说明
图1为本发明流程框图;
图2为
Figure BDA0001999094770000102
Figure BDA0001999094770000103
法向截平面在打磨曲面上形成截交曲线示意图;
图3为割线点集排序算法流程图;
图4为打磨规划节点在曲面上对应的近似法向量确定方法流程图;
图5为打磨规划节点姿态矩阵Z分量的确定示意图;
图6为打磨***各坐标系之间的转换关系示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细描述。
实施例1:
为了验证本发明的具体执行情况,采用广州数控GSK_RB20六自由度工业机 器人和砂带机构建的打磨***进行实验,其中砂带机和机器人位置相对固定,打 磨工件为自由曲面,待打磨工件通过夹持装置安装于工业机器人的末端,工业机 器人带动工件在砂带机的砂轮工作面上进行打磨。以下所示各坐标数据单位均为 mm。
根据附图1所述的实施步骤流程图,实施步骤如下:
步骤(1):导入打磨***三维模型,并在离线编程环境下布局。为完成布 局,机器人、砂带机和工件之间根据实际位姿关系进行工件和工具标定,根据标 定结果得到:
工件坐标系{WP}相对于机器人末端坐标系{T}的位置和姿态关系矩阵为:
Figure BDA0001999094770000101
砂带机砂轮工具坐标系{S}相对于机器人基坐标系{B}的位置和姿态关系矩 阵为:
Figure BDA0001999094770000111
步骤(2):确定待打磨曲面的截交曲线。
确定截平面的法向量,鼠标拾取打磨曲面PD,经三角面片化计算,其主法 向量为:
NormalVec=[-0.9330,-0.0017,0.3598];
则主法向量标识为NVC=0,即截平面法向取X轴。
选择可选截平面法向标识NVC1=1(即
Figure BDA0001999094770000112
法向沿Y轴),NVC2=2(即
Figure BDA0001999094770000113
法 向沿Z轴)。
确定截平面的始末平面位置:
根据VTK的bounds方法提取到曲面PD的坐标范围,得到在工件坐标系 {WP}下
Figure BDA0001999094770000114
法向和
Figure BDA0001999094770000115
法向始末截平面的位置如下:
Figure BDA0001999094770000116
法向起始和终点截平面的原点坐标分别为
Figure BDA0001999094770000117
Figure BDA0001999094770000118
Figure BDA0001999094770000119
法向起始和终点截平面的原点坐标分别为
Figure BDA00019990947700001110
Figure BDA00019990947700001111
结合截平面法向得{WP}坐标系下各截平面方程分别为:
Figure BDA00019990947700001112
设置
Figure BDA00019990947700001113
法向截平面数n=5,
Figure BDA00019990947700001114
法向截平面数m=8,在
Figure BDA00019990947700001115
Figure BDA00019990947700001116
之间、以及
Figure BDA00019990947700001117
Figure BDA00019990947700001118
之间各自形成等间距的截平面组。根据发明内容部分步骤(2.3)得到截交 线点集。
步骤(3):提取打磨节点位姿信息:包括位置和姿态信息两部分。
Figure BDA00019990947700001119
法向截交线为主打磨运动规划方向,得规划道数为8,提取打磨规划 节点,由于所打磨曲面不规则,在各截面处的宽度不一致,因此得到各规划道的 节点数并不相同,各道节点相对于工件坐标系{WP}的位置数据如下表1所示:
表1
Figure BDA0001999094770000121
提取得到上述各规划节点对应相对于工件坐标系{WP}的姿态坐标(ZYX欧 拉角表示)如表2所示:
表2
Figure BDA0001999094770000131
Figure BDA0001999094770000141
步骤(4):打磨轨迹规划:
首先在工件坐标系下,根据节点位姿沿打磨曲线实现位置和姿态离散化,再 经坐标系转换变换到机器人基坐标系,实现打磨笛卡尔空间轨迹规划。
根据步骤(3)所得到的规划节点,位置离散化通过节点位置坐标构造B样 条拟合曲线来实现,采用3次均匀B样条插值;姿态离散化利用四元数样条插值 方法对节点运动姿态数据进行球面线性插值;由于离散化后数据量较大,这里仅 截取规划道S1的5个规划节点及其离散化后转换到机器人基坐标系{B}下的位姿 数据,如表3和4所示:
表3
Figure BDA0001999094770000142
表4
Figure BDA0001999094770000143
Figure BDA0001999094770000151
由表4可见上述离散点的位置和姿态数据具有良好的连续性,为打磨运动位 置和姿态的平滑连续变化提供了保证。
步骤(5):机器人运动仿真:
通过机器人运动学逆解得到机器人运动过程中所需的关节角序列,进行运动 仿真。***进行碰撞检测和关节角超限判断,以验证运行轨迹的合理性。
在仿真实验中,根据打磨工艺要求,令打磨路径离散点辅助坐标系{Pi}和砂 带机砂轮工具坐标系{S}相重合,由此根据步骤(4)得到的离散点在机器人基 坐标系的位姿数据进行运动学逆解,得到的关节角序列变化平滑,且未出现关节 角超限,利用关节角序列数据在离线编程环境下驱动机器人完成运动仿真,表明 该打磨运动轨迹合理可行。
步骤(6):生成机器人运动程序代码:
根据得到的机器人末端位姿数据或关节角序列数据,结合广数GSK机器人控 制程序代码的编写特点,可生成相应的PRL程序文件,节点数据可采用位姿变量 或关节角序列变量形式。
由实施例可见,本发明提供的基于VTK的自由曲面打磨路径节点位置和姿态 提取方法,在不依赖于第三方CAD软件的情况下仅需通过鼠标拾取操作待打磨曲 面和规划道数参数设置即可生成相应的打磨规划轨迹,无需经过繁琐的外部数据 计算和导入过程,人机交互性良好,可快速生成所需机器人运动控制程序,完成 自由曲面打磨离线编程的开发。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施 例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于 本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰, 应视为本发明的保护范围。

Claims (5)

1.一种基于VTK的机器人自由曲面工件打磨离线编程方法,其特征在于,包括以下步骤:
(1)导入工件磨削***的三维模型;
(2)确定待打磨曲面的截交曲线;
(3)提取打磨规划节点的位置和姿态;
(4)打磨轨迹规划;
(5)机器人运动仿真;
(6)生成机器人运动程序代码;
上述步骤中:
所述步骤(1)导入的平台为基于VTK的Visual Studio离线编程平台,导入的三维模型通过VTK的vtkTransform方法实现离线编程工作环境的布局;
所述步骤(2)的实现方法是在基于VTK的Visual Studio离线编程平台中,通过VTK交互器Widget方法实现鼠标拾取待打磨曲面,首先确定曲面的主法向量标识,然后进一步得到截平面,最后得到截交线,具体包括以下步骤:
(2.1)确定待打磨曲面的主法向量
(2.1.1)在VTK中,待打磨曲面三角面片化后,以数据类型vtkPolyData形式存储,通过VTK交互器Widget方法实现鼠标对打磨曲面的拾取,记为曲面PD,面片总数为n;
(2.1.2)采用VTK的vtkPolyDataNormals方法提取曲面PD每个面片的法向量nvi(i=1~n),上述所有法向量的合成向量即为曲面的主法向量NV;
(2.1.3)判定曲面的主法向标识FNV,以主法向量NV在世界坐标系坐标轴上的最大绝对值投影分量的方向作为主法向标识,主法向标识FNV取值范围设定为0,1和2,分别标识曲面主法向的分量主体沿X向、Y向或Z向;
(2.2)确定截平面
(2.2.1)截平面法向量标识记为NVC,选择非曲面主法向标识FNV的另两个方向为截平面法向,记为
Figure FDF0000017009640000011
法向和
Figure FDF0000017009640000012
法向;
(2.2.2)确定截平面的始末平面位置:利用vtkPolyData类型的bounds方法分别求取
Figure FDF0000017009640000013
法向截平面和
Figure FDF0000017009640000014
法向截平面在曲面PD上的坐标范围最大和最小值,分别记为
Figure FDF0000017009640000015
Figure FDF0000017009640000021
并分别由此确定为
Figure FDF0000017009640000022
法向和
Figure FDF0000017009640000023
法向始末截平面位置;
(2.3)确定截交线
Figure FDF0000017009640000024
法向始末截面
Figure FDF0000017009640000025
Figure FDF0000017009640000026
为界等间距取n个平行截面
Figure FDF0000017009640000027
含始末截面在内,截平面
Figure FDF0000017009640000028
在PD上形成n条切割线
Figure FDF0000017009640000029
Figure FDF00000170096400000210
法向始末截面
Figure FDF00000170096400000211
Figure FDF00000170096400000212
为界等间距取m个平行截面
Figure FDF00000170096400000213
含始末截面在内,截平面
Figure FDF00000170096400000214
在曲面PD上形成m条切割线
Figure FDF00000170096400000215
通过vtkCutter方法提取到构成各切割线对应的点集
Figure FDF00000170096400000216
Figure FDF00000170096400000217
并以vtkPoints类型存储;
步骤(3)提取打磨规划节点的位置和姿态,包括以下步骤:
(3.1)提取打磨规划节点Knot位置坐标数据
将步骤(2)得到的截交线点集进行排序,使截交线由顺次相连的多条直线段构成,求出构成节点的最相邻两条直线段,并以该两条线段的交点为规划节点,具体如下:
取切割线
Figure FDF00000170096400000218
Figure FDF00000170096400000219
的交点PCij(i=1~n,j=1~m)为打磨规划的节点Knot,构成交点PCij的两个割线点集
Figure FDF00000170096400000220
Figure FDF00000170096400000221
经过排序后各由顺次相连的多条直线段构成,将求交点转换为求其中最相邻两条直线段之间的求交问题,包括以下步骤:
(3.1.1)求出构成交点PCij的最相邻两条直线段
Figure FDF00000170096400000222
顺次取点集
Figure FDF00000170096400000223
中每相邻的两点
Figure FDF00000170096400000224
判断该两点线段是否与截平面
Figure FDF00000170096400000225
相交,如果相交则取该两点线段为
Figure FDF00000170096400000226
否则令k=k+1,继续判断下一条线段, 同样的方法顺次取点集
Figure FDF00000170096400000227
中每相邻的两点
Figure FDF00000170096400000228
判断该两点线段是否与截平面
Figure FDF00000170096400000229
相交,如果相交则取该两点线段为
Figure FDF00000170096400000230
否则令k=k+1,继续判断下一条线段;
(3.1.2)求空间两线段
Figure FDF00000170096400000231
的交点,由于工件CAD模型存在微小误差,故首先判断两线段是否相交,如果相交,则计算两线段所在直线的交点;当两线段异面时,没有真实的交点,取两线段的公垂线的中点为交点;
节点位置特殊情况的选择:
对于不规则的曲面,若出现割线点集
Figure FDF0000017009640000031
Figure FDF0000017009640000032
中的一部分无交点的情况,删除曲面外的交点,保留剩余交点为最终的打磨规划节点;
(3.2)提取打磨规划节点Knot姿态坐标数据
(3.2.1)确定节点PCij(i=1~n,j=1~m)在曲面PD上对应的法向量:
搜索节点P在曲面实体PolyData中所在的三角面片cell单元,以该cell单元的法向作为节点的近似法向量,具体方法如下:
(3.2.1.1)首先获取三角面片cell的数量,记为Ncell,下面进入循环搜索给定节点P所在的cell单元的序号;
(3.2.1.2)提取第i个三角面片cell(i)的顶点(vi1,vi2,vi3),得到对应的平面方程Fi(vi1,vi2,vi3);
(3.2.1.3)判定节点P是否在cell(i)所在的平面Fi上,执行时设置一定的阈值thres,节点P距离平面小于thres即认为在平面内;
(3.2.1.4)如果节点P不在该面片平面Fi上,直接返回到S1.2)判断下一面片;
(3.2.1.5)如果P在该面片平面Fi上,求P在该面片上的投影点PP,判断PP是否在cell(i)所在三角形内或边上,如果PP不在面片内部,返回S1.2)判断下一面片,如果在面片内部,则当前面片cell(i)即为判定的结果,结束循环搜索;
(3.2.1.6)计算判定得到的面片cell(i)的法向量,得出结果;
将得到的节点PCij在PD上对应的法向量记为
Figure FDF0000017009640000033
并作为节点姿态矩阵Z分量的近似值
Figure FDF0000017009640000034
(3.2.2)确定节点姿态矩阵X分量:
通过每连续4个节点构建3次多项式插值曲线,由此求取各节点沿曲线的切向矢量,将任一节点P的切向矢量记为
Figure FDF0000017009640000035
作为节点姿态矩阵X分量;
(3.2.3)确定节点姿态矩阵Z分量,具体方法如下:
构造以
Figure FDF0000017009640000036
为法向,过节点P的平面MX,将
Figure FDF0000017009640000037
向MX投影得到的单位化矢量
Figure FDF0000017009640000038
做为修正后的节点P处的姿态矩阵Z分量;
(3.2.4)由步骤S2)和步骤S3)得到节点姿态矩阵的X分量和Z分量,计算节点姿态矩阵的Y分量
Figure FDF0000017009640000041
综上构造出节点姿态矩阵
Figure FDF0000017009640000042
所述步骤(4)的实现方法包括以下步骤:
(4.1)在工件坐标系下,根据节点位姿沿打磨曲线实现位置和姿态离散化,位置离散化采用由打磨节点构造的B样条拟合曲线来实现,姿态离散化采用四元数样条插值对节点运动姿态数据进行球面线性插值来实现;
(4.2)将工件坐标系下得到的离散化位姿数据经坐标系变换后得到机器人基坐标系下的数据,最终实现打磨笛卡尔空间轨迹规划。
2.根据权利要求1所述的一种基于VTK的机器人自由曲面工件打磨离线编程方法,其特征在于:
步骤(4.1)中位置离散化由打磨规划节点PCij(i=1~n,j=1~m)构造B样条拟合曲线,在确定打磨规划曲线方向时选择沿
Figure FDF0000017009640000043
割线方向,或者沿
Figure FDF0000017009640000044
割线方向;
当选择
Figure FDF0000017009640000045
割线方向时,共规划n条打磨曲线,其中第i条曲线规划时需固定i,取该曲线上的m个节点PCij(j=1~m)进行拟合;
当选择
Figure FDF0000017009640000046
割线方向时,共规划m条打磨曲线,其中第j条曲线规划时需固定j,取该曲线上的n个节点PCij(i=1~n)进行拟合。
3.根据权利要求2所述的一种基于VTK的机器人自由曲面工件打磨离线编程方法,其特征在于,选择
Figure FDF0000017009640000047
切割方向拟合B样条拟合曲线的方法包括:
构造打磨规划曲线的p次B样条拟合曲线如公式(1)所示:
Figure FDF0000017009640000048
其中,C(u)为B样条曲线的矢量函数,Ni,p(u)为p次规范B样条基函数,Pi(i=0~n-1) 为控制点,u为参数序列,构成节点矢量U=[0,…,0,up+1,…,un,1,…,1];
反推节点矢量U:
采用积累弦长参数化法反推节点矢量U,取p=3,构成3次B样条曲线,U端点重复度为4,则U参数值由式(2)求解:
Figure FDF0000017009640000051
反推控制点Pi(i=0~n-1):
将PCi(i=1~n)代入方程(1)后,构造3次B样条曲线方程组的矩阵形式如式(3):
Figure FDF0000017009640000052
其中,系数矩阵和ei(i=1~n)由式(4)和(5)得到,如下:
Figure FDF0000017009640000053
Figure FDF0000017009640000054
其中
Figure FDF0000017009640000055
Figure FDF0000017009640000056
分别为节点PC,1和PC,n-2处的切向矢量,分别通过首、末4个关键节点构建3次多项式插值,然后求取端部切矢量获得;
解方程组(3),得到全部控制顶点;
根据反推出来的节点矢量和控制点便得到了完整的B样条曲线;
上述步骤中,PCi(i=1~n)为省略下标j的打磨规划节点。
4.根据权利要求1所述的一种基于VTK的机器人自由曲面工件打磨离线编程方法,其特征在于:步骤(5)所述的机器人运动仿真的实现方法为:
在基于VTK的三维虚拟仿真环境下,采用vtktube方法显示步骤(4)得到的打磨轨迹曲线,通过机器人运动学逆解得到机器人运动过程中所需的关节角序列,进行运动仿真, 在仿真过程中,离线编程***进行碰撞检测和关节角超限检测,从而判断运行轨迹的合理性。
5.根据权利要求1所述的一种基于VTK的机器人自由曲面工件打磨离线编程方法,其特征在于:步骤(6)所述的生成机器人运动程序代码的实现方法,包括以下步骤:
(6.1)根据选择对应的机器人厂家的程序特点,将相关坐标系的齐次矩阵转换成对应空间姿态描述形式;
(6.2)按照该机器人厂家的运动控制程序代码编写的语言规则生成相应的程序文件。
CN201910207244.XA 2019-03-19 2019-03-19 一种基于vtk的机器人自由曲面工件打磨离线编程方法 Active CN109976259B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910207244.XA CN109976259B (zh) 2019-03-19 2019-03-19 一种基于vtk的机器人自由曲面工件打磨离线编程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910207244.XA CN109976259B (zh) 2019-03-19 2019-03-19 一种基于vtk的机器人自由曲面工件打磨离线编程方法

Publications (2)

Publication Number Publication Date
CN109976259A CN109976259A (zh) 2019-07-05
CN109976259B true CN109976259B (zh) 2022-07-08

Family

ID=67079477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910207244.XA Active CN109976259B (zh) 2019-03-19 2019-03-19 一种基于vtk的机器人自由曲面工件打磨离线编程方法

Country Status (1)

Country Link
CN (1) CN109976259B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110732531B (zh) * 2019-12-05 2022-09-06 南京先进激光技术研究院 一种机器人激光清洗设备离线编程方法
CN110919499B (zh) * 2019-12-18 2022-06-03 东莞市照亮智能装备科技有限公司 一种基于离线编程的高尔夫球头制作工艺
CN111300208A (zh) * 2019-12-19 2020-06-19 重庆大学 一种复杂曲面机器人砂带变进给自适应磨削方法及设备
CN111037565A (zh) * 2019-12-30 2020-04-21 芜湖哈特机器人产业技术研究院有限公司 一种机器人离线打磨轨迹处理方法
CN111113420B (zh) * 2019-12-30 2023-03-14 芜湖哈特机器人产业技术研究院有限公司 一种机器人轮毂去毛刺示教点坐标系生成方法
JP6903777B1 (ja) * 2020-01-24 2021-07-14 株式会社大気社 自動ティーチングシステム
CN111815082B (zh) * 2020-09-11 2024-02-13 广东博智林机器人有限公司 一种打磨路径规划方法、装置、电子设备及存储介质
DE112021004399T5 (de) * 2020-10-22 2023-06-15 Fanuc Corporation Roboterprogrammiervorrichtung und Roboterprogrammierverfahren
CN114603552B (zh) * 2020-12-08 2024-05-10 北京配天技术有限公司 一种机器人仿真方法、电子设备和存储介质
CN112873213B (zh) * 2021-03-02 2022-06-10 南京达风数控技术有限公司 一种提升六关节机器人工具坐标系标定精度的方法
CN113414762B (zh) * 2021-06-09 2024-05-03 配天机器人技术有限公司 焊道路径的偏移方法、装置、机器人及存储装置
CN114035509A (zh) * 2021-11-18 2022-02-11 无锡中车时代智能装备有限公司 针对多曲面的轨迹规划方法及设备
CN115879244B (zh) * 2023-02-08 2023-05-16 中国电子科技集团公司第三十研究所 一种基于SiemensNX的机器人打磨工作站离线编程方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105269565A (zh) * 2015-10-30 2016-01-27 福建长江工业有限公司 一种六轴磨抛工业机器人离线编程及修正方法
CN107283422A (zh) * 2016-04-11 2017-10-24 南京埃斯顿自动化股份有限公司 基于离线编程的机器人加持工件打磨的轨迹规划方法
CN109226937A (zh) * 2018-11-14 2019-01-18 南京工程学院 一种工业机器人空间相贯曲线焊接离线编程方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE303209T1 (de) * 2001-10-26 2005-09-15 Inropa Aps Verfahren zur automatischen flächenbehandlung
CN101403907B (zh) * 2008-11-12 2010-06-02 山东理工大学 散乱点云数据的五坐标nc刀轨快速生成方法
US20140365006A1 (en) * 2013-06-07 2014-12-11 Matthew E. Trompeter Visual Datum Reference Tool

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105269565A (zh) * 2015-10-30 2016-01-27 福建长江工业有限公司 一种六轴磨抛工业机器人离线编程及修正方法
CN107283422A (zh) * 2016-04-11 2017-10-24 南京埃斯顿自动化股份有限公司 基于离线编程的机器人加持工件打磨的轨迹规划方法
CN109226937A (zh) * 2018-11-14 2019-01-18 南京工程学院 一种工业机器人空间相贯曲线焊接离线编程方法

Also Published As

Publication number Publication date
CN109976259A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN109976259B (zh) 一种基于vtk的机器人自由曲面工件打磨离线编程方法
CN109226937B (zh) 一种工业机器人空间相贯曲线焊接离线编程方法
CN100435055C (zh) 五轴数控加工光滑无干涉刀具路径的规划方法
CN108803487B (zh) 一种零件侧铣表面的点位轮廓误差预测方法
CN107972034B (zh) 一种基于ros平台的复杂工件轨迹规划仿真***
CN109683552B (zh) 一种基面曲线导向的复杂点云模型上的数控加工路径生成方法
CN114055255B (zh) 一种基于实时点云的大型复杂构件表面打磨路径规划方法
CN210848792U (zh) 一种三维五轴激光切割机床
Feng et al. A novel feature-guided trajectory generation method based on point cloud for robotic grinding of freeform welds
CN113019763B (zh) 一种基于网格投影算法的喷涂机器人轨迹规划方法
Hong et al. Research on off-line programming method of spatial intersection curve welding based on VTK
Wiese et al. Kinematic modeling of a soft pneumatic actuator using cubic hermite splines
CN113696184B (zh) 一种可视化串联机械臂灵活性的运动能力图谱构建方法
CN109202539B (zh) 一种复合材料弱刚度异形结构在线检测方法
Li et al. Five-axis trochoidal sweep scanning path planning for free-form surface inspection
Hong et al. Offline programming method and implementation of industrial robot grinding based on VTK
Du et al. Wire arc additive manufacturing from the perspective of remanufacturing: A review of data processing
CN101308523B (zh) 一种虚拟激光加工过程几何仿真方法
CN115056213A (zh) 一种面向大型复杂构件的机器人轨迹自适应修正方法
CN111061218B (zh) 一种基于acis的复杂曲面加工切削力预测方法及设备
CN113917887A (zh) 一种基于三角网格模型的机床加工轨迹生成方法
Lin et al. Collision detection of industrial automation
Legge Integration of design and inspection systems-a literature review
CN113681574A (zh) 一种面向钣金折弯的机器人三维可视化仿真与离线编程***
CN113256708A (zh) 一种理论3d空间与实际机器人空间的标定方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant