论文内容:(关注进入公众号回复机器人论文可进行下载完整版)机械手型机器人(以下称机械臂)作为当代机器人领域的重要组成部分,在当今社会的诸多领域发挥着其重要作用。作为数学、机械工程、电气与电子工程、控制工程、计算机科学与认知科学等学科交叉的产物,机械臂控制系统及其设计兼具着工程意义和理论意义。故可将机械臂作为一个教学平台,以展示相关学科在实践中的应用,同时可对理论知识进行有效的补充。作为全球最流行开源硬件之一的Arduino,同时是一款优秀的硬件开放平台,更代表着开源硬件的一种趋势。其简单的开放方式使得设计者更专注设计的创意和实现,能够更快的完成项目开发,节约了时间成本,缩短了开发周期。 [1]基于以上两点,本设计确定为“基于Arduino平台的六自由度机械臂”。(1)轴数:在一个平面中取得任意点需要两个轴,在空间中取得任意点则需要三个轴。要完全控制手臂末端(即手腕)的指向,则需要另外三个轴(平摆、俯仰及横摇);(3)工作空间:在空间中机器人可到达的区域的集合;(4)运动学:运动学中,通常研究位置、速度、加速度和位置变量对于时间或其他变量的高阶微分。而机械臂运动学的研究对象就是运动的全部几何和时间特性;(5)负荷能力:机械臂载满族其他性能的要求下,能够承载的负荷重量;(6)速率:该参数可由各轴的角速率或线速率定义,或者以复合速率,意即以手臂终端速率来定义;(7)加速度:这是一个限制因素,因为在进行短距离移动或需要常常改变方向的复杂路径时,机械臂可能无法达到其最大速度;
(8)精度(正确性):机械臂到达指定位置的精确程度。(9)重复精度(变化性):指如果动作重复多次,机械臂到达同样位置的精确程度。[2]-[3]本设计是在已设计好的基于ABB系列机械臂模型基础上通过添加电源模块、控制模块、驱动模块等相关模块并进行程序设计编写,最终完成一个可进行指定动作或任务的可控机械臂系统,同时可对现实中工业机械臂的喷涂、焊接等工作进行有效的模拟。设计采用双电源——锂电池和市电供能,各自由度之间相互独立,动作时互不干涉。目前已实现矩阵键盘、红外、蓝牙以及PS2手柄控制,其中矩阵键盘以及红外遥控由Arduino开发板作为信号处理模块,蓝牙和PS2手柄由舵机驱动板作为信号处理模块。用户可根据需求对系统添加相关模块以实现功能扩展。设计过程主要进行了如下工作:首先,设计硬件系统并对硬件部分进行组装连接。将机械臂零件组装成机械臂主体。采用亚克力板作为机械臂系统底座,底座除了作为硬件电路的装配箱之外,还兼具配重的作用。底座中装有除舵机外的其他硬件电路部分,包括:以开源硬件中的代表——Arduino作为控制信号接受和指令输出系统,使用舵机和舵机驱动版作为驱动和指令接收系统,Arduino电路板与舵机驱动板之间通过串口进行通讯。将锂电池和开关电源作为能源供应系统即电源部分并实现双电源切换。由于系统需采用稳定的5V供电,故添加一个稳压装置以保证供电的稳定。在以上系统的基础上进而实现了键盘、红外、蓝牙、PS2手柄的控制。添加声光报警系统,在动作完成时提醒用户,该功能仅在矩阵键盘和红外遥控时有效。本设计除肘关节外其余关节采用舵机直接驱动方式,对舵机性能(如扭矩)有着较高的要求。除腕部采用两个小型舵机外,其余关节部分均采用大扭矩金属舵机驱动。其次基于机械臂构型种类标准确定了本设计机械臂的结构类型同时分析了该机械臂的有关技术参数,包括:组成部分、腕部结构、自由度、各关节运动范围等。建立了本设计机械臂的标准D-H参数表并推导出该机械臂的正运动学矩阵方程和逆运动学解析解(方程),并分析了机械臂存在的多解问题。通过Matlab利用Robotics工具箱建立了机械臂三维模型,对其正运动学矩阵方程、逆运动学解析解(方程)以及多解问题进行验证和仿真分析,并在正运动学矩阵方程的基础上计算绘制出机械臂的工作空间,包括机械臂工作空间的立体仿真、XOY平面的投影、XOZ平面的投影以及YOZ平面的投影。然后简单分析了机械臂在关节空间轨迹规划中最基础的三次多项式插值方法,并通过Matlab对关节空间轨迹规划方法进行了仿真模拟分析。详细分析了机械臂在直角空间的轨迹规划,提出了针对本设计中机械臂模型的直线路径和圆弧路径的解决方案:空间直线轨迹运动插补方法和空间圆弧运动插补方法,介绍了结合Matlab和Robotics工具箱的直角空间规划算法并进行仿真验证,在此基础上设计了若干大写英文字母和简单汉字的书写以及图案绘制的方案与其他指定任务动作并对其进行了仿真测试。再次进行了软件程序设计。本设计中舵机驱动板接收到的为动作组信息,根据接受到的信息来执行相应的动作,若控制采用矩阵键盘和红外遥控,则动作组信息由Arduino板根据检测到的不同键值发出,若控制采用蓝牙和PS2手柄控制,则动作组信息由手机和PS2手柄发出。程序编写设计包括Arduino的控制程序代码设计和舵机驱动板的动作指令代码设计两个环节。在控制程序代码设计中分析了Arduino的程序控制流程以及程序组成部分。由于Arduino的库系统,使得代码编写实现面对对象编程,简化了代码内容,缩短了编写步骤和编写时间。其中针对舵机驱动板的动作指令代码使用了Matlab编写C语言,进一步节省了代码编写时间。根据机械臂的实际动作情况进行相关动作代码校正修改,使机械臂的演示动作得到优化。在本设计中,共编辑了12组动作任务,包括:字母“A”、“M”,“NCIST”、汉字“王炎”、汉字与字母“小P”、图案“圆 1”、“圆 2”、“椭圆”、“五角星”和两组动作任务“倒水”和“舞棍”,以及恢复初始状态。设计的动作可以用来检验和演示机械臂的空间直线运动、空间圆弧运动以及两者运动结合的情况。最后根据机械臂完成规定动作指令的情况,将实际动作结果与仿真标准结果进行对比,对系统进行总结分析以及对系统提出改善建议。由上可知本设计过程共分理论推导、软件仿真,硬件设计、软件设计以及实验验证总结五部分,其中理论推导与软件仿真是设计的基础,为后面的实践动作提供了参考。建立机械臂的三维模型与运动模型仿真是设计过程中不可缺少的一个环节。Matlab的相关工具箱是很便利的工具,对设计的进展发挥出了很大的作用,本设计中的仿真和计算只用到了工具箱中的很少一部分函数,更多函数的作用有待今后在实践中进一步运用。由于设计采用舵机驱动,所以本设计未对机械臂的动力学、速度、加速度等参数进行分析或详细分析,而在机械臂的控制分析中这些都是需要考虑与计算的参数。由于硬件控制的限制,目前还不能实现按键、红外遥控、PS2手柄对单个关节的实时控制,所以本设计机械臂依然有着局限性,有待进一步完善。综合实验结果来看该机械臂系统可以完成规定的动作任务,可对相关动作进行有效演示,但限于机械臂自身机械结构和驱动装置的问题,在很大程度上机械臂的精度受到了限制,尽管可以通过代码校正修改进行改善,但依旧不能从根本上解决问题,故本设计机械臂对于精度要求不高的动作和任务有着良好的示范作用。负载方面由于腕部舵机自身力矩以及末端执行器自身重量的问题,系统不能对超过150g的物体进行良好操作。对于超过150g小于200g的物体尽管可以勉强完成任务,但对舵机自身以及任务的完成质量都会造成很大的影响。对于超过200g的物体不能进行姿态操作。同时本机械臂的抖动问题尚未得到根本解决。在本设计过程中涉及到多方面知识的运用与结合,包括硬件电路设计与连接,程序流程分析与编译,机械臂结构模型与运动学分析等等。正如前文所提,机械臂的设计及控制是多种学科交叉的产物。通过设计与实物操作,可以看出本系统有着较好的教学示范作用,可将理论知识与实践操作相结合,通过适当添加传感器进行功能扩展以应用于之后的不同研究或项目,同时也为今后的机械臂教学和实验提供参考。本设计最终实现的机械臂按设计的程序执行动作和任务,并可实现按键、红外、蓝牙和PS2控制。在设计中还需完成以下任务:(1) 确定机械臂标准DH参数表,推导出正运动学矩阵方程和逆运动学解(方程)并分析多解问题;(2) 熟悉Robotics工具箱中主要函数的作用和格式,利用Matlab建立机械臂三维模型,绘制出其工作空间范围;(3) 进行轨迹规划,设计出机械臂直线轨迹和圆弧轨迹方案,并进行仿真验证;(4) 在任务(3)的基础上编写程序完成字母和汉字书写、从指定位置取水倒水和挥棒动作;机械臂骨架:这是机械臂的主体部分。由连杆、活动关节、及其他结构部件构成。如果没有其他部件,机械臂骨架本身并不是机械臂。末端执行器:它是连接在机械臂最后一个关节上的部件,用于与其他机构连接或执行其他指定任务。驱动器:驱动器是机械臂的“肌肉”。控制器将控制信号传送给驱动器,驱动器再控制机械臂关节和连杆的运动。常见的驱动器有伺服电机、步进电机、气缸及液压缸等。也还有一些用于某些特殊场合的新型驱动器。传感器:传感器用来收集机械臂内部状态的信息或用来与外部环境进行通信。集成在机器人内的传感器将每个关节和连杆的信息发送给控制器,于是控制器就能确定机械臂的当前构型姿态,同时机械臂也常配有许多外部传感器,如视觉系统、触觉传感器、语言合成器等,已使机械臂能与外界通信。控制器:机械臂控制器与人的小脑相似,虽然小脑的功能没有人的大脑功能强大,但它却控制者人体的运动。机械臂控制器从计算机(系统的大脑)获取数据,控制驱动器的动作,并与传感器反馈的信息一起协调机械臂的运动。处理器:机械臂的大脑,用来计算机械臂的关节运动,确定每个关节要到达预定的速度和位置应该移动的数据,并监督控制器与传感器协调动作。在一些系统中,控制器和处理器集中在一个单元,而在有些系统中它们则是各自独立的。软件:用于机械臂的软件大致分三部分。第一部分是操作系统,用来操作处理器;第二部分是机械臂软件,根据机械臂的运动方程计算每个关节的必要动作,并将信息传送给控制器。第三部分是面向应用的子程序集合和针对特定任务而专为机械臂或外部设备开发的程序。自由度是机械臂的一个重要指标,在介绍机械臂的自由度之前先来说下刚体自由度。一个刚体任何一点都与坐标轴的正交集合相关。刚体能够坐标些进行独立运动的数目称为自由度(DOF,Degree Of Freedom)的数目。物体能够进行的运动包括:[17]沿着坐标轴ox、oy和oz的三个平移运动T1、、T2和T3。绕着坐标轴ox、oy和oz的三个旋转运动R1、R2和R3。(图2-1)这意味着刚体可以通过运用三个平移运动和三个旋转运动,进行相对于坐标系的定向和运动。[4]机械臂的自由度表示机械臂中具有独立位置变量的数目也可认为是末端执行器相对于参考坐标系能够进行独立运动的数目。对于一个典型的工业机械臂或类工业机械臂来讲,由于操作臂大多是开式的运动链。而且每个关节位置都由一个独立的变量定义,故机械臂的关节数目等于自由度数目。[3]对于机械臂系统,从来不将末端执行器考虑为一个自由度。所有的机械臂都有该附加功能,它看起来类似于一个稀有度,但其动作并不计入机械臂的自由度。[2]机械臂有多种不同类型的关节,有线性的、旋转的和球型的。但大多数机械臂的关节是线性或旋转型关节。滑动关节是线性的,它不包括旋转结构,主要用于台架构型、圆柱构型或类似的关节构型。回转关节是旋转型的,大部分旋转关节由电机驱动。机械臂的构型通常根据它们的坐标系确定(图)。滑动关节用P表示,旋转关节用R表示,球型关节用S表示。而机械臂构型则用一系列的P、R、S来描述。例如,一个机器人有三个滑动关节和三个旋转关节,则用3P3R表示。以下则是机械臂定位的常用构型(图2-2)。直角坐标/笛卡尔坐标型(3P) 这种机械臂由三个线性关节组成,这三个线性关节用来确定末端执行器的位置,通常还带有附加的旋转关节来确定末端执行器的姿态。圆柱坐标型(PRP) 圆柱坐标机械臂由两个滑动关节和一个旋转关节来确定部件的位置,在附加旋转关节来确定部件的姿态。球坐标型(P2R) 球坐标机械臂由一个滑动关节和两个旋转关节来确定部件的位置,同样通过附加的旋转关节确定`部件的姿态。旋转/关节型(3R) 这种机械臂的关节去都是旋转的,是工业机器人中最常见的构型。选择性柔性装配机械臂(Selective Compliant Assembly Robot Arm, SCARA) 这类机械臂有两个饼脸的旋转关节,可以使机械臂在水平方向上运动,此外再用附加的滑动关节做垂直运动。SCARA机械臂常用于装配作业,其显著的特点是在x-y平面上的运动具有较大的柔性,而沿z轴则具有较强的刚性。机械臂的腕部可设计成具有不同的自由度和不同结构。通常情况下为了使末端执行器能处空间任意姿态,要求腕部有三个自由度。通常将手腕的滚转(翻滚)叫做Roll,用R表示;把手腕的俯仰叫做Pitch,用P表示;把手腕的偏摇叫做Yaw,用Y表示。,有时将俯仰和偏摇归于一类叫做弯转(Bend),用B表示。滚转是绕着杆的轴线的运动,使执行部分绕自身轴线运动(图2-3 a);俯仰是绕水平轴的转动,使执行部分上下运动(图2-3 b);偏摇是绕垂直轴的运动,是执行部分左右运动(图2-3 c)。手腕按自由度数目分可分为单自由度手腕(图 2-4)、二自由度手腕和三自由度手腕。单自由度手腕仅包括一个弯转或一个滚转或一个滑动,不再重点说明。下面重点说下双自由度和三自由度手腕。二自由度和三自由度手腕分类如图2-5所示,图示腕部为典型设计且结构终端皆为滚转。对某些特殊应用,也可采用其他设计。具有二自由度的腕部尤为实用,因为某些机械臂,如用于喷漆的机械臂,其腕部只要两个自由度即可将喷漆装置指向预定姿态。其方式有两种可能性:具有2个滚转的腕部为第1类。双滚转腕部应有两个分开的杆,每个杆皆可绕其轴转动从而达到自由度要求。在A型设计中,两个杆轴线的交点位于实际联结点之外;对B型设计,交点与联结点则重合。双自由度的第2类腕部由一个弯转关节一个滚转关节组成。具有三个自由度的腕部,可有四类设计。第3类为弯—弯—滚(BBR)型。第4类腕部设计有一个弯转以及两个滚转。第5类设计具有滚—弯—滚(RBR)动作。第6类腕部具有三个滚转动作。此类亦可有两个设计方案:不同轴和同轴。本机械臂系统原型为ABB 1520型弧焊工业机器人[19](图2-6 a),模型系统由机械臂骨架包括臂部和腕部、末端执行器、驱动器、控制器、电源组成,将舵机作为驱动单元,其中为能实现英文字母和汉字的书写以及其他制定任务的完成,共制作了两个末端执行器——夹笔器和机械爪。在执行任务时可对两个执行器进行拆卸更换。本机械臂可分为髋,肩,肘,腕四组关节,其中有髋关节、肩关节和肘关节各一个旋转自由度。腕关节有三个旋转自由度。六个自由度由七个舵机完成,其中髋、肘、腕三个关节的五个自由度各由一个舵机驱动,肩关节的自由度有两个舵机完成,以提供更大动力。机械臂连杆与关节布局如图(2-6 b)。由于本机械臂系统关节均为旋转关节,腕部系统本身可看作由三个小关节组成,故本系统的坐标构型为6R型。其腕部的结构为滚转—弯转—滚转型(RBR)。第一章 绪论部分。阐述课题研究背景及意义,介绍了国内外相关领域的发展情况,引出了课题的主要研究内容,同时确定了设计目标。第二章 机械臂结构部分。介绍了自由度的相关概念,对机械臂结构类型、组成部分及驱动方式进行了描述。第三章 运动学分析及仿真。本章建立了机械臂DH参数表并在此基础上推导出正运动学矩阵方程和逆运动学解(方程)以及在本设计机械结构下的适当解。借用Matlab软件和Robotics工具箱构建了机械臂三维模型,绘制出工作空间范围,并对正运动学矩阵方程和你逆运动学解(方程)进行验证。分析了机械臂在关节空间中轨迹规划的最基础方法:三次多项式插值方法,并提出了路径规划方案。第四章 控制系统与硬件设计。本章对机械臂系统所用到的电路模块进行了介绍说明,包括控制板,驱动板,电源等,展示了机械臂系统各部分的硬件电路设计。第五章 系统控制方案与程序设计。介绍了Arduino 编程语言的特点及相关函数。介绍了舵机驱动软件的操作说明以及根据舵机驱动板的动作指令代码格式,利用Matlab编写出制定动作任务代码的方案。绘制了主程序的程序流程图和子程序流程图。第六章 机械臂实验展示。展示了机械臂在实际操作中的动作效果。比较与期望效果的差异第七章 总结与展望。本章在于分析本系统存在的缺点和问题,以及相关改善方案,明确了其应用前景并对下一步研究提出展望。
史上最独家、最全、最新、最快的机器人产业资讯将从这里流出~敬请期待
如何快速加入:请长按下方二维码,即可关注