robodk导出html错误,基于RoboDK的多机械臂协同离线编程方法与流程

fe51ebb3b6344557dad568a4830e84f3.gif

本发明涉及机械臂离线编程技术领域,尤其涉及一种基于RoboDK的多机械臂协同离线编程方法。

背景技术:

伴随着工业现代化的快速发展,机器人技术作为体现工业自动化水平和智能化程度的重要标杆,得到了人们日益的关注。其中,机器人操作臂离线编程仿真技术结合计算机图形学、语言学和机器人技术,很好地解决了传统示教编程的不足,有效保证了生产的产品质量、提高劳动生产率和改善工作环境。

相对于传统的示教编程的方法,离线编程具有以下优势:(1)减少实体机器人的占用时间,可以并发处理多个任务作业,从而提高了生产率,易于实现柔性生产;(2)结合计算机图形学技术和机器人编程语言,对于复杂的运动进行描述和编程,并进行高精度的仿真,可以实现复杂运动轨迹和运动参数的优化;(3) 对机器人的轨迹规划等算法进行验证,并及早将运行过程中可能出现的问题通过仿真暴露出来,可以防止作业过程中实体机器人因为操作失误造成的损坏;(4) 相对于示教编程,机器人控制程序可以不需要改动或者少量的改动就可以从一个型号的机器人移植到另外一个机器人上,从而进行相同的作业任务,另外一方面采用文本的编程方法,也很方便地进行程序的修改或编辑;(5)离线仿真编程可以方便地与智能控制算法相结合,提高机器人作业的质量和稳定性;(6)通过编程仿真,生产者可以根据实际的作业环境和生产需求测试不同类型的机器人及其运行的效果,从而为机器人的选型提供了有效的依据。因此,离线编程技术相对于传统的示教编程有极大的优势,日趋成为机器人研究领域的研究热点。

目前,国内外对工业机器人离线编程与仿真已进行了若干研究,不少文献和专利都有相关介绍。金自立提出了一种工业机器人的离线编程和虚拟仿真技术 (金自立.工业机器人的离线编程和虚拟仿真技术[J].机器人技术与应用,2015,(06):44-46.[2017-08-02])其重点介绍了工业机器人离线编程和虚拟仿真技术的主要组成部分和技术难点并对该技术的未来发展方向提出了一些猜想;但只是对其进行概述和分模块说明,对该技术中离线编程与仿真平台搭建,具体轨迹规划方法,后置处理器编写方案都未涉及,也未提及多机械臂协同离线编程技术;郑松,吕冬冬等人提出了一种多工业机器人的协同控制方法(郑松, 吕冬冬,曾其鋆,何伟东,张望,李贝贝,陈智呈,孙云.一种多工业机器人的协同控制方法[P].福建:CN106502095A,2017-03-15),其具体解决了实际环境中多工业机器之间的协同控制方法,但主要是针对各机械臂之间通信技术和协同控制技术进行研究,并未涉及多机械臂协同离线编程方案,也没有实现执行程序的在线仿真。

综上所述,多机械臂协同离线编程方法可以填补机械臂离线编程领域的空白。为开发复杂的机械臂协同加工方案提供了研究平台和技术支持,使工程师在开发复杂加工任务时有更多的技术方案选择,同时极大的缩短了研发周期,大幅度提高加工生产效率。

技术实现要素:

本发明要克服现有技术的上述缺陷,提供了一种基于RoboDK的多机械臂协同编程方法。

本发明针对多机械臂协同控制中离线编程的具体实现方法给出不同协同运动类型的路径规划和实现相应仿真的详细技术方案,并完成了生成实际机器人运行代码所需的后置处理器程序的编写。皆在解决多机械臂离线编程现有技术中存在协同控制方案缺失,运行效果不佳,工程转化效率明显等问题。

本发明为解决上述技术问题采用的工作流程如图1所示,具体步骤为:

步骤1:导入模型,建立坐标系,完成平台搭建;

在RoboDK可视化界面中导入机械臂,末端执行器,加工工件的3D模型,配置机械臂的DH参数来建立完整的机械臂仿真模型,对各模型建立基坐标系并搭建父/子坐标系树,完成多机械臂协同仿真工作站搭建;

步骤2:确定协同运动类型,规定主/从机数量,分配主/从机任务;

首先根据实际的加工处理需要分析任务需求,根据单个机械臂末端执行器的相对运动把多机械臂协同运动分为三种类型,并行协同,耦合同步协同和组合同步协同;规避机械臂关节空间中复杂的协同运动笛卡尔轨迹,从笛卡尔空间中机械臂之间的协作入手;并行协同类型不存在机械臂之间的位置或方向限制;耦合同步协同中,所有机械臂在同步点t0作为强制同步开始时间,所有机械臂同时执行相同的线或圆弧运动,且在主从末端执行器之间不存在相对运动,主要用于负载分担任务;在组合同步协同中,所有机械臂在同步运动周期Δt运行相同的时间,主机械臂执行基本的直线运动或圆弧运动,而从机械臂相对于主机械臂的末端执行器执行不同的运动块,在主机械臂的基本运动上产生一个叠加运动;根据以上协同运动定义,结合任务要求分配主机械臂(一个)和从机械臂(根据任务可以有多个)工作内容。

步骤3:完成机械臂运动学分析,根据协同运动类型规划运行路径;

根据机械臂固有参数,完成各机械臂运动学分析,依据机器人运动学的正解方程求出机械臂末端坐标系到基坐标系的变换关系;针对耦合同步协同,考虑两个机械臂(主/从机),每个具有n个关节,处理超过任何单个机械臂有效载荷能力的大体积刚体对象;为了移动物体,两个机械臂末端执行器在两个特殊点抓取物体;识别这样的运动为耦合同步运动,主从末端执行器之间的相对位置/方向为常量;mbPm(t)∈R4×4为在时间t时,主机械臂在主机械臂基坐标系下的位姿,sbPs(t)∈R4×4为在时间t时,从机械臂在从机械臂基坐标系下的位姿,可以获得

mbPs(t)=mbHsb·sbPs(t)

其中mbHsb∈R4×4是从机械臂基坐标系到主机械臂基坐标系的转移矩阵,为常量的齐次变换矩阵矩阵。t0为mbPm(t)和sbPs(t)的同步开始时间,mHs(t)∈R4×4为在时间t0从机械臂末端执行器到主机械臂基坐标系下的主末端执行器的转移矩阵,可以获得

mbPm(0)=mHs·mbPs(0)

当时间t=0时

mbPm(0)=mHs·mbHsb·sbPs(0)

由上式获得

mHs=mbPm(0)·(sbPs(0))-1·sbHmb

mHs在整个耦合同步协同中为常量,可以获得

mbPm(t)=mHs·mbPs(t)

=mHs·mbHsb·sbPs(t)

=mbPm(0)·(sbPs(0))-1·sbHmb·mbHsb·sbPs(t)

=mbPm(0)·(sbPs(0))-1·sbPs(t)

由上式获得

sbPs(t)=sbPs(0)·(mbPm(0))-1·mbPm(t)

通过此方程得,可以通过主机械臂运动轨迹mbPm(t)(位姿的离散点组成)和耦合同步协同运动开始时间的位姿mbPm(0)来唯一确定从机的运动轨迹sbPs(t)(位姿的离散点组成);

针对组合同步协同,预先设定主机械臂的运动轨迹,而从机械臂运动轨迹根据加工要求而定,主从机械臂之间的协同运动约束为时变约束;mbPm(t)是主机械臂在主机械臂基坐标系下的运动轨迹,mePs(t)为主机械臂末端执行器坐标系下的加工要求也是主机械臂末端执行器坐标系下的从机运动轨迹;由机器人逆运动学知识,把轨迹mbPm(t)转换到主关节空间来,从机轨迹mePs(t)从主机末端执行器坐标系转移到从机末端执行器坐标系,通过齐次变换获得

sbPs(t)=sbHmb·mbHme(t)·mePs(t)

sbHmb是从主机基坐标系转移到从机基坐标系的转移矩阵,mbHme(t)是从主末端执行器坐标系到主机器人基坐标系的转换矩阵;meHmb(t)的转置为mbHme(t),根据机器人正运动学的定义,机器人末端执行器的位置/方向在其基坐标系下获得

mbHme(t)=(meHmb(t))-1=(mbPm(t))-1

由以上两个公式获得,

sbPs(t)=sbHmb·(mbPm(t))-1·mePs(t)

得到组合协同运动中主机与从机位姿的完整约束,从而完成主机与从机的完整路径规划。

步骤4:如图2所示,利用步骤3的路径规划策略规划协同路径并结合 RoboDK-API函数编写协同控制程序,为各机械臂的运行程序开辟控制线程,实现同步协同控制;

首先调用RoboDK-API接口函数,获取各机械臂和工件的基坐标和末端执行器的姿态信息;完成机械臂相关运动学求解;设定各类协同任务开始执行的坐标点M;根据加工需要编写主机器人加工路径,并结合步骤3的协同路径规划策略编写从机器人的运行代码;完成多机械臂仿真程序运行多线程时各机械臂间通信数据的互锁函数和同一时间轴下各机械臂同步等待函数的编写;为每个机械臂运行程序开辟独立线程;编写协同任务完成后的退出程序;设置停止信号。

步骤5:如图3所示,运行机械臂协同控制程序,根据仿真界面检测碰撞和各机器人运行路径偏差情况;

在运行仿真程序时,通过RoboDK可视化界面显示机械臂协同运行时出现的碰撞区域,输出碰撞区域的位置信息;显示各机械臂仿真运行路径,输出各机械臂运行时的整条运行曲线。

步骤6:根据步骤5运行情况调整步骤3的规划路径并在步骤4中完成相应的代码修改,最终实现较好的运行效果;

根据步骤5中输出的碰撞区域位置信息和运行路径的位置信息,确定机械臂之间的碰撞程度;对碰撞程度较严重的区域重新规划该段路径;对碰撞程度较轻的区域通过在该段路径上的离散点加权方式略微修改运行路径。

步骤7:如图4所示编写并运行后置处理器脚本,把多机械臂协同控制的仿真程序转化为机械臂实际可执行代码并输出;

编写后置处理器程序,完成RoboDK与实际机器人的通讯程序;调用实际机器人运行命令库和RoboDK-API函数库,根据实际机械臂控制命令与仿真程序的控制命令之间的对应关系,结合实际机器人和RoboDK中仿真机器人之间的比例关系,把两者的控制命令整理成完整的对应关系;根据编写的后置处理器程序把完成步骤6后得到的仿真程序输出为实际机械臂可执行程序,通过此功能可以直接把仿真实验成果投入到实际机械臂操作中。

本发明与现有技术相比具有以下有益效果:

1、本发明相较于传统的机械臂离线编程软件,采用RoboDK离线编程平台,其扩展的3D可视化界面可以导入各厂家机械臂模型并配置对应参数。该平台直观的用户界面,便于搭建虚拟工作环境,可根据实际需要设置机械臂各坐标系和工件坐标系,并能直接在平台上设定机器人运动轨迹及目标,为多种工业应用预先进行离线编程。

2、根据实际生产加工需要,对多机械臂协同控制进行了相关分类。主要对协同控制中较难的耦合同步协同控制和组合同步协同控制完成相应的路径规划,并在RoboDK上实现了仿真程序。拓展了RoboDK在多机械臂协同控制离线编程方面的功能,其大大降低了多机械臂协同加工的研发周期,最终大幅度提高生产加工效率。

3、本发明方法能够实现机械臂在线编程、碰撞检测和路径优化,可以在不停机的状态下修改机器人运动算法和参数,并通过预先运行仿真程序来检验轨迹的质量和效率,不断完善运行路径,提高了机械臂对工序改变的适应性和通用性。

附图说明

图1是本发明方法的操作示意图。

图2是多机械臂协同控制代码实现流程图。

图3是多机械臂协同工作状态仿真示意图,其中图3a表示协同运行阶段,图3b表示协同运行结束阶段。

图4是后置处理器程序实现流程图。

具体实施方式

以下结合附图对本发明做进一步详述。

本发明针对目前多机械臂协同离线编程方法不完善和功能缺失问题,考虑制造业2025对工业机器人加工能力提升的迫切需要,基于RoboDK平台,结合其二次开发的API函数,提出了一种较完善的机械臂协同离线编程方法,提高了用于协同控制的离线编程开发效率,大幅度提升机械臂在生产加工领域的实力。本发明首先在RoboDK可视化界面中导入机械臂,末端执行器、加工工件的3D 模型,配置机械臂的DH参数建立完整机械臂仿真模型,完成协同仿真平台搭建;确定协同运动类型,规定主/从机数量和工作任务;对导入的机械臂模型进行运动学分析和求解,根据协同运动类型规划运行路径;根据规划的协同运动路径,结合RoboDK-API函数编写协同控制程序,为各机械臂的运行程序开辟控制线程,实现同步协同控制;运行编写的协同控制程序,根据仿真界面检测碰撞和各机器人运行路径偏差情况;重复执行前一步骤来完善路径运行代码,实现较优的运行效果;最后运行编写的后置处理器程序,把多机械臂协同控制的仿真程序转化为机械臂实际可执行代码并输出。

如图1所示,基于RoboDK的多机械臂协同离线编程方法对于焊接协同加工任务的具体操作步骤如下:

步骤1:导入模型,建立坐标系,完成平台搭建;

在RoboDK可视化界面中导入焊接需要的KUKA-KR-6-R900和 Fanuc-LR-Mate-200iD/7L-Base机械臂模型,加持焊接板和焊接枪末端执行器,导入规格为100x100x5cm的焊接钢板3D模型。根据KUKA和Fanuc官网上给的这两款机械臂DH参数建立与实际机械臂完整对应的机械臂仿真模型,对导入的各模型设置各自的基坐标系并在RoboDK可视化界面的左侧搭建以名为2 robots Cooperation V1世界坐标系为树根的坐标系树。把机械臂基坐标系设置为世界坐标系下的子坐标系,把末端执行器的坐标系设置为机械臂基坐标系下的子坐标系。以此类推,建立完整工作站坐标系树,最终完成多机械臂协同仿真工作站搭建。

步骤2:确定协同运动类型,规定主/从机数量,分配主/从机任务;

首先分析这次任务要完成的是对钢板的焊接加工任务,需要两个机械臂协同作业,一个机械臂夹持钢板,一个机械臂对钢板进行焊接操作。通过规避机械臂关节空间中复杂的协同运动笛卡尔轨迹,从笛卡尔空间中机械臂之间的协作入手,确定此类加工为组合同步协同任务,规定夹持工件的KUKA-KR-6-R900机械臂为主机,做基本的曲线运动,拥有焊枪的Fanuc-LR-Mate-200iD/7L-Base机械臂为从机,对钢板进行焊接加工运动,在同步运动周期Δt,主/从机根据组合协同运动特性开始执行协同运动任务,可以让焊点时刻保持最佳状态并顺利完成运动目标的焊接任务。根据实际焊接任务场景,结合两个机械臂的工作空间大小,以钢板位置为工作中心把主/从机械臂移动到各自工件加工的最佳位置,从而提高加工的可行性和效率。

步骤3:完成机械臂运动学分析,根据协同运动类型规划运行路径;

根据KUKA-KR-6-R900和Fanuc-LR-Mate-200iD/7L-Base机械臂固有参数,完成这两个机械臂的运动学分析,依据机器人运动学的正解方程可以得到工业机器人(以六轴为例)的变换关系为

其中表示关节n末端相对于关节n-1末端的变换矩阵,n表示关节数,θn表示关节旋转角度,是法兰盘相对于第六轴的变换矩阵,是末端执行器相对于法兰盘的变换矩阵,是机械臂原点相对于机器臂基座的变换矩阵,通过该方程可以求出机械臂末端执行器坐标系到基坐标系的对应关系。由步骤2已经认定,该焊接协同任务为组合同步协同,预先设定主机围绕协同开始点做圆弧运动,从机运动轨迹根据钢板上焊接任务需要做半径为40cm的圆周运动,主/从机之间的协同运动约束为时变约束。在这里,我们设定mbPm(t)∈R4×4为在时间t时,主机械臂在主机械臂基坐标系下的位姿,sbPs(t)∈R4×4为在时间t时,从机械臂在从机械臂基坐标系下的位姿,sbHmb是从主机的基坐标系转移到从机基坐标系的转移矩阵,mePs(t)为主机械臂末端执行器坐标系下的加工要求,也是主机械臂末端执行器坐标系下的从机运动轨迹。由方程

sbPs(t)=sbHmb·(mbPm(t))-1·mePs(t)

得到组合协同运动中主机和从机位姿的完整约束,从而完成主机与从机的完整路径规划。

步骤4:如图2所示,利用步骤3的路径规划策略规划协同路径并结合 RoboDK-API函数编写协同控制程序,为各机械臂的运行程序开辟控制线程,实现同步协同控制;

首先调用RoboDK-API接口函数,获取KUKA-KR-6-R900和 Fanuc-LR-Mate-200iD/7L-Base机械臂和钢板的基坐标和末端执行器喷枪的姿态信息;完成步骤2中涉及的机械臂相关运动学求解;设定各类协同任务开始执行的坐标点M;根据钢板焊接任务需要编写主机器人运动路径,并结合焊接任务对应的组合协同路径规划策略编写从机器人的焊接作业运行代码;完成焊接任务机械臂加工的仿真程序运行多线程时主机器人与从机器人之间通信数据的互锁函数和同一时间轴下主/从机械臂同步等待函数的编写;为主/从机械臂运行程序开辟独立线程;编写焊接任务完成后两个机械臂的退出程序;设置停止信号和位置,让主机械臂回到机械臂运行原点,从机械臂回到机械臂加工安全工位。

步骤5:如图3所示,运行机械臂协同控制程序,根据仿真界面检测碰撞和各机器人运行路径偏差情况;

在运行焊接任务仿真程序时,通过RoboDK可视化界面显示主/从机械臂协同运行时出现的碰撞区域,输出碰撞区域的位置信息;显示主/从机械臂仿真运行路径,通过RoboDK-API函数接口输出主/从机械臂的完整运行曲线。

步骤6:根据步骤5运行情况调整步骤3的规划路径并在步骤4中完成相应的代码修改,最终实现较好的运行效果;

根据步骤5中输出的碰撞区域位置信息和运行路径的位置信息,确定主/从机械臂之间的碰撞程度;对碰撞程度较严重的区域重新规划该段路径;对碰撞程度较轻的区域通过在该段路径上的离散点加权方式略微修改运行路径。再运行仿真程序,根据仿真效果相应修改路径执行代码,直到仿真效果优质时停止此步骤。

步骤7:如图4所示编写并运行后置处理器脚本,把多机械臂协同控制的仿真程序转化为机械臂实际可执行代码并输出;

根据KUKA-KR-6-R900和Fanuc-LR-Mate-200iD/7L-Base机械臂的数据手册和RoboDK-API函数库编写后置处理器程序,完成RoboDK与实际机器人的通讯程序;调用实际机器人运行命令库和RoboDK-API中控制机械臂运行的函数库,根据实际机械臂控制命令与仿真程序控制命令之间的对应关系,结合实际机器人和 RoboDK中仿真机器人之间的比例关系,两者整合使之具有完整的对应关系;根据编写的后置处理器程序,把完成步骤6后得到的焊接任务仿真程序输出为实际机械臂可执行代码,通过此功能可以直接把焊接任务仿真实验成果投入到实际机械臂的焊接任务操作中。

要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的类似的其它实施方式,同样属于本发明的保护范围。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值