Festo 六轴工业机械手结构设计及控制系统二次开发.docx
Festo 六轴工业机械手结构设计及控制系统二次开发
收藏
资源目录
压缩包内文档预览:
编号:22885720
类型:共享资源
大小:2.84MB
格式:ZIP
上传时间:2019-11-03
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
30
积分
- 关 键 词:
-
Festo
六轴工业机械手结构设计及控制系统二次开发
工业
机械手
结构设计
控制系统
二次开发
- 资源描述:
-
Festo 六轴工业机械手结构设计及控制系统二次开发,Festo,六轴工业机械手结构设计及控制系统二次开发,工业,机械手,结构设计,控制系统,二次开发
- 内容简介:
-
毕业论文(设计)题目名称: Festo 六轴工业机械手结构设计 及控制系统二次开发所 在 学 院 : 专业( 班级): 学 生 姓 名 : 指 导 教 师 : 评阅人: 院 长 : Festo 六轴工业机械手结构设计及控制系统二次开发总计:毕业论文表格插图摘要工业机器人是集机械、电子、控制、计算机、传感器、人工智能等多学科先进技术于一体的现代制造业重要的自动化装备。目前,工业机器人主要承担着强干扰恶劣环境中重复性并且劳动强度极大的工作。本文通过对六轴工业机械手相关技术的学习和研究,完成六轴工业机械手的结构设计及控制系统的二次开发。首先是拟定出六轴工业机械手整体结构的设计方案并展开设计,具体是确定机械手各关节轴的轴长尺寸、利用 SolidWorks 绘制机械手的关节轴零件及其装配图。其次重点研究伺服驱动系统,具体完成 C 代码的 PID 闭环控制传递函数。最后结合实验室 Festo 六轴工业机械手,在熟悉控制程序设计及调试操作的基础上对其二次开发。具体开发内容是结合不同末端执行器完成分类搬运、弧焊轨迹模仿和执笔作画等开发任务。机器人技术属于具有前瞻性、战略性的高技术领域。机器人作为智能制造的重要体现,其技术水平直接反映工业自动化程度。开展结构设计和动作的控制系统开发, 可培养分析问题、解决问题能力和机电综合设计能力,有一定的创新性和设计实践意义。关键词:六轴机械手;结构设计;控制系统;二次开发IIABSTRACTIndustrial robots are an important automated equipment for modern manufacturing, integrating mechanical, electronic, control, computer, sensors, artificial intelligence and other multi-disciplinary advanced technologies. At present, industrial robots are mainly responsible for strong interference with harsh and repetitive tasks and labor-intensive work.In this paper, through the study and research on the relevant technology of the six-axis industrial manipulator, the structural design of the six-axis industrial manipulator and the secondary development of the control system are completed. The first is to develop a design plan for the overall structure of the six-axis industrial robot and to develop a design, specifically to determine the axial length of each joint axis of the manipulator, use SolidWorks to draw the joint axis parts of the manipulator and its assembly drawings. Secondly, we will focus on the servo drive system and complete the PID closed-loop control transfer function of the C code. Finally, in combination with the laboratory Festo six-axis industrial robot, it is secondarily developed after familiar with the control program design and debugging operations. The specific development content is the combination of different end-effectors to accomplish the tasks of classification and handling, arc welding track simulation and pen painting.Robotics is a forward-looking and strategic high-tech field. As an important embodiment of intelligent manufacturing, the robots technical level directly reflects the degree of industrial automation. The development of control systems for the development of structural designs and actions can foster analytical problems, problem solving capabilities, and comprehensive electromechanical design capabilities, with certain innovation and design practical significance.Keywords: six-axis manipulator ; structure design ; control system ; secondarily developedFesto 六轴工业机械手结构设计及控制系统二次开发目录摘要IABSTRACTII1 绪论11.1 工业机器人国内外发展现状11.2 工业机器人发展趋势21.3 课题设计的主要内容32 六轴工业机械手整体结构设计42.1 机械手的设计参数42.2 机械手的传动方案52.3 基本模型的参数化设计62.4 伺服电机和减速器的选型计算83 六轴工业机械手控制系统设计133.1 控制系统的硬件结构133.2 机械手的伺服控制系统143.3 基于 C 语言实现的闭环控制算法164 基于 Festo 六轴工业机械手的二次开发204.1 Festo 六轴工业机械手204.2 工件夹持任务开发224.3 焊枪弧焊轨迹模仿任务开发304.4 执笔作画任务开发355结论42参 考 文 献43致谢45附录:外文翻译46附录:外文原文50附录:工件夹持代码56附录:焊枪弧焊轨迹代码60附录:执笔作画代码62 - I - 1 绪论机械手在工业上应用越来越广泛,工业 4.0 的重要环节之一是确保加工前后序环节的自动化,六轴工业机械手高度自动化机器,在工业生产中能代替人做某些单调、频繁和重复的长时间作业,或是危险、恶劣环境下的作业。由于工业机器人具有一定的通用性和适应性,能适应多品种中、小批量的生产,成为柔性制造单元或柔性制造系统的组成部分。 然而,国外已经研制和生产了各种不同的标准组件,工业机器人技术远远超越我国,作为制造大国,应在工业机器人领域自力更生,创新进取。1.1 工业机器人国内外发展现状工业机器人自动化生产线成套设备已成为自动化装备的主流及未来的发展方向。各国都对工业机器人的研究和开发做大量投入,工业机器人技术得到突飞猛进。国外概况:国外的工业机器人研究概况优于我国。以智能化为主要方向,美国企 业一方面加大对新材料的研发力度,力争大幅降低机器人自重与负载比,一方面加快 发展视觉、触觉等人工智能技术,如视觉装配的控制和导航。日本产业体系配套完备, 政府大力推动应用普及和技术突破。日本工业机器人完备的配套产业体系,在控制器、传感器、减速机、伺服电机、数控系统等关键零部件方面,均具备较强的技术优势, 呈现出以工业机器人产业优势带动服务机器人产业发展的趋势。德国带动传统产业改 造升级,政府资助人机交互技术及软件开发。通过智能人机交互传感器,人类可借助物联网对下一代工业机器人进行远程管理,机器人还具备生产间隙的“网络唤醒模式”,以解决使用中的高能耗问题,促进制造业的绿色升级。国内概况:中国面临核心技术被发达国家控制等挑战,中国在机器人领域的部分技术已达到或接近国际先进水平。机器人涉及的技术较多,大体可分为器件技术、系统技术和智能技术。中国在通用零部件、信息网络等部分器件和系统技术领域与发达国家的差距在 10 年左右,而对智能化程度要求不高的焊接、搬运、清洁、码垛、包装机器人的国产化率较高。近年来,中国在人工智能方面的研发也有所突破,中国科学院和多所著名高校都培育出专门从事人工智能研究的团队,机器人学习、仿生识别、数据挖掘以及模式、语言和图像识别技术比较成熟。 45 1.2 工业机器人发展趋势随着计算机技术的不断向智能化方向发展,机器人应用领域的不断扩展和深化以及在系统(FMS、CIMS)中的群体应用,工业机器人也在不断向智能化方向发展, 以适应“敏捷制造”,满足多样化、个性化的需要,并适应多变的非结构环境作业, 向非制造领域进军。从优化设计、材料优选、加工工艺、装配技术、专用制造装备、产业化能力等多方面入手,全面提升高精密减速器、高性能机器人专用伺服电机和驱动器、高速高性能控制器、传感器、末端执行器等五大关键零部件的质量稳定性和批量生产能力,突破技术壁垒,打破长期依赖进口的局面。机械结构向模块化、可重构化发展。例如关节模块中的伺服电机、减速机、检测系统三位一体化;由关节模块、连杆模块用重组方式构造机器人整机。工业机器人控制系统向基于 PC 机的开放型控制器方向发展,便于标准化、网络化,控制器件集成度提高,控制柜日见小巧,且采用模块化结构,大大提高了系统的可控性、易操作性和可维修性。(1) 感觉功能:感觉功能方面将实现多传感器信息的融合,以检测多变的外部环境,做出判断和决策,其实质类似于人的五官和身体的综合感觉功能,包括视觉、触觉、力觉、滑觉、接近觉、压觉、听觉、味觉、臭觉、温觉等。研究包括各类传感信息的采集及融合处理、传感器与驱动器一体化技术、感觉功能继承模块等。(2) 控制智能化:由引导教向 NC,离线编程发展,进而发展到进一步应用。随着系统化、集成化生产的发展,基于 PC 的开放式控制系统将机器人控制和车间一级控制的发展方向,国外专家预测,2007 年它将占 30。(3) 移动功能的智能化:为解决长距离搬运作业、大作业对象、多作业对象及极限作业等问题,需开发自主移动系统(包括滑动、滚动、行走、爬行、跳跃、飞行等)。(4) 系统应用与集成化:支持以人为核心的生产系统,实现生产系统中机器人群体协调功能、群智能和多机通讯协议,开发能理解人的意志的“同事机器人”。国外专家预测,2020 以后有可能 IMS 要走向 MA(R)S(多智能体系统),而该系统中的“同事机器人”(Cobot)将成为操作人员不可或缺的伙伴。围绕着各种机器人与人共存的诸多课题,正在兴起一门新学科“软机器人学”。(5) 安全可靠性:由于大量不确定因素的存在,要实现智能化的安全可靠性, 机器人必须具有对各种意外情况的应变能力,及时采取预防措施和安全对策,包括硬件级、软件级、应用级和人机系统级的自诊断和自修复故障。(6) 微型化:向微型化发展,开发毫米级机器人,用于微加工、医学、宇宙和海洋开发等领域。就使用性和成本来看,毫米级最可行。(7) 多传感器信息融合与配置技术:机器人的传感器配置和融合技术在水泥生产过程控制和污水处理自动控制系统中的应用包括面向工艺过程的多传感器融合和配置技术;采用智能传感器的现场总线技术;面向工艺要求的新型传感器研制。机电一体化智能传感器:包括具有感知、自主运动、自清污(自调整、自适应)的机电一体化传感器研究;面向工艺要求的运动机构设计、实现检测和清污的自主运动;调节控制系统;机器人机构和控制技术在传感器设计中的应用。1.3 课题设计的主要内容(1) 了解工业机器人的功能和结构,并提出六轴工业机械手结构方案,为实现方案的可行化程度再进行三维实体设计。机械结构需模块化、可重构化,采用关节模块中的伺服电机、减速机、检测系统三位一体,由关节模块、连杆模块用重组方式构造工业机械手整机。(2) 了解工业机器人运动控制的原理,以用户角度对工业机器人做控制分析, 学习机器人语言,其控制系统要基于 PC 机的开放型控制器,通过嵌入式的实操手柄和电脑无线通讯的仿真上位机进行终端控制。本设计的研究重点在于控制系统的用户开发,基于实验室现有的 Festo 六轴工业机械手,完成设计任务和具体实现。2 六轴工业机械手整体结构设计工业机械手的整体结构设计内容是:基本设计参数,运动形式,整体构型,驱动系统。根据工业机械手的发展现状及趋势,对于六轴工业机械手关节轴的驱动控制系统基本都采用伺服电动机+增量编码器,可形成反馈的闭环控制系统,达到高精度轨迹运作当然还有高精密的减速器,通常采用谐波减速器。六轴工业机械手的整体构型包括腕部、小臂、大臂、腰部、臀部和基座等六个轴,大多数企业的机械手均相类似。本章主要描述工业机械手的参数化设计的方法和重要部件选型的方法。2.1 机械手的设计参数设计六轴工业机械手,首先根据工作任务确定机械手的工作空间,并规划动作, 制定各关节的节拍,分配各动作时间,初步确定各个关键的运动速度。接着确定在工作空间内的各个关节臂的运动行程和臂长等参数。然后根据任务对机械手进行粗略的受力分析确定末端的许用载荷等。本文以 FESTO 的六轴工业机械手为模板做参数设计。如机械手的侧视图和俯视图可大致给出机械手手腕中心点的工作范围,如图 2.1 所示。图 2.1六轴工业机械手工作空间示图参考 FESTO 六轴工业机械手的基本参数,拟定出机械手各关节的运动和物理特性等的基本参数,如下列表各所示。表 2.1 六轴工业机械手运动参数 运动轴 工作范围 最大速度 旋转轴 1 -165 +165 250/s 手臂轴 2 -110 +110 250/s 手臂轴 3 -90 +70 250/s 手腕轴 4 -160 +160 320/s 弯曲轴 5 -120 +120 320/s 旋转轴 6 -400 +400 420/s 表 2.2 六轴工业机械手物理特性 基座尺寸 180 * 180 mm 高度 700 mm 工作范围 580 mm 重量 25 kg 有效载荷 3 kg 2.2 机械手的传动方案选用伺服电机作为各关节的动力装置,电机本身就就被高精度的优点。但关键还是在于输入轴和输出轴之间的齿轮箱。齿轮箱本身就要有传动效率高体积小等等的要求,一般安装在工业机械手的各个关节处。根据常见的六轴工业机械手都采用谐波减速器。六轴工业机械手的齿轮箱的总体设计位置图,如图 2.2 所示。图 2.2 六轴工业机械手齿轮箱的位置注释 1)A-齿轮箱,轴 1(机座内);B-齿轮箱,轴 2;C-齿轮箱,轴 3; D-齿轮箱,轴 4;E-齿轮箱,轴 5;F-齿轮箱,轴 6;对于关节型工业机械手,越靠近起始端的的减速箱越为重要,相互比较,重要程度逐远逊次。始端轴 1 的减速箱输出 1 度的转动,与末端轴 6 的减速箱输出 1 度的转动,带来的运动行程相差得有几倍甚至几十倍。上一级电机作动力源,经减速器齿轮箱减速,将力矩放大,驱动下一级轴臂。轴臂粗大的,臂内的电机与齿轮箱放置比较灵活,齿轮箱可以设计的大小越大,则该齿轮箱的精度和传动比就可以设计得越高。对于较短的轴臂,其电机与齿轮箱紧挨着, 即电机的输出轴直接传入齿轮箱,如轴 1、2、4、6,其中 1、4、6 轴的输出都为旋转。而对于较长的关节轴臂,电机可以安装在离齿轮箱比较远的地方,选用带传动或链传动形式,如轴 3、5。从图中可以看出,越末端的电机和齿轮箱越小。2.3 基本模型的参数化设计根据六轴工业机械手的不同工作任务对其工作空间的不同要求,同一型号的工业机械手通过对各关节轴的伸缩摆动,即可达到工作范围的很大扩展。为了在设计中减轻负担,同型号的工业机械手的结构,选择参数化设计方法,以各关节的轴线在空间中的位置关系构成基础参数。通过各关节轴线相对位置的平移旋转进行调整,实现设计中工业机械手各零部件的尺寸变化,从而拟定出六轴工业机械手各个关节轴线的位置关系,如图 2.3 所示。图 2.3六轴工业机械手各关节轴坐标系根据工业机械手的基本参数则能拟定出机械手各个关节轴线的位置尺寸,那么就可以在三维建模软件上对六轴工业机械手进行整体结构建模,可利用 Solidworks 的测量功能,可得到模型的结构和质量属性等参数,如图 2.4 所示。图 2.4六轴工业机械手的整体结构2.4 伺服电机和减速器的选型计算伺服电机及减速器齿轮箱的选型尤为重要,所选型号要满足机械手正常运作的最大转速 n 和稳定工作的最大力矩 J 的需求。而电机和减速器在不同方式工作时,所选参数亦不同,当周期性工作时,力矩的参数应该采用机械手最大输出的加速力矩。减速器齿轮箱的传动比也是重要的参数。故,一般对机械手的驱动电机与关节轴的齿轮箱一起作选型。 2.4.1 选型方法 首先是转速,为实现低功耗,额定转速为重要参数,实际的转速最好不超过额定转速。如果电机正好处于额定转速的工作时,那么就是机械手关节处于最大转速的时候,其速度可由电机额定转速比上齿轮箱的传动比求得。 其次是转矩,额定转矩也是重要的参数,实际的转矩也最好不要超过额定转矩。结合机械手的结构尺寸和轨迹,受力分析,可计算出承载的最大力矩,应小于减速器齿轮箱输出的力矩,折算至电机输出端,也应小电机额定力矩。由于减速器齿轮箱的传动效率并不是 100%,因此它们所受力矩也存在些差异,它们承受的力矩关系如下式: (2.1) 式中:电机的输出力矩,N m; 减速器的输出力矩,N m; 减速器的传动比; 传动效率; 同理机械手在实际运动的过程中,其实际的加速力矩也不得超过齿轮箱的最大输出力矩,再根据齿轮箱的传动效率,可算出电机的实际加速力矩,这个加速力矩也不得超过电机的额定加速力矩。 最后是惯量匹配,电机自身惯量与负载自身惯量符合一定比例称之为惯量匹配。惯量是否符合匹配要求,通过惯量比的大小来看,一般电机转子的惯量作为分母,负载的惯量作为分子,以 表示,如下式: (2.2) 式中:电机的许用惯量比; 电机转子转动惯量, ; 负载转动惯量, 。 根据设计经验 的值应尽量小于 10 则算是匹配,假设 与 不匹配,动量传递会出现激烈的冲撞;根据下式分析。 ( ) (2.3) 式中: 电机转矩,N m; 负载转矩,N m; 电机转子转动惯量, ; 负载转动惯量, 。 角加速度; 在一个工作任务中 电机转矩和 负载转矩通常不变,而电机一旦选定确认后, 电机转子转动惯量则也为定值。故,若想 负载转动惯量变小,则 角加速度就要加大。 2.4.2 六轴工业机械手末端轴 6 的电机及减速器的选型计算 末端轴所承受的外力主要由末端执行器和工件产生,其中占主要的还是末端执行器。当末端轴带动末端执行器和工件旋转时,承受的阻力矩有负载转矩和摩擦力矩, 而摩擦力矩过小可忽略不计。在此先计算工件的转动惯量,再计算末端执行器的转动惯量。 首先计算工件的转动惯量,设工件为长 a、宽 b、高 h 的矩形体, 图 2.5 方形工件 工件绕其质心轴线旋转时,根据转动惯量公式: ( + )1 ( + ) (2.4) 1 ( + )1 可根据实际任务,可给工件一个具体尺寸:a = 0.05m,b=0.05m,h=0.05m 即正方体,工件质量 m=1kg,那么三个质心轴线的转动惯量值一样。故,公式(4)可简化为: (2.5) 6式中的 i 为任意轴向。因为工件被抓取过程中主要绕其质心 y 轴旋转,所以 X, Z 轴的转动惯量可以不计,将数据带入(5)中计算得到: 件 61 0.05 6 4.17 104 kg 接着计算末端执行器的转动惯量,由于末端执行器的结构较为复杂,不像工件为矩形体或圆柱体,具有公式计算。在此利用 Solidworks 软件的测量功能得到末端执行器的转动惯量,同理只考虑取末端执行器 y 轴的转动惯量: 具 13.93 104 kg 然后将末端执行器的转动惯量与工件转动惯量相加可得末端轴的负载惯量: 末 件 具 18.1 104 kg 假设执行的任务需要末端轴在 0.1 秒内到达的最高转速为: 7 末 3 70 则转轴在 0.1 秒内的瞬间角加速度为: 末 末 7 30.1703 随着加速度的产生,负载也会相对应产生一个惯性力矩,并与成正比: 末 末 末 18.1 104 703 0.14 N m 最后将上诉所计算的值带入电机及减速箱的选型方法的折算公式中,根据所选减速器齿轮箱的传动比返求验算,则可简完成末端轴的电机和减速器的选型。 2.4.3 六轴工业机械手轴 1、4 的电机及减速器的选型计算 轴 1 的电机及减速器输出转矩为其他各个轴再加上末端执行器及工件的转矩总和。轴 4 的电机及减速器输出转矩为轴 5、6 再加上末端执行器及工件的转矩总和。它们结构复杂,难以精确计算出转动惯量。但可直接利用三维建模软件的测量功能, 将三维模型分别拟动为对轴 1、4 产生最大的转动惯量位置,展开测量得: 轴 1 0.837 kg 轴 4 0.023 kg 假设执行的任务需要轴 1、4 在 0.1 秒内到达的最高转速为: 4 轴 1 轴 4 353 40 50 则两转轴在 0.1 秒内的瞬间角加速度为: 轴 1轴 4 轴 1 轴 4 4 30.1 5 30.1403503 随着角加速度的产生,负载也会相对应产生一个惯性力矩,并与角加速度成正比,可求出惯性力矩: 轴 1 轴 1 轴 1 0.837 轴 4 轴 4 轴 4 0.023 40 35.06 N m 350 1.21 N m 3最后将上诉所计算的值带入电机及减速箱的选型方法的折算公式中,根据所选减速器齿轮箱的传动比返求验算,则可简完成轴 1 和轴 4 的电机及减速器的选型。 2.4.4 六轴工业机械手 2、3、5 轴的电机及减速器的选型计算 首先结合工业机械手的设计参数,将机械手至于各轴关节受静态力最大的位置及姿态,如下图 2.5 所示: 图 2.6末端执行器伸直最远处图 2.7平面平衡分析计算轴 2 的输出静态转矩,将六轴机械手分成两个部分,其中轴 1、2 为固定不变的第一整体,轴 3、4、5、6 和末端执行器 7 为另一个固定的第二整体。第二整体的重心大致位于 的中点处,利用三维建模软件的测量功能,测得第二整体的质量为17.74 kg。要想机械手实现静态力矩平衡,则可算出关节的输出力矩如下: 2 4 6 754 10 17.74 9.8 65.54 N m 2计算轴 3 的输出静态转矩,将轴 1、2、3 视为固定不变的第一整体,轴 4、5、6和末端执行器 7 视为另一个固定的第二整体。第二整体的重心大致位于 的中点处, 利用三维建模软件的测量功能,测得第二整体的质量为 10.04 kg。要想机械手实现静态力矩平衡,则可算出关节的输出力矩如下: 2 4 6 484 10 10.04 9.8 23.81 N m 2计算轴 5 的输出静态转矩,将轴 1、2、3、4、5 视为固定不变的第一整体,轴 6和末端执行器 7 视为另一个固定的第二整体。第二整体的重心大致位于 的中点处, 利用三维建模软件的测量功能,测得第二整体的质量为 2.87 kg。要想机械手实现静态力矩平衡,则可算出关节的输出力矩如下: 2 6 182 10 2.87 9.8 2.56 N m 2最后将上诉所计算的值带入电机及减速箱的选型方法的折算公式中,根据所选减速器齿轮箱的传动比返求验算,则可简完成轴 2、轴 3 和轴 4 的电机及减速器的选型。 I/O3 六轴工业机械手控制系统设计本章对六轴工业机械手的通用控制系统展开设计,主要是机械手的伺服驱动系统的设计。通过理论分析,将驱动控制系统理论算法转换为具体的实用算法,根据设计框图,利用 C 语言简单易懂的特性,设计出 PID 闭环控制传递函数。 3.1 控制系统的硬件结构工业机械手控制器其核心大脑,运行着各种复杂运算算法,其内核时钟基本要上 G 级别,处理着各种输入信号的同时,也输出各种控制信号。首先是编程示教器将各程序命令传入主机中,与主机直接通讯,构成人机交互。其次主机在于控制总线上的各个模块进行通讯,各模块包括传感器、伺服驱动模块和其他 I/O 设备,它们各自都有独一无二的总线通讯地址。最后终结于伺服驱动系统对伺服电机的闭环控制,实现机械手的运作,它们共同构成了工业机械手控制系统的硬件结构,如下图 3.1 所示: I/O图 3.1 工业机械手控制系统的硬件结构 CPU 主机配备 RTOS,具有多线程、实时性和稳定性。数据存储、信息打印、信息处理显示、监控信息显示,数据二次利用等等,关键在于机械手运动学的实时计算, 规划轨迹。机械手的末端执行器的位置及姿态由多个关节的运动合成,比如末端执行器走一个直线,需要各个轴的运动配合,有的轴加速,有的轴不用动,这些都有建立数学模型和智能算法来实现。 示教器编写程序时,要用到机器人语言,其示教方式主要分为实际示教法和不实际示教法。机械手运作的示教信息大概可分为三部分:顺序信息、姿态与位置信息和作业条件及动作信息。 3.2 机械手的伺服控制系统对机械手实际运作中的末端位姿进行实时监测是很困难的。为提高控制精度,机械手的电机控制必须选择闭环的方式去控制,而常用的闭环控制为 PID。有些机械手的控制器将驱动集成在伺服电机中,控制效果好,制造成本低。还有些控制器利用电机驱动实现电流、电压和速度闭环,完成机械手位置控制,如下图 3.2 所示: 图 3.2 机械手闭环伺服控制系统 假设电机驱动与伺服电机的动力学函数为: ( ) ( ) () () (3.1) 式中: ( )电机控制电压; ()电机转角; ()干扰信号; 电机转动惯量; 有效阻尼。 3.2.1 PD 控制系统 在位置式闭环控制系统中常用 PD 控制器作为控制系统,其系统框图如下:图 3.3 PD 控制器 这时,电机的输入控制量是: ( ) ( )( ( ) ( ) (3.2) 式中: ( )目标角度值。 比例项系数。 微分项系数。 由于干扰信号 ()的存在,则闭环系统可写为: ( ) + ( )1 () (3.3) ( )式中的 1()为特征多项式: ( ) 1() ( ) (3.4) 式(3.4)为二阶系统,主要参数有 阻尼系数以及 固有频率: + 2 2 (3.5) 一般 阻尼系数的值为 1, 和 作为 PD 闭环的重要参数,调节参数使之稳定。那么 PD 系统的跟随误差为: ( ) ( ) ( ) + ( )1 () (3.6) ( )( )如果系统产生阶跃信号 ( ) 和一个固定干扰信号 ,利用终值定理得到控制环的稳态误差为: m () (3.7) 可见当 增大时,稳态误差则会变小。 3.2.2 PID 控制系统 为消除静态温差,对 PD 系统进行改良,增加积分项,即 PID 控制系统,其控制框图如下:图 3.4 PID 控制器 则闭环系统可写为: ( ) + + ( ) () (3.8) ( )( )式中 为积分项系数,那么其特征多项式: () ( ) (3.9) 利用劳斯判据来判断系统是否处于稳定状态,系统增益不为负数,并且符合下式条件: ( + ) (3.10) 3.3 基于C 语言实现的闭环控制算法对于电机而言,只有扭矩、转速和转动方向等基本参数。如果给电机的转轴加上一个指针,那么指针的方向可以是任意的,在经过一段时间的转动后电机停止,根本就不知道指针的所指的方向。从这个角度分析,将电机的转动分为大于一周以上和在一周之内。 图 3.5 单关节控制反馈框图 3.3.1 增量式 PID 控制 增量式 PID 控制对应的是增量式编码器作为转轴的状态反馈传感器。增量式编码器并不能确定转轴的位置,当转轴转动一个小角度时,编码器会反馈一个脉冲信号,当转轴转动速度越快则编码器单位时间内反馈的脉冲数越多。一般增量式编码器安装在电机的输出端,因为那里转轴基本上都运行在很多周以上,专门用于检测电机的转速。 根据增量式 PID 控制控制原理,设计实际运用算法,在此利用 C 语言程序进行PID 闭环控制传递函数的算法设计,程序如下: /定义 PID 的比例项系数 P 及参数赋值int speedP = 21; /定义 PID 的积分项系数 I 及参数赋值int speedI = 16; /定义 PID 的微分项系数 D 及参数赋值int speedD = 0; /目标速度 int My_speed = 0; /全局变量,上一次的偏差 long int ierror1; /全局变量,上上一次的偏差 long int ierror2; /全局变量,上一次的速度控制量 long int oldspeedPWM; /增量式 PID 闭环控制系统的传递函数long int speedPID(int speed) /定义计算的中间变量 long int ierror,P,I,D, speedPWM; /计算当前偏差ierror=My_speed-speed; /计算积分项I=speedI*ierror; /计算比例项P=speedP*(ierror-ierror1); /计算微分销 D=speedD*(ierror-ierror1-ierror1+ierror2); /上次偏差存为上上次偏差 ierror2=ierror1; /当前偏差存为上次偏差 ierror1=ierror; /计算出当前速度控制量 speedPWM=oldspeedPWM+P+I+D; /当前控制量存为上次控制量 oldspeedPWM=speedPWM; /对当前速度控制量限幅 if(speedPWM7500) speedPWM=7500; if(speedPWMyoujixian_servo) newplace=youjixian_servo; if(newplacezuojixian_servo) newplace=zuojixian_servo; /返回位置控制量 return newplace; 参数调节原理同增量式 PID 一样。 4 基于 Festo 六轴工业机械手的二次开发利用控制柜 IRC5 和机械手留有的用户接口,在示教器上编写用户代码,就是对机械手控制系统的二次开发。接口的使用根据不同设计任务选用,配套的编写对应开发程序。 末端执行器的机械接口尤为重要,而我们通常说的工业机械手其实是不包含末端执行器的,六轴工业机械手的六个轴是其机械结构的最基本形式,而这个机械结构在随着机械手的不断发展,各家的设计基本都大同小异,机械手的基础参数性能逐渐模块化,全球化。 对机械手进行开发就是安装在手腕上的不同末端执行器。目前所出现的末端执行器可谓是五花八门,千型百态。工业机械手除了提供安装接口外,还提供了电子接口和液气压源接口,目的就是供给需要电气控制的末端执行器。 根据工业任务的不同,同一型号的机械手可能换接着不同末端执行器。接下来本章将对六轴工业机械手使用到不同的末端执行器做不同的任务做简单的开发。 4.1 Festo 六轴工业机械手根据设备条件,以 Festo 六轴工业机械手的控制系统为平台开发。其控制系统硬件主要由 IRC5 控制器、一个六轴工业机械手和手持示教器 Flex Pendent 三部分组成。如下图 4.1 所示: 图 4.1 六轴工业机械手系统图 手持示教器 Flex Penden 是集离线编程、监控、手动操纵、参数配置等于一身。是整个六轴工业机械手系统软件运行的平台,可用其进行编程调试。大部分的操作均由手持示教器的点触屏幕上实现的,手持示教器上留有常用的快捷按键开关,其中有4 个按键供任务开发。如下图 4.2 所示: 图 4.2 手持示教器 图中:1-连接器;2-点触屏;3-紧急停止按钮;4-控制遥感;5-USB 端口;6-三位使动装置;7-触摸笔;8-重置按钮;A-D-预设按键;E-机械单元;F-运动模式 1, 重定向或线性;G-运动模式 2,轴 1-3 或轴 4-6;H-增量模式;J-上一步按钮。按下此按钮,可使程序后退至上一条指令;K-运行按钮,开始执行程序;L-下一步按钮, 按下此按钮,可使程序前进至下一条指令;M-停止按钮,停止程序执行。 控制器 IRC5 分驱动模块和控制模块,两者装在一个柜中。驱动模块包括机械手伺服电机供电的全部电子设备,最多附有 9 个单元驱动。除了能处理六个电机外,还可以再附加三个电机。控制模块执行操作机械手所需的全部软件,即 Robot Ware 操作系统。控制柜上外引出许多通讯接口和控制端子供开发者使用,如下图 4.3 所示: 图 4.3 控制柜 IRC5 部分接口图 六轴机械手作为控制对象,实体内包含六个伺服电机,同时也带有六个编码器、阻尼开关和类似陀螺仪的角度姿态传感器等等传感器。为满足控制要求,机械手都引出它们的接口,与控制柜的接口通过电缆相连,实现机器人的基本运作。为了使机器人的末端执行器种类增加,机械手还留有供末端执行使用的若干电气接口,其中包含10 路电信号接入接出引脚和 4 路气压管接入接出口。如图 4.4 所示: 图 4.4 机械手部分接口图 注释 1)A-10 路电信号接口;B-4 路气压管接口; C-机械手内传感器读写接口;D-伺服电机及编码器接口。 4.2 工件夹持任务开发任务:六轴工业机械手夹取 A 位置高度不同的黑色或白色端盖,并按颜色分类, 白色夹至 B 位置,黑色夹至 C 位置。使用的末端执行如下图 4.5 所示: 图 4.5 末端工件夹具 控制分析:首先判断 A 位置是否有端盖,安装光电对管判断,当有端盖时,传感器反馈高电平接入 I/O 引脚,则读取值为 1,反之,读取值为 0;夹取动作由一 I/O 口引脚的输出功能控制电磁阀,再由电磁阀控制末端执行器气缸夹具。不同高度的端盖需要利用测距传感器,将距离转化为电压模拟量,经 AD 采集判断机械手每次下降的高度,实现灵活改变。端盖的黑白,由安装在夹具上的光电传感器的判断,当端盖为白色时,传感器反馈高电平接入 I/O 引脚,则读取值为 1,反之,读取值为 0; 4.2.1 夹具的气路驱动控制设计及气压计算 此任务所用的末端执行器是以气缸为执行元件的工件夹具,通过此夹具可实现工件的位移和旋转,同时夹具上还要安装一些光电管和红外传感器可作为测距和判断黑白颜色等。那么就需要用到机械手的用户接口,在此选用两路气压管接口和四路信号接口。以气缸为动力原件的夹具,驱动原理很简单,气路简图如下所示: 图 4.6 末端执行器气路驱动简图 利用两个反向的气缸,推杆上固定着夹子的半边,当两气缸推杆同时伸出时,夹子即打开。当两气缸推杆同时缩回时,夹子即关闭。这两种状态的切换,是通过改变气缸通气口内气体的流向,电磁阀的右位工作和左位工作,分别对应夹具的两种状态。 图 4.7 工件受力分析图 计算气压源压强的最小值 P_min,拟定气缸内推杆的受力横截面积为 A = 10mm * 10mm 的正方形,要夹持的方块质量为 m = 1 kg。可查方块表面摩擦系数 f = 0.15。如右图受力分析得到方程组如下式: 2 夹 夹 简化计算,可得气压源压强的最小值为: 2 1 9.82 0.15 1 104 0.327 通常在实验室里的气泵基本额定输出 7 MPa 的压强。 4.2.2 控制柜 IRC5 选择外设及其接口 控制柜 IRC5 仅提供通信接口和对工业机械手的控制接口,对于任务中外加的传感器并没有留出接口。在实际生产制造中,往往给控制器增加外设,如单片机,PLC 和 PC 端电脑等。尤其是遇到信息量特别大的传感器是,外设的处理速度采要求极高, 这样不仅减轻了控制器的负担,而且更有利于系统的开发设计。 图 4.8 外设的开发思路 本次采用 DSQC651 标准 I/O 开发板最为控制器 IRC5 的外设 I/O 单元,DSQC651 微处理器内有一个 DeviceNet 网络总线通讯模块,控制柜与 DSQC651 微处理器之间利用 DeviceNet 网络总线进行通信,将用到的传感器接在 DSQC651 开发板上,通过DSQC651 处理传感器信号,实现复杂算法,将计算的结果,通过 DeviceNet 网络总线发送到 IRC5 控制柜,比如发送的信息直接是机械手下一步要移动至的坐标信息。开发板和传感器所需要用到的电源由控制柜提供,并且开发板留有固定装置,可固定在控制柜 IRC5 的附近。其中 DSQC651 标准 I/O 开发板的端口使用参数如下: 图 4.9 外接 651 标准 I/O 开发板 图中:A-数字输出信号指示灯;B- X1 数字输出接口;C- X6 数字输出接口;D- X5 是 DeviceNet 接口;E- X3 数字输入接口;F-模块状态指示灯;G-数字输入信号指示灯。 表 4.1 板上普通端子引脚信息参数 X1 端子编号 使用定义 地址分配 X3 端子编号 使用定义 地址分配 1 OUTPUT_CH1 32 1 INPUT_CH1 0 2 OUTPUT_CH2 33 2 INPUT_CH2 1 3 OUTPUT_CH3 34 3 INPUT_CH3 2 4 OUTPUT_CH4 35 4 INPUT_CH4 3 5 OUTPUT_CH5 36 5 INPUT_CH5 4 6 OUTPUT_CH6 37 6 INPUT_CH6 5 7 OUTPUT_CH7 38 7 INPUT_CH7 6 8 OUTPUT_CH8 39 8 INPUT_CH8 7 9 0V 9 0V 10 24V 10 未使用 表 4.2 板上特殊端子引脚引脚信息参数 X5 端子编号 使用定义 X6 端子编号 使用定义 地址分配 1 0V BLACK 1 24V 2 CAN 信号线 low BLUE 2 模拟输入 ADC1 6-10 3 屏蔽线 3 模拟输入 ADC2 11-15 4 CAN 信号线 high WHITE 4 0V 5 24V RED 5 模拟输出 DAC1 0-5 6 GND 地址选择公共端 6 模拟输出 DAC2 16-31 7 模块 ID bit 0 (LSB) 8 模块 ID bit 1 (LSB) 9 模块 ID bit 2 (LSB) 10 模块 ID bit 3 (LSB) 11 模块 ID bit 4 (LSB) 12 模块 ID bit 5 (LSB) 为了使控制柜能与更多的类似 DSQC651 标准 I/O 开发板这样的外设模块,那么对多个外设模块分别设置不同的网络地址。可以看出 DSQC651 的网络地址就是 X5 端口寄存器的值,该值除了通过程序设置写入之外,还可以通过 DSQC651 的端子 X5 硬件强行改值。 其中 X5 端子的 7-12 引脚就是用来设置模块可选性通讯地址的,地址范围为 0-63。X5 端子的引脚默认为上拉,即逻辑值为 1,当被下拉有效。如使用硬件法设置地址, 则将 X5 端子的第 8 和第 10 的引脚拉低使能,对应值分别为 2 和 8,那么可设置该标准板的地址为 2 + 8 = 10。根据此次开发任务,对 DSQC651 标准 I/O 开发板的管脚进行拟定分配: 图 4.10 DSQC651 引脚分配 根据任务分析及设备条件得到任务控制流程图如下: 4.2.3 机械手控制系统的程序设计及调试 确定要用到的数据类型和数据个数。通过控制流程图可知基本数据有:I/O 口输入数据地址变量,I/O 口输出数据地址变量,8 位精度 ADC 数据输入变量等和其他工程所需的 robtarget 坐标数据、bool 一位判断数据和 num 常数数据。 首先是确定的 A、B、C 位置,定义三位置的坐标数据,并由 P10、P20 和 P30 做全局变量。示教器对机械手的位置数据获取可通过手持示教器上的遥感来移位,可以实时修改 P10、P20、P30 的坐标数据。变量定义如下: CONST robtarget P10 := CONST robtarget P20 := CONST robtarget P30 := 接着对标志位定义,使用 bool 一位判断数据类型,即不是 0 就是 1。在程序流程图中,通常在进行判断时,则需要状态标志位的置 0 或 1 来为程序的下一步或者下下步作标志。根据任务,设两个标志位 workpiece_flag 和 colour_flag: VAR bool workpiece_flag ; VAR bool colour_flag ; 然后对地址变量定义,使用示教器的 DeviceNet 网络总线模块,设置将要通讯的外设地址。创建变量指针,指向外设内部地址。根据本次设计,定义地址变量 ADC1、GPI1、GPI2 和 GPO1,分别对应 DSQC651 标准 I/O 开发板上与其相连接的引脚地址。在示教器的 DeviceNet 网络总线模块的定义不用手敲,只需在对应表格中填写设定内容即可,非常简单,填写内容如下所示: 表 4.3 选用 DSQC651 外设配置 参数名称 设定值 说明 Name 651 设定 I/O 板在系统中的名字 Type of Unit DSQC 设定 I/O 板的类型 Connected to Bus DeviceNet1 设定 I/O 板连接的总线 DeviceNet Adress 10 设定 I/O 板在总线总线中的地址 表 4.4 定义引脚输入地址 GPI1 参数名称 设定值 说明 Name GPI1 设定数字输入地址的名字 Type of Signal Digital Input 设定地址的类型 Assigned to Unit 651 设定地址所在的 I/O 模块 Unit Mapping 0 设定在模块中地址 表 4.5 定义引脚输入地址 GPI2 参数名称 设定值 说明 Name GPI2 设定数字输入地址的名字 Type of Signal Digital Input 设定地址的类型 Assigned to Unit 651 设定地址所在的 I/O 模块 Unit Mapping 1 设定在模块中地址 表 4.6 定义引脚输出地址 GPO1 参数名称 设定值 说明 Name GPO1 设定数字输出地址的名字 Type of Signal Digital Output 设定地址的类型 Assigned to Unit 651 设定地址所在的 I/O 模块 Unit Mapping 0 设定在模块中地址 表 4.7 定义模拟量输入地址 ADC1 参数名称 设定值 说明 Name ADC1 设定模拟输入地址的名字 Type of Signal Analog Input 设定地址的类型 Assigned to Unit 651 设定地址所在的 I/O 模块 Unit Mapping 6-10 设定在模块中地址 Maximum Bit Value 255 设定最大范围值 最后定义将 ADC 值通过换算公式得到距离值要用到的若干 num 常数数据变量distance 和其他中间变量。换算公式根据实际运用的红外测距模块的模拟输出与距离的正相关关系再确定,可在 DSQC651 微处理器中计算,但也可以再控制柜 IRC5 中计算,由于计算简单,在此选择在控制器 IRC5 中计算。定义程序如下: VAR num distance ; 设计所需常用指令。对于工业机械手的控制是类似于数控加工中心的程序控制, 都是与坐标息息相关,运动形式也差不多,包括直线运动和圆弧运动。因此,就 Festo 六轴工业机械手的控制程序而言,整个程序主要语句指令为:MOVL、MOVJ 和 MOVC, 即直线插补指令,关节匀速到位指令和圆弧插补指令。其指令具体用法: MOVL 目标点,运动速度,圆角半径,参考坐标系; MOVJ 目标点,运动速度,圆角半径,参考坐标系; MOVC 圆弧中点,圆弧终点,运动速度,圆角半径,参考坐标系; 设计用到特殊指令。根据流程图需要使用指令将输出 I/O 引脚置 1 和清零来控制电磁阀,还需要指令将输入 I/O 引脚的电平读取和将 DSQC651 转化的 AD 值读取。所需的部分指令具体用法: SetDO 输出引脚地址变量,0 或者 1; ClearDO 输出引脚地址变量,0 或者 1; GetDI 输入引脚地址变量; GetADC 输入 ADC 地址变量; 设计用到常用程序结构。顺序结构、选择结构和循环结构是结构化程序设计的三个基本类型:。其中本次程序用到的选择结构为 IF 语句,用到的循环结构为 while 循环。指令具体用法: IF 条件或表达式 THEN (用户程序); ENDIF WHILE 条件或表达式 THEN (用户程序); ENDWHILE 本开发任务的具体程序设计见本文附件所示,可以将程序在仿真软件中敲写调试,并在仿真软件上进行任务仿真,这样可以看到程序的效果。也可以通过示教器编写及调试,首先是手动单步运行,确保每一步的正确性,然后在手动全不运行,最后设置控制器为自动状态使之自动运作程序。 图 4.11 程序执行效果实现 4.3 焊枪弧焊轨迹模仿任务开发任务:将工业机械手的末端执行器改为焊枪,以放在 A 位置的圆形杯口的弧焊轨迹及焊枪姿态进行模仿。 在实际工作中,焊接机械手通常对一些板材的拼装做焊接,其中焊接轨迹复杂, 周期内轨迹固定精确,并且焊枪并不是垂直于焊接面而是有一定的斜度。根据实验室现有条件,没有焊枪作为末端执行器,因此为模仿弧焊轨迹,在夹持任务的基础上, 可将一只笔视为焊枪,同样可以作为六轴工业机械手的开发,如下图所示: 图 4.12 末端弧焊焊枪 控制分析:首先判断 A 位置是否有待焊圆杯,由光电对管判断,当有圆杯时,传感器反馈高电平接入 I/O 引脚,则读取值为 1,反之,读取值为 0;接着将焊枪尖移至弧焊线,绕杯口一周,并且过程中,保持焊枪时刻与弧焊线呈 45角的姿态;最后移至初始位置。 4.3.1 工具坐标系的设定 首先末端执行器是安装在机械手末端手腕上的,所有的末端执行器要有用 TCP 点定义,即末端执行器的中心。末端执行器的中心 TCP 点是工具坐标系的原点,此原点可以是实实在在真实的点,也可以是虚无缥缈的假象点。末端执行器如果为夹子, 夹子有张有合,而 TCP 点为其两片夹块中间。如果为焊枪或者画笔,那么 TCP 点就是枪尖或者笔尖等等。 根据机械手的运动形式,通过示教器对机械手进行操作时,能使 TCP 点做平移和绕自身旋转。TCP 点做平移时,六轴工业机械手的各个环节都在配合其运作,整个末端执行器看起来纹丝不动。TCP 点做自身旋转时,仅仅其一个在空中坐标不动,各个轴都在配合其运作,实现末端执行器的位姿变化,整个机械手就像被 TCP 点牵着鼻子走。其中平移通常称为 TCP 点的移动,自身旋转通常称为静止。 图 4.13 手腕处 TCP 点姿态。 本次任务用工具数据表示安装在机械手手腕上的焊枪。编程之前,先将原默认的TCP 点偏移至焊枪的枪尖,没安装末端执行器之前,默认的 TCP 点通常在第六轴的手腕法兰盘的盘心处。 编程时,程序中所有表示速度与位置的指令或者数值,都是枪尖 TCP 点在工件坐标中运动的状态。机械手默认的工具坐标系为 Tool0,一般新建的工具坐标系为 Tool1,编写程序时注意即可。 图 4.14 不同工具的 TCP 点 将 TCP 点移至枪尖处,那么确定 TCP 点有四种方法:4 点法、5 点法和 6 点法, 区别如下: 表 4.8 TCP 取点方法比较 方法 区别 4 点法 不改变 Tool0 的坐标方向 5 点法 改变 Tool0 的 Z 坐标方向 6 点法 改变 Tool0 的 X 和 Z 坐标方向(在焊接应用最常用) 图 4.15 四点法找 TCP 点 此次任务选择 6 点法,即处理四个点之外,还要设定 TCP 点的 X 和 Z 轴方向。 4.3.2 控制柜 IRC5 选择外设及其接口 此次开发任务所用光电管传感器,与夹持工件任务同理,使用外设 DSQC651 标准 I/O 开发板与传感器连接,再与控制柜 IRC5 通过 DeviceNet 网络总线通讯,将传感器信号送至控制器中。传感器接入 DSQC651 标准 I/O 开发板的电路图和 DSQC651 设置DeviceNet 网络总线地址的电路图同图 12 DSQC651 引脚分配电路图一致。即,光电管的输出信号接入 DSQC651 的 INPUT_CH1 端子引脚,DSQC651 设置 DeviceNet 网络总线地址仍然为 2 + 8 = 10。 根据任务分析及设备条件得到任务控制流程图如下: 4.3.3 机械手控制系统的程序设计及调试 确定要用到的数据类型和数据个数。通过控制流程图可知基本数据有:I/O 口输入数据地址变量, robtarget 坐标数据、bool 一位判断数据。 首先是确定的 A 位置坐标数据,并由 P10 做全局变量。示教器对机械手的位置数据获取可通过手持示教器上的遥感来移位,可以实时修改 P10。变量定义如下: CONST robtarget P10 := 接着对标志位定义,使用 bool 一位判断数据类型,即不是 0 就是 1。根据任务, 设标志位 workpiece_flag: VAR bool workpiece_flag ; 然后对地址变量定义,使用示教器的 DeviceNet 网络总线模块,设置将要通讯的外设地址。创建变量指针,指向外设内部地址。根据本次设计,定义地址变量 GPIO_INPUT对应 DSQC651 标准 I/O 开发板上与其相连接的引脚地址。则在示教器的 DeviceNet 网络总线模块的定义填写内容如下所示: 表 4.9 定义引脚输入地址 GPIO_INPU 参数名称 设定值 说明 Name GPIO_INPU 设定数字输入地址的名字 Type of Signal Digital Input 设定地址的类型 Assigned to Unit 651 设定地址所在的 I/O 模块 Unit Mapping 0 设定在模块中地址 设计所需的常用指令与特殊指令与夹持任务相同,在此不作选择叙述。本开发任务的具体程序设计见本文附件所示,可以将程序在仿真软件中敲写调试,并在仿真软件上进行任务仿真,验证程序的执行效果。也可以通过示教器编写及调试,首先是手动单步运行,确保每一步的正确性,然后在手动全不运行,最后设置控制器为自动状态使之自动运作程序。 图 4.16 程序执行效果实现 4.4 执笔作画任务开发任务:将工业机械手的末端执行器改为弹性圆珠笔,并在 A4 白纸上简单画一幅素描画,其中 A4 纸所在桌板可以是水平放置也可以是倾斜放置,并且 A4 纸在桌板上也是任意铺放,没有固定位置。 对于书写和作画而言,重点在于笔尖的轨迹。在前两个开发任务的基础上,使用夹持夹具将圆珠笔夹住,将机械手的工具坐标原心 TCP 点移至到笔尖。夹持控制与TCP 点的确定不做重复叙述。那么末端执行器如下所示: 图 4.17 末端弹性圆珠笔 控制任务分析:该开发任务纯属笔尖的运动即 TCP 点的运动,与开发弧焊轨迹模仿任务相类。但难点是 A4 纸的位置是变化的,必须引入工件坐标系,将 A4 纸当成一个非常薄的工件,在每一次画画时确定 A4 纸所在的平面及 A4 纸的铺放姿态。还有重点是所要画出的图画上的轨迹获取,通过描点法,将线条分段,分的越细那么画出的相似程度越高。 4.4.1 A4 纸工件坐标系 WobjData 的设定 对机械手进行编程时,如果机械手的运动轨迹和姿态是在工件坐标系的框架下完成的,那么就会带来便利之处,即运动轨迹及姿态模块化。若任务重需要机械手的重复运作,那么就将要重复的动作打包在一个工件坐标系中,重新定位一下工件坐标系即可。 图 4.18 工作站桌面的工件坐标 图中 A 是机械手的大地坐标,首先任意取一个 B 工件至于工作台上,对 B 工件创建其工件坐标系,那么接下来的一切轨迹规划和位置姿态都是在 B 工件坐标系的基础上展开编程的,它们只跟工件坐标系有关。当再取一个一模一样的 C 工件至于工作台上时,它的位置与 B 工件完全不同但需要机器人的相对位置一样。这时只需将工件坐标系更新至 C 工件,那么就不用重新编程。 图 4.19 创建工件坐标系 在对象的平面上,只需定义三个点,机械手的控制系统会自动排除偏差,计算建立一个工件坐标,其中工件坐标系符合右手定则,创建步骤如下: 表 4.10 工件坐标系创建步骤 步骤 说明 (1)TCP 点移至 X1 点,示教器记录 X1 点确定工件坐标系的原点 (2)TCP 点移至 X2 点,示教器记录 X1-X2 确定工件坐标系的X 正方向 (3)TCP 点移至 Y1 点,示教器记录 Y1 确定工件坐标系的 Y 正方向 此次执笔作画的难点就在于 A4 纸的坐标变动,将 A4 纸视为极薄的工件,每次作画时只需对其创建工件坐标系更新即可。 4.4.2 获取图片线条坐标 图片线条坐标的获取方法主要有包括网格描点记录法和图片处理软件生成法。其中网格描点记录法通常用于简单的图形线条,依赖于人的视觉去寻找描点记录。而图片处理软件生成法则是主流,软件可利用人工智能的算法对图片处理,比如图片滤波、灰度二值化、边沿检测等等,高效并且快速。 网格描点记录法:首先将简单的图片打印在一张网格纸上,网格的密度可任意设定,网格密度越大那么能获取的坐标就会越多,精度就越高。其次沿着图画的落笔点开始,记录线条在网格中的坐标。最后将坐标存入控制器中。 图 4.20 网格描点记录 处理图片生成线条坐标的软件有很多,都是集成有图像处理集成库的软件。随着人工智能的不断发展,图像处理集成库越来越智能化,常用的处理图像库有:计算机视觉库 OpenCV、图像处理类库 Clmg,2D 图形库 AGG. 等等很多。如 MATLAB 集成了其自身的图形处理库,可以使用 MATLAB 作为处理软件,对图画进行线条坐标提取。 图 4.21 利用 MATLAB 对图片进行边沿检测 提取的后的坐标被保存在一个数组中,其存储顺序可由智能算法算出。最后将坐标送入控制器中。以下是在 MATALAB 中对图像处理边沿检测的代码: Tupian = imread(小猪佩奇.bmp); b1 = Tupian (:,:,1); h58 = fspecial(gaussian,5,0.8); a1 = imfilter(b1,h58); bw1 = edge(a1,canny);%canny 算子figure;imshow(bw1);imwrite(bw1,边沿检测.bmp); 由于此次开发任务所画的图过于简单,故采用网格描点记录法。将坐标送入控制器时,可利用 PC 端与控制器通过以太网相连接通讯传送,也可以通过示教器将坐标一个个键入,只不过废些时间。 4.4.3 控制柜 IRC5 选择外设及其接口 此次开发任务用到光电管传感器判断 A4 纸是否铺设,与夹持工件任务同理,使用外设 DSQC651 标准 I/O 开发板与传感器连接,再与控制柜 IRC5 通过 DeviceNet 网络总线通讯,将传感器信号送至控制器中。传感器接入 DSQC651 标准 I/O 开发板的电路图和 DSQC651 设置 DeviceNet 网络总线地址的电路图同图 12 DSQC651 引脚分配电路图一致。即,光电管的输出信号接入 DSQC651 的 INPUT_CH1 端子引脚,DSQC651 设置 DeviceNet 网络总线地址仍然为 2 + 8 = 10。 根据任务分析及设备条件得到任务控制流程图如下: 4.4.4 机械手控制系统的程序设计及调试 确定要用到的数据类型和数据个数。通过控制流程图可知基本数据有:I/O 口输入数据地址变量, robtarget 坐标数据、bool 一位判断数据。 首先是图画线条的坐标数据,并由 P10、P20、P30、做全局变量。 其定义如下: CONST robtarget P10 := CONST robtarget P20 := CONST robtarget P30 := 接着对标志位定义,使用 bool 一位判断数据类型,即不是 0 就是 1。根据任务, 设标志位 A4_flag: VAR bool A4_flag ; 然后对地址变量定义,使用示教器的 DeviceNet 网络总线模块,设置将要通讯的外设地址。创建变量指针,指向外设内部地址。根据本次设计,定义地址变量GPIO_INPUT 对应 DSQC651 标准 I/O 开发板上与其相连接的引脚地址。 设计所需的常用指令与特殊指令与夹持任务相同,在此不作选择叙述。本开发任务的具体程序设计见本文附件所示,可以将程序在仿真软件中敲写调试,并在仿真软件上进行任务仿真,验证程序的执行效果。也可以通过示教器编写及调试,首先是手动单步运行,确保每一步的正确性,然后在手动全不运行,最后设置控制器为自动状态使之自动运作程序。 图 4.22 机械手实现执笔作图 5 结论本文在对六轴工业机械手相关技术研究,包括了机械手软硬件技术。其中重点对机械手的软件技术深入学习,基本完成了六轴工业机械手整体结构设计,基于实验室Festo 六轴工业机械手设备,熟悉其控制系统应用,逐渐到控制系统的二次开发。本文设计的内容如下:(1) 根据机械手结构设计流程,结合拟定功能,初步确定机械手的整体结构设计路线,具体是先确定各个关节轴的长度和粗细,然后利用 SolidWorks 绘制出机械手的零件图和装配图,最后计算各轴关节的力矩大小。(2) 了解了工业机械手的控制原理、控制方法和控制器硬件结构的组成。其中重点研究了伺服驱动系统的 PID 数学控制模型,完成了 C 代码的 PID 闭环控制系统传递函数的设计。(3) 基于实验室 Festo 六轴工业机械手的实际学习及应用,熟悉其软硬件条件,完成了程序的编写和调试仿真,通过示教器展开实际操作。最后结合三种不同的各末端执行器完成开发设计任务,具体是安装末端夹具完成工件分类搬运,安装末端焊枪完成弧焊轨迹模仿和安装弹性笔完成执笔作画。参 考 文 献1 熊立贵,曾福全.六自由度工业机械手的开发与研究J.煤矿机械, 2016(2):99-103. 2 王田苗,陶永.我国工业机器人技术现状与产业化发展战略J.机械工程学报,2014(5):1-13. 3任志刚.工业机器人的发展现状与发展趋势J.装备制造技术,2015(3):166-169. 4 计时鸣,黄希欢.工业机器人技术的发展与应用综述J.机电工程,2015(1):2-4. 5 骆敏舟,方健,赵江海.工业机器人的技术发展及其应用J.机械制造与自动化,2015(2):1-4. 6张坤,崔永祥.我国工业机器人发展状况及未来发展战略J.河南科技,2014(8):129-130 7吴应东.六自由度工业机器人结构设计与运动仿真J.现代电子技术,2014(1):74-76. 8黄晨华,毛桂生.上下料工业机器人结构设计及仿真研究J.机造,2013(3):161-164. 9高美原,秦现生,白晶等.基于 ROS 和 LinuxCNC 的工业机器人控制系统开发J.机械制造, 2015(10):21-24. 10 熊隽.IRB1410 型机床上下料机器人设计D.西南交通大学硕士学位论文,2016(10). 11 施文龙.六轴工业机器人控制系统的研究与实现D.武汉科技大学硕士学位论文,2015(5). 12郭小羽. 六轴机器人控制器底层软件设计及其算法仿真研究D.深圳大学硕士学位论文, 2017(5). 13高帅. 工业机器人三维仿真及其运动控制研究D.南京理工大学硕士学位文,2015(3). 14扶宇阳. 6R 工业机器人结构设计及运动轨迹规划仿真研究D.五邑大学硕士学位论文, 2013(6). 15 王占军. 工业码垛机器人机械结构与控制系统的研究D.山东理工大学硕士学位论文, 2015(4). 16 周科. 六轴工业机器人设计与轨迹规划方法研究D.哈尔滨工业大学硕士学位论文, 2013(12). 17 Marko vaco, Bojan ekoranja, Bojan Jerbi. Industrial Robotic System with Adaptive ControlJ. Procedia Computer Science, Volume 12, 2012, Pages 164-169. 18 PAN Z,POLDEN J,LARKIN N,et al. Recent progress on programming methods for industrial robotsJ.Robotics and Computer-IntegratedManufacturing,2012,28(2):87-94. 19 Ali Marwan, Milan Simic, Fadi Imad. Calibration method for articulated industrial robotsJ. Procedia Computer Science, Volume 112, 2017, Pages 1601-1610. 20 Richard Meyes, Hasan Tercan, Simon Roggendorf, Thomas Thiele, Tobias Meisen. Motion Planning for Industrial Robots using Reinforcement LearningJ.Procedia CIRP, Volume 63, 2017, Pages 107-112. 21 Torgny B,Present and future robot control developmentAn in-dustrial perspectiveJ.Annual Reviews in Control 2007(31):69-79 22 Berend Denkena, Benjamin Bergmann, Thomas Lepper. Design and optimization of a machining robotJ. Procedia Manufacturing, Volume 14, 2017, Pages 89-96. 23 Vladimr Tlach, Ivan Kuric, Darina Kumikov, Alexander Rengevi. Possibilities of a Robotic End of Arm Tooling Control within the Software Platform ROSJ. Procedia Engineering, Volume 192, 2017, Pages 875-880. 24 Pan Z,Polden J,Larkin N,et al.Recent progress on programming methods for industrial robotsJ.Robotics and Computer-Integrated Manufacturing,2012,28(2):87-94. 致谢大学四年了,忙碌又充实,在毕业来临之际,感谢所有帮助过我的人,是他们在我遇到困难时伸出援助之手,陪伴我走过了四年的美好岁月。 首先,在此最要感谢的贾卫平老师,不仅传授了我很多知识而且对我的学习也给予了很大的帮助。尤其是在本次毕业设计上,因为是基于实验室的机器人设备做的二次开发,刚开始时我对课题的设计一直处于迷茫状态,对工业机器人领域及相关技术也一直处于懵懂。但在贾老师的悉心关怀下,我渐渐的懂了很多,不仅对工业机器人产生了兴趣,而且还会熟练的操作机械手,甚至还教学弟简单操作,并且贾老师也参与其中,我感到很开心。师傅领进门,修行在个人,感谢老师的教导之恩! 其次,我要感谢同在一个实验室搞毕设的同班同学张祥。平时我们都会一同去往实验搞毕设,一去就是几个小时,相互学习相互帮助,结识着深厚的友谊。如果没有他的陪伴,相信自己的课题设计很难有所进展。 最后,感谢各位评委老师,在帮忙之中抽出时间审阅本文和出席论文答辩,祝你们身体健康、工作顺利!同时祝愿大连大学的未来更加辉煌。 附录:外文翻译工业机器人自适应控制系统Marko vacoa*, Bojan ekoranjaa, Bojan Jerbi a摘要:本文提出了一种自适应多智能体机器人装配系统。该系统采用了先进的工业设备, 在高度非自动化的环境中执行各种装配任务,无需中央控制。本文重点在于解决特定问题的开发方法。人机交互是一种正在开发中的应用,通过机器人上的复杂传感器,使机器人装配系统能与人类操作员紧密协作。其中活跃的语音命令和提示对人机交互有了很大帮助。另一个是与未知物体的装配问题,机器人能在简单的情况下自主解决。介绍了实际装配应用以及正在开发的应用,视觉系统,F/T 传感器和其他感应设备促进了非自动化环境中的操作。关键词:多智能体系统机器人装配人机交互1 介绍为了应对目前市场需求动态变化的趋势,缩短产品生命周期和大量产品变更,需要在系统设计中采用新方法。从汽车到电子工业,装配技术可以作为几乎所有工业应用的关键因素之一。目前已经有了装配技术的不断发展。工业机器人,视觉系统,搬运和测量装置等新型精密工具和机器已经开发出来1,2。装配技术的系统复杂程度是无疑是在增加。功能被添加到过去从未存在过的产品中。技术发展需要新颖的系统控制方法的相关发展。如今,在工业应用中利用的系统控制原理从简单的集中式单一目的系统到分布式灵活和自适应系统。本文提出了一种多代理机器人装配系统,它具有适应性行为的嵌入式功能。最先进的工业设备用于在没有中央控制机制的高度非结构化环境中执行各种装配任务。重点在于开发方法,解决这种机器人中的特定问题,装配技术一直容易受到机器故障和部件缺陷的影响。经典的工业系统通常在高度确定性的环境中运行。每个步骤都由中央系统控制器控制,这些控制器为所有单元同步动作。在复杂系统中,这种方法增加了时间以及部件准备的资源。即使对该过程进行小的修改也会造成严重的干扰。因此, 已经开发了各种方法和原理3,4,以支持这些系统在非确定性条件和环境中变得更加自主和可靠。 73 文献4提出了一种自适应调节内部视觉参数的自适应控制方法。自适应视觉系统能够在波动的光照条件下产生预期的结果,并且在实际装配应用中得到了促进。智能开发机器人5。具有动作和传感能力的集成系统具有广泛的应用潜力。机器人处理应用中的一个长期问题是通过不发达的抓手来引入的。抓握能力的发展可以被看作是一个单独的研究方向。各种各样的试图提供一个适用于多种应用的通用夹具6。工具更换能力7对于解决大部分未定义的工作部件的问题更为明显。为系统中的每个代理人选择适当的工具可以产生令人满意的结果。本文提出了所有列举的领域中的自适应方法的协同作用。提出了一个继续研究的总体目标是提供一个完全可采用的技术装配系统。在所提出的多代理系统中使用智能机器人(代理)作为骨干。各种传感器和执行器使这些智能代理能够建立一个真实的环境表示。通过各种通信机制8,代理进行交互并能够达成共识。开发的多代理机器人系统不限于单一用途的机器,适用于不同的环境条件,因此可用于各种生产场景。中心部分由认知代理9(机器人和机器)使用传感器的环境以及与其他代理商的通信。通过在未知场景中提供适当的行为,多代理系统能够对意外的变化做出反应。在每个组件(代理)中嵌入认知和行动能力的开发系统方法相比传统的控制原理。在工业环境中向智能解决方案的转变是创建自主技术系统的关键步骤。为了提供这些解决方案,需要一系列确定的行动。针对这种系统的两个孤立问题已经得到解决。自适应方法具有已被实施以解决未知事件另外还提出了人机交互方案的初始版本。2 开发适应性方法2.1 系统设置 已开发的多智能体系结构已经通过包含 8 个工业机器人,4 个传输系统,7 个视觉系统,2 个F/T 传感器,3 个PLC 和自动换刀器的实际工业设置进行了测试和验证,如图 1 所示。 诸如 DeviceNet,Profibus 和 TCP/IP 等通信协议允许将不同的技术组件集成到系统中。目前,该系统能够完成两种不同产品的装配操作10。该装配系统利用复杂的感应功能,包括 2 个 F/T 传感器,6 个摄像头和一个 3D 激光投影视觉系统。这些代理包括解决 未知物体,人机接口和交互方案。多种感官设备允许代理人创建环境表示。2.2 人机交互 人类和机器人之间的密切合作是这个系统的一个特征,它正在开发中。对于自动化的未来,机器人不仅是愚蠢的机器,它们执行沉闷和危险的工作,笼罩在围栏后面, 而是作为机器人助手靠近接近并与人类合作2。另外机器人可以通过触觉和语音交互进行编程,从而使人类机器人界面更易于访问,并消除了对专业编程知识的需求。以上所有安全级别都必须保持。特殊用于碰撞检测的传感器集成在一起。传统的工业机器人通过测量其联合电机中的电流来提供此功能。可以确定机器人是否因电流增加而遇到障碍物。相反的方向使用力/力矩传感器由于灵敏度更高,工业机器人制造商正在响应这些需求和产品这些机器人在一个甚至每个关节都有传感器2。这些感应功能使得操作人员可以非常靠近机器人工作,也是未来互动行为的主要前提条件。如果工作人员可以轻松地将机器人推开提出了一个障碍。高精度力传感器还可以对编程位置进行微调。除了触觉反馈之外,最直观的交互方式还是言语。运行语音识别模块的背景是分析口头命令。出于安全原因,语音识别模块被训练成仅在说出特定单词后才作出响应。语音命令具有最高的优先级(严格保留),机器人可以及时响应。根据发出的命令, 机器人执行特定任务。可以执行预编程任务,或者可以激活用于创建新程序和例程的模式。人类交流的一种自然方式主要是面向手势,语言和触觉。在技术系统日益复杂的情况下,只有熟练和高效的操作员才能够使用特殊语言和界面与机器人进行“交流”。设计一个人面向没有专业编程知识的操作人员的机器人接口将为他们提供通过更直观的界面与机器人系统协同工作的能力。2.3 未知对象 工业机器人处理应用中的常见问题是处理各种零件的可能性不足。对未知物体的处理是一个尚未引起足够重视的问题。今天,适用于工业机器人的环境是严格排列的。每一个过程都与人分离干扰,工作空间和工作部件的安排非常详细。这些要求在灵活行为方面造成了限制。未来的可能工厂将有能力在非确定性环境中生产各种产品。产品的不断变化和定制需要努力实现完全自适应的技术系统。关于这些可能的解决方案的一个问题是机器人的未知对象(代理)。在组装大量产品并且机器人遇到各种不同部件的系统中,可能出现不可预知的情况。由这种情况产生的死锁将显着降低系统效率。“调试”决定由另一方面,机器人可以节省时间并提高生产力。在系统中的几个代理上开发并实现了定位未知对象时处理简单案例场景的解决方案。原理如图 2 所示.Vision 系统检查新部件的到达。如果识别的对象与代理程序集计划执行适当的行动。在目视检查代理识别未知或有缺陷的部件的情况下,它首先警告所有涉及其公共工作空间的邻居代理。通过该过程,所有代理的意识增加并且其工作速度显着降低。使用分割方法,代理试图识别零件的几何。几何特征与视觉图案数据库中的相似对象进行比较。如果匹配图案是已知零件的缺陷,则代理附加适当的工具。如果存在没有适当的工具,没有其他邻居代理可以消除发送手动超驰请求的未知部分。当已识别部分与已定义部分相比具有相似的几何形状时,代理使用最有可能的抓取工具。选择主要取决于对象的形状和尺寸。附带最有可能产生积极抓取结果的工具。代理商可以从用于拾取小物体的特定平行夹具,用于拾取中等大小物体的夹具,可用于任何(足够大的)平坦表面的夹爪和具有不同手指行程和角度的夹具中选择。在接近分析拾取位置和拾取该部分的 F/T 传感器的反馈。如果记录施加到传感器的力的增加,则该部分已被成功抓取。如果在抓取替代物之前与读数相比没有变化如果没有其他的抓取方法会产生积极的结果,那么代理就会发送手动超驰的请求。附录:外文原文附录:工件夹持代码MODULE MainModule VAR signaldo signaldo1; CONST robtargetPHOME:=338.38,-7.28,568.76,3.75991E-06,0.0409006,-0.999163,-6.29395E-07,-1,0,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_DETECTION:=173.09,-460.03,229.60,1.20116E-05,0.873344,-0.487103,1.46564E- 05,-1,0,1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_PICK:=151.68,-401.06,237.18,6.46194E-06,0.999756,0.0221084,-1.0712E-05,-1,- 1,1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_ADJUST:=176.13,-450.98,229.73,1.07444E-05,-0.999756,-0.0221046,1.86605E-05,-1,-1,1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP0:=176.03,-453.43,348.42,1.52735E-05,-0.998803,-0.0489042,1.92914E-05,-1,-1,1, 0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_PLACE_silver:=-89.05,243.81,331.00,6.02894E-05,0.999927,-0.0120671,3.74294E- 05,1,-1,3,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_PLACE_notsilver:=56.76,241.68,329.25,4.81532E-05,-0.999842,0.0177786,-1.0118 9E-05,0,0,2,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_temp:=209.35,-13.73,425.11,0.000108638,0.999928,-0.0120293,3.21974E-05,-1,-1,1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetPHOME10:=209.35,-13.73,425.11,0.000108638,0.999928,-0.0120293,3.21974E-05,-1,-1,1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_PICK10:=209.36,-26.74,425.11,0.000114705,0.999927,-0.0120687,6.33076E-05,- 1,-1,1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_temp10:=78.36,250.60,450.06,3.76906E-05,0.0409851,-0.99916,2.63197E-05,0,0, 0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;VAR bool flag1:=FALSE; CONST robtargetP_DETECTION10:=338.38,-7.28,568.77,3.11157E-05,0.0409543,-0.999161,-6.17989 E-06,-1,0,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;VAR robtargetP_CIR:=338.38,-7.28,568.77,3.11157E-05,0.0409543,-0.999161,-6.17989E-06,-1,0,- 1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;VAR pos pos1:=0,0,0; VAR robtargetP_CUR:=338.38,-7.28,568.76,3.23055E-05,0.0409543,-0.999161,-6.25434E-06,-1,0,- 1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetP_DETECTION20:=78.36,250.60,450.06,3.76906E-05,0.0409851,-0.99916,2.63197E- 05,0,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;PERS pose pose1:=0,0,0,1,0,0,0;TASK PERS tooldata tool1:=TRUE,0,0,0,1,0,0,0,-1,0,0,0,1,0,0,0,0,0,0;TASK PERS wobjdata wobj1:=FALSE,TRUE,0,0,0,1,0,0,0,0,0,0,1,0,0,0;PROC main()VelSet 30, 500;MoveJ PHOME, v1000, z20, tool0; CheckProgRef;open_gripper;WaitDI Di_Pick, 1;Set DO_BUSY;WaitTime 2;MoveJ Offs(P_ADJUST,0,-20,60), v1000, z20, tool0;MoveJ Offs(P_ADJUST,0,-20,0), v1000, z0, tool0; MoveJ P_ADJUST, v200, z0, tool0;MoveJ P_DETECTION, v200, fine, tool0; WaitTime 1;IF TestDI(DI_SILVER) THENMoveJ Offs(P_PICK,0,0,100), v1000, z50, tool0; MoveL P_PICK, v200, fine, tool0;WaitTime 0.5; close_gripper; WaitTime 0.5;MoveL Offs(P_PICK,0,0,100), v400, z50, tool0; MoveJ P_temp, v1000, z50, tool0;Reset DO_BUSY;MoveJ Offs(P_PLACE_silver,0,0,100), v1000, z50, tool0; MoveL P_PLACE_silver, v400, fine, tool0;ELSEMoveJ Offs(P_PICK,0,0,100), v1000, z50, tool0; MoveL P_PICK, v200, fine, tool0;WaitTime 0.5; close_gripper; WaitTime 0.5;MoveL Offs(P_PICK,0,0,200), v400, z50, tool0; MoveJ P_temp, v1000, z50, tool0;Reset DO_BUSY;MoveJ Offs(P_PLACE_notsilver,0,0,100), v1000, z50, tool0; MoveL P_PLACE_notsilver, v400, fine, tool0;ENDIFWaitTime 1;open_gripper;P_CUR := CRobT();MoveL Offs(P_CUR,0,0,80), v200, z20, tool0; ENDPROCPROC close_gripper() Set Do_Vac1; Reset Do_Vac2;ENDPROCPROC open_gripper() Set Do_Vac2; Reset Do_Vac1;ENDPROC ENDMODULE附录:焊枪弧焊轨迹代码MODULE MainModule CONST robtargetp10:=251.12,227.80,276.18,0.144541,-0.245899,0.929323,-0.234522,0,-1,0,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;TASK PERS tooldatatool1:=TRUE,-29.9696,-0.691097,238.305,0.999959,0.00585668,0.00275538,0.00635 528,0.5,0,0,100,1,0,0,0,0,0,0;CONST robtargetp20:=290.27,226.83,276.23,0.178463,0.279892,-0.938344,0.0965466,0,-1,0,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp30:=284.36,190.37,276.14,0.0143362,0.291619,-0.93178,-0.215727,0,0,-1,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp40:=250.01,192.20,273.60,0.292001,-0.254679,0.919051,0.0722385,0,-1,0,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp60:=448.76,140.59,201.61,0.0208234,0.0291631,0.999336,-0.00655877,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp50:=327.11,-21.12,320.54,0.0207602,0.029218,0.999336,-0.00659484,-1,0,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp80:=176.41,271.42,201.62,0.0207976,0.0292519,0.999333,-0.00667892,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp70:=445.38,277.70,201.62,0.0207955,0.0292451,0.999334,-0.00666337,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp90:=178.42,136.39,201.61,0.0207307,0.0292583,0.999334,-0.00670063,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp100:=275.70,77.02,328.81,0.0207473,0.0292493,0.999334,-0.00670034,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp110:=275.70,77.02,328.80,0.210597,-0.029776,-0.977119,-0.00112037,0,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp120:=275.70,77.03,328.80,0.222278,0.0274557,0.974528,-0.0115738,0,-1,0,0,9E+ 09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp130:=275.70,77.03,328.80,0.0468653,0.042673,0.961789,-0.266355,0,-1,0,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtarget p140:=275.70,77.02,328.79,0.0622876,0.0117013,0.958326,0.278558,-1,0,-1,0,9E+ 09,9E+09,9E+09,9E+09,9E+09,9E+09;PROC main()MoveL p50, v100, z5, tool1; WaitDI DI_SILVER, 1;MoveL p60, v100, fine, tool1; MoveL p70, v100, z5, tool1; MoveL p80, v100, z5, tool1; MoveL p90, v100, z5, tool1; MoveL p60, v100, z5, tool1; MoveL p100, v100, z50, tool1; MoveJ p30, v100, fine, tool1; MoveC p40, p10, v20, z5, tool1; MoveC p20, p30, v20, fine, tool1;ENDPROCENDMODULE附录:执笔作画代码MODULE MainModule TASK PERS tooldatatool1:=TRUE,-38.5676,-0.798987,196.39,0.99974,-0.00995106,-0.000869176,-0.0204993,0.1,30,0,-200,1,0,0,0,0,0,0;TASK PERS wobjdatawobj1:=FALSE,TRUE,461.583,-119.078,137.15,0.705493,-6.62155E-05,-3.76162E-05,0.708716,0,0,0,1,0,0,0;CONST robtargetp10:=34.53,139.82,0.00,0.000875171,0.709517,0.704687,-0.000944602,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp20:=53.64,128.36,0.01,0.000958669,0.709584,0.704619,-0.000927776,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp30:=69.39,141.16,-0.01,0.00086062,0.709538,0.704666,-0.000927959,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp40:=50.43,151.11,-0.01,0.000878857,0.709571,0.704633,-0.000951439,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp50:=34.58,114.74,-0.01,0.000872574,0.709589,0.704614,-0.000907095,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp60:=38.77,93.36,-0.02,0.000914863,0.709557,0.704647,-0.000944657,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp70:=42.63,83.69,-0.02,0.000897594,0.709573,0.70463,-0.000908082,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp80:=47.24,75.40,-0.01,0.000834947,0.709593,0.704611,-0.000813641,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp90:=54.06,66.77,-0.03,0.000837549,0.709546,0.704658,-0.000812465,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp100:=75.52,52.44,-0.01,0.000841237,0.709589,0.704615,-0.000795825,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp110:=103.22,52.31,-0.01,0.000853938,0.709596,0.704607,-0.000812522,-1,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp120:=121.79,68.50,-0.01,0.000868587,0.709639,0.704565,-0.000832216,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp130:=126.53,92.75,-0.01,0.000887341,0.709642,0.704561,-0.000844951,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp140:=120.92,113.65,-0.01,0.000887906,0.709636,0.704567,-0.000850176,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp150:=101.42,126.83,-0.01,0.000868979,0.709641,0.704563,-0.000834751,-1,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp160:=79.15,123.66,0.00,0.000850981,0.709666,0.704537,-0.000811478,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp170:=75.33,132.89,0.00,0.000890676,0.709639,0.704565,-0.000853973,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp180:=94.16,86.18,-0.01,0.000868502,0.709639,0.704564,-0.000814846,-1,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp190:=105.84,105.12,0.00,0.000896326,0.709619,0.704585,-0.000850565,-1,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp200:=92.02,117.70,0.01,0.000977232,0.709553,0.704651,-0.00095985,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp210:=29.08,92.07,0.00,0.000979263,0.709567,0.704636,-0.000962877,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp220:=23.44,82.97,-0.01,0.000928343,0.70959,0.704613,-0.000860008,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp230:=33.26,78.58,-0.02,0.000915971,0.709589,0.704615,-0.000835587,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp240:=37.96,71.24,-0.01,0.000835445,0.709578,0.704626,-0.000742519,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp250:=35.62,61.80,-0.01,0.000813177,0.709586,0.704618,-0.00068915,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp260:=47.24,60.55,-0.02,0.000819131,0.709567,0.704637,-0.000704541,-1,-1,-1,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp280:=165.44,50.47,-0.02,0.000911673,0.709535,0.704669,-0.000925196,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp270:=135.78,57.83,-0.03,0.000813611,0.709666,0.704537,-0.000790277,0,-1,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp290:=174.17,49.95,-0.02,0.000868327,0.709557,0.704647,-0.000892052,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp300:=174.86,128.02,0.00,0.000868852,0.709549,0.704655,-0.000905297,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp310:=135.38,124.10,-0.01,0.000846383,0.709558,0.704646,-0.000889739,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp320:=175.06,66.81,-0.01,0.000864542,0.709562,0.704642,-0.000897148,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp330:=175.24,107.91,0.00,0.000867908,0.709553,0.704651,-0.000925473,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp340:=193.18,66.01,0.00,0.000834643,0.709588,0.704616,-0.000892135,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp350:=193.27,84.11,0.00,0.00085905,0.709596,0.704607,-0.000910598,0,-1,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp360:=186.65,75.7,-0.01,0.000895771,0.709601,0.704602,-0.000916,0,-1,0,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp370:=193.43,106.81,-0.01,0.000959629,0.709618,0.704585,-0.000968514,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp380:=193.52,125.71,-0.01,0.000978943,0.709626,0.704577,-0.000982941,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp390:=186.90,117.47,-0.01,0.00101941,0.709623,0.70458,-0.00101331,0,-1,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp400:=164.37,42.58,-0.02,0.00099131,0.709612,0.704592,-0.000956937,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp410:=154.61,42.50,-0.03,0.0010131,0.70963,0.704573,-0.000979363,0,-1,0,0,9E+ 09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp420:=164.05,33.27,-0.03,0.000933133,0.709617,0.704586,-0.000925361,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp430:=140.73,40.57,-0.03,0.00099007,0.709602,0.704602,-0.000986042,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp440:=135.77,31.22,-0.03,0.000948569,0.709608,0.704596,-0.000953373,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp450:=143.43,31.90,-0.03,0.000913156,0.709611,0.704592,-0.000936643,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp460:=147.66,37.09,-0.03,0.00092343,0.709633,0.704571,-0.000947683,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp470:=142.33,138.47,-0.01,0.0009302,0.709623,0.704581,-0.000956186,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp480:=141.21,146.73,-0.01,0.000969117,0.709625,0.704578,-0.000982573,0,-1,0,0, 9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp490:=147.70,146.01,-0.01,0.0009556,0.709618,0.704585,-0.000981153,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp500:=151.53,138.48,-0.02,0.000920222,0.709623,0.70458,-0.000951282,0,-1,0,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp510:=48.94,136.71,0.00,0.00094627,0.709624,0.704579,-0.000960544,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp520:=52.65,133.61,0.00,0.000923526,0.709633,0.70457,-0.000931578,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp530:=55.82,137.27,0.00,0.000932407,0.709613,0.70459,-0.000953132,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp540:=52.33,139.41,0.01,0.000965482,0.709568,0.704635,-0.00100238,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp550:=48.32,144.66,0.02,0.000988109,0.709552,0.704652,-0.00103414,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp560:=52.01,142.11,0.02,0.000945867,0.709563,0.70464,-0.000975694,-1,-1,-1,0,9 E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp570:=55.22,144.97,0.03,0.000996789,0.709553,0.70465,-0.00105574,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp580:=51.22,147.37,0.04,0.00101151,0.709553,0.70465,-0.0010736,-1,-1,-1,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp590:=52.10,88.33,0.04,0.00100383,0.709558,0.704646,-0.00107018,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp600:=61.48,83.53,0.03,0.000983994,0.70959,0.704613,-0.00105934,-1,-1,-1,0,9E+ 09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp610:=67.11,91.88,0.04,0.000960412,0.709611,0.704592,-0.00103602,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp620:=57.36,96.56,0.05,0.000977753,0.709563,0.70464,-0.0010726,-1,-1,-1,0,9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp630:=55.98,88.03,0.06,0.000959701,0.709556,0.704648,-0.00105755,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp640:=58.87,86.34,0.06,0.000946646,0.709591,0.704612,-0.00103601,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp650:=61.64,89.22,0.07,0.000956109,0.709566,0.704638,-0.00104731,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp660:=57.46,91.08,0.07,0.000975131,0.709523,0.704681,-0.00108643,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp670:=45.84,107.09,0.07,0.00103647,0.709499,0.704705,-0.00115093,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp680:=55.30,101.09,0.07,0.00102484,0.709488,0.704716,-0.00113524,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp690:=61.49,110.29,0.07,0.00104112,0.709463,0.704741,-0.00116503,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp700:=52.11,115.08,0.07,0.00106438,0.709455,0.704749,-0.00118952,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp710:=49.90,106.35,0.08,0.00106546,0.709435,0.704769,-0.00118959,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp720:=53.07,104.05,0.08,0.00104428,0.709447,0.704757,-0.00116558,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp730:=55.59,107.16,0.08,0.00107703,0.709431,0.704773,-0.00121152,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp740:=51.93,109.18,0.08,0.00108417,0.709415,0.704789,-0.00123084,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetp00:=113.49,130.95,239.74,0.0202407,0.691504,0.721977,-0.0127202,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;PROC main()MoveL p00, v50, fine,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|