一种面向大型船舶外立面的喷涂机器人自动轨迹规划方法与流程

文档序号:24161167发布日期:2021-03-05 17:04阅读:161来源:国知局
一种面向大型船舶外立面的喷涂机器人自动轨迹规划方法与流程

[0001]
本发明涉及工业机器人喷涂技术领域,特别是涉及一种面向大型船舶外立面的喷涂机器人自动轨迹规划方法。


背景技术:

[0002]
船舶外立面的喷涂轨迹规划作为船舶制造中的关键一环,在船舶制造中起到了至关重要的作用。传统的船舶制造过程中大多使用人工喷涂的方法完成喷涂作业,受到工人经验等因素的影响,该方法喷涂质量无法保证,同时也存在污染环境,危害工人身体健康,工作时间长,工作成本高的缺点。
[0003]
喷涂机器人的轨迹规划有两种方式:人工示教和离线编程。人工示教是工人引导机器人末端执行器运动,对机器人进行编程,使机器人能够重复完成预期动作,使用该方法编程周期长,并且无法完成较为复杂的轨迹规划控制。离线编程的应用使得喷涂机器人的轨迹规划能够脱离机器人本体,在软件中通过编程和仿真完成机器人的喷涂任务,该方法能够节约时间成本,提高喷涂效率,改善工作环境,同时也能显著提高喷涂质量。
[0004]
但是,目前的离线编程在中小型工件中应用居多,并且这些工件以平面为主,针对大型船舶外立面的喷涂机器人自动轨迹规划研究还存在许多问题,主要表现在以下方面:船舶外立面规模较大,与之对应的网格模型数据量巨大,如何设计合理的数据结构对模型进行表示,从而能够高效的对模型进行处理,进而完成轨迹规划任务是一个急需解决的问题。船舶外立面结构复杂,曲率多变,如何根据船体几何特征以及喷涂工艺的需求设计轨迹规划算法是另一个需要研究的问题。


技术实现要素:

[0005]
发明目的:本发明的目的是为了克服已有的技术的不足,提供一种面向大型船舶外立面的喷涂机器人自动轨迹规划方法,该方法提出了采用半边数据结构用以表示大型船舶网格模型,根据大型船舶的几何特征以及喷涂工艺需求,提出了一种新的自动轨迹规划算法。该方法能够满足喷涂作业中期望厚度和均匀性的要求,显著提高喷涂质量和喷涂效率,节约生产成本。
[0006]
技术方案:为实现本发明的目的,本发明所采用的技术方案是:
[0007]
一种面向大型船舶外立面的喷涂机器人自动轨迹规划方法,该方法包括以下步骤:
[0008]
步骤一:针对大型船舶外立面的三角片网格模型采用半边结构存储其模型信息,完成船舶外立面网格模型的拓扑快速重建;
[0009]
步骤二:对模型中各三角片的几何特征进行提取,提取的几何特征包括各三角片的法向量、面积,三角片间二面角;
[0010]
步骤三:先根据实际工艺需求对船舶外立面进行初次区域分割,然后根据步骤一中构建的网格模型几何特征对船舶外立面进行二次区域分割;
[0011]
步骤四:针对近似平面的区域采用切片轨迹生成算法;针对不满足近似平面的区域,采用基于基准曲线的轨迹生成算法,完成自动轨迹规划。
[0012]
所述的面向大型船舶外立面的喷涂机器人自动轨迹规划方法,所述步骤一的具体方法是:
[0013]
(1)针对大型船舶外立面的三角片网格模型采用半边结构存储其模型信息,在半边结构中,三角片的每条边被分为方向相反的两条半边,每个三角片由三条首尾相接的半边组成,半边的方向在每一个三角片中满足右手螺旋定则;对于半边结构所表示的网格模型,每个顶点包含的信息有:该顶点的编号、坐标以及以该顶点为起点的所有半边;每条半边包含的信息有:该半边的编号、指向顶点、所属三角片、前驱半边、后驱半边以及与其对应的twins半边;而每个三角片包含的信息有:三角片编号以及其所含半边;
[0014]
(2)对于大型船舶外立面的半边结构信息,采用哈希法去除冗余顶点:
[0015]
对于三角片的某一顶点坐标(x,y,z)设计关键字key为:
[0016]
key=|int(x)|+|int(y)|+|int(z)|
ꢀꢀꢀ
(1)
[0017]
假设网格模型中记录的顶点数量为n
vertex’,设定哈希表长度len为:
[0018][0019]
采用除留余数法计算哈希函数f(key),其值为哈希地址:
[0020]
f(key)=key mod m(m<len)
ꢀꢀꢀ
(3)
[0021]
对于不同关键字key1和key2映射后哈希函数的值相同的情况即哈希冲突,采用拉链法,将哈希函数值相同但关键字不同的元素放入该地址后的单向链表中,每读入一个新的三角片,获取该三角片顶点,计算顶点对应的关键字及哈希地址,在哈希地址对应的链表中折半查找,若关键字相同,则判断相同关键字元素坐标是否相同,若元素坐标也相同,则该顶点为冗余顶点,去除;
[0022]
(3)然后为去除冗余顶点后的每个顶点建立入射半边表,完成半边合并;
[0023]
随机选取一个三角片并对其顶点建立入射半边表,当读入新三角片t
n
时,首先查找三角片t
n
的半边h
n2
的twins半边,在进行twins半边查找时只需要查找顶点v1的入射半边表中是否存在顶点v3为起点的半边,如果有则进行合并,并将该半边从顶点v1的入射半边表中删除,如果没有说明半边h
n2
暂时没有twins半边;然后将半边h
n1
加入顶点v1的入射半边表中,对于新顶点v
n
,也需要为其设置入射半边表,将半边h
n3
放入该表中。
[0024]
所述的面向大型船舶外立面的喷涂机器人自动轨迹规划方法,步骤二中所述对模型中各三角片的几何特征进行提取的具体方法是:
[0025]
对于网格模型中任一顶点v
i
被m个三角片t
j
(j=1,2...m)共有,则各几何特征的计算如下:
[0026]
三角片法向量n
tj
:对于三角片t
j
,其法向量:
[0027][0028]
三角片面积s
j
:对于三角片t
j
,三条边长度分别为a,b,c,根据海伦公式其面积:
[0029]
其中l=(a+b+c)/2(5)
[0030]
曲面平均法向量n:曲面平均法向量n为该曲面包含的所有三角片法向量的平均值,其计算公式如下:
[0031][0032]
网格顶点法向量n
vj
:在顶点的一阶邻域内,以面积作为加权值进行估算:
[0033][0034]
二面角α:即两个三角片法向量的夹角,它可以用来表示网格模型的平滑程度和弯曲程度,设两个三角片法向量分别为n1与n2,则:
[0035]
α=arccos(n1·
n2)
ꢀꢀꢀ
(8)
[0036]
所述的面向大型船舶外立面的喷涂机器人自动轨迹规划方法,步骤三中所述二次区域分割的具体方法是:
[0037]
(1)设定待生长三角片与相邻三角片的二面角阈值为α
1max
,任意两三角片的二面角阈值为α
2max
,同时创建区域边界数组用于记录区域的边界;
[0038]
(2)遍历三角片,选择其中面积最大的三角片作为基准三角片t
base
构造一个新的区域s1,创建生长半边数组用于记录生长过程中的边界,将基准三角片的三条半边加入到生长半边数组中,以生长半边数组的半边向外生长,若不存在未分区的三角片,则结束;
[0039]
(3)取生长边界数组中的第一条半边,设为h1,由于上文建立了半边结构,因此可以清楚地知道当前半边所属的三角片、其相邻半边以及twins半边,从而实现半边邻域信息的搜索,直接找到半边h1的一阶邻域三角片ti,判断其是否符合生长原则,如果满足,则将其加入区域s1中,同时更新生长半边数组;若不满足,则将半边h1加入区域边界数组中,同时在生长半边数组中删除该半边,重复本步骤,直至生长半边数组为空,意味着本次区域生长完成;
[0040]
(4)完成步骤(3)中的区域生长后,若三角片还有剩余,则遍历剩余三角片,选择其中面积最大的三角片作为基准三角片再次构造一个新的区域s2,进行新一个区域的生长过程,直至所有三角片没有剩余。
[0041]
所述的面向大型船舶外立面的喷涂机器人自动轨迹规划方法,步骤四中所述切片轨迹生成算法的具体方法包括如下步骤:
[0042]
(1)通过投影法建立最小包围盒并建立合适的坐标系;
[0043]
(2)选择矩形短边所在的侧面作为参考平面,这种选择可以使生成路径的拐弯次数最少,基于该参考平面建立一簇平行切片,并求得切片与待喷涂区域的交线。假设喷涂路径间距为d,在交线上每隔距离d进行采样,最后最后对采样点按垂直参考平面的方向进行连接生成最终路径。
[0044]
所述的面向大型船舶外立面的喷涂机器人自动轨迹规划方法,步骤四中所述基于基准曲线的轨迹生成算法的具体方法包括如下步骤:
[0045]
(1)选择测地曲率为0的测地线作为基准曲线;
[0046]
(2)目标基准曲线位置的选取:曲面上测地曲率为0的基准曲线通常不止一条,即
使是选择了测地线也不能保证其他偏移曲线也是测地线,从而出现路径相交或喷涂厚度不均匀等问题,目标基准曲线的选取应使偏移曲线的测地曲率满足一定的要求。因此要确定基准曲线与偏移曲线之间的位置关系对偏移曲线的测地曲率的影响,对于某一基准曲线,将其离散为多段曲线,偏移曲线则是各段基准曲线偏移后连接所得,c
base
即为其中一段基准曲线,其起点和终点分别为p
11
、p
12
,以在p
11
、p
12
处垂直于c
base
的测地线r1、r2为偏移路径,偏移一定距离得到偏移曲线段c
dev
,起点和终点记为p
21
、p
22
,用平滑曲线c
re
连接p
12
、p
21
;假设φ1为曲线r1、c
re
、c
base
围成的区域,φ2为曲线r2、c
re
、c
dev
围成的区域则由局部高斯-波涅定理可得:
[0047][0048][0049]
其中,k
φ1
、k
φ2
分别为区域φ1、φ2的高斯曲率;分别是区域φ1、φ2的边界;θ
1-θ6分别为区域φ1、φ2的角;
[0050]
而和可以表示为:
[0051][0052][0053]
其中,kg1、kg2、kg3、kg4、kg5分别为c
base
、r1、r2、c
re
、c
dev
测地曲率,由于c
base
、r1、r2均为测地线,因此有:
[0054]
kg1=kg2=kg3=0
ꢀꢀꢀ
(13)
[0055]
进一步可得:
[0056][0057]
假设φ=φ1+φ2,k
φ
为φ的高斯曲率,显然有:
[0058][0059]
可得:
[0060][0061]
根据式(16)得到的结论,区域面积越大或区域的高斯曲率k
φ
越大,偏移曲线的测地曲率kg5越大,因此,边界路径与其他路径相交的可能性最大,鉴于此,基准曲线的选择应该使待喷涂区域被分为高斯曲率相等的两部分;使用比较曲面海拔高度的方法,做出曲面上基准曲线两侧垂直于基准曲线的最长测地线记为c1、c2,c1、c2即为海拔高度,选取使海拔高度最小的曲线作为目标基准曲线;
[0062]
(2)得到目标基准曲线后,首先按照固定长度将基准曲线离散为多个段,离散点记为标记点,然后经过标记点并以该点在该目标基准曲线上的切线方向作为法向量作截平面,截平面与曲面相交得到索引曲线,间隔固定距离在索引曲线上取点,将这些点连接起来即可得到偏移曲线,偏移曲线就对应整个喷涂轨迹的其中一条行程。
[0063]
有益效果:与现有技术相比,本发明的技术方案具有以下有益技术效果:
[0064]
本发明针对大型船舶外立面的喷涂任务,设计了一套合理的喷涂机器人自动轨迹规划方法,基于半边结构的曲面重建能够使计算更加高效,完整的轨迹规划方法能够有效地解决大型工件的特征提取、分片以及路径规划问题。本发明能够提高船舶喷涂作业中的喷涂质量和喷涂效率,减少了喷涂工作对于人的依赖性,对于工业制造中的自动化、智能化具有深刻的意义和广泛的应用。
附图说明
[0065]
图1为:整体框架设计流程图;
[0066]
图2为:半边结构示意图;
[0067]
图3为:拉链发解决哈希冲突;
[0068]
图4为:半边合并过程示意图;
[0069]
图5为:三角网格模型几何特征提取;
[0070]
图6为:船舶外立面初次分割;
[0071]
图7为:切片轨迹生成算法示意图,其中图7(a)是最小包围盒示意图,图7(b)是平行切片示意图;
[0072]
图8为:基准曲线与偏移曲线示意图;
[0073]
图9为:曲面海拔高度示意图;
[0074]
图10为:偏移曲线生成。
具体实施方式
[0075]
下面结合附图和具体实施方式对本发明做进一步说明。
[0076]
图1为本专利所提出的一种面向大型船舶外立面的喷涂机器人自动轨迹规划方法的整体框架设计流程图。算法的具体步骤如下:
[0077]
1、基于半边结构的快速重建
[0078]
(1)基于半边结构的网格模型表示
[0079]
本发明采用三角片网格模型,该模型只是数据的罗列,无法表示模型中点、线、面的关系,因此需要一定的数据结构描述模型的拓扑信息,而针对网格模型的常见数据结构查询效率低下,计算较为耗时,因此本发明对描述模型的数据结构进行了改进,提出可一种基于半边结构表示的网格模型。半边结构的示意图见附图2。在半边结构中,三角片的每条边被分为方向相反的两条半边,每个三角片由三条首尾相接的半边组成,半边的方向在每一个三角片中满足右手螺旋定则。图中h1、h2分别为属于三角片t1、三角片t2的半边,h1、h2互为twins半边。对于半边结构所表示的网格模型,每个顶点包含的信息有:该顶点的编号、坐标以及以该顶点为起点的所有半边;每条半边包含的信息有:该半边的编号、指向顶点、所属三角片、前驱半边、后驱半边以及与其对应的twins半边;而每个三角片包含的信息有:三
角片编号以及其所含半边。通过半边结构表示模型信息,可以清楚的知道模型中每个顶点、边和三角片的关系,例如已知某条半边可以快速得到其所属三角片。可见该数据结构能够实现快速的邻域查找,显著提高计算效率。
[0080]
(2)快速重建算法优化
[0081]
本发明基于模型的半边数据结构对模型进行快速重建,重建的步骤分为两步:去除冗余顶点和半边合并,半边合并即将起点和终点一致的半边设置为twins半边,从而建立三角片之间的相邻关系。拓扑重建算法的主要时间消耗在于顶点的查找以及半边的查找,因此本发明从以下两方面改进了拓扑重建算法:首先是去除冗余时利用哈希表来加快顶点的查找,然后在为每个顶点建立入射半边的索引表来加快在合并半边过程中对半边的查找,有效地提升了拓扑重建算法的速度。具体步骤为:
[0082]
1)基于哈希表去除冗余顶点
[0083]
大型船舶网格模型中每个三角片都保存了其三个顶点的信息,这些顶点由于被多个三角片共同占有因此会被对此记录,需要对数据处理删除冗余顶点。
[0084]
首先设计哈希函数,具体做法为:对于三角片的某一顶点坐标(x,y,z)设计关键字key为:
[0085]
key=|int(x)|+|int(y)|+|int(z)|
ꢀꢀꢀ
(1)
[0086]
假设网格模型中记录的顶点数量为n
vertex’,设定哈希表长度len为:
[0087][0088]
采用除留余数法计算哈希函数f(key),其值为哈希地址:
[0089]
f(key)=key mod m(m<len)
ꢀꢀꢀ
(3)
[0090]
对于不同关键字key1和key2映射后哈希函数的值相同的情况即哈希冲突,采用拉链法,将哈希函数值相同但关键字不同的元素放入该地址后的单向链表中,见附图3。
[0091]
每读入一个新的三角片,获取该三角片顶点,计算顶点对应的关键字及哈希地址,在哈希地址对应的链表中折半查找,若关键字相同,则判断相同关键字元素坐标是否相
[0092]
2)半边合并
[0093]
如果直接在半边表中查询某一半边对应的twins半边,效率较低,为了进行高效的运算,本发明提出针对每一个顶点设计入射半边索引表,如附图4,具体做法如下:
[0094]
随机选取一个三角片并对其顶点建立入射半边表,当读入新三角片t
n
时,首先查找三角片t
n
的半边h
n2
的twins半边,在进行twins半边查找时只需要查找顶点v1的入射半边表中是否存在顶点v3为起点的半边,如果有则进行合并,并将该半边从顶点v1的入射半边表中删除,如果没有说明半边h
n2
暂时没有twins半边;然后将半边h
n1
加入顶点v1的入射半边表中,对于新顶点v
n
,也需要为其设置入射半边表,将半边h
n3
放入该表中。
[0095]
2、几何特征提取
[0096]
如附图5,对于网格模型中任一顶点v
i
被m个三角片t
j
(j=1,2...m)共有,则各几何特征的计算如下:
[0097]
三角片法向量n
tj
:对于三角片t
j
,其法向量:
[0098]
[0099]
三角片面积s
j
:对于三角片t
j
,三条边长度分别为a,b,c,根据海伦公式其面积:
[0100]
其中l=(a+b+c)/2
ꢀꢀꢀ
(5)
[0101]
曲面平均法向量n:曲面平均法向量n为该曲面包含的所有三角片法向量的平均值,其计算公式如下:
[0102][0103]
网格顶点法向量n
vj
:在顶点的一阶邻域内,以面积作为加权值进行估算:
[0104][0105]
二面角α:即两个三角片法向量的夹角,它可以用来表示网格模型的平湖市程度和弯曲程度,设两个三角片法向量分别为n1与n2,则:
[0106]
α=arccos(n1·
n2)
ꢀꢀꢀ
(8)
[0107]
3、区域分割
[0108]
(1)初次分割
[0109]
如附图6,根据大型船舶喷涂工艺的需求不同,可以初步将喷涂区域分为两部分,直底部大部分时间被海水浸泡,还会被海洋生物或其他污物附着,因此需要此区域的涂料具有良好的耐海水型和防污性,颜色多为红色;而对于干舷部,常年暴露在阳光下,并且容易受到海浪的冲击,因此需要该区域的涂料具有良好的抗腐蚀性,抗冲击性等特性,颜色一般和海洋环境颜色相近。
[0110]
(2)再分割
[0111]
基于网格模型进行喷涂路径规划时要求喷涂区域弯曲程度不能太大,否则会产生较大的误差,因此要对船舶外立面进行区域再次分割,以满足每个分割后的子片弯曲程度不能太大,从而保证生成路径准确性。本发明采用基于二面角的半边扩展生长算法对区域进行再分割,生长原则为:待生长三角片与相邻三角片二面角低于设定阈值以保证区域局部弯曲程度不会太大,同时待生长三角片与区域内任意三角片二面角低于另一设定阈值以保证区域整体弯曲程度不会太大,具体步骤如下:
[0112]
设定待生长三角片与相邻三角片的二面角阈值为α
1max
,任意两三角片的二面角阈值为α
2max
,同时创建区域边界数组用于记录区域的边界。
[0113]
遍历三角片,选择其中面积最大的三角片作为基准三角片t
base
构造一个新的区域s1,创建生长半边数组用于记录生长过程中的边界,将基准三角片的三条半边加入到生长半边数组中,以生长半边数组的半边向外生长,若不存在未分区的三角片,则结束;
[0114]
取生长边界数组中的第一条半边,设为h1,由于上文建立了半边结构,因此可以清楚地知道当前半边所属的三角片、其相邻半边以及twins半边,从而实现半边邻域信息的搜索,直接找到半边h1的一阶邻域三角片t
i
,判断其是否符合生长原则,如果满足,则将其加入区域s1中,同时更新生长半边数组;若不满足,则将半边h1加入区域边界数组中,同时在生长半边数组中删除该半边,重复本步骤,直至生长半边数组为空,意味着本次区域生长完成;
[0115]
单次区域生长完成,若三角片还有剩余,则遍历剩余三角片,选择其中面积最大的
三角片作为基准三角片再次构造一个新的区域s2,进行新一个区域的生长过程,直至所有三角片没有剩余。
[0116]
,若三角片还有剩余,则进行新一个区域的生长过程。
[0117]
4、轨迹规划
[0118]
对于离线喷涂任务来说,轨迹规划的方法有很多,为了兼顾喷涂的质量和算法的高效性,本发明提出切片轨迹生成算法和基于基准曲线的轨迹生成算法相结合。对于近似平面的区域采用切片轨迹生成算法,这种方法实现简单,效率较高;而对于不满足近似平面的区域,采用基于基准曲线的轨迹生成算法,此算法可以有效地解决切片轨迹生成算法在非近似平面区域喷涂均匀性差的问题。
[0119]
(1)切片轨迹生成算法
[0120]
其核心思想是选取一组与模型相交的切片,通过求取切片与模型表面交线进而求得喷涂轨迹。如附图7,首先通过投影法建立最小包围盒并建立合适的坐标系;然后选择矩形短边所在的侧面(图中的平面c)作为参考平面,这种选择可以使生成路径的拐弯次数最少,基于该参考平面建立一簇平行切片,并求得切片与待喷涂区域的交线。假设喷涂路径间距为d,在交线上每隔距离d进行采样,最后最后对采样点按垂直c平面的方向进行连接生成最终路径。
[0121]
(2)基于基准曲线的轨迹生成算法
[0122]
其核心思想是选取合适的目标基准曲线,然后不断偏移得到新的路径,最终完成整个喷涂区域的路径规划。基准曲线的选择一般为测地曲率为0的测地线,但是曲面上的测地线通常不止一条,即使是选择了测地线也不能保证其他偏移曲线也是测地线,从而出现路径相交或喷涂厚度不均匀等问题,因此,在基于基准曲线的轨迹生成算法中,核心问题是目标基准曲线的选取。
[0123]
首先是目标基准曲线位置的选取,目标基准曲线的选取应使偏移曲线的测地曲率满足一定的要求。因此要确定基准曲线与偏移曲线之间的位置关系对偏移曲线的测地曲率的影响,如附图8,对于某一基准曲线,将其离散为多段曲线,偏移曲线则是各段基准曲线偏移后连接所得,,c
base
即为其中一段基准曲线,其起点和终点分别为p
11
、p
12
,以在p
11
、p
12
处垂直于c
base
的测地线r1、r2为偏移路径,偏移一定距离得到偏移曲线段c
dev
,起点和终点记为p
21
、p
22
,用平滑曲线c
re
连接p
12
、p
21
。假设φ1为曲线r1、c
re
、c
base
围成的区域,φ2为曲线r2、c
re
、c
dev
围成的区域则由局部高斯-波涅定理可得:
[0124][0125][0126]
其中,k
φ1
、k
φ2
分别为区域φ1、φ2的高斯曲率;分别是区域φ1、φ2的边界;θ
1-θ6如附图8所示。
[0127]
而和可以表示为:
[0128]
[0129][0130]
其中,kg1、kg2、kg3、kg4、kg5分别为c
base
、r1、r2、c
re
、c
dev
测地曲率,由于c
base
、r1、r2均为测地线,因此有:
[0131]
kg1=kg2=kg3=0
ꢀꢀꢀ
(13)
[0132]
进一步可得:
[0133][0134]
假设φ=φ1+φ2,k
φ
为φ的高斯曲率,显然有:
[0135][0136]
可得:
[0137]

φ
k
φ
=∫
cdev kg5
ꢀꢀꢀ
(16)
[0138]
根据式16得到的结论,区域面积越大或区域的高斯曲率k
φ
越大,偏移曲线的测地曲率kg5越大,因此,边界路径与其他路径相交的可能性最大,鉴于此,基准曲线的选择应该使待喷涂区域被分为高斯曲率相等的两部分。
[0139]
能够满足将待喷涂区域分为高斯曲率相等的两部分的基准曲线仍然存在不止一条,为了进一步选择合适的基准曲线,本发明使用比较曲面海拔高度的方法,如附图9,做出曲面上基准曲线两侧垂直于基准曲线的最长测地线记为c1、c2,c1、c2即为海拔高度,对于一次喷涂任务,期望喷涂机器人能有较少的转弯次数,这样可以节省喷涂的时间同时保持速度的平稳性,以此作为优化目标,目标基准曲线的选择应使海拔高度最小。
[0140]
得到目标基准曲线后,轨迹规划算法的具体步骤如附图10:首先按照固定长度将基准曲线离散为多个段,离散点记为标记点,然后经过标记点并以该点在基准曲线上的切线方向作为法向量作截平面,截平面与曲面相交得到索引曲线,间隔固定距离在索引曲线上取点,将这些点连接起来即可得到偏移曲线,偏移曲线就对应整个喷涂轨迹的其中一条行程。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1