从风格上来讲,主要分欧美的,比如KUKA,ABB;和日本的,比如MOTOMAN, FANUC。两大类
其区别是欧洲人认为你应该先在电脑上编程,再去用示教盒设定工具点坐标和机器手姿态。日本人认为你应该先用笔记本把思路写下来再用示教盒一点一点吧程序按出来。
具体到编程语言风格上讲,欧美的类似高级语言(相对来说),类似C或者Python。日本的感觉很像汇编一些,如果你用过数控机床应该就很熟悉。
但现在即使是日本的,也在向离线编程与图形化的方向发展。亦即,将项目的三维图(Pro E, CATIA, SolidWorks等)导入离线编程软件中,然后规划动作模拟路径,直接进行编程。
但实际上,实际项目中,编程时更多考虑的是与其他设备的配合以及怎么优化动作。
所以,楼主想学习机器人编程,可以先了解一下面向对象编程,然后多去装配车间,与工人交流,观看设备测试。在工作中学习,保持压力的状态下是最高效的。
协作机器人作为朝阳行业,被广泛看好,几年内在全球范围内涌现出不少的协作机器人品牌,从目前和长远来看,从技术性、实用性、安全性和市场覆盖率等综合来看,根据权威数据,全球协作机器人前十名有:
1、大族机器人。大族机器人是大族激光旗下品牌,率先突破了更多更先进的关键技术,是国内唯一一家在核心部件完全自主研发的品牌,不仅是国货之光,更是目前协作机器人领域全球的领导者,产品通过全球多国认证,远销海内外,不少技术处于全球领先水平,比如防护性、响应速度、抗干扰能力等,产品覆盖全球100多个国 家。
2、优傲机器人。是跨国企业投资的品牌,Universal Robots公司(优傲机器人)是一家致力于开发具有广泛可用性的机器人技术的公司,可以在很多工业生产领域实现自动化和合理化。
3、KUKA机器人。KUKA是一家创建于德国的自动化集团公司,公司总部位于德国奥格斯堡。
4、FANUC(发那科机器人)。FANUC 是日本一家专门研究数控系统的公司,成立于1956年。1974年,FANUC首台机器人问世,FANUC机器人产品系列多达240种,负重从05公斤到135吨。
5、安川机器人。安川机器人来自日本安川电机(Yaskawa)。于2015年12月的推出了第一款协作机器人MOTOMAN-HC10。安川的协作机器人产品除了HC10,还包括小型6轴机器人MotoMINI。
6、博世机器人。博世(Bosch)是德国的工业企业之一,在2014年10月,博世推出了其首个协作机器人解决方案APAS。
7、Rethink。Robotics。Rethink Robotics公司成立于2008年,原名为Heartland Robotics,于2012年更名并推出了第一款协作机器人Baxter
8、Bionic。Robotics Bionic Robotics是一家德国公司,其推出了轻量级单臂机器人BioRob。BioRob自重6kg,可搬运重量为500g。
9、遨博机器人。创立于 2015 年,是一家专注于协作机器人研发、生产和销售的国 家企业。作为协作机器人整体解决方案提供商,遨博开发了许多款式的协作机器人产品,产品有一定的竞争力。
10、节卡机器人。2014年由一群工程师与机器人学者联合创立,他们希望所从事的机器人事业能够“节节胜利”,也深知前进的征途中需要“上下求索”,所以取名“节卡”。
打开按夹爪自动开关后打开
KUKA编程入门内容和技巧:
1、基本掌握机器人程序编制调试,了解机器人offline软件。
2、基本掌握机器人系统的安装集成,连锁信号的设定。
3、基本掌握机器人控制系统,熟悉机器人周边设备及与周边设备的连接调试工作。
4、基本掌握机器人相关技术的研究,技术问题解决及示教与调试。
5、掌握工业总线。如DeviceNet、ProfiBus等。
6、熟悉ABB、FANUC、MOTOMAN、KUKA、STAUBLI等机器人系统。
KUKA编程大致分为两个部分:
一、轨迹编程(主要编辑运动轨迹)基础的编程非常的简单,通常采用示教的方式,即通过手动移动机器人到各个位置并进行记录,执行程序时机器人就会按照你记录的点依次的走下去,轨迹编程其难点在于轨迹优化,移动不是问题,完美才是技术。
二、SPS编程(主要编辑信号触发、安全及检测)机器人在运动过程中及到达位置时都要进行大量的信号处理,包括控制信号,反馈信号,安全信号及自身状态的检测,这些编程确保了机器人的正常工作。难点在于人员安全,设备安全及工艺优化。
焊接机器人的主要性能指标
焊接机器人的主要性能指标以日本安川电机公司生产的Motoman-L10为例表示如下:
⑴ 名称与型号 Motoman-L10
⑵ 主要用途 弧焊
⑶ 类别 示教再现型
⑷ 坐标型式 多关节式
⑸ 自由度数 5个
⑹ 抓重 最大10㎏(包括夹钳)
⑺ 动作范围与速度 运动参数列表如下:
表3-1 Motoman-L10运动参数
运动自由度 动作范围 速度
整机摆动 240° 90°/s
上臂俯仰 +20°~-40° 1100mm/s
上臂前后 ±40° 800mm/s
手腕弯曲 180° 100°/s
手腕旋转 360° 150°/s
⑻ 定位方式 选用增量编码器作为位置检测元件
⑼ 控制方式 重复式数字位置控制方式,可精确控制运动轨迹
⑽ 重复定位精度 ±02mm;
⑾ 驱动方式 电伺服 采用交流测速发电机作为伺服电动机的速度检测元件,实现速度反馈,并引进力矩反馈;
⑿ 驱动源 DC伺服电动机
⒀ 程序控制和存储方式 采用8位微处理Intel8080用半导体存储器作为主存(盒式磁带补充主存容量之不足)
程序步数:1000步
指令条数:600条
⒁ 轮廓尺寸 如图所示
图3-3 Motoman-L10外形尺寸与动作范围
⒂ 重量 本体400㎏ 控制部分350㎏
⒃ 外部同步信号 输入22点 输出21点
⒄ 电源 AC220/220V(+10%,-15%),
50/60HZ±1HZ, 三相5KVA
国内比较好用的机器人离线编程软件RobotArt、PQArt,功能全面,最关键的是非常容易上手,能做到所见即所得,直接输出执行代码,U盘拷到机器人上即可运行,适合机器人做焊接、打磨、切割、喷涂等所有机器人编程,如果说机器人编程的优势那就是速度比手工示教快了太多,而且简单易 *** 作,精度可以做的理论上零误差
目前机器人离线编程软件主要有:
Robotmaster
Robcad
RobotExpert
Delmia
Robomove
Blackbird
Famos
Robotworks
Powermill
以及ABB原厂的Robotstudio
还有Fanuc原厂的RoboGuide
Robotmaster:来自加拿大,由上海傲卡自动化代理,是目前离线编程软件市场上顶尖的软件,几乎支持市场上绝大多数机器人品牌(KUKA,ABB,Fanuc,Motoman,史陶比尔、珂玛、三菱、DENSO、松下……)
优点:可以按照产品数模,生成程序,适用于切割、铣削、焊接、喷涂等等。独家的优化功能,运动学规划和碰撞检测非常精确,支持外部轴(直线导轨系统、旋转系统),并支持复合外部轴组合系统。
缺点:暂时不支持多台机器人同时模拟仿真
Robcad:西门子旗下产品,在车厂占统治地位,做方案和项目规划的利器,支持离线点焊、支持多台机器人仿真、支持非机器人运动机构仿真,精确的节拍仿真。
缺点:价格昂贵,离线功能较弱,Unix移植过来的界面,人机界面不友好
RobotExpert:西门子新出的离线软件,可以理解为Robcad的廉价版和界面优化版。
Delmia:Robcad的竞争对手,法国达索软件旗下产品(开发大名鼎鼎的Catia软件的公司)在车厂也有广泛的使用,与Robcad各有千秋。
缺点:知道的同学补充吧
Robomove:来自意大利,同样支持市面上大多数品牌的机器人,机器人加工轨迹由外部CAM导入,与其他软件不同的是,Robomove走的是私人定制路线,根据实际项目进行定制。软件 *** 作自由,功能完善,支持多台机器人仿真,
缺点:需要 *** 作者对机器人有较为深厚的理解,策略智能化程度与Robotmaster有较大差距。
Blackbird:来自德国, *** 纵简单
缺点:不支持外部轴
Famos:功能较薄弱
Robotworks:基于solidworks,solidworks本身不带CAM功能,编程繁琐,机器人运动学规划策略智能化程度低。
Powermill:五轴做的很不错,可惜做机器人后处理有点抱歉
如果你去问一屋子的机器人专家,“什么是机器人学中最好编程语言?”,你永远不会得到一个直接的答案。
电气工程师会从工业机器人技术这个角度给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。而且,每个人都会对什么是最好的编程语言有自己的看法。最终,大多数人都会赞同的答案就是”这个取决于。。。“。
对于一个新入行正在试图决定要先学哪种语言的机器人学者来说,这是一个相当无用的答案。即使这是最现实的回答——因为它的确取决于你想要开发的应用程序和你在使用的系统。
对于学习机器人编程的你来说,最重要的事情是开拓你的”编程思维”,而不是精通一种特定的编程语言。从很多方面来说,从哪种编程语言开始学习真的无关紧要。你学习的每种语言提升了你的编程思维,拥有了这种思维,去学习一种新编程语言的时候会容易不少
这里有几种常用的机器人编程语言
VAL语言
一、VAL语言及特点
VAL语言是美国Unimation公司于1979年推出的一种机器人编程语言,主要配置在PUMA和UNIMATION等型机器人上,是一种专用的动作类描述语言。VAL语言是在BASIC语言的基础上发展起来的,所以与BASIC语言的结构很相似。在VAL的基础上Unimation公司推出了VALⅡ语言。
VAL语言可应用于上下两级计算机控制的机器人系统。上位机为LSI-11/23,编程在上位机中进行,上位机进行系统的管理;下位机为6503微处理器,主要控制各关节的实时运动。编程时可以VAL语言和6503汇编语言混合编程。
VAL语言命令简单、清晰易懂,描述机器人作业动作及与上位机的通信均较方便,实时功能强;可以在在线和离线两种状态下编程,适用于多种计算机控制的机器人;能够迅速地计算出不同坐标系下复杂运动的连续轨迹,能连续生成机器人的控制信号,可以与 *** 作者交互地在线修改程序和生成程序;VAL语言包含有一些子程序库,通过调用各种不同的子程序可很快组合成复杂 *** 作控制;能与外部存储器进行快速数据传输以保存程序和数据。
VAL语言系统包括文本编辑、系统命令和编程语言三个部分。
在文本编辑状态下可以通过键盘输入文本程序,也可通过示教盒在示教方式下输入程序。在输入过程中可修改、编辑、生成程序,最后保存到存储器中。在此状态下也可以调用已存在的程序。
系统命令包括位置定义、程序和数据列表、程序和数据存储、系统状态设置和控制、系统开关控制、系统诊断和修改。
编程语言把一条条程序语句转换执行。
二、VAL语言的指令
VAL语言包括监控指令和程序指令两种。其中监控指令有六类,分别为位置及姿态定义指令、程序编辑指令、列表指令、存储指令、控制程序执行指令和系统状态控制指令。
各类指令的具体形式及功能如下:
1.监控指令
1)位置及姿态定义指令
POINT指令:执行终端位置、姿态的齐次变换或以关节位置表示的精确点位赋值。
其格式有两种:
POINT<变量>[=<变量2>…<变量n>]
或POINT<精确点>[=<精确点2>]
例如:
POINTPICK1=PICK2
指令的功能是置变量PICK1的值等于PICK2的值。
又如:
POINT#PARK
是准备定义或修改精确点PARK。
DPOINT指令:删除包括精确点或变量在内的任意数量的位置变量。
HERE指令:此指令使变量或精确点的值等于当前机器人的位置。
例如:
HEREPLACK
是定义变量PLACK等于当前机器人的位置。
WHERE指令:该指令用来显示机器人在直角坐标空间中的当前位置和关节变量值。
BASE指令:用来设置参考坐标系,系统规定参考系原点在关节1和2轴线的交点处,方向沿固定轴的方向。
格式:
BASE[<dX>],[<dY>],[<dZ>],[<Z向旋转方向>]
例如:
BASE300,–50,30
是重新定义基准坐标系的位置,它从初始位置向X方向移300,沿Z的负方向移50,再绕Z轴旋转了30°。
TOOLI指令:此指令的功能是对工具终端相对工具支承面的位置和姿态赋值。
2)程序编辑指令
EDIT指令:此指令允许用户建立或修改一个指定名字的程序,可以指定被编辑程序的起始行号。其格式为
EDIT[<程序名>],[<行号>]
如果没有指定行号,则从程序的第一行开始编辑;如果没有指定程序名,则上次最后编辑的程序被响应。
用EDIT指令进入编辑状态后,可以用C、D、E、I、L、P、R、S、T等命令来进一步编辑。如:
C命令:改变编辑的程序,用一个新的程序代替。
D命令:删除从当前行算起的n行程序,n缺省时为删除当前行。
E命令:退出编辑返回监控模式。
I命令:将当前指令下移一行,以便插入一条指令。
P命令:显示从当前行往下n行的程序文本内容。
T命令:初始化关节插值程序示教模式,在该模式下,按一次示教盒上的“RECODE”按钮就将MOVE指令插到程序中。
3)列表指令
DIRECTORY指令:此指令的功能是显示存储器中的全部用户程序名。
LISTL指令:功能是显示任意个位置变量值。
LISTP指令:功能是显示任意个用户的全部程序。
4)存储指令
FORMAT指令:执行磁盘格式化。
SOREP指令:功能是在指定的磁盘文件内存储指定的程序。
STOREL指令:此指令存储用户程序中注明的全部位置变量名和变量值。
LISTF指令:指令的功能是显示软盘中当前输入的文件目录。
LOADP指令:功能是将文件中的程序送入内存。
LOADL指令:功能是将文件中指定的位置变量送入系统内存。
DELETE指令:此指令撤销磁盘中指定的文件。
COMPRESS指令:只用来压缩磁盘空间。
ERASE指令:擦除磁内容并初始化。
5)控制程序执行指令
ABORT指令:执行此指令后紧急停止(紧停)。
DO指令:执行单步指令。
EXECUTE指令:此指令执行用户指定的程序n次,n可以从–32768到32767,当n被省略时,程序执行一次。
NEXT指令:此命令控制程序在单步方式下执行。
PROCEED指令:此指令实现在某一步暂停、急停或运行错误后,自下一步起继续执行程序。
RETRY指令:指令的功能是在某一步出现运行错误后,仍自那一步重新运行程序。
SPEED指令:指令的功能是指定程序控制下机器人的运动速度,其值从001到32767,一般正常速度为100。
6)系统状态控制指令
CALIB指令:此指令校准关节位置传感器。
STATUS指令:用来显示用户程序的状态。
FREE指令:用来显示当前未使用的存储容量。
ENABL指令:用于开、关系统硬件。
ZERO指令:此指令的功能是清除全部用户程序和定义的位置,重新初始化。
DONE:此指令停止监控程序,进入硬件调试状态。
2.程序指令
1)运动指令
指令包括GO、MOVE、MOVEI、MOVES、DRAW、APPRO、APPROS、DEPART、DRIVE、READY、OPEN、OPENI、CLOSE、CLOSEI、RELAX、GRASP及DELAY等。
这些指令大部分具有使机器人按照特定的方式从一个位姿运动到另一个位姿的功能,部分指令表示机器人手爪的开合。例如:
MOVE#PICK!
表示机器人由关节插值运动到精确PICK所定义的位置。“!”表示位置变量已有自己的值。
MOVET<位置>,<手开度>
功能是生成关节插值运动使机器人到达位置变量所给定的位姿,运动中若手为伺服控制,则手由闭合改变到手开度变量给定的值。
又例如:
OPEN[<手开度>]
表示使机器人手爪打开到指定的开度。
2)机器人位姿控制指令
这些指令包括RIGHTY、LEFTY、ABOVE、BELOW、FLIP及NOFLIP等。
3)赋值指令
赋值指令有SETI、TYPEI、HERE、SET、SHIFT、TOOL、INVERSE及FRAME。
4)控制指令
控制指令有GOTO、GOSUB、RETURN、IF、IFSIG、REACT、REACTI、IGNORE、SIGNAL、WAIT、PAUSE及STOP。
其中GOTO、GOSUB实现程序的无条件转移,而IF指令执行有条件转移。IF指令的格式为
IF<整型变量1><关系式><整型变量2><关系式>THEN<标识符>
该指令比较两个整型变量的值,如果关系状态为真,程序转到标识符指定的行去执行,否则接着下一行执行。关系表达式有EQ(等于)、NE(不等于)、LT(小于)、GT(大于)、LE(小于或等于)及GE(大于或等于)。
5)开关量赋值指令
指令包括SPEED、COARSE、FINE、NONULL、NULL、INTOFF及INTON。
6)其他指令
其他指令包括REMARK及TYPE。
SIGLA语言
SIGLA是一种仅用于直角坐标式SIGMA装配型机器人运动控制时的一种编程语言,是20世纪70年代后期由意大利Olivetti公司研制的一种简单的非文本语言。
这种语言主要用于装配任务的控制,它可以把装配任务划分为一些装配子任务,如取旋具,在螺钉上料器上取螺钉A,搬运螺钉A,定位螺钉A,装入螺钉A,紧固螺钉等。编程时预先编制子程序,然后用子程序调用的方式来完成。
IML语言
IML也是一种着眼于末端执行器的动作级语言,由日本九州大学开发而成。IML语言的特点是编程简单,能人机对话,适合于现场 *** 作,许多复杂动作可由简单的指令来实现,易被 *** 作者掌握。
IML用直角坐标系描述机器人和目标物的位置和姿态。坐标系分两种,一种是机座坐标系,一种是固连在机器人作业空间上的工作坐标系。语言以指令形式编程,可以表示机器人的工作点、运动轨迹、目标物的位置及姿态等信息,从而可以直接编程。往返作业可不用循环语句描述,示教的轨迹能定义成指令插到语句中,还能完成某些力的施加。
IML语言的主要指令有:运动指令MOVE、速度指令SPEED、停止指令STOP、手指开合指令OPEN及CLOSE、坐标系定义指令COORD、轨迹定义命令TRAJ、位置定义命令HERE、程序控制指令IF…THEN、FOREACH语句、CASE语句及DEFINE等。
AL语言
一、AL语言概述
AL语言是20世纪70年代中期美国斯坦福大学人工智能研究所开发研制的一种机器人语言,它是在WAVE的基础上开发出来的,也是一种动作级编程语言,但兼有对象级编程语言的某些特征,使用于装配作业。它的结构及特点类似于PASCAL语言,可以编译成机器语言在实时控制机上运行,具有实时编译语言的结构和特征,如可以同步 *** 作、条件 *** 作等。AL语言设计的原始目的是用于具有传感器信息反馈的多台机器人或机械手的并行或协调控制编程。
运行VA语言的系统硬件环境包括主、从两级计算机控制,如图所示。主机为PDP-10,主机内的管理器负责管理协调各部分的工作,编译器负责对AL语言的指令进行编译并检查程序,实时接口负责主、从机之间的接口连接,装载器负责分配程序。从机为PDP-11/45。
主机的功能是对AL语言进行编译,对机器人的动作进行规划;从机接受主机发出的动作规划命令,进行轨迹及关节参数的实时计算,最后对机器人发出具体的动作指令。
二、AL语言的编程格式
(1)程序BEGIN开始,由END结束。
(2)语句与语句之间用分号隔开。
(3)变量先定义说明其类型,后使用。变量名以英文字母开头,由字母、数字和下画线组成,字母大、小写不分。
(4)程序的注释用大括号括起来。
(5)变量赋值语句中如所赋的内容为表达式,则先计算表达式的值,再把该值赋给等式左边的变量。
三、AL语言中数据的类型
(1)标量(scalar)——可以是时间、距离、角度及力等,可以进行加、减、乘、除和指数运算,也可以进行三角函数、自然对数和指数换算。
(2)向量(vector)——与数学中的向量类似,可以由若干个量纲相同的标量来构造一个向量。
(3)旋转(rot)——用来描述一个轴的旋转或绕某个轴的旋转以表示姿态。用ROT变量表示旋转变量时带有两个参数,一个代表旋转轴的简单矢量,另一个表示旋转角度。
(4)坐标系(frame)——用来建立坐标系,变量的值表示物体固连坐标系与空间作业的参考坐标系之间的相对位置与姿态。
(5)变换(trans)——用来进行坐标变换,具有旋转和向量两个参数,执行时先旋转再平移。
四、AL语言的语句介绍
1.MOVE语句
用来描述机器人手爪的运动,如手爪从一个位置运动到另一个位置。MOVE语句的格式为
MOVE<HAND>TO<目的地>
2.手爪控制语句
OPEN:手爪打开语句。
CLOSE:手爪闭合语句。
语句的格式为
OPEN<HAND>TO<SVAL>
CLOSE<HAND>TO<SVAL>
其中SVAL为开度距离值,在程序中已预先指定。
3.控制语句
与PASCAL语言类似,控制语句有下面几种:
IF<条件>THEN<语句>ELSE<语句>
WHILE<条件>DO<语句>
CASE<语句>
DO<语句>UNTIL<条件>
FOR…STEP…UNTIL…
4.AFFIX和UNFIX语句
在装配过程中经常出现将一个物体粘到另一个物体上或一个物体从另一个物体上剥离的 *** 作。语句AFFIX为两物体结合的 *** 作,语句AFFIX为两物体分离的 *** 作。
例如:BEAM_BORE和BEAM分别为两个坐标系,执行语句
AFFIXBEAM_BORETOBEAM
后两个坐标系就附着在一起了,即一个坐标系的运动也将引起另一个坐标系的同样运动。然后执行下面的语句
UNFIXBEAM_BOREFROMBEAM
两坐标系的附着关系被解除。
5.力觉的处理
在MOVE语句中使用条件监控子语句可实现使用传感器信息来完成一定的动作。
监控子语句如:
ON<条件>DO<动作>
例如:
MOVEBARMTO⊕-01INCHESONFORCE(Z)>10OUNCESDOSTOP
表示在当前位置沿Z轴向下移动01英寸,如果感觉Z轴方向的力超过10盎司,则立即命令机械手停止运动。
一般用户接触到的语言都是机器人公司自己开发的针对用户的语言平台,通俗易懂,在这一层次,每一个机器人公司都有自己语法规则和语言形式,这些都不重要,因为这层是给用户示教编程使用的。
这个语言平台之后是一种基于硬件相关的高级语言平台,如c语言、C++语言、基于IEC61131标准语言等,这些语言是机器人公司做机器人系统开发时所使用的语言平台,这一层次的语言平台可以编写翻译解释程序,针对用户示教的语言平台编写的程序进行翻译解释成该层语言所能理解的指令,该层语言平台主要进行运动学和控制方面的编程,再底层就是硬件语言,如基于Intel硬件的汇编指令等。
各家工业机器人公司的机器人编程语言都不相同,各家有各家自己的编程语言。但是,不论变化多大,其关键特性都很相似。比如Staubli 机器人的编程语言叫VAL3,风格和Basic相似;ABB的叫做RAPID,风格和C相似;还有Adept Robotics 的V+,Fanuc,KUKA,MOTOMAN都有专用的编程语言,但是大都是相似而由于机器人的发明公司Unimation公司最开始的语言就是VAL,所以这些语言结构都有所相似。
以上就是关于机器人编程一般用的何种语言全部的内容,包括:机器人编程一般用的何种语言、全球协作机器人前十名是哪些、KUKA smartpad如何启动机器手臂等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)