《物料搬运机器人的结构设计与控制研究.docx》由会员分享,可在线阅读,更多相关《物料搬运机器人的结构设计与控制研究.docx(34页珍藏版)》请在三一办公上搜索。
1、第一章 绪论1.1 机器人概述在现代工业中,生产过程的机械化、自动化已成为突出的主题。化工等连续性生产过程的自动化已基本得到解决。但在机械工业中,加工、装配等生产是不连续的。专用机床是大批量生产自动化的有效办法;程控机床、数控机床、加工中心等自动化机械是有效地解决多品种小批量生产自动化的重要办法。但除切削加工本身外,还有大量的装卸、搬运、装配等作业,有待于进一步实现机械化。机器人的出现并得到应用,为这些作业的机械化奠定了良好的基础。“工业机器人”(Industrial Robot):多数是指程序可变(编)的独立的自动抓取、搬运工件、操作工具的装置(国内称作工业机器人或通用机器人)。 机器人是一
2、种具有人体上肢的部分功能,工作程序固定的自动化装置。机器人具有结构简单、成本低廉、维修容易的优势,但功能较少,适应性较差。目前我国常把具有上述特点的机器人称为专用机器人,而把工业机械人称为通用机器人。简而言之,机器人就是用机器代替人手,把工件由某个地方移向指定的工作位置,或按照工作要求以操纵工件进行加工。机器人一般分为三类。第一类是不需要人工操作的通用机器人,也即本文所研究的对象。它是一种独立的、不附属于某一主机的装置,可以根据任务的需要编制程序,以完成各项规定操作。它是除具备普通机械的物理性能之外,还具备通用机械、记忆智能的三元机械。第二类是需要人工操作的,称为操作机(Manipulator
3、)。它起源于原子、军事工业,先是通过操作机来完成特定的作业,后来发展到用无线电讯号操作机器人来进行探测月球等。工业中采用的锻造操作机也属于这一范畴。第三类是专业机器人,主要附属于自动机床或自动生产线上,用以解决机床上下料和工件传送。这种机器人在国外通常被称之为“Mechanical Hand”,它是为主机服务的,由主机驱动。除少数外,工作程序一般是固定的,因此是专用的。机器人按照结构形式的不同又可分为多种类型,其中关节型机器人以其结构紧凑,所占空间体积小,相对工作空间最大,甚至能绕过基座周围的一些障碍物等这样一些特点,成为机器人中使用最多的一种结构形式,世界一些著名机器人的本体部分都采用这种机
4、构形式的机器人。要机器人像人一样拿取东西,最简单的基本条件是要有一套类似于指、腕、臂、关节等部分组成的抓取和移动机构执行机构;像肌肉那样使手臂运动的驱动传动系统;像大脑那样指挥手动作的控制系统。这些系统的性能就决定了机器人的性能。一般而言,机器人通常就是由执行机构、驱动传动系统和控制系统这三部分组成,如图 1-1 所示。图1-1 机器人的一般组成对于现代智能机器人而言,还具有智能系统,主要是感觉装置、视觉装置和语言识别装置等。目前研究主要集中在赋予机器人“眼睛”,使它能识别物体和躲避障碍物,以及机器人的触觉装置。机器人的这些组成部分并不是各自独立的,或者说并不是简单的叠加在一起,从而构成一个机
5、器人的。要实现机器人所期望实现的功能,机器人的各部分之间必然还存在着相互关联、相互影响和相互制约。它们之间的相互关系如图1-2 所示。 图1-2 机器人各组成部分之间的关系机器人的机械系统主要由执行机构和驱动传动系统组成。执行机构是机器人赖以完成工作任务的实体,通常由连杆和关节组成,由驱动传动系统提供动力,按控制系统的要求完成工作任务。驱动传动系统主要包括驱动机构和传动系统。驱动机构提供机器人各关节所需要的动力,传动系统则将驱动力转换为满足机器人各关节力矩和运动所要求的驱动力或力矩。有的文献则把机器人分为机械系统、驱动系统和控制系统三大部分。其中的机械系统又叫操作机(Manipulator),
6、相当于本文中的执行机构部分。1.2 机器人的历史、现状机器人首先是从美国开始研制的。1958年美国联合控制公司研制出第一台机器人。它的结构特点是机体上安装一回转长臂,端部装有电磁铁的工件抓放机构,控制系统是示教型的。 日本是工业机器人发展最快、应用最多的国家。自1969年从美国引进两种典型机器人后,大力从事机器人的研究。 目前工业机器人大部分还属于第一代,主要依靠人工进行控制;控制方式则为开环式,没有识别能力;改进的方向主要是降低成本和提高精度。 第二代机器人正在加紧研制。它设有微型电子计算机控制系统,具有视觉、触觉能力,甚至听、想的能力。研究安装各种传感器,把感觉到的信息进行反馈,使机器人具
7、有感觉机能。 第三代机器人(机器人)则能独立地完成工作过程中的任务。它与电子计算机和电视设备保持联系,并逐步发展成为柔性制造系统FMS(Flexible Manufacturing System) 和柔性制造单元FMC(Flexible Manufacturing Cell) 中的重要一环。 随着工业机器人研究制造和应用领域不断扩大,国际性学术交流活动十分活跃,欧美各国和其他国家学术交流活动开展很多。国际工业机器人会议ISIR决定每年召开一次会议,讨论和研究机器人的发展及应用问题。 目前,工业机器人主要用于装卸、搬运、焊接、铸锻和热处理等方面,无论数量、品种和性能方面还不能满足工业生产发展的需
8、要。使用工业机器人代替人工操作的,主要是在危险作业(广义的)、多粉尘、高温、噪声、工作空间狭小等不适于人工作业的环境。 在国外机械制造业中,工业机器人应用较多,发展较快。目前主要应用于机床、模锻压力机的上下料,以及点焊、喷漆等作业,它可按照事先制订的作业程序完成规定的操作,但还不具备传感反馈能力,不能应付外界的变化。如发生某些偏离时,就将引起零部件甚至机器人本身的损坏。 随着现代化科学技术的飞速发展和社会的进步,针对于上述各个领域的机器人系统的应用和研究对系统本身也提出越来越多的要求。制造业要求机器人系统具有更大的柔性和更强大的编程环境,适应不同的应用场合和多品种、小批量的生产过程。计算机集成
9、制造(CIM)要求机器人系统能和车间中的其它自动化设备集成在一起。研究人员为了提高机器人系统的性能和智能水平,要求机器人系统具有开放结构和集成各种外部传感器的能力。然而,目前商品化的机器人系统多采用封闭结构的专用控制器,一般采用专用计算机作为上层主控计算机,使用专用机器人语言作为离线编程工具,采用专用微处理器,并将控制算法固化在EPROM中,这种专用系统很难(或不可能)集成外部硬件和软件。修改封闭系统的代价是非常昂贵的,如果不进行重新设计,多数情况下技术上是不可能的。解决这些问题的根本办法是研究和使用具有开放结构的机器人系统。美国工业机器人技术的发展,大致经历了以下几个阶段:(1)1963-1
10、967年为试验定型阶段。1963-1966年, 万能自动化公司制造的工业机器人供用户做工艺试验。1967年,该公司生产的工业机器人定型为1900型。(2)1968-1970年为实际应用阶段。这一时期,工业机器人在美国进入应用阶段,例如,美国通用汽车公司1968年订购了68台工业机器人;1969年该公司又自行研制出SAM新工业机器人,并用21组成电焊小汽车车身的焊接自动线;又如,美国克莱斯勒汽车公司32条冲压自动线上的448台冲床都用工业机器人传递工件。(3)1970年至今一直处于推广应用和技术发展阶段。1970-1972年,工业机器人处于技术发展阶段。1970年4月美国在伊利斯工学院研究所召开
11、了第一届全国工业机器人会议。据当时统计,美国大约200台工业机器人,工作时间共达60万小时以上,与此同时,出现了所谓了高级机器人,例如:森德斯兰德公司(Sundstrand)发明了用小型计算机控制50台机器人的系统。又如,万能自动公司制成了由25台机器人组成的汽车车轮生产自动线。麻省理工学院研制了具有有“手眼”系统的高识别能力微型机器人。其他国家,如日本、苏联、西欧,大多是从1967,1968年开始以美国的“Versatran”和“Unimate”型机器人为蓝本开始进行研制的。就日本来说,1967年,日本丰田织机公司 引进美国的“Versatran”,川崎重工公司引进“Unimate”,并获得
12、迅速发展。通过引进技术、仿制、改造创新。很快研制出国产化机器人,技术水平很快赶上美国并超过其他国家。经过大约10年的实用化时期以后,从1980年开始进入广泛的普及时代。我国虽然开始研制工业机器人仅比日本晚5-6年,但是由于种种原因,工业机器人技术的发展比较慢。目前我国已开始有计划地从国外引进工业机器人技术,通过引进、仿制、改造、创新,工业机器人将会获得快速的发展。1.3 机器人发展趋势随着现代化生产技术的提高,机器人设计生产能力进一步得到加强,尤其当机器人的生产与柔性化制造系统和柔性制造单元相结合,从而改变目前机械制造的人工操作状态,提高了生产效率。 就目前来看,总的来说现代工业机器人有以下几
13、个发展趋势: a)提高运动速度和运动精度,减少重量和占用空间,加速机器人功能部件的标准化和模块化,将机器人的各个机械模块、控制模块、检测模块组成结构不同的机器人; b)开发各种新型结构用于不同类型的场合,如开发微动机构用以保证精度;开发多关节多自由度的手臂和手指;开发各类行走机器人,以适应不同的场合;c)研制各类传感器及检测元器件,如,触觉、视觉、听觉、味觉、和测距传感器等,用传感器获得工作对象周围的外界环境信息、位置信息、状态信息以完成模式识别、状态检测。并采用专家系统进行问题求解、动作规划,同时,越来越多的系统采用微机进行控制。第二章 物料搬运机器人结构设计2.1 机器人结构该设计的目的是
14、为了设计一台物料搬运机器人,具有四个自由度 ,即腰关节、肩关节、肘关节和腕关节,都为转动关节;还有一个用于夹持物料的机械手。机器人结构简图如图2.1所示。图2.1 机器人结构简图2.2 各自由的功能2.2.1 基座 基座是整个机器人本体的支撑。为保证机器人运行的稳定性,采用两块“Z”字形实心铸铁作支撑。基座上面是接线盒子,所有电机的驱动信号和反馈信号都从中出入。接线盒子外面,有一个引入线出口和一个引出线出口。2.2.2 大臂大臂长度230mm,具体尺寸如图2.2所示: 图2.2 大臂外形2.2.3 小臂小臂长度240mm,具体尺寸如图2.3所示: 图2.3 小臂外形2.3 机械手设计工业机器人
15、的手又称为末端执行器,它使机器人直接用于抓取和握紧(吸附)专用工具(如喷枪、扳手、焊具、喷头等)进行操作的部件。它具有模仿人手动作的功能,并安装于机器人手臂的前端。由于被握工件的形状、尺寸、重量、材质及表面状态等不同,因此工业机器人末端操作器是多种多样的,大致可分为以下几类:(1) 夹钳式取料手(2) 吸附式取料手(3) 专用操作器及转换器(4) 仿生多指灵巧手本文设计对象为物料搬运机器人,并不需要复杂的多指人工指,只需要设计能从不同角度抓取工件的钳形指。手指是直接与工件接触的部件。手指松开和夹紧工件,是通过手指的张开与闭合来实现的。该设计采用两个手指,其外形如图2.4所示。 图2.4 机械手
16、手指形状传动机构是向手指传递运动和动力,以实现夹紧和松开动作的机构。根据手指开合的动作特点分为回转型和平移形。本文采用回转型传动机构。图2.4为初步设计的机械手机构简图(只画出了一半,另外一半关于中心线对称)。在图2.4中,O为电机输出轴,曲柄OA、连杆AB、滑块B和支架构成曲柄滑块机构;滑块B、连杆BC、摇杆CE和支架构成滑块摇杆机构。通过两个机构串联,使电机最终驱动DE的来回摆动,从而实现手指的开合运动。图2.5中的黑线和蓝线表示机构运行的两个极限位置。 图2.5 机械手机构简图 为便于手指的顺利合拢,可以在两个手指之间设置一个弹簧,这样还可以提供适当的夹紧力。 另外,在选用电机的时候,要
17、使电机的功率足以克服弹簧的收缩和张开,并且提供足够加紧物体的力。 图2.6为采用虚拟样机软件ADAMS来分析所设计的机械手机构的工作状况。 图2.6 虚拟样机场景下面更进一步计算出所需要的电机力矩。 图2.7力矩变化情况从图2.7中看到,起始阶段须克服的弹簧力最大,电机转矩必须大于550Nmm,这为电机的挑选提供了一定的依据。2.4 驱动方式该机器人一共具有四个独立的转动关节,连同末端机械手的运动,一共需要五个动力源。机器人常用的驱动方式有液压驱动、气压驱动和电机驱动三种类型。这三种方法各有所长,各种驱动方式的特点见表2.1:表2.1三种驱动方式的特点对照内容驱动方式液压驱动气动驱动电机驱动输
18、出功率很大,压力范围为50140Pa大,压力范围为4860Pa,最大可达Pa较大控制性能利用液体的不可压缩性,控制精度较高,输出功率大,可无级调速,反应灵敏,可实现连续轨迹控制气体压缩性大,精度低,阻尼效果差,低速不易控制,难以实现高速、高精度的连续轨迹控制控制精度高,功率较大,能精确定位,反应灵敏,可实现高速、高精度的连续轨迹控制,伺服特性好,控制系统复杂响应速度很高较高很高结构性能及体积结构适当,执行机构可标准化、模拟化,易实现直接驱动。功率/质量比大,体积小,结构紧凑,密封问题较大结构适当,执行机构可标准化、模拟化,易实现直接驱动。功率/质量比大,体积小,结构紧凑,密封问题较小伺服电动机
19、易于标准化,结构性能好,噪声低,电动机一般需配置减速装置,除DD电动机外,难以直接驱动,结构紧凑,无密封问题安全性防爆性能较好,用液压油作传动介质,在一定条件下有火灾危险防爆性能好,高于1000kPa(10个大气压)时应注意设备的抗压性设备自身无爆炸和火灾危险,直流有刷电动机换向时有火花,对环境的防爆性能较差对环境的影响液压系统易漏油,对环境有污染排气时有噪声无在工业机器人中应用范围适用于重载、低速驱动,电液伺服系统适用于喷涂机器人、点焊机器人和托运机器人适用于中小负载驱动、精度要求较低的有限点位程序控制机器人,如冲压机器人本体的气动平衡及装配机器人气动夹具适用于中小负载、要求具有较高的位置控
20、制精度和轨迹控制精度、速度较高的机器人,如AC伺服喷涂机器人、点焊机器人、弧焊机器人、装配机器人等成本液压元件成本较高成本低成本高维修及使用方便,但油液对环境温度有一定要求方便较复杂机器人驱动系统各有其优缺点,通常对机器人的驱动系统的要求有:1)驱动系统的质量尽可能要轻,单位质量的输出功率要高,效率也要高;2)反应速度要快,即要求力矩质量比和力矩转动惯量比要大,能够进行频繁地起、制动,正、反转切换;3)驱动尽可能灵活,位移偏差和速度偏差要小;4)安全可靠;5)操作和维护方便;6)对环境无污染,噪声要小;7)经济上合理,尤其要尽量减少占地面积。基于上述驱动系统的特点和机器人驱动系统的设计要求,本
21、文选用直流伺服电机驱动的方式对机器人进行驱动。表2.2为选定的各个关节电机型号及其相关参数。 表2.2机器人驱动电机参数电机参数腰关节肩关节肘关节腕关节手爪型号MAXON2332MAXON2332MAXON2332MULTIPLEXSTELL-SERVOMULTIPLEXSTELL-SERVO额定电压18v18v18v6v6v额定转矩18.2 Nm18.2 Nm18.2 Nm10.3 Nm10.3 Nm最大转矩67.4Nm67.4Nm67.4Nm额定转速7980rpm7980rpm7980rpm5460rpm5460rpm最高转速转子惯量9200rpm18.4gcmcm9200rpm18.4g
22、cmcm9200rpm18.4gcmcm2.5 传动方式由于一般的电机驱动系统输出的力矩较小,需要通过传动机构来增加力矩,提高带负载能力。对机器人的传动机构的一般要求有:(1)结构紧凑,即具有相同的传动功率和传动比时体积最小,重量最轻;(2)传动刚度大,即由驱动器的输出轴到连杆关节的转轴在相同的扭矩时角度变形要小,这样可以提高整机的固有频率,并大大减轻整机的低频振动;(3)回差要小,即由正转到反转时空行程要小,这样可以得到较高的位置控制精度;(4)寿命长、价格低。 本文所选用的电机都采用了电机和齿轮轮系一体化的设计,结构紧凑,具有很强的带负载能力,但是不能通过电机直接驱动各个连杆的运动。为减小
23、机构运行过程的冲击和振动,并且不降低控制精度,采用了齿形带传动。齿形带传动是同步带的一种,用来传递平行轴间的运动或将回转运动转换成直线运动,在本文中主要用于腰关节、肩关节和肘关节的传动。 齿形带传动原理如图2.8所示。齿轮带的传动比计算公式为 齿轮带的平均速度为 图2.8 齿形带传动2.6 制动器制动器及其作用:制动器是将机械运动部分的能量变为热能释放,从而使运动的机械速度降低或者停止的装置,它大致可分为机械制动器和电气制动起两类。在机器人机构中,学要使用制动器的情况如下: 特殊情况下的瞬间停止和需要采取安全措施 停电时,防止运动部分下滑而破坏其他装置。机械制动器: 机械制动器有螺旋式自动加载
24、制动器、盘式制动器、闸瓦式制动器和电磁制动器等几种。其中最典型的是电磁制动器。 在机器人的驱动系统中常使用伺服电动机,伺服电机本身的特性决定了电磁制动器是不可缺少的部件。从原理上讲,这种制动器就是用弹簧力制动的盘式制动器,只有励磁电流通过线圈时制动器打开,这时制动器不起制动作用,而当电源断开线圈中无励磁电流时,在弹簧力的作用下处于制动状态的常闭方式。因此这种制动器被称为无励磁动作型电磁制动器。又因为这种制动器常用于安全制动场合,所以也称为安全制动器。电气制动器: 电动机是将电能转换为机械能的装置,反之,他也具有将旋转机械能转换为电能的发电功能。换言之,伺服电机是一种能量转换装置,可将电能转换为
25、机械能,同时也能通过其反过程来达到制动的目的。但对于直流电机、同步电机和感应电机等各种不同类型的电机,必须分别采用适当的制动电路。 本文中,该机器人实验平台未安装机械制动器,因此机器人的肩关节和肘关节在停止转动的时候,会因为重力因素而下落。另外,由于各方面限制,不方便在原有机构上添加机械制动器,所以只能通过软件来实现肩关节和肘关节的电气制动。采用电气制动器,其优点在于:在不增加驱动系统质量的同时又具有制动功能,这是非常理想的情况,而在机器人上安装机械制动器会使质量有所增加,故应尽量避免。缺点在于:这种方法不如机械制动器工作可靠,断电的时候将失去制动作用。第三章 控制系统硬件设计3.1 控制系统
26、模式的选择构建机器人平台的核心是建立机器人的控制系统。首先需要选择和硬件平台,控制系统硬件平台对于系统的开放性、实现方式和开发工作量有很大的影响。一般常用的控制系统硬件平台应满足:硬件系统基于标准总线机构,具有可伸缩性;硬件结构具有必要的实时计算能力;硬件系统模块化,便于添加或更改各种接口、传感器和特殊计算机等;低成本。到目前为止,一般机器人控制系统的硬件平台可以大致分为两类:基于VME总线(Versamodel Eurocard由Motorola公司1981年推出的第一代32位工业开放标准总线)的系统和基于PC总线的系统。近年来,随着PC机性能的快速发展,可靠性大为提高,价格却大幅度降低,以
27、PC机为核心的控制系统已广泛被机器人控制领域所接受。基于PC机控制系统一般包括单PC控制模式,PC+PC的控制模式,PC+分布式控制器的控制模式,PC+DSP运动控制卡的控制模式,PC+数据采集卡的控制模式,由于基于采集卡的控制方式灵活,成本低廉,有利于本文设计中的废物利用,在程序和算法上可以自主编制各类算法,适合本课题研究的需要。因此本文选定PC+数据采集卡的控制方式。3.2 控制系统的搭建本控制系统包括工控机、数据采集卡、端子板、电源和伺服放大器等组成。图3.1为控制系统框图。图3.1 控制系统框图3.2.1 工控机在此选用研华工业控制机,主频233MHz,内存128兆,32位数据总线。底
28、板有9个ISA插槽,4个PCI插槽,带VGA显示器。其性能价格比优越,兼容性好,有利于软硬件维护和升级。与普通个人计算机相比工业控制PC机有以下优点:芯片筛选要比一般个人计算机严格;芯片驱动能力较强;整机内部结构属于工业加强型,具有较强的防震和抗干扰性能;对环境(如温度、湿度、灰尘等)的要求要比一般计算机低得多。3.2.2 数据采集卡在本设计中我们主要用到研华公司的PCL812PG和PCL726,其参数如下。PCL-812PG主要特点: 16路单端12位模拟量输入 2路12位模拟量输出 采样速率可编程,最快达30KHz 带DMA或中断的A/D 16路数字量输出PCL-726主要特点: 6路独立
29、D/A输出 12位分辨率双缓冲D/A转换器 16路数字量输入及16路数字量输出 多种电压范围:+/-10V,+/-5V,0- +5V,0- +10V和4-20mA电流环。3.2.3 伺服放大器在驱动系统设计过程中,主要是对伺服电机的驱动,本文中利用报废机器人上的maxon电机驱动关节,因此同样选用maxon伺服电机驱动器(maxon motor control4-Q-DC Servo Control LSC 30/2)进行驱动,如图3.2所示。图3.2伺服放大器接线及其调节示意这是专门针对maxon电机设计的伺服电机放大控制器,具有很强的控制功能和稳定性,电源电压1230v之间,1、2接线端子
30、接伺服电机,直接给电机供电,3,4接线端与电源相连,7、8接控制电压,通过数据采集卡输出的模拟电压信号进入这两个接线端来控制电机的转速大小和正反转,13、14接测速计(本文中未用),3、4、10之间是一个光耦合器,输入“准备好”信号。在伺服控制器前面,有5个旋钮调节器涌来调节电机的五个参数,下边有10个DIP开关,用来选择控制器工作状态。3.2.4 端子板不同的被测信号通过不同的传送路线到采集卡,而采集卡在工控机机箱内,不变直接连接到工业系统中的各种传感器或执行器。端子板的主要作用有两个: 端子板是采集卡与每一个信号调理电路或驱动装置之间的电器连接部件,给每一路输入、输出信号提供单独的信号线和
31、地线,使每一路通道可单独接通或断开,系统检修和排除故障时不必全部停止运行。 将每一路信号经过各自的传送路线到达端子板后,可以根据各路信号和传送路线的特点,在端子板上对各路信号进行简单的调理,如经电阻衰减、分流或经过RC低通滤波后进入采集卡。 图3.3端子板电路图3.3所示的电路图中,为防止直流电机产生的噪声影响电路的正常运行,使用了光电耦合器4N25。在机电一体化技术中,光电耦合电路是重要的接口电路。其中PCL-812PG通过五路数字量输出来控制电机电路的通断,PCL-726通过五路模拟量输出来控制电机的正反转和运行速度,另外PCL-812PG还负责采集五个电位器的电压,以此将电机的运行角度反
32、馈给计算机。3.2.5 电位器电位器是一种可调电阻,也是电子电路中用途最广泛的元器件之一。它对外有三个引出端,其中两个为固定端,另一个是中心抽头。转动或调节电位器转动轴,其中心抽头与固定端之间的电阻将发生变化。本文采用的电位器是单圈的,也就是说各关节的运动角度小于360,对于该机器人已经足够了。电位器安装在机器人的各个关节输出轴上,所以在关节角的运动范围内,电位计的输出电压和关节角是一一对应的,存在着一定的函数关系。从理论上来讲,电位器应该是线性的测量元件,但由于电位器的滑动噪声以及滑线电阻的工作过程中的磨损,这种函数关系并非理想的线性关系,而是存在一定的偏移。电位器的标定就是根据在各个角度处
33、测量的电压值,拟合出一条直线,近似替代真实的函数关系。3.2.6 电源电位器和伺服放大器都需要一定的电压,特别是电位计是在10.0v的条件下工作的,稳定的电压对于保证电位计反馈信号的真实性具有重大的影响;而伺服放大器是在12v30v范围内工作的,电压只要在此范围内即可。本文采用DH1715A-3型 双路稳压稳流电源,可以提供032v电压输出和02A电流输出。这里设定两路电压输出:14.0v-供给伺服放大器运行,10.0v-保证电位计的正常工作。第四章 控制系统软件设计以上完成了机器人的本体设计和控制系统硬件的搭建,下面将通过设计控制软件,使计算机通过数据采集卡有条不紊地向外部发送指挥信号,最终
34、驱动机器人各个关节的运动,使之按照人的意愿“工作”。4.1 预期的功能(1)实时显示各个关节角,并且可以防止各个关节的运动角度超出预定的关节角范围内;(2)实现直流电机的伺服控制;(3)实现电机的自锁;(4)实现示教编程及在线修改程序;(5)可以设置参考点,使机器人在空间有一个固定的参考位置,可以回参考点。4.2 实现方法以模块化程序设计思想为指导,以预期要实现的功能作为各个模块,设计控制软件。 从图3.1可以看出,工控机通过数据采集控制。编程的任务其实就是用计算机控制数据采集卡使之发出或获取一系列数字量、模拟量。 研华公司的数据采集卡驱动程序中,附带许多与板卡相关的函数和数据结构以供使用,极
35、大的方便了程序编写。 本文采用了Visual C+作为编程工具。4.2.1 实时显示各个关节角及运动范围控制在BOOL CRobotDlg:OnInitDialog()函数中,设置定时器Set Timer(1, gwScanTime, NULL),然后在void CRobotDlg:OnTimer(UINT nIDEvent)函数中,通过调用bool CRobotDlg:position_now(USHORT ka1_chan),采样电位器输出电压,通过前面的电位器标定函数,换算出各个关节的角度,并显示出来。在void CRobotDlg:OnChangeAngle?Edit()函数中(?表示
36、1,2,3,4,5),将换算出的角度与该关节预设的运动范围作比较,看其是否在此区间内,否则弹出警告对话框,并且自动停止该关节的运动。4.2.2 直流电机的伺服控制对于大功率的直流电机,一般采用PWM控制来调节运行速度,这样可以提高电路及电机的运行效率,而本文中的电机功率并不是很大,为方便期间,采用了线性控制方法来调速。以关节1为例,与该模块相关的函数有OnZ1Button(), OnF1Button(), OnT1Button(),它们分别表示用来控制电机的正转、反转和停止,其中电机的运行速度靠输入的电压值调节;另外一个函数OnRun1Button()是用来实现电机的位置伺服控制,在预定的关节
37、角范围内,电机可以运行到任何一输入的位置停止。4.2.3电机的自锁前面在讲到该机器人关节上未装制动器,所以必须通过软件程序实现关节的自锁,尤其是肩关节和肘关节的自锁。解决思路:大臂和小臂在电机运转时不会由于重力而掉落,在电机停止的时候却会下落,因为电机一旦停止,就失去了驱动力矩,因此若想让大臂和小臂停止在预定位置,应该在此位置给关节电机施加一个电压,让它担负起大臂或小臂,而不让其由于重力而下落。但是,在不同的位置,重力对大臂或小臂的力矩不同,应提供给电机的电压也不同,如何选取电机的电压呢?提供给电机的电压小了,不足以抵抗重力的力矩;提供给电机的电压大了,会使电机转动,使大臂或小臂上升;所以,最
38、好能通过程序来自适应选择这个制动电压,方法有多种,下面是本文的设计过程。程序设计方法一: 在调用在OnT2Button()或OnT3Button()函数时,先给电机一个0电压,使电机失去驱动力矩,同时调用position now(USHORT ka1_chan)函数获得此刻的关节位置,然后延时一段时间比如0.1s,再给电机一个小电压,形成一个小的制动力矩,通过采样此刻位置看其是否能使关节制动;如果不能,则使该电压值按照一定的步长线性增加,以增大制动力矩;这通过一个while()循环实现,如果采样位置不再减小,则表示大臂或小臂已停止下落,可跳出循环。下图为程序流程图:调用OnT2Button()
39、或OnT3Button()函数使电机电压为0,并采样此时位置,将电位器输出值存放在fVoltage_former中考虑到大臂或小臂上升时的惯性,循环采样一直到采样值fVoltage=fVoltage_former跳出循环,表示大臂或小臂已经制动在自所位置了方法一验证: 用方法一编写的程序,调用OnT2Button()或OnT3Button()函数后,对于正在上升的臂可以实现很好的制动,而对于下降的臂则不可靠,有时候下降的臂停止下落后会反弹又向上运动。 定性分析其原因是由于上升的臂在电机失去驱动力矩后,在重力作用下会慢慢下落,下落初速度为0,静止后的速度变化不大,制动时间短,容易制动;而下降的臂
40、失去驱动力矩后,在重力作用下仍以原来的速度下落,静止后的速度变化较大,制动时间长,很容易使制动电压的线性增长时,超过平衡重力所需要的电压,从而导致反弹现象的发生,其实质是由于电压的超调造成的。 此后,针对这种反弹现象对程序作过多次修改,结果都不太理想,所以就尝试换一种方法。程序设计方法二:方法二采用传统的PID控制,电压超调后还可以减小,可以避免反弹现象的发生。下图为程序流程图:调用OnT2Button()或OnT3Button()函数使电机电压为0,并采样此时位置,将电位器输出值存放在fVoltage_former中延时tms,再次采样,取得误差量e1= fVoltage_former- f
41、Voltage进入for循环延时tms,再次采样,取得误差量,使e2=e1,e1= fVoltage_former- fVoltage;误差积累sume+=fabs(e1)使电机输出电压v=kp*e1+ki*sume+kd*(e1-e2)用for函数控制循环次数,经过n此循环后,跳出循环,大臂或小臂已停止下落实现制动方法二验证:由于方法二采用PID控制,需要选择合适的比例、积分、微分系数;另外还要选择for()循环中的延时时间t和循环次数n。选择结果:kp=2.0, ki=0.02, kd=0.04, t=10, n=10;所以最终制动时间为n*t=100ms总结: 对于方法二,其控制方框图如
42、图4.1所示:图4.1控制方框图4.2.4 示教编程及在线修改程序设计方法:当机器人停止在某个位置时,可以记录下在该位置所对应的一组关节角,这一组关节角用一个结构体存储struct positionfloat Voltage1;float Voltage2;float Voltage3;float Voltage4;float Voltage5;struct position *next;记录的位置同时显示在列表框中,记录位置不超过1000个。为了便于对这些位置作修改,本文采用链表来动态存储这些结构体。当记录结束以后,就可以运行刚才记录的一系列位置了,由于采用链表结构存储程序,所以取用这些程序
43、很方便,只需用一个指针从链表首部开始取程序,逐行运行,至到链表末尾即可。程序运行的时候,机器人各个关节同时运动,工作效率高;正在运行的那行程序,以高亮状态显示。另外,对于记录的位置可以做删除、清空等操作。4.2.5 设置参考点及回参考点程序启动或退出的时候,机器人应停留在预设的参考点上,这个参考点在初始对话框函数BOOL CRobotDlg:OnInitDialog()中预先设置。在程序运行期间,使用者也可以自行设置。回参考点的程序和回放示教程序一样,不过回参考点只是运行到一个位置。第五章 总结5.1 所完成的工作1、对实验平台的改造 本文利用的是报废的焊接机器人,要改造成送料机器人,不但要对
44、末端执行机构进行重新设计,还要重新布线。2、对关节轴电位器进行重新标定 由于标定电压不同,标定曲线和所得的函数关系就不同,本文选用的是10v电压。3、 设计端子板电路及驱动电路 端子板是计算机、板卡控制信号端与机器人电路端的“桥梁”,承担着信号调理、驱动放大等任务。4、 控制软件的设计 软件是机器人的“大脑思维”,软件的设计就是将人的意志赋予机器人的“大脑”。5.2 设计经验 1 、底座设计成长方体不合理当腰关节在不同的位置时,肩关节运动的下限不同,不便于编程;最好将底座设计成圆柱体,并且下面带有法兰支撑。 2、 最好安装机械制动装置 仅依靠程序来实现制动并不可靠,例如突然掉电,将无法制动。 3、 电机上应安装放电回路 电机相当于一个线圈,在电机启动或者停止瞬间,会产生很高的感应电动势,很可能会对电路中的元器件造成破坏,所以要加上稳压或者续流元件。4、 电位器输出电压会在一定范围内会有无规则的波动由于电位器材料电阻率分布的不均匀以及电刷滑动时接触电阻的无规律变化,会引起所谓的“滑动噪声”。这导致电位器反馈电压并不准确。5、 关节角的方向及电位器的安装关节角最好符合关节角坐标系,并且电位器输出电压最好随关节角的增大而增大,这样便于编程。5.3 误差分析 本文中每个关节的角度误差在2左右,由于是开环机构,所以综合叠加