首页 / 一种用于机器人仿真系统的工件放置规划方法

一种用于机器人仿真系统的工件放置规划方法有效专利 发明

技术领域

[0001] 本发明属于机器人领域,涉及计算机图形学和机器人工程等技术,尤其涉及一种用于机器人仿真系统的工件放置规划方法。

相关背景技术

[0002] 机器人进行作业时,往往需要对工件进行一系列的操作,如焊接、打磨、涂胶、喷漆等等。工件相对于机器人的位置和姿态是一个重要的参数,影响着最终的作业质量。如果位置和姿态选取不当,甚至于会使得作业无法完成。在实际生产中,位置和姿态一般是由操作人员手动调整的。这种方式需要反复摸索,比较费时,而且往往不能充分利用机器人的灵活性,以得到更好的作业质量。如果能由计算机自动规划工件位置,将很好地改善这一情况。
[0003] 何广忠《机器人弧焊离线编程系统及其自动编程技术的研究》:中研究了机器人放置规划问题。以机器人底座位置和姿态作为优化的决策变量,建立若干评价函数并以加权的方式得到目标函数,最后采用自适应模拟退火遗传算法来搜索最优解。
[0004] Claire Dumas等《Workpiece Placement Optimizationof Six-Revolute Industrial Serial Robotsfor Machining Operations》:中研究了机器人机加工时工件的放置优化问题。以工件的位置和姿态作为决策变量,建立若干指标并以均方根(Root Mean Square)的方式得到目标函数。采用Matlab中的遗传算法函数(ga Function)进行大范围搜索,然后利用Matlab中的非线性多元函数最小值求解函数(fminconFunction)来进行局部搜索。
[0005] 然而,上述技术中,何广忠的《机器人弧焊离线编程系统及其自动编程技术的研究》优化的是机器人的位置和姿态,而不是工件。采用加权求和的方式处理多目标优化问题,权值的选取将影响优化结果。Claire Dumas等《Workpiece Placement Optimizationof Six-Revolute Industrial Serial Robotsfor Machining Operations》:主要针对的是机加工应用中的工件放置优化,不具有通用性,上述缺点可总结为:
[0006] (1)目标函数是针对特点的应用,不具有通用性;
[0007] (2)多目标问题的处理不够合理。

具体实施方式

[0086] 下面结合附图和具体实施例对本发明的发明目的作进一步详细地描述,实施例不能在此一一赘述,但本发明的实施方式并不因此限定于以下实施例。
[0087] 工件放置规划是针对特定的工件,同时也是针对该工件表面特定的作业轨迹。在该段作业轨迹上均匀地取N个点。
[0088] 以下实施例中,部分技术术语解释如下:
[0089] 决策变量:在最优化问题中,是指目标函数的自变量,它们的变化将直接引起目标函数的变化。
[0090] 目标/目标函数:针对所要优化的问题而建立的指标,它们是关于决策变量的函数,优化的目的就是使得目标函数最大或者最小。
[0091] 可操作性度量(Manipulability Measure):衡量机器人在某一点处的灵活性的指标,其值等于机器人雅可比矩阵(Jacobian)的行列式。
[0092] 帕累托最优解(pareto optimal set):在多目标最优化问题中,帕累托最优解是一组解集;解集中的各个解是互不占优的关系(见后面非占优排序部分);并且对于解集中的每个解,都无法进一步优化某个目标,而不会劣化其它目标。
[0093] 帕累托前沿(pareto front):即帕累托最优解所对应的目标函数的集合。
[0094] 一种用于机器人仿真系统的工件放置规划方法,包括步骤:
[0095] 根据机器人与工件表面作业轨迹,根据机器人沿所述作业轨迹运动特性的评价指标建立总体目标函数;
[0096] 采用带精英策略的非占优排序遗传算法搜索得到多目标问题的帕累托最优解集;
[0097] 通过加权求和的方式从所述帕累托最优解集中选取最优解,得到最优的作业轨迹方案。
[0098] 具体而言,所述的评价指标包括可达性指标、无碰撞指标、灵活性指标及平稳性指标,
[0099] 所述的可达性指标用来描述机器人可以完成作业轨迹的程度,当作业轨迹上有部分点机器人无法到达,此时的这条轨迹是不可取的,但仍然需要给出一个程度的值,作为优化时的引导信息,其定义如下:
[0100]
[0101] 其中,r是轨迹上机器人可以到达的点的数目nr与轨迹点的总数目N的比,当r的值等于1时,即表示机器人可以到达作业轨迹上的所有点;所述的可达性指标中,判断轨迹上某点是否可达的的步骤具体为:判断所述机器人对该点的位置和姿态求逆解是否收敛,若收敛,则该点可达,反之,该点不可达。
[0102] 所述无碰撞指标用来描述机器人完成作业轨迹时发生碰撞的严重程度,一般也期望其值为1,即没有发生任何碰撞。而当作业轨迹上存在某些点,机器人运动到这些点时会发生碰撞,或者是机器人的内部连杆间碰撞,或是机器人各连杆与工件的碰撞。此时的这条轨迹也是不可取的,仍然需要给出一个程度的值,作为优化时的引导信息。其定义如下:
[0103]
[0104] 其中,c是机器人依次运动到轨迹上各点时,未发生碰撞的点的数目nc与轨迹点总数目N的比,当c的值为1时,即表示没有发生任何碰撞;
[0105] 所述灵活性指标用来描述机器人沿作业轨迹运动时,机器人的运动性能,机器人每运动到一点,计算此时机器人的灵活性,机器人的灵活性是指机器人末端在空间内某一位置点可以取到的姿态的多少,采用可操作性度量(Manipulability Measure)作为机器人在某一点处的灵活性指标,所述可操作性度量值等于机器人雅可比矩阵(Jacobian)的行列式,对于整条作业轨迹而言的机器人的灵活性,是机器人在各点处灵活性的平均值,其定义如下:
[0106]
[0107] 其中,Mi是机器人运动到轨迹上第i点时,机器人的可操作性度量;
[0108] 所述平稳性指标用来描述机器人经过整条作业轨迹时,各个关节角的变化幅度,作业轨迹上每相邻的两个点,计算机器人在这两点间运动时,机器人各个关节角的变化量。由于各个关节的运动范围不同,所以将这个运动量除以关节角对应的运动范围值,得到一个变化幅度的比值。对所有关节角的变化幅度比值加权求和,得到这两个相邻点间的平稳性指标。由于有N个点,可以形成N-1对相邻点,得到N-1个平稳性指标。将它们的平均值,作为最终的速度轨迹的平稳性指标。其定义如下:
[0109]
[0110] 其中:d是机器人的自由度;
[0111] wj是机器人第j关节角的权值,可根据具体的机器人结构给出;
[0112] qi,j是机器人的运动到轨迹上第i点时,其第j关节角的值;
[0113] qjMax和qjMin分别是机器人第j关节角的上极限值和下极限值。
[0114] 具体而言,根据机器人沿所述作业轨迹运动特性的评价指标建立总体目标函数的步骤具体包括:
[0115] 当可达性指标和\或无碰撞指标不是1时,轨迹不可取,此时应该首先优化可达性指标和\或无碰撞指标,并最终使可达性指标和\或无碰撞指标等于1,考虑到,当可达性指标不是1时,轨迹不可取。此时首要的优化目的是使得可达性增加,并最终等于1,此时其它指标是没有意义的,所以都设置为0。同理,当无碰撞指标不是1时,轨迹也不可取。此时应该首先优化无碰撞指标,并使其最终等于1;
[0116] 当可达性指标和\或无碰撞指标等于1时,则进一步优化所述灵活性指标和所述平稳性指标;
[0117] 得到总体目标函数,所述总体目标函数的定义如下:
[0118]
[0119] 其中,T表示矩阵的转置。
[0120] 具体而言,如图3所示,所述采用带精英策略的非占优排序遗传算法搜索得到多目标问题的帕累托最优解集的步骤具体包括步骤:
[0121] (i)随机产生一个父代种群Pt;
[0122] (ii)对父代种群Pt进行交叉、变异操作,得到子代种群Qt;
[0123] (iii)将父代种群Pt和子代种群Qt合并为种群Rt;
[0124] (iv)对种群Rt并进行非占优排序,淘汰掉分级后级数较大的个体;
[0125] (v)对最后一级中的个体,按照拥挤度,淘汰掉末尾的个体,使得种群个体数目保持不变,最终得到新的种群Pt+1;
[0126] (vi)判断是否达到了预设的代数,是则结束搜索,得到多目标问题的帕累托最优解集,否则转至步骤(ii)。
[0127] 具体而言,所述步骤(i)之前还包括步骤:
[0128] 采用二进制编码方式为所有决策变量进行编码,若有k个决策变量为:
[0129] {vi|i=1,2,...,k},
[0130] 每个决策变量的上、下界分别为:
[0131] {Ui|i=1,2,...,k}和{Li|i=1,2,...,k},
[0132] 为每个决策变量指定的搜索精度为:
[0133] {δi|i=1,2,...,k},
[0134] 则第i个决策变量的编码为:
[0135]
[0136] 其中,(I)(2)表示I的二进制数,得到所有决策变量的总体编码为:
[0137] C1C2...Ci...Ck。
[0138] 具体而言,如图1所示,所述交叉操作是针对两个个体的操作,采用多点交叉,对于个体二进制编码的每一位,都以一个概率Pc来决定是否进行交换;所述变异操作是针对单个个体的操作,对于个体二进制编码的每一位,都以一个概率Pm来决定是否改变值。
[0139] 具体而言,所述的非占优排序的步骤具体是指:
[0140] 若每个个体含有r个目标,对于某两个个体A=(a1,...,ar)和B=(b1,...,br),如果各分量的值越小越好,则它们的占优关系通过下述方式确定:
[0141] a)如果对于所有的i=1,2,...,r,都满足ai
[0142] b)如果对于所有的i=1,2,...,r,都满足ai>bi,则B对A占优;
[0143] c)其它情况,A与B互不占优。
[0144] 如图2所示,所述非占优排序的目的是对所有个体进行分级(Ranking),占优的个体其所在的级数更小,互不占优的个体处于同一级。而对于处于同一级的个体,则根据前述的拥挤度来进行排序。最终确定每个个体在种群中的优劣程度。
[0145] 具体而言,所述拥挤度(Crowd Distance)是种群中某个个体与其它个体的距离的大小的描述,若种群中每个个体都含有r个要优化的目标,以第i个目标为标准对种群进行排序,若排序后的种群序列为:
[0146] {Ii,1,Ii,2,...,Ii,j,...,Ii,M},i=1,2,...,r,j=1,2,...,M
[0147] 其中,Ii,j表示以第i个目标为标准进行排序时,排名第j的个体,[0148] 则可定义个体Iij的拥挤度为:
[0149]
[0150] 其中,Oi(Ii,j)表示个体Ii,j的第i个目标值。
[0151] 具体而言,所述通过加权求和的方式从所述帕累托最优解集中选取最优解,得到最优的作业轨迹方案的步骤具体包括步骤:
[0152] NSGA-II最后得到的是一组解集,即帕累托最优解集,所述帕累托最优解集包含个h解,记为:
[0153] {si|i=1,2,...,h};
[0154] 这些解对应的目标函数值为:
[0155] {fi=(oi,1,oi,2,...,oi,r)i=1,2,...,h};
[0156] 为确定这些解间的优劣关系,由操作人员输入一组目标的权值,记为:
[0157] {Wi|i=1,2,...,r};
[0158] 对每个解的各目标加权求和,得到单一的目标函数:
[0159]
[0160] 则最终被选出的最优解:
[0161] s*=st
[0162] 其中t满足:
[0163]
[0164] 上述实施例具有如下特点:
[0165] (1)从机器人和工件表面的轨迹出发,建立了若干评价指标。这此指标与具体的应用类型无关,具有通用性。
[0166] (2)采用带精英策略的非占优排序遗传算法(NSGA-II)与加权求和结合的方式,来处理工件放置规划的多目标优化问题,可以得到更合理的优化结果。
[0167] 上述实施例的中,总体目标函数可以由各子目标直接加权求和得到;搜索方法也可以采用其它的优化算法,如传统的遗传算法,模拟退火算法等,在此不再赘述。
[0168] 本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页 第1页 第2页 第3页