170 likes | 437 Views
Path Planning of Automatic Optical Inspection Machines for PCB Assembly Systems. PCB 缺陷自动光学检测系统中路径规划策略的研究 Tae-Hyoung Park, Hwa-Jung Kim. 摘要:.
E N D
Path Planning of Automatic Optical Inspection Machines for PCBAssembly Systems PCB缺陷自动光学检测系统中路径规划策略的研究 Tae-Hyoung Park, Hwa-Jung Kim
摘要: 提出了一种路径规划算法,运用在PCB(印刷电路板)装配线AOI(自动光学检测)平台上,以提高机器的效率。在考虑摄像机的FOV(field-of-view)前提下,为了最小化总体的工作时间,检测窗和摄像机的检测次序应该最优化。本文提出了一种新方法,应用一种混合的遗传算法来解决这个高度复杂的最优化问题,同时实现检测窗和检测路径的最优化。通过仿真比较,证明算法的有效性。
2 路径规划问题 图2所示为由移动平台和相机组成的AOI机器。移动平台在Y轴方向移动,摄像机在X轴方向上移动。X方向和Y方向上能同时移动。因为摄像机的视野受其自身限制,因此摄像机通过需要移动来获得整体的图像。
图3所示为检测窗、摄像机的视野和摄像机的移动路径。检测窗是摄像机需要访问的长方形的区域,每个区域都包含许多元件和焊盘。一块PCB板中往往被划分为成百的检测窗区域。FOV是一台摄像机一次照相能够达到的最大摄像范围。因此摄像机的视野往往是固定的,大约在几十毫米。检测聚类是能够被在摄像机FOV范围内的一系列检测窗。检测聚类的大小受摄像机的视野限制。摄像机从图3的等待点开始,然后访问每个检测聚类以获得图像数据。摄像机的路径就是检测聚类的访问路径。图3所示为检测窗、摄像机的视野和摄像机的移动路径。检测窗是摄像机需要访问的长方形的区域,每个区域都包含许多元件和焊盘。一块PCB板中往往被划分为成百的检测窗区域。FOV是一台摄像机一次照相能够达到的最大摄像范围。因此摄像机的视野往往是固定的,大约在几十毫米。检测聚类是能够被在摄像机FOV范围内的一系列检测窗。检测聚类的大小受摄像机的视野限制。摄像机从图3的等待点开始,然后访问每个检测聚类以获得图像数据。摄像机的路径就是检测聚类的访问路径。 待检测元件集合的数量就是摄像机拍照的次数,因此,如果我们减少集合的数量,就可以减少AOI机器图像获取的时间。另外,总的工作时间还包括摄像机在各个检测窗之间的移动时间。因此,检测窗数量和检测路径都需要实现最优化来减少总体的处理时间。AOI中的路径规划问题,就是如何决定元件集合数量和检测路径的问题。
3. 分步的方法 我们把路径规划问题分为两个子问题:检测聚类问题和检测路径问题。检测聚类问题就是求解检测窗的不同组合,使得聚类数量最小化;检测路径问题就是求解使得检测路径最短的访问次序。 检测路径问题可以看成是典型的TSP问题,因此我们能够用著名的TSP算法[6][7]来解决。等待点为摄像机开始点和结束点,计算目标为移动时间,可以由X轴和Y轴的移动轨迹计算得出。 传统的聚类问题[4]是为了求解检测窗聚类,使检测窗和中心检测聚类的距离最小。检测集合的大小并不受限制。但是,在本课题中,检测聚类的大小是受摄像机的FOV限制的。并且检测窗的数量是不定的,目的就是使其最少化。因此,用传统的聚类算法来解决检测窗问题非常困难。
A 单链接聚类算法 单链接算法[4][8]是标准聚类算法之一。该算法从许多初始聚类开始,重复的计算直到集合的数量达到一个固定值。该算法非常容易实现,只需要很小的计算量。但是,结果的好坏受检测窗口的分配影响很大。应用单链接算法来解决我们的问题,摄像机的FOV应该考虑。算法如下: S1.通过设定每个检测窗口为一个集合来生成初始聚类; S2.对于每个聚类,查找邻近的聚类,计算能不能够合并在一起。如果新生成的聚类的范围在摄像机的FOV内,合并这两个聚类; S3.重复S2知道不再有合并。
B.ISODATA 聚类算法 ISODATA(iterative self-organizing data analysis)算法是标准聚类算法中最受欢迎的算法。这种算法由K-聚类算法中改进,算法中的K聚类并不是固定的。ISODATA算法通过反复的合并和分离,使得算法更有效。算法的结果决定于初始聚类。为了解决我们的检测窗问题,对ISODATA算法改进如下: S1.通过把PCB板划分为不同的矩形区域,每个区域作为一个初始聚类。网格的大小和摄像机的FOV一致。 S2.删掉没有检测目标的聚类。 S3.对于每个聚类,应该尽可能多的包含检测窗; S4.如果一些检测窗不再任何聚类内,为这些检测窗增加新聚类。 S5.对于每个聚类,尝试合并附近的聚类。如果合并后的聚类范围不超过FOV,合并这两个聚类。 S6.重复S3-S5直至不再有任何变化。
4.一元化方法 分布式的方法通过两步来解决路径规划问题。但是,这两个问题是相关的,是相互关联的。因此我们尝试用同一方法同时解决这两个问题。 遗传算法被广泛应用于解决复杂的优化问题。遗传算法能够避免计算陷于局部解,从而实现全局解。但是,解的收敛计算可能会花很大时间,这取决于问题的规模和参数。一些研究者已经实现用遗传算法解决聚类问题[11][12]和TSP[13][14]。
A交叉算子 以交叉概率随机选择两个染色体(V1,V2),通过下面的算法交叉计算得到新的染色体(V1’,V2’); S1.从VI中随机选择一个聚类; S2.在V2中搜索上一步中选择的V1聚类,直到所有包含相同检测窗的聚类被找到。选择找到的聚类; S3.在V1中搜索上一步中找到的聚类的检测窗,直到V1所有相同检测窗被找到。然后选择V1中找到的聚类; S4.重复S2-S3知道两组染色体中选择的检测窗一致; S5.交换V1和V2中的所选择的聚类,产生新的染色体组V1’和V2’。
B.变异算子 以突变概率随机选择一个染色体V1.然后,通过随机改变遗传因子的方法生成新的染色体V1’。方法如下: S1.从V1随机选择一个聚类; S2.检查选择聚类中的检测窗是否可以移动到别的聚类。如果可能,移动该检测窗到合适的聚类,从而生成新的染色体V1’;
C.顺序算子 顺序算子对由交叉算子和变异算子改变遗传基因的染色体进行计算,生成新的次序。这种算子是对染色体V1的一元操作: S1设定V1中的第一个聚类作为初始聚类,把该聚类加入次序队列上; S2 查找离当前聚类最近的聚类,只要该聚类不在次序队列中;把找到的聚类设为当前聚类,并加入次序队列中; S3 重复S2-S3知道所有的区域都位于次序队列中; S4 从队列中选择一对聚类,改变次序如果总的处理时间能够减少; S5 重复S4直到队列中所有的聚类都被选择; S6 根据新的队列次序生成一个新的染色体V1’;