机器人离线编程

共 8720字,需浏览 18分钟

 ·

2021-08-09 14:44

点击下方卡片,关注“新机器视觉”公众号

视觉/图像重磅干货,第一时间送达

来源:马少爷

我们都知道在学会开车以后,不论驾驶哪个品牌的汽车都是差不多的操作——因为汽车的驱动原理都是一样的。电脑也是这样,如果你使用Windows电脑,用户操作界面不会因为你选择了不同牌子的电脑硬件而改变。但是,在工业机器人的使用上,情况完全不是这样。

工业机器人的使用(编程)方法,绝对取决于它的硬件品牌。你可能想象着,机器人上运行的程序是用类似于C++或Visual Basic语言写成的,然而事实上,很多机器人使用的是类似于汇编语言那样的基础语言。

因为工业机器人的复杂性,机器人集成商(帮助用户装配机器人的服务企业)与大多数机器人生产商一样,会尽量使用同一个品牌的机器人硬件。不幸的是,没有哪个机器人品牌可以提供完整的产品系列以满足所有用户需求,产品本身也在不断进化。例如,史陶比尔(Stäubli)机器人,是为数不多的提供在湿润环境里作业的机器人生产商之一,而发那科(Fanuc)是唯一一个提供中等载荷的协作型机器人厂家。另外,有些企业的任务内容由投标决定,这会导致他们购买不同品牌的工业机器人。

机器人编程语言发展缓慢,是因为工业机器人非常可靠与耐用。因此,机器人生产商必须提供产品的“向下兼容”(即新产品需要能与旧产品兼容使用)。为工业机器人更换零部件以及提供新的附加功能,几乎与销售新机器人一样利润可观。所以,机器人生产商可能一直不会改变其编程语言的基本原理。比如,ABB机器人在用户操作层面仍然(不得不)使用“四元法”表达旋转方向,虽然四元法的直观程度跟二进制代码一样。其余大多数机器人生产商使用更直观的“欧拉角”来表达旋转方向,所以ABB在控制器中增加了“四元法”与“欧拉角”之间转化的功能。大多数机器人编程语言出现在十到二十年之前,而今,当代工程师们更加习惯使用现代编程语言例如Java,C#跟Python。

发那科(Fanuc),全球四家领先的工业机器人生产商之一,提供两种不同的编程语言:TP(即:示教器)语言与KAREL语言。TP程序是二进制代码文件,只能通过示教器按钮(或触屏)修改,TP程序也可以从LS程序(人类可读的ASCII码程序)编译或反编译过来。TP程序可提供有限的汇编程序语言功能。此外,发那科允许用户使用PC电脑跟KAREL语言(类似Pascal语言)编写你自己的算法,但是KAREL程序内不允许添加机器人运动指令,也不能通过示教器编辑程序。

你可以购买发那科提供的ROBOGUIDE离线编程与仿真软件,但是如果你没有购买ROBOGUIDE的WinOLPC,或者你的发那科机器人控制器上没有安装“ASCII上传”功能(付费软件升级选项),那么你就无法使用LS程序。同时你也需要购买额外的选项来生成或编辑KAREL程序。

安川首钢(Motoman)机器人是通过INFORM语言来编程的(JBI文件),跟发那科的TP格式有些类似。INFORM的程序变量通过寄存器被所有程序共用。首钢机器人有比较完善的MotoCom函数库,用户可以通过C++,C#或Visual Basic(Windows)来实现机器人编程。

给ABB机器人编程比较简单,它们使用RAPID编程语言,与Visual Basic有些类似。ABB免费提供一款RobotStudio软件,通过它即可对机器人进行在线编程,编辑RAPID程序,并且通过网络连接与PC电脑之间传输程序文件。另外,你也可以购买软件的3D仿真器与离线编程功能。

库卡(KUKA)机器人使用的是KRL(KUKA Robot Language)语言编写的SRC程序,该程序可以通过免费的OrangeEdit编辑器、或者付费的库卡仿真器Sim Pro编译。值得一提的是,库卡KRC4控制器是一台基于Windows的电脑,示教器相当于电脑的远程桌面——但是用示教器修改程序却不太灵便,触屏的反应速度远达不到平板电脑水平。另外,库卡的协作型机器人LBR iiwa使用的是由Java编程的Sunrise控制器,它操作起来就比较直观跟快速。

关于不同的机器人编程语言我们就先说到这里,因为来自全球有至少几十个不同的机器人生产商。有些品牌不提供离线编程软件,例如优傲(Universal Robots)机器人,用户需要通过机器人的示教器界面(优傲的设计非常直观,但是功能也比较有限),或使用ASCII编辑器用UR脚本语言(基于Python)编程。其他机器人生产商致力于开发计算机辅助设计(CAD)软件插件,比如日立(Mitsubishi)机器人的MelfaWorks软件插件可直接连接SolidWorks。

工业机器人发展至今,没有一种统一的机器人编程方式让人感到失望。数控机床使用的G代码程序在50年代被引入,它出现在数控技术产生后不久,现今大部分数控机床(CNC)都使用G代码编程。但是对于工业机器人来说却没有这样一款通用的编程语言。

当今市场上有支持多品牌机器人的离线编程工具,每款软件也各有自己的优缺点。但是,这些工具也都较为昂贵。免费的工具有例如Gazebo(需要跟ROS一起使用),但是用户需要具备专家级的编程能力。而且该软件是针对广义的机器人,对于工业机器人的仿真与离线编程需要不太贴合。

这就是我们开发出RoboDK软件的原因:它是一款价格合理的工业机器人仿真工具,为用户提供直观的编程方式。仿真器支持多种应用,例如取放,喷涂,机器人加工等等。软件内的优化工具可自动转化计算机辅助加工(CAM)程序,生成机器人程序。RoboDK是从加拿大最大的机器人研究中心之一的CoRo实验室拆分出来的独立公司,在各主要品牌的机器人上都完成了测试。

RoboDK的机器人模型库包括300多款来自30多个品牌的工业机器人,我们也有意向为新的机器人品牌提供支持。任何机器人品牌的生产商都可以在我们的模型库中添加他们的机器人,为机器人的离线或在线编程提供接口。离线编程通过针对每个品牌的“后置处理器”完成,而在线编程需要通过一个连接机器人硬件与机器人仿真器的驱动器实现。在线编程可实现分步骤运行机器人程序、读取机器人位置或发送移动机器人指令。下面的视频演示了优傲UR10机器人的在线编程。

RoboDK的独特之处在于,你可以通过Python与RoboDK的应用程序接口(API)给任何机器人编程。Python提供强大的函数工具库,例如,转化SVG图像成为机器人的XY坐标。以下几行程序就是结合RoboDK的API与Python的面向对象编程的范例:

# 目标对象是一个机器人# 目标点通过一个4x4的矩阵表示,定义方位(位置和方向)robot.MoveJ(target*transl(0,0,-100))    # 通过关节移动,将机器人移动至“接近目标点”robot.MoveL(target)                     # 通过线性移动,将机器人移动至目标点CloseGripper()                          # 用户自定义动作,比如抓取零件robot.MoveL(target*transl(0,0,-100))    # 移动机器人回到“接近目标点”
以上小段程序将机器人安全移动到目标点(前后都经过“接近目标点”确保机器人以恰当的角度接近目标)。我们的软件中包括更多的例子,有的需要Python编程,有的则不需要。

我们相信,将有一天机器人工程师可以使用一个国际通用的语言例如Python来给任何品牌的机器人编程。编程人员跟机器人用户将欢迎这个选项,因为这意味着他们不再需要依赖同一品牌的工具。我们向Mecademic(也是CoRo实验室的拆分公司)致意,他们制作出了第一款可以通过任何现代编程语言编程的工业机器人,当然这款机器人也需要使用到一些独有的指令。

自2015年产品进入市场之后,RoboDK已被安装在超过3万台电脑上。RoboDK吸引了很多高校使用它作为学习工业机器人的工具(例如,你可以用它查看DH坐标系),也引起了新兴机器人生产商的注意。我们欢迎机器人集成商通过RoboDK的应程序接口(API)开发出新的功能,这样做的优势是在一个机器人品牌上开发的功能可以转嫁到其他品牌上。

RoboDK可以免费下载与试用,它的教育功能将永远免费。我们相信RoboDK是目前市场上价格最合理的工业机器人离线编程工具。

首先给大家说一下机器人编程。通常来讲,机器人编程可分为示教在线编程和离线编程。那么示教在线编程在实际应用中主要存在以下问题:

  1、示教在线编程过程繁琐、效率低。

  2、精度完全是靠示教者的目测决定,而且对于复杂的路径示教在线编程难以取得令人满意的效果。

  基于对示教编程出现的弊端,那么离线编程就出现啦!与示教编程相比,离线编程又有什么优势呢?

  1、减少机器人的停机时间,当对下一个任务进行编程时,机器人仍可在生产线上进行工作。

  2、使编程者远离了危险的工作环境。

  3、适用范围广,可对各种机器人进行编程,并能方便的实现优化编程。

  4、可对复杂任务进行编程。

  5、便于修改机器人程序。

  听到离线编程的这些优点后,很是好奇呢!迫不及待的想看看离线编程软件长什么样子。下面一一介绍一下主流的离线编程软件吧。

  1.Robot Art

  Robot Art来自帝都北京,是目前离线编程软件国内品牌中的顶尖的软件。软件根据几何数模的拓扑信息生成机器人运动轨迹,之后轨迹仿真、路径优化、后置代码一气呵成,同时集碰撞检测、场景渲染、动画输出于一体,可快速生成效果逼真的模拟动画。广泛应用于打磨、去毛刺、焊接、激光切割、数控加工等领域。

  Robot Art教育版针对教学实际情况,增加了模拟示教器、自由装配等功能,帮助初学者在虚拟环境中快速认识机器人,快速学会机器人示教器基本操作,大大缩短学习周期,降低学习成本。

  下图为RobotArt离线编程仿真软件的界面:

  优点:

  1)支持多种格式的三维CAD模型,可导入扩展名为step、igs、stl、x_t、prt(UG)、prt(ProE)、CATPart、sldpart等格式;

  2)支持多种品牌工业机器人离线编程操作,如ABB、KUKA、Fanuc、Yaskawa、Staubli、KEBA系列、新时达、广数等);

  3)拥有大量航空航天高端应用经验;

  4)自动识别与搜索CAD模型的点、线、面信息生成轨迹;

  5)轨迹与CAD模型特征关联,模型移动或变形,轨迹自动变化;

  6)一键优化轨迹与几何级别的碰撞检测;

  7)支持多种工艺包,如切割、焊接、喷涂、去毛刺、数控加工;

  8)支持将整个工作站仿真动画发布到网页、手机端;

  缺点:

  软件不支持整个生产线仿真,对外国小品牌机器人也不支持,不过作为机器人离线编程,还是相当给力的,功能一点也不输给国外软件。

  2.Robot Master

  Robotmaster来自加拿大,由上海傲卡自动化代理,是目前离线编程软件国外品牌中的顶尖的软件,几乎支持市场上绝大多数机器人品牌(KUKA,ABB,Fanuc,Motoman,史陶比尔、珂玛、三菱、DENSO、松下……)。

  下图为Robot Master软件界面:

  功能:Robotmaster在Mastercam中无缝集成了机器人编程、仿真和代码生成功能,提高了机器人编程速度。

  优点:可以按照产品数模,生成程序,适用于切割、铣削、焊接、喷涂等等。独家的优化功能,运动学规划和碰撞检测非常精确,支持外部轴(直线导轨系统、旋转系统),并支持复合外部轴组合系统。

  缺点:暂时不支持多台机器人同时模拟仿真,基于MasterCAM做的二次开发,价格昂贵,企业版在20W左右。

  3.Robot Works

  RobotWorks是来自以色列的机器人离线编程仿真软件,与Robot Master类似,是基于Solidworks做的二次开发。使用时,需要先购买Solidworks。主要功能如下:

  (1)全面的数据接口:Robotworks是基于Solidworks平台开发,Solidworks可以通过IGES,DXF,DWG,PrarSolid,Step,VDA,SAT等标准接口进行数据转换。

  (2)强大的编程能力:从输入CAD数据到输出机器人加工代码只需四步。

  第一步:从Solidworks直接创建或直接导入其他三维CAD数据,选取定义好的机器人工具与要加工的工件组合成装配体。所有装配夹具和工具客户均可以用Solidworks自行创建调用;

  第二步:Robotworks选取工具,然后直接选取曲面的边缘或者样条曲线进行加工产生数据点;

  第三步:调用所需的机器人数据库,开始做碰撞检查和仿真,在每个数据点均可以自动修正,包含工具角度控制,引线设置,增加减少加工点,调整切割次序,在每个点增加工艺参数;

  第四步:Robotworks自动产生各种机器人代码,包含笛卡尔坐标数据,关节坐标数据,工具与坐标系数据,加工工艺等,按照工艺要求保存不同的代码。

  (3)强大的工业机器人数据库:系统支持市场上主流的大多数的工业机器人,提供各大工业机器人各个型号的三维数模。

  (4)完美的仿真模拟:独特的机器人加工仿真系统可对机器人手臂,工具与工件之间的运动进行自动碰撞检查,轴超限检查,自动删除不合格路径并调整,还可以自动优化路径,减少空跑时间。

  (5)开放的工艺库定义:

  系统提供了完全开放的加工工艺指令文件库,用户可以按照自己的实际需求自行定义添加设置自己独特工艺,添加的任何指令都能输出到机器人加工数据里面。

  缺点:Robotworks基于solidworks,solidworks本身不带CAM功能,编程繁琐,机器人运动学规划策略智能化程度低。

  优点:生成轨迹方式多样、支持多种机器人、支持外部轴。

  4.ROBCAD

  ROBCAD是西门子旗下的软件,软件较庞大,重点在生产线仿真,价格也是同软件中顶尖的。软件支持离线点焊、支持多台机器人仿真、支持非机器人运动机构仿真,精确的节拍仿真,ROBCAD主要应用于产品生命周期中的概念设计和结构设计两个前期阶段,其主要特点包括:

  (1)与主流的CAD软件(如NX、CATIA、IDEAS)无缝集成。

  (2)实现工具工装、机器人和操作者的三维可视化。

  (3)制造单元、测试以及编程的仿真。

  ROBCAD的主要功能包括:

  (1)Workcelland Modeling:对白车身生产线进行设计、管理和信息控制。

  (2)Spotand OLP:完成点焊工艺设计和离线编程。

  (3)Human:实现人因工程分析。

  (4)Application中的Paint、Arc、Laser等模块:实现生产制造中喷涂,弧焊,激光加工,绲边等等工艺的仿真验证及离线程序输出。

  (5)ROBCAD的Paint模块。喷漆的设计、优化和离线编程,其功能包括:喷漆路线的自动生成、多种颜色喷漆厚度的仿真、喷漆过程的优化。

  缺点:价格昂贵,离线功能较弱,Unix移植过来的界面,人机界面不友好。

  ROBCAD软件界面

  5.DELMIA

  DELMIA是达索旗下的CAM软件,大名鼎鼎的CATIA是达索旗下的CAD软件。DELMIA有6大模块,其中Robotics解决方案涵盖汽车领域的发动机、总装和白车身(Body-in-White),航空领域的机身装配、维修维护,以及一般制造业的制造工艺。

  DELMIA的机器人模块ROBOTICS是一个可伸缩的解决方案,利用强大的PPR集成中枢快速进行机器人工作单元建立、仿真与验证,是一个完整的、可伸缩的、柔性的解决方案。使用DELMIA机器人模块,用户能够容易地:

  (1)从可搜索的含有超过400种以上的机器人的资源目录中,下载机器人和其它的工具资源。

  (2)利用工厂布置规划工程师所完成的工作。

  (3)加入工作单元中工艺所需的资源进一步细化布局。

  缺点:DELMIA属于专家型软件,操作难度太高,不适宜高职学生学习,需要机器人专业研究生以上学生使用;工业正版单价也在百万级别。

  6.RobotStudio

  RobotStudio是瑞士ABB公司配套的软件,是机器人本体商中软件做的最好的一款。。RobotStudio支持机器人的整个生命周

  期,使用图形化编程、编辑和调试机器人系统来创建机器人的运行,并模拟优化现有的机器人程序。Robot Studio包括如下功能:

  (1)CAD导入。可方便地导入各种主流CAD格式的数据,包括IGES、STEP、VRML、VDAFS、ACIS及CATIA等。机器人程序员可依据这些精确的数据编制精度更高的机器人程序,从而提高产品质量。

  (2)Auto Path功能。该功能通过使用待加工零件的CAD模型,仅在数分钟之内便可自动生成跟踪加工曲线所需要的机器人位置(路径),而这项任务以往通常需要数小时甚至数天。

  (3)程序编辑器。可生成机器人程序,使用户能够在Windows环境中离线

  开发或维护机器人程序,可显著缩短编程时间、改进程序结构。

  (4)路径优化。如果程序包含接近奇异点的机器人动作,RobotStudio可自动检测出来并发出报警,从而防止机器人在实际运行中发生这种现象。仿真监视器是一种用于机器人运动优化的可视工具,红色线条显示可改进之处,以使机器人按照最有效方式运行。可以对TCP速度、加速度、奇异点或轴线等进行优化,缩短周期时间。

  (5)可达性分析。通过Autoreach可自动进行可到达性分析,使用十分方便,用户可通过该功能任意移动机器人或工件,直到所有位置均可到达,在数分钟之内便可完成工作单元平面布置验证和优化。

  (6)虚拟示教台。是实际示教台的图形显示,其核心技术是Virtual Robot。

  从本质上讲,所有可以在实际示教台上进行的工作都可以在虚拟示教台

  (QuickTeach™)上完成,因而是一种非常出色的教学和培训工具。

  (7)事件表。一种用于验证程序的结构与逻辑的理想工具。程序执行期间,可通过该工具直接观察工作单元的I/O状态。可将I/O连接到仿真事件,实现工位内机器人及所有设备的仿真。该功能是一种十分理想的调试工具。

  (8)碰撞检测。碰撞检测功能可避免设备碰撞造成的严重损失。选定检测对象后,RobotStudio可自动监测并显示程序执行时这些对象是否会发生碰撞。

  (9)VBA功能。可采用VBA改进和扩充RobotStudio功能,根据用户具体需要开发功能强大的外接插件、宏,或定制用户界面。

  (10)直接上传和下载。整个机器人程序无需任何转换便可直接下载到实际机器人系统,该功能得益于ABB独有的Virtual Robot技术。

  缺点,就是只支持本公司品牌机器人,机器人间的兼容性很差。

  Robot Studio软件界面

  7.Robomove

  Robomove来自意大利,同样支持市面上大多数品牌的机器人,机器人加工轨迹由外部CAM导入,与其他软件不同的是,Robomove走的是私人定制路线,根据实际项目进行定制。软件操作自由,功能完善,支持多台机器人仿真,

  缺点:需要操作者对机器人有较为深厚的理解,策略智能化程度与Robotmaster有较大差距。

  以上介绍了常用的7款主流离线编程软件,主要对软件的优缺点进行了分析。本人也是对个中软件试用过,由于后面几种常用的软件没有中文版所以学起来那是相当的吃力,后来无意间从别人那里得知了一款用起来还不错的国产离线编程软件,抱着试试用的态度,去了他们的官网上下载了试用版,纯正的中文界面,语言再也不是问题啦,所以学起来还算容易,本人也正在学习中,个人感觉还是不错滴!看到了示教器和离线编程,那么就这个话题小补充一下,在RobotArt离线编程软件的功能介绍中有一个半实物仿真的功能哦!在介绍此功能视频中看着操作者拿着示教器就可以操作软件中的虚拟机器人,手就特别痒痒,特别想亲自试一下,可惜现在还没这个机会呢!不过看着还挺爽的。可能没有好好地研究这款国产软件吧。虽然这是大家所说的国产软件,但我并不觉得这款软件的功能和他们来比逊色在哪里。客观评价一下,这款软件也具有RobotMaster的碰撞检测和外部轴功能呀;也具有RobotWorks的支持多种机器人功能呀;Robomove能够根据实际项目进行定制,RobotArt有很多工艺包呀,也可以根据实际项目进行定制呀;说实话起初用这款软件并没有会觉得怎样怎样,因为打从心里感觉国产的很多东西是有待考证的,所以一直抱着试试用的态度,但经过近几个月的试用,真心的接受了这款所谓国产的离线编程软件,所以不要给任何东西贴上所谓的标签,只要用心去做任何所谓的标签都是无意义的。

参考链接:https://robodk.com/cn/

—版权声明—

仅用于学术分享,版权属于原作者。

若有侵权,请联系微信号:yiyang-sy 删除或修改!


—THE END—

浏览 89
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报