16吨汽车起重机结构设计【cad高清图纸和说明书打包】[更新1]
【温馨提示】 dwg后缀的文件为CAD图,可编辑,无水印,高清图,压缩包内文档可直接点开预览,需要原稿请自助充值下载,请见压缩包内的文件及预览,所见才能所得,请细心查看有疑问可以咨询QQ:414951605或1304139763
编号 20080852144本科生毕业设计16T汽车起重机结构设计16T Truck Crane Structure Design学 生 姓 名陈铁炯专 业机械电子工程学 号0852144指 导 教 师陈玲分 院机电工程分院2012年 06 月 机械臂控制和装配计划相结合的精密机械臂摘要本文研究了如何实现对两个手指精密机械手进行自动装配操作。提出了一个多层次装配支持系统。在任务规划层的基础上,计算机辅助设计(CAD)模型、装配序列最先产生,必要的技能信息也从此分解而得。装配顺序为在技能分解层的机器人技能。这些技能,在机器人控制层进行管理和执行。实验结果表明了该系统的可行性和有效性。关键词 机械手 装配计划 程序分解 自动装配1简介由于微电子机械系统(HEMS )技术,许多产品都变得非常小而复杂的,如麦克风,微光学元件,微流体生物医学设备,创造增加了对微型零件的自动化精密装配技术和系统的需求。在半自动化或自动化装配中,许多努力都是以微组装技术为重点。然而,高灵活性,效率高和可靠性好的微组装技术,还是有特深入研究。这篇文章研究了如何实现对两个手指微操作机械手自动装配操作。提出了一个多层次装配支持系统。自动装配是一个复杂的问题,可能涉及许多不同的问题,如任务计划,装配顺序的产生,执行和控制等等。它可以简单地分为两个阶段:装配计划和机器人控制。在装配计划阶段,生成装配所需的信息,如装配顺序。在机器人控制阶段,由装配计划阶段产生的信息驱动机器人,并控制装配作业。程序可以作为装配计划到机器人控制的接口。基于程序基元的几个机器人系统己有报道。这些系统背后的基本理论是机器人编程。机器人的动作被指定为技术单元,在此基础上,装配的任务是手动编写程序。通过这些程序,机器人被控制去自动完成组装任务。一个以程序为基础的微操作系统已经在作者的实验室完成,它可以实现许多显微操作。在该系统中,装配任务被手动分成技能顺序,并且编译成一个文件。再导入文件到系统中,系统可自动执行装配任务。本文试图探讨一个好用,并且简单的顺序代法,以减轻手工编程的负担。它是一种有效的方法,从几何计算机辅助设计CAD模型确定装配顺序。许多方法已经被提出。本文采用一种简单的方法来生成装配序列。它与低层次的CAD数据模型结构无关,并且可以与许多商业CAD软件包提供应用程序编程接口(API)相连。在提出的方法中,不同的组件之间的关系图是首先通过分析装配模型而建立,然后,在图的基础上搜索可能的顺序。根据某些标准,最终得到最优顺序。把装配顺序分解成机器人技术顺序,有些作品被报道。在Nnaji et al.的作品中,按照事先确定的格式,装配任务命令被扩展到更详细的命令,它可以作为机器人技术出现。Mosemann和Wahl的分解方法是基于自动生成装配计划的图表AND/OR的分析.本文提出了一种方法来指导程序分解。零件的装配过程分成不同的阶段,并且部件处于不同的状态。具体的工作流程使部件从一个状态到另一个状态。每个工作流程与一个程序发生器相连。根据工作流程不同有开始状态和目标状态,程序生成器产生一系列的命令,使部件进一步到达它的最终状态。这里提出了系统的层次结构,关于如何通过多个层次利用机器人组装产品的转配信息。最上层是装配任务计划。任务计划和命令生成所需要的信息从CAD模型中提取,并保存在数据库中。在CAD模型的基础上,装配任务顺序生成。在命令分解层,任务分解为程序序列。生成的程序在机器人控制层管理和执行。2任务计划程序是不能直接使用在装配计划阶段,而是使用任务。一个任务可以完成了装配的一系列操作,例如,从通过移动部件定位一个部件,到和另一个部件进行组装。换句话说,一个任务包括许多功能,它们可能通过几个不同程序来完成。一个任务是定义为:T=(基础部件,组装部件,操作)Base_Part和Assembly_Part是两个部件组装在一起。Base_Part固定在工作台上,而Assembly_Part是通过机器人的抓取,组装到Base_Part上。操作描述了Assembly_Part与Base一Part如何组装。操作Insertion_T, screw_T, align_T,.对微细结构通常是简单的,他们可以通过实体几何(CSG)来建立模型。目前,许多商业CAD软件包支持3D CSG建模。装配模型包含两个部件,具有一定的装配关系定义如何将这两个部件进行组装。在CAD模型中,这种关系被几何约束条件限定。几何信息不能直接用于指导装配操作,我们能从CAD模型装配操作所需的必要信息。通过搜索装配CAD模型中定义的装配树和几何关系(配偶关系),我们可以生成一个零件之间的关系图。在图中,节点表示零件。如果节点连接,这意味着在连接的节点(零件)有装配关系。2. 1装配方向在CSG中,两个零件之间的关系,几何约束,最终表示为平面与线条之间的关系,如共线、共面、相切、垂直等。轴与孔的装配,两个零件之间的装配关系包含两个约束:轴Lc_ shaft的中心线与孔Lc_hole的中心线共线,平面P_Hole与平面P_Shaft共面。装配方向是一个装配操作的关键问题。本文采用以下方法在几何约束的基础上计算可能的装配方向(以图3所示的轴孔操作为例子):1.对关系图中的一个零件,计算其每一个几何约束的剩余自由度,也称分离度。对于共面,剩余的自由度为R1一x,Y,ROtz。对于共线,剩余自由度为R2一z,ROtz。 R1R2也可以表示为R1=1,1,0,0,0,1) R2=0,0,1,0,0,1。在这里,1表示是有两部分之间有一个的分离度。R1R2=0,0.0,0,0,1,因此,绕Z轴旋转的自由度度在下面的步骤将被忽略。还会出现一种循环关系在关系图中,例如图中的part5,part6和part7,在计算装配方向之前,循环关系必须打破。假设在CAD模型的各个部分都完全约束,而不是过度约束,采用下面简单的方法循环中的part t,利用公式计算个数Nti=Ri1Ri2Rin,这儿的Rik是指在零件Par i约束下的剩余自由度,举个例子,Upart5,part7,和Upart6,part7中1s的个数分别大于Upart5,part6,和Upart6,part5,那么可以认为零件part7的位置是由part5和part6两部分约束确定的,并且零件part5和零件part6可以通过它们之间的约束而完全约束。在图中我们可以把零件part5和part6结合到一点,也叫复合节点。复合节点将被视为一个单独的部分,但很明显,复合节点意味着装配顺序。2.在关系图中为所有节点的计算装配方向。再次,举个例子,轴孔装配的起始状态,在一个分离度中以一定的距离分离零件(大于最大公差),然后检查是否发生干扰。在R1的x轴与y轴的分离造成轴与孔的干扰。Z轴正方向的分离不会造成干扰。因此,选择z轴正方向作为装配方向,就是矢量M在装配坐标系统的测量。应该指出的是,在某些情况下,对于一个零件可能有几个可能的装配方向。对于装配方向即将结束的装配操作应该放在首位。装配状态时,在装配方向上,零件之间发生接触,可以通过几何约束很简单的检查出来,最后位置通过压力传感器测量,而位置信息作为最终条件3.计算抓的位置。在本文中,是通过两个独立探针来抓取操作零件,这将在第四部分进行讨论,而且抓取考虑零件的面或边缘。在这种情况下会有几个装配方向,通过G1 G2Gi寻找抓取平面,这儿的Gi指当零件处于自由状态时第i个装配方向上可能的抓取面或边。例如,在图4中,对面P1/Pl,P2/P2,和P3/P3,都可以作为抓取平面,抓取平面为末端执行器接近的方向作为抓取平面的法向矢量量。很明显,并非所有平面上所有点都可以抓取。下面的方法用来确定抓面积。末端执行,器用长方体作为模型,首先添加到CAD模型中,与抓取平面共面或者相切。一开始在装配方向上抓取的边远离Base_Part,在装配方向上沿着抓取平面移动末端执行器直到末端执行器完全抓取零件,抓取平面与末端执行器完全接触,或发生碰撞。记下这条边及移动的距离,两者都是在零件的坐标系统中测量而得。4.沿着装配方向逐步分离两个零件,同时检查在其他自由度的干扰,直到在其他自由度上没有干扰发生。显然一定的分离距离能保证在每一个自由度都不发生干扰。这就是所谓的装配方向上的安全长度。这个长度是用于无碰撞路径计算,这将在下一节讨论。2. 2装配顺序有些依据可用于寻找最佳的装配顺序,如组件的机械稳定性,并联执行的准确度,固定装置等等。但对于微装配,在选择装配顺序时,我们应该注意它的一个重要特征育限的工作空间。微装配通常显微镜下进行控制和监测,并且微装配工作空间非常小。装配顺序给装配效率带来很大影响。例如,一个简单的三个零件的组装。在方案a中,零件A首先装配到B上,在这种情况下,因为空间小零件C不能与组件AB装配。为了将零件C与AB组装,组件AB不得不从工作区卸载。然后,再把C的转移和固定到工作区。之后,组件AB重新转移到工作区。在方案b中,没有卸载任何部件的必要。方案a显然是效率低下并且可能带来许多不确定性。换言之,在一个装配顺序中,组件的卸载次数越多,装配越没效率。在本文中,由于微装配小型工作区,部件的必耍卸载次数选择尽可能卸载次数少的。本文提出以下办法来寻求装配顺序。装配关系图是用来寻找最佳的装配顺序。采用试探的方法,减少搜索时间:1.检查与两个以上节点连接的节点.如果它连接节点的装配方向不同,把它们标记为非活动节点,而标记相同装配方向为活动装配方向。2.选择一个不是非活动节点的节点。标记当前节点为基本节点(零件)。第一个零件固定在与装配方向相反的工作区域(这是在CAB模型进行)。把基础件的尺寸(例如重量或体积)与它的连接件相比较,这些尺寸可以通过组装材料清单(BOM)很容易得到。如果基础件相对非常小,就标记为非活动节点。3.选择一个与基本节点相连的节点作为装配节点(零件).如果基本节点需要从工作区卸载就检查装配方向。如果需要,更新一个变量,比如mount+,重新放置元件(注意,不仅有工作区中基础零件;也可能有已经组装的其他零件),以便装配方向保持向上4.在CAD模型,在可能的装配方向上,将装配件移动到基础件上,同时检查是否有干扰(碰撞)发生。如果发生干扰,标记这个基本节点为非活动节点,接着进入第2步,根据零件的几何特征选择操作方式。在这一步中,也计算一个。bstacle Box.这个盒子,模拟长一个长方体,包括了工作区中的所有部件。它是用来计算移动装配件时的无碰撞路径,这将在下一节介绍。这个Obstacle Box用一个位置矢量和它的宽度,高度和长度来描述。5.记录装配顺序,包括操作类型,装配方向,抓取定位6.如果搜寻所有节点之后,没有发现非活动节点,就标记第一基本节点为非活动节点,转到步骤2。如果还没有,选择与装配节点连接的节点。标记为一个装配节点,把这个装配节点作为一个基本节点。检查这个装配节点是否有一个装配方向与之前的装配方向之相同。如果有,在下面的步骤中使用之前的装配方向,然后转到步骤3。整个图形搜索完成后,我们可能有几个装配顺序。比较mount值,选择一个效率更高的方案。如果一个顺序都没反馈,用户可能不得不人为选择一个。如果在图2所示的关系图中有N个节点。所有这些都不是非活动节点,每个节点可能有M个装配方向,则需耍MN次计算找出所有装配顺序。但是,因为通常情况下,一个零件只有一个装配方向和一些飞活动节点,计算应少于MN次。应该指出的是,在上述计算,涉及几个坐标系统,如装配顺序坐标,基础零件坐标和装配坐标。坐标之间由一个4 4变换矩阵来表示,这些都是在当我们创建关系图时在装配CAD模型的基础上计算得来。在数据库中矩阵与所有相关零部件存储在一起。他们还被用在程序分解。3程序分解和执行3.1原始程序的定义原始程序使装配计划和机器人控制之间得以链接。己经有一些对于原始程序的定义这些定义之间的根本区别是技能的复杂性以及它可以实现实现的功能。从装配计划的角度看,一个程序可以实现更多的功能显然更好。然而,对于能实现许多功能的程序的控制可能就会变得复杂。在论文中,用来操作的部分是两个不同的探针,而不是一个探头或平行颚爪。即使是抓取操作,控制过程也是不容易的。此外,像移动一个零件可能不仅涉及机械手,还有工作台。因此,为了简化控制过程,在论文中定义的程序不包括许多功能。更重要的是,技能应该很容易地应用到各种组装任务,即一套程序应该一般表达具体的任务。在程序之中不应有重叠。在论文中,对机器人控制技术的原始程序定义为:Si=Attributes-i,Action-i (Attributes-i),Start-i (Attributes-i),End-i(Attributes-i), Condition-i (Attributes-i)Attributes_ i要被执行的信息。它们可分为必需属性和选项属性,或感官属性和CAD的模型驱动的属性。所代表的属性通过不同层使用的全局变量表现出来Action_i机器人的动作,这是基本sensormotion。在许多行动,如工作台移动,探针移动,工作台旋转,探针旋转,触摸,插入,攻丝,抓取,对于一个程序,只有一个动作。由于空间有限,行动的细节将不在论文中讨论。Star七_i Action i的初始状态,这是由传感器测量。End i Action i的最终状态,这是由传感器值计算。Condition i在何种Action i执行的条件。从上面的定义我们可能会发现,论文中的程序是在机器人开始状态和结束状态的动作,并且它们是在特定条件下执行。论文中的装配计划生成机器人动作序列,并分配给这些行动的属性值。3. 2程序分解一些方法已经被提出用于程序分解。本文提出了一种新的方法来指导程序分解。如上所述,在本文中,一个任务是将Assembly_Part与Base_Part组装。我们定义从自由的状态的Assembly_Part到它与Base_Part装配作为Assembly_Part的装配周期。在装配周期中,Assembly_Part可能在不同的装配状态。图6轴显示为块插入任务相关的工作流程。一个工作流程包含一组程序使Assembly_Par七从一个状态到另一个状态。一个工作流程是与一个特定的程序生成器相关联,程序生成器是有生成的程序控制。对于不同的装配任务,可能使用相同的工作流程,但由于不同的任务产生的特殊程序可能会有所不同。该系统提供默认任务模板,其中定义了默认状态。在与相应的Assembly_Part建立关系后,这些模板被导入到系统中并实例化。在某些情况下,默认的模板中定义的一些状态可能没有用。例如,如果轴己被放置在工作区,被夹具确定准确位置,那么FREE和In_WS状态可以从轴的装配周期中删除。该系统为用户提供了工具来修改这些模板或生成自己的模板。该工具的用户界面将显示在图7。对于一个工作流程,开始状态由感觉值来确定,而目标状态在CAD模型和感官的基础上计算得来。根据开始状态和目标状态,程序生成器生成一系列程序。在这里,我们用图6作为一个例子来说明如何生成程序。装配任务(装配周期)启动后,模板被读入Coordinator中。对于Move工作流程,它的启动状态是Grasped,这意味着Assembly_Part是机器人的末端执行器抓住,显然,Assembly_Part位置也被确定。它的目标状态是Adjusted,这它与Base_Part装配前的状态Adjusted状态,对Assembly_Part方向是由装配方向决定,而Safe Length位置是由长度决定。这些值被放置在任务规划层,并存储在数据库中。当任务模板导入,这些值读入内存坐标,进入工作区的坐标转换。在程序分解中有一个重耍的和必耍的步骤生成一个无碰撞轨迹。在这里,我们使用了直线,简单并且易于计算。假设P3是Assembly_Part在Adjusted状态的位置,P0是在Grasped状态的位置。以下方法生成路径:1、对Assembly_Part和装配方向定位的基础上,选择程序(Rotate_ Table或Rotate_Probes),调整零件方向和赋值这些程序属性。2、在Obstacle Box基础上,装配方向,Assembly_Part的实际位置/方向,中间位置P1和P2都需要来被计算。3、对于每段的路径,验证是否Move_Table程序(对于一个大范围)或Move_Probe程序(一个小范围)应被使用。4、每个段生成的程序清单和对这些程序进行标记。3.3程序运行在一组程序生成之后,这组程序使零件到达特定的状态,这些程序被转移到技能管理模型。该系统使一个或多个程序进入“正在运行的”程序列表,同时派遣它们到微操作机械手。一旦该程序被机器人运行完成,系统就会将他们从“正在运行的任务”清单中删除,并将其放在“已完成的任务”列表中。在所有的这些程序都被运行后,零件的状态被更新完成。对于一些状态,程序的运行和程序的产生可同时进行。例如,对于图6中的Insertion循环,如果零件的位置信息已知,移动工作流程程序生成可以和程序的生成同时进行。装配过程对用户开放。通过目标程序管理表结构,用户可以很容易监督和控制装配过程。例如,用户可以暂停正在运行的程序,调整程序或修改错误,直接输入命令或将机器人调整到手动状态。4实验4.1实验平台本文使用的实验平台对于微装配操作,需要权衡精度和工作空间。为了获得较大的工作空间并且有较高的精度,通常使用两个阶段的控制。这些系统通常是两类不同的执行机构;略显不好的是是拥有较大的工作空间,但精度较低,更好的是有小的工作空间,但精度很高。在系统中,一个平面运动单元提供大范围精度不高的移动操作,以2微米的精度在X和Y方向移动,这是由NSK公司生产的线性工作台控制。这个工作台也可以提供Z轴旋转,它是由一个最大分辨率为0.1/步的步进电机驱动。在这个机械手中,两个独立的探测器,用来操纵微型部件,而不是单一探头或平行领爪。这两个探头固定在两个最大分辨率为0.05/步的步进电机上.然后两台电机分别固定在平行运动机构。这是一个平行六面体的运动链和一个平行四边形的运动链的串行联接。当1,2,3足够小时,最终效应运动可以视为直线运动。励磁器用来驱动并联机构,它包括一个空芯线圈和一个永磁体。永磁铁连接到并行链节,线圈固定在底座上。磁悬浮本质上是不稳定的,因为它是非接触性运行,很容易受到外部干扰。为了尽量减少来自外部干扰的影响,一个基于观测干扰的方法来用来控制我们的显微操作。激光位移传感器直接用来测量探头的位置。反射器连接到末端执行器。由BL AUTOTEC公司生产的纳米力传感器用来测量的力的大小。该微操作机械手的位置分辨率为1微米,最高解析度为0. 8gf,而最大扭矩为0. 5gfcm。一对机械手机构更详细的解释中可以在图16中找到。所有装配作业在由奥林巴斯公司生产的显微镜SZCTV B061下进行。由夏普GPB一KPCI图像采集卡采集的图像信息,它的工作频率为25 MHz。4.2实验机械手组装一个有三个组件的装配件。这是一个在作者实验室研制的微型机器人的轮子。下面的几何约束在CAD模型中定义:CL_cup和CL_axis共线,CL_gear和CL_axis共线,Plane_cup和Plane_gear_1共面,Plane_gear_1和Plane_axis共面根据上述几何约束,三部分构成一个循环关系图。随着商业软件Solidworks2005,创建了CAD模型,它的API函数用于开发装配计划模型Oracle 9.2用来建立装配信息数据库。与程序开发相关的模型用Visual Basic 6.0。程序生成模型在HP工作站运行在Windows 2000上,2. 0G赫兹的CPU和1. 0 GB内存。假设零件的位置可用,可事先花了大约7分钟生成的程序顺序。生成的装配顺序是将齿轮装配到轴上,然后将轴套组装到轴和齿轮上。在装配操作中,零件被放置在专用夹具中,然后移动到工作区域,它们的初始位置和方向可以确定。因此,在实验中,所有的不同零件的程序序列都可以产生,然后转移到程序管理单元。该程序通过TCP/IP通信传输到微操作机械手。因为微操作机械手控制器是基于DOS运行,WTTCP工具套件适应TCP/IP通信协议。因为,目前,该装置自动化控制还没有实现,零件必须手动固定到工作台。不同的任务(不同零件的装配周期)之间的协调需要进行手动操作。图12显示了装配过程中的一些截图。a图中,轴固定在工作区,b图中,齿轮固定在工作区,从c到e,探测器抓取齿轮,移动,并装配到轴上,f图中,轴套固定在工作区,从g到i,轴套与齿轮和轴装配。可以发现,该系统可以成功进行装配任务。5结论本文介绍了一种以程序为基础的操纵系统。在计算机辅助设计(CAD)模型的基础上生成程序序列。通过寻找装配关系,构建一幅装配图。在几何约束的基础上本文提出的方法来得出装配方向和抓取位置,几何约束定义了不同零件之间的关系。因为微操作机器人工作空间非常小,装配顺序会带来太大的影响。现在,在工作区安装件所需的次数为标准来选择最佳的装配顺序。本文介绍方法来指导程序分解。装配过程被分为不同的阶段。在一个阶段,零件处于装配状态。一个特定的工作流程使它到达最终的目标状态,这是装配周期中的理想状态并且是在CAD模型的信息和感觉信息的基础上计算得来。一个特殊的程序生成器,与工作流程相连,产生程序使零件到达它的最终状态.程序序列生成以后,系统分派他们到机械手的控制器来驱动机械手。用实验来验证所提出的方法,组装了三个部件。实验结果证明了该系统的可行性。该系统已经可以进行自动装配操作。但是,仍然有许多问题需要解决,以实现全自动化装配例如,目前,零部件的位保证是通过专用夹具来实现。现在,基于CAD下的图像处理模型正在发展中。预计,随着图像的处理模型的发展,系统可以处理处于随机位置和方向的零件。A mechanical arm control and assembly program combining precision mechanical Abstract This paper researches how to realize the automatic assembly operation on a two-finger precision manipulator. A multi-layer assembly support system is proposed. At the task-planning layer, based on the computer-aided design (CAD) model, the assembly sequence is first generated, and the information necessary for skill decomposition is also derived. Then, the assembly sequence is decomposed into robot skills at the skill-decomposition layer. These generated skills are managed and executed at the robot control layer. Experimental results show the feasibility and efficiency of the proposed system.Keywords Manipulator Assembly planning Skill decomposition Automated assembly1 Introduction Owing to the micro-electro-mechanical systems (MEMS) techniques, many products are becoming very small and complex, such as microphones, micro-optical components, and microfluidic biomedical devices, which creates increasing needs for technologies and systems for the automated precision assembly of miniature parts. Many efforts aiming at semi-automated or automated assembly have been focused on microassembly technologies. However, microassembly techniques of high flexibility, efficiency, and reliability still open to further research. Thispaper researches how to realize the automatic assembly operation on a two-finger micromanipulator. A multi-layer assembly support system is proposed. Automatic assembly is a complex problem which may involve many different issues, such as task planning, assembly sequences generation, execution, and control, etc. It can be simply divided into two phases; the assembly planning and the robot control. At the assembly-planning phase, the information necessary for assembly operations, such as the assembly sequence, is generated. At the robot control phase, the robot is driven based on the information generated at the assembly-planning phase, and the assembly operations are conducted Skill primitives can work as the interface of assembly planning to robot control. Several robot systems based on skill primitives have been reported. The basic idea behind these systems is the robot programming. Robot movements are specified as skill primitives, based on which the assembly task is manually coded into programs. With the programs, the robot is controlled to fulfill assembly tasks automatically. A skill-based micromauipulation system bas been developed in the authors lab, and it can realize many micromauipulation operations.hthe system, the assembly task is manually discomposed into skill sequences and compiled into a file. After importing the file into the system, the system can automatically execute the assembly task. This paper attempts to explore a user-friendly, and at the same time easy, sequence-generation method, to relieve the burden of manually programming the skill sequence. It is an effective method to determine the assembly sequence from geometric computer-aided design (CAD) models. Many approaches have been proposed. This paper applies a simple approach to generate the assembly sequence. It is not involved with the low-level data structure of the CAD model, and can be realized with the application programming interface (API) functions that many commercial CAD software packages provide. In the proposed approach, a relations graph among different components is first constructed by analyzing the assembly model, and then, possible sequences are searched, based on the graph. According to certain criterion, the optimal sequence is finally obtained. To decompose the assembly sequence into robot skill sequences, some works have been reported. In Nnaji et al.s work, the assembly task commands are expanded to more detailed commands, which can be seen as robot skills, according to a predefined format. The decomposition approach of Mosemann and Wahl is based on the analysis of hyperarcs of AND/OR graphs representing the automatically generated assembly plans. This paper proposes a method to guide the skill decomposition. The assembly processes of parts are grouped into different phases, and parts are at different states. Specific workflows push forward parts from one state to another state. Each workflow is associated with a skill generator. According to the different start state and target state of the workflow, the skill generator creates a series of skills that can promote the part to its target state. The hierarchy of the system proposed here ,the assembly information on how to assemble a product is transferred to the robot through multiple layers. The top layer is for the assembly-task planning. The information needed for the task planning and skill generation are extracted from the CAD model and are saved in the database. Based on the CAD model, the assembly task sequences are generated. At the skill-decomposition layer, tasks are decomposed into skill sequences. The generated skills are managed and executed at the robot control layer.2 Task planningSkills are not used directly at the assembly-planning phase. Inste,the concept of a task is used. A task can fulfill a series of assembly operations, for example, from locating a part, through moving the part, to fixing it with another part.hother words, one task includes many functions that may be fulfilled by several different skills. A task is defined as: T = (Base Part; Assembly Part; Operation) Base Part and Assembly Part are two parts that are assembled together. Basees Part is fixed on the worktable, while Assembly-Part is handled by robots end-effector and assembled onto the Basees Part. Operation describes how the Assembly-Part is assembled with the Basees Park Operation Insertion T, screw T,align T,. The structure of microparts is usually uncomplicated, and they can be modeled by the constructive solid geometry (CSG) method. Currently, many commercial CAD software packages can support 3D CSG modeling. The assembly model is represented as an object that consists of two parts with certain assembly relations that define how the parts are to be assembled. In the CAD model, the relations are defined by geometric constraints. The geometric information cannot be used directly to guide the assembly operation-we have to derive the information necessary for assembly operations from the CAD model. Through searching the assembly tree and geometric relations (mates relations) defined in the assemblys CAD model, we can generate a relation graph among parts, for example, In the graph, the nodes represent the parts. If nodes are connected, it means that there are assembly relations among these connected nodes (parts).2.1 Mating direction In CSG, the relations of two parts, geometric constraints, are finally represented as relations between planes and lines, such as collinear, coplanar, tangential, perpendicular, etc. For example, a shaft is assembled in a hole. The assembly relations between the two parts may consist of such two constraints as collinear between the centerline of shaft Lc_shaft and the centerline of hole Lc_hole and coplanar between the plane P_Shaft and the plane P_Hole. The mating direction is a key issue for an assembly operation. This paper applies the following approach to compute the possible mating direction based on the geometric constraints (the shaft-in-hole operation of Fig. 3 is taken as an example): 1. For a part in the relation graph, calculate its remaining degrees of freedoxn,also called degrees of separation, of each geometric constraint. For the coplanar constraint, the remaining degrees of freedom are R1=x, y, Rotz.For the collinear constraint, the remaining degrees of freedom are R2=z,Rotz.R1 and R2 can also be represented as R1=1,1,0,0,0,1 and R2=0,0,1,0,0,1. Here, 1 means that there is a degree of separation between the two parts. R1R2=0,0.0,0,0,1, and so, the degree of freedom around the z axis will be ignored in the following steps. In the case that there is a loop in the relation graph, such as parts Part 5, Part 6, and Part 7 in Fig. 2, the loop has to be broken before the mating direction is calculated. Under the assumption that all parts in the CAD model are fully constrained and not over-constrained, the following simple approach is adopted. For the part tin the loop, calculate the number of is in Nti=Ri1Ri2Rin;where Rik is the remaining degrees of freedom of constraint k by part i. For example, in Fig. 2, given that the number of is inUpart5,part7 and Upart6,part7 is larger than U part5,part6 and U part6,part5,respectively, then it can be regarded that the position of Part 7 is determined by constraints with both Part 5 and Part 6, while Part 5 and Part 6 can be fu比 constrained by constraints between Part 5 and Part 6. We can unite Part 5 and Part 6 as one node in the relation graph, also called a composite node, as shown in Fig. 2b. The composite node will be regarded as a single part, but it is obvious that the composite node implies an assembly sequence. 2. Calculate mating directions for all nodes in the relation graph. Again, beginning at the state that the shaft and the hole are assembled, separate the part in one degree of separation by a certain distance (larger than the maximum tolerance), and then check if interference occurs. Separation in both x axis andy axis of R1 causes the interference between the shaft and the hole. Separation in the +z direction raises no interference. Then, select the +z direction as the mating direction, which is represented as a vector M measured in the coordinate system of the assembly. It should be noted that, in some cases, there may be several possible mating directions for a part. The condition for assembly operation in the mating direction to be ended should be given. When contact occurs between parts in the mating direction at the assembled state, which can be checked simply with geometric constraints, the end condition is measured by force sensory information, whereas position information is used as an end condition. 3. Calculate the grasping position. In this paper, parts are handled and manipulated with two separate probes, which will be discussed in the Sect. 4, and planes or edges are considered for grasping.hthe case that there are several mating directions, the grasping planes are selected as G1G2.Gi, where Gi is possible grasping plane/edge set for the ith mating direction wher the part is at its free state. For example, in Fig. 4, the pair planes Pl/Pl, P2/P2, and P3/P3 can serve as possible grasping planes, and then the grasping planes areGmating_dir1Gmating_dir2Gmating_dir3=P1/P 1,P2/P 2,P3/P 3P1/P 1, P3/P 3P1/P 1, P2/P 2=P1/P 1The approaching direction of the end-effe
收藏