机器人语言根据其工作描述级别可以分为动作级编程语言、对象级编程语言和任务级编程语言。
动作级编程语言
动作级编程语言是低级的机器人语言。它主要描述机器人的运动。通常,指令对应于机器人的一个动作,这意味着从机器人的一个姿势移动到另一个姿势。动作级编程语言的优点是简单易编程。
其缺点是功能有限,不能进行复杂的数学运算,不接受浮点数和字符串,子程序不含自变量;不能接受复杂的传感器信息,只能接受传感器开关信息;与电脑沟通能力差。典型的动作级编程语言是VAL语言,例如,AVL语言语句“移动到(目的地)”意味着机器人从当前姿势移动到目的地姿势。
动作级编程语言可以分为关节级编程和末端执行器级编程。
关节级编程是以机器人关节为对象,给出机器人关节在关节坐标系中位置的一系列时间序列的编程方法。对于笛卡尔机器人和圆柱机器人,这种方法更适合编程,因为矩形关节和圆柱关节的表示相对简单;但是,对于具有旋转关节的铰接机器人,关节位置的时间序列很难表达,甚至一个简单的动作都要经过许多复杂的操作,因此这种方法并不适用。
联合级编程可以通过简单的编程指令来实现,也可以通过教学箱教学,教学打字来实现。
末端执行器级编程
末端执行器级编程在机器人工作空间的直角坐标系中进行。在这个直角坐标系中,给出了机器人末端执行器的一系列姿态,以及力觉、触觉、视觉等其他辅助功能的时间序列。,同时确定工作量和工具,协调控制机器人动作。
这种编程方法允许简单的条件分支、传感功能、工具选择和设置、有时是并行功能以及强大的数据实时处理能力。
工业机器人是用什么语言编程的?
机器人编程语言(2)
对象级编程语言
所谓对象,就是工作和工作对象本身。对象级编程语言比动作级编程语言高一级。不需要描述机器人手爪的运动,只要程序员以程序的形式给出作业本身的顺序过程描述和环境模型的描述,也就是描述操作者之间的关系。通过编译程序,机器人可以知道如何行动。
这类语言的典型例子是AML和AUTOPASS,它们的特点是:
(1)具有动作级编程语言的所有动作功能。
(2)具有较强的感知能力,可以处理复杂的传感器信息,可以利用传感器信息修改和更新环境描述和模型,也可以利用传感器信息进行控制、测试和监督。
(3)开放,语言系统提供开发平台。用户可以根据需要添加说明和扩展语言功能。
(4)数字计算和数据处理能力强,能处理浮点数,能即时与电脑通讯。
对象级编程语言以接近自然语言的方式描述对象的变化。对象级编程语言的运算功能,工作对象的姿态时序,工作量,工作对象所承受的力和力矩,都可以以表达式的形式出现。在系统中,机器人尺寸参数、工作对象和工具等参数一般以知识库和数据库的形式存在。
系统在编制程序时,获取这些信息,然后模拟机器人的动作过程,进而进行实现工作对象的合适姿态、获取并处理传感器信息、避障以及与其他设备通信的工作。
任务级编程语言
任务级编程语言是比前两种类型更高级的语言,也是理想的机器人高级语言。这种语言不需要用机器人动作来描述任务,也不需要描述机器人对象的中间状态过程。它只需要按照一定的规则描述机器人对象的初始状态和目标状态。
机器人语言系统可以利用现有的环境信息、知识库和数据库进行自动推理和计算,从而自动生成详细的机器人动作、序列和数据。例如,当装配机器人想要完成螺钉的装配时,螺钉的初始位置和装配后的目标位置是已知的。
当给出抓取螺丝的命令时,语言系统搜索一条从初始位置到目标位置的路径,找到一条在复杂的工作环境下不会与周围障碍物发生碰撞的合适路径,在初始位置选取合适的姿态抓取螺丝,沿着这条路径移动到目标位置。在这个过程中,操作方案的设计、工序的选择、前后动作的安排等一系列问题都是由计算机自动完成的。
任务级编程语言的结构非常复杂,需要人工智能的理论基础和大规模知识库、数据库的支持。目前还不完善,是比较理想的语言,需要进一步研究。但是可以相信,随着人工智能技术和数据库技术的不断发展,任务级编程语言将取代其他语言,成为机器人语言的主流,使得机器人编程应用变得非常简单。
普通用户接触到的语言都是机器人公司开发的面向用户的语言平台,通俗易懂。在这个层面上,每个机器人公司都有自己的语法规则和语言形式,这些都不重要,因为这一层是给用户授课和编程的。
这个语言平台的背后是一个硬件相关的高级语言平台,比如C语言、C++语言、基于IEC61131的标准语言等。这些语言是机器人公司在开发机器人系统时使用的语言平台。这一级别的语言平台可以编写翻译和解释程序,也可以翻译和解释在这一级别的语言平台上编写的、由用户传授的英特尔指令所能理解的程序。这一级语言平台主要进行运动学和控制编程,然后底层是硬件语言.
商业机器人公司提供给用户的编程接口一般是自己开发的简单的教学编程语言系统,比如库卡、ABB等。机器人控制系统提供商一般为用户提供第二层语言平台。在这个平台层面上,控制系统供应商可以提供机器人运动学算法和核心多轴联动插补算法,用户可以自由对自己设计的产品进行二次开发。
这一级别的语言平台是开放的,但是用户的工作量也相应增加。这一级别的平台主要面向机器人开发者,比如欧洲的一些机器人控制系统供应商就是基于IEC61131标准的编程语言平台。一般我们不用太在意汇编语言底层的编程环境,这是控制系统芯片硬件厂商的事。
更多了解库卡机器人