
我们都知道在学会开车以后,不论驾驶哪个品牌的汽车都是差不多的操作——因为汽车的驱动原理都是一样的。电脑也是这样,如果你使用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一起使用),但是用户需要具备专家级的编程能力。而且该软件是针对广义的机器人,对于工业机器人的仿真与离线编程需要不太贴合。