本發(fā)明屬于智能機器人控制,具體是一種基于改進生物激勵神經(jīng)網(wǎng)絡(luò)的軌道客車側(cè)墻板全覆蓋膩子噴涂路徑規(guī)劃方法。
背景技術(shù):
1、隨著軌道車輛制造業(yè)的發(fā)展,傳統(tǒng)的人工噴涂生產(chǎn)手段已無法滿足,機器人自動噴涂作為一種新的智能化噴涂技術(shù),在涂裝領(lǐng)域應(yīng)用已逐漸成熟,受限于膩子高粘度的物理性質(zhì),目前在車體膩子噴涂中尚沒有成功案例。因此傳統(tǒng)涂裝一直沿用人工刮涂方式,使用不飽和聚酯膩子進行整車滿刮,即便如此,人工噴涂打磨方式依然會損失30%的材料。
2、受膩子粘度和固化反應(yīng)影響,每次機器人噴槍開啟時,膩子都會以團狀或柱狀聚攏形式噴出,如果頻繁開關(guān)噴槍甚至會造成膩子堵塞,因此需要盡可能降低開關(guān)噴槍次數(shù)以減少材料浪費和提高膩子涂層質(zhì)量。全覆蓋噴涂路徑規(guī)劃的實現(xiàn)要求在規(guī)定區(qū)域中,規(guī)劃出一條從機器人末端執(zhí)行器起始位置至全域覆蓋的無碰撞連續(xù)路徑,膩子噴涂任務(wù)需要保證路徑的全局路徑總長和路徑重疊率指標達到最優(yōu)。
技術(shù)實現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題是針對上述現(xiàn)有技術(shù)的不足提供一種用于軌道客車側(cè)墻板的全覆蓋膩子噴涂路徑規(guī)劃方法,本發(fā)明針對膩子噴涂的實際工況和軌道客車的自動化噴涂需求,利用改進生物激勵神經(jīng)網(wǎng)絡(luò)算法有效地減少路徑重復(fù)率和總的路徑長度,以達到減少噴槍開啟次數(shù),節(jié)省膩子和提高膩子涂層質(zhì)量的目的。
2、為實現(xiàn)上述技術(shù)目的,本發(fā)明采取的技術(shù)方案為:
3、一種用于軌道客車側(cè)墻板的全覆蓋膩子噴涂路徑規(guī)劃方法,包括:
4、步驟1:獲取軌道客車側(cè)墻板的三維點云數(shù)據(jù),提取基面信息并構(gòu)建柵格地圖,每一個柵格處都放置一個神經(jīng)元并進行初始化;
5、步驟2、引入反饋調(diào)節(jié)系數(shù)和基于順序位的轉(zhuǎn)向函數(shù),改進路徑點選取函數(shù),進而構(gòu)建路徑最優(yōu)點的決策策略,根據(jù)路徑最優(yōu)點的決策策略得到機器人末端執(zhí)行器下一時刻可能移動的柵格單元;
6、步驟3、采用序列重復(fù)值編碼技術(shù)檢測柵格地圖中未覆蓋柵格單元的連通性;
7、步驟4、根據(jù)步驟3得到的結(jié)果判定柵格地圖中未覆蓋柵格區(qū)域是否連通;若不連通,根據(jù)建立的區(qū)域分解風險規(guī)避機制(即下文中的步驟4.2-4.3)獲取機器人末端執(zhí)行器下一時刻實際移動的柵格單元;若連通,直接將步驟2計算得到的機器人末端執(zhí)行器下一時刻可能移動的柵格單元作為機器人末端執(zhí)行器下一時刻實際移動的柵格單元;
8、步驟5、基于步驟1-4的改進生物激勵神經(jīng)網(wǎng)絡(luò)的全覆蓋噴涂路徑規(guī)劃算法進行噴涂路徑規(guī)劃;
9、步驟6、當機器人末端執(zhí)行器陷入死區(qū)時,暫停執(zhí)行基于改進生物激勵神經(jīng)網(wǎng)絡(luò)的全覆蓋噴涂路徑規(guī)劃算法,采用生物激勵神經(jīng)網(wǎng)絡(luò)的點對點路徑規(guī)劃算法進行逃逸,直至機器人末端執(zhí)行器達到未噴涂區(qū)域;
10、步驟7、繼續(xù)執(zhí)行步驟5所述的基于改進生物激勵神經(jīng)網(wǎng)絡(luò)的全覆蓋噴涂路徑規(guī)劃算法,直到柵格地圖中不存在未覆蓋柵格單元,生成規(guī)劃路徑。
11、作為本發(fā)明進一步改進的技術(shù)方案,所述的步驟1具體包括:
12、1.1、采用線激光三維掃描儀器采集待噴涂車體,獲取車體表面點云數(shù)據(jù)后,依據(jù)車體空間幾何信息展平點云數(shù)據(jù)獲得新的點云數(shù)據(jù)p;
13、1.2、確定噴槍霧幅直徑σ和涂層搭接寬度d0,將涂層搭接寬度設(shè)置為d0=σ/3,兩條平行噴涂路徑的噴點間隔寬度d=σ-2d0=σ/3;
14、1.3、構(gòu)建車體的全局噴涂工作地圖,地圖由離散化的柵格單元組成,柵格地圖中的每個柵格尺寸保持一致,柵格地圖尺寸為:
15、
16、其中,xmax(p)表示點云數(shù)據(jù)p沿x軸的最大值,xmin(p)表示點云數(shù)據(jù)p沿x軸的最小值,ymax(p)表示點云數(shù)據(jù)p沿y軸的最大值,ymin(p)表示點云數(shù)據(jù)p沿y軸的最小值,表示x軸方向上的柵格數(shù)量,表示y軸方向上的柵格數(shù)量;
17、1.4、柵格地圖中的每一個柵格單元都表征著車體表面;車窗、車門以及車體缺陷區(qū)域均作為不噴涂區(qū)域,不噴涂區(qū)域的柵格單元(m,n)的表征性質(zhì)設(shè)置為-1,即為障礙物;待噴涂區(qū)域的柵格單元(m,n)的表征性質(zhì)設(shè)置為0,即為未覆蓋柵格,已被路徑規(guī)劃的柵格單元(m,n)的表征性質(zhì)設(shè)置為1,即為已覆蓋柵格;
18、1.5、機器人末端執(zhí)行器為噴槍,規(guī)定噴槍在每個柵格單元上的路徑移動需要花費1個單位時間,確定噴槍在柵格地圖中的進入位置和初始移動方向
19、
20、其中,表示t時刻噴槍所在的柵格單元,t≥0,表示初始時刻噴槍所在的柵格單元,為下一時刻噴槍所在的柵格單元,此時,柵格單元(m,n)(0)的表征性質(zhì)和柵格單元(m,n)(1)的表征性質(zhì)均設(shè)置為1,即為已覆蓋柵格;
21、1.6、將柵格單元作為獨立的神經(jīng)元n,每一個神經(jīng)元與相鄰神經(jīng)元存在拓撲連接關(guān)系;
22、1.7、每一個神經(jīng)元的活性值變化用分流公式表示:
23、
24、其中,xi表示第i個神經(jīng)元的活性值,xj表示第i個神經(jīng)元周圍鄰域神經(jīng)元中的第j個神經(jīng)元的活性值,a、b、d為非負常數(shù),a表示衰減率,b表示神經(jīng)元活性值上限,d表示神經(jīng)元活性值下限;其中[ii]-表示為抑制性激勵,表示為興奮性激勵;ii表示第i個神經(jīng)元的外部輸入,由環(huán)境信息決定,定義為:
25、
26、其中,f(mi,ni)表示第i個神經(jīng)元對應(yīng)的柵格單元(mi,ni)的表征性質(zhì);
27、函數(shù)[a]+和[a]-是線性閾值函數(shù),分別定義為[a]+=max{a,0}和[a]-=max{-a,0};wij=f(dij),dij表示第i個神經(jīng)元與第j個神經(jīng)元之間的歐式距離,e為一個常數(shù)值,e>>b,每一個神經(jīng)元只計算(0,r0)區(qū)間范圍內(nèi)的神經(jīng)元,r0被定義為感受野;f(dij)為:
28、
29、其中,u為衰減系數(shù);
30、1.8、設(shè)置柵格地圖中所有神經(jīng)元活性值為0,利用公式(3)更新一次柵格地圖中全部柵格單元的神經(jīng)元活性值。
31、作為本發(fā)明進一步改進的技術(shù)方案,所述的步驟2具體包括:
32、2.1、限定噴槍只能進行橫向和縱向移動,同時縮小神經(jīng)元感受野大小r0,將鄰域神經(jīng)元的判斷個數(shù)修改為4個;
33、2.2、引入反饋調(diào)節(jié)系數(shù),計算式如下:
34、
35、其中,wsj=|ns-nj|表示第s個神經(jīng)元ns與第j個神經(jīng)元nj之間的歐氏距離,其中神經(jīng)元fc是一個正常數(shù),用于控制反饋強度,是以第j個神經(jīng)元對應(yīng)的柵格單元(mj,nj)為中心的八鄰域神經(jīng)元集合,xj表示第j個神經(jīng)元的活性值;xs表示第j個神經(jīng)元周圍鄰域神經(jīng)元中的第s個神經(jīng)元的活性值;f(ms,ns)表示第s個神經(jīng)元對應(yīng)的柵格單元(ms,ns)的表征性質(zhì);
36、2.3、當兩個神經(jīng)元的周圍環(huán)境信息相同時,會計算出相同的活性值,導(dǎo)致無法判斷最優(yōu)點位;依據(jù)噴槍的起始移動方向設(shè)計基于順序位的轉(zhuǎn)向函數(shù):
37、
38、其中,oc為非負常數(shù);sj為第j個神經(jīng)元在當前神經(jīng)元鄰域集合中的順序編號,其定義為:
39、
40、其中,由決定,且兩向量垂直,表示第i個神經(jīng)元與第j個神經(jīng)元之間的向量;將系數(shù)cj和yj代入到路徑點選取函數(shù)中,最終得到路徑最優(yōu)點的決策公式:
41、
42、2.4、基于公式(12)計算得到噴槍下一時刻可能移動的柵格單元(m,n)(2)。
43、作為本發(fā)明進一步改進的技術(shù)方案,所述的步驟3具體包括:
44、3.1、柵格單元(m,n)(2)的表征性質(zhì)設(shè)置為-1,即為障礙物;
45、3.2、對柵格地圖中每一行柵格的表征性質(zhì)依次檢索,當出現(xiàn)表征性質(zhì)為未覆蓋柵格單元時,繼續(xù)檢索直到出現(xiàn)表征性質(zhì)不相同的柵格單元編碼檢索到的具有相同表征性質(zhì)的連續(xù)柵格單元為連通序列rik(s,e),簡稱rik,s為柵格單元在柵格地圖第i行上的位置索引,e為柵格單元在柵格地圖第i行上的位置索引,k為連通序列r在柵格地圖第i行上的索引值,第i行柵格單元的連通序列集合表示為:
46、
47、完成對柵格地圖上未覆蓋柵格的連通序列編碼,從而得到全部行的連通序列集合:
48、
49、3.3、從柵格地圖第一行的連通序列集合開始檢查,當出現(xiàn)不為空集的連通序列集合時,將l=i+1作為后續(xù)區(qū)域連通性檢驗的起始行;對中的第一個連通序列ri1賦值標號γ,γ=0;之后,分別對中的剩余的連通序列進行標號γ的賦值,且每賦值一個連通序列,γ=γ+1;
50、3.4、判定l是否超出柵格地圖的行數(shù)如果超出,則跳過步驟3.5至3.8,執(zhí)行步驟3.9;否則,執(zhí)行步驟3.5;
51、3.5、依次提取集合中的連通序列其中表示集合的基數(shù);
52、3.6、創(chuàng)建空集合ti+1;提取集合中的每一個連通序列rij與進行連通判定,如果說明rij編碼的柵格單元與編碼的柵格單元都不連通,則給賦值標號γ,且γ=γ+1;否則,將rij的標號添加到集合ti+1中,再通過公式(15)構(gòu)建連通序列的連通父節(jié)點結(jié)構(gòu)樹
53、
54、其中,ξ(rij)表示連通序列rij的連通父節(jié)點結(jié)構(gòu)樹,即與連通序列rij連通的所有連通序列的位置索引集合;{i+1,k}表示連通序列的位置索引;通過結(jié)構(gòu)樹可以追溯到1~i行中與相連通的所有連通序列;
55、3.7、當集合ti+1的基數(shù)大于1時,說明第i行中存在2個以上的連通序列編碼的柵格單元與編碼的柵格單元之間存在連通性,此時需要將集合ti+1中的最小標號值賦予即接著通過查詢的連通父節(jié)點結(jié)構(gòu)樹對包含的全部連通序列進行標號更新:
56、
57、其中,s表示連通父節(jié)點結(jié)構(gòu)樹中連通序列的位置索引集合,例如s={h1,c1,h2,c2,…,hn,cn},其中cn表示連通序列的索引,hn表示連通序列所在行的索引,那么能定位到連通序列表示連通序列的標號;s(2t)表示取集合s中的第2t位置的數(shù),s(2t-1)表示取集合s中的第2t-1位置的數(shù);
58、當集合ti+1的基數(shù)為1時,說明第i行中僅存在1個連通序列編碼的柵格單元與的編碼柵格單元存在連通性,此時僅需要將集合ti+1中的元素賦予給
59、3.8、i=i+1,然后將l=i+1作為后續(xù)區(qū)域連通性檢驗的起始行,執(zhí)行步驟3.4;
60、3.9、獲取柵格地圖中所有的連通序列的標號集合如果去掉集合中重復(fù)元素后得到集合內(nèi)的元素數(shù)量不為1,說明柵格地圖中未覆蓋柵格單元不連通,需要對柵格地圖的連通性進行復(fù)檢,即基于連通序列的連通父節(jié)點結(jié)構(gòu)樹進行標號的反向傳播,具體為對集合r中的每一個連通序列r作條件判斷,當r的標號不為0且r的連通父節(jié)點結(jié)構(gòu)樹中存在標號為0的連通序列時,將0賦值給r和連通父節(jié)點結(jié)構(gòu)樹中所有的連通序列;
61、3.10、計算去掉標號集合中重復(fù)元素后得到集合內(nèi)的元素的數(shù)量
62、3.11、柵格單元(m,n)(2)的表征性質(zhì)設(shè)置為0,即為未覆蓋柵格。
63、作為本發(fā)明進一步改進的技術(shù)方案,所述的步驟4具體包括:
64、4.1、根據(jù)步驟3.10的計算結(jié)果來判定柵格地圖中未覆蓋柵格區(qū)域是否連通,如果不為1,則說明不連通,執(zhí)行步驟4.2至4.3;
65、如果為1,則說明連通,則跳過步驟4.2至4.3,直接將步驟2.4計算得到的噴槍下一時刻可能移動的柵格單元(m,n)(2)作為噴槍下一時刻實際移動的柵格單元,并添加到路徑集合柵格單元(m,n)(2)的表征性質(zhì)設(shè)置為1,即為已覆蓋柵格;
66、4.2、將步驟2.4計算得到的噴槍下一時刻可能移動的柵格單元(m,n)(2),即柵格單元(m,n)(2)的表征性質(zhì)設(shè)置為-1,即為障礙物;
67、4.3、獲取前一時刻噴槍位置(m,n)(1)為中心的4鄰域神經(jīng)元且將4鄰域神經(jīng)元中表征性質(zhì)為0的柵格單元組成神經(jīng)元集合
68、如果集合不為空集,記錄位置(m,n)(1)的神經(jīng)元活性值為x*,利用公式(3)更新柵格地圖中的所有神經(jīng)元活性值,通過公式(12)計算得到下一時刻噴槍可能移動的柵格單元將記錄下的神經(jīng)元活性值x*賦值給位置(m,n)(1)處的神經(jīng)元,將位置作為噴槍下一時刻實際移動的柵格單元,并添加到路徑集合柵格單元的表征性質(zhì)設(shè)置為1,即為已覆蓋柵格,柵格單元(m,n)(2)的表征性質(zhì)設(shè)置為0,即為未覆蓋柵格;
69、如果集合為空集,則將步驟2.4計算得到的噴槍下一時刻可能移動的柵格單元(m,n)(2)作為噴槍下一時刻實際移動的柵格單元,并添加到路徑集合并將柵格單元(m,n)(2)的表征性質(zhì)設(shè)置為1,即為已覆蓋柵格。
70、作為本發(fā)明進一步改進的技術(shù)方案,所述的步驟5具體包括:
71、5.1、利用公式(3)更新柵格地圖中的所有神經(jīng)元活性值;
72、5.2、通過公式(12)計算得到噴槍下一時刻可能移動的柵格單元;
73、5.3、采用步驟3.1至3.11計算柵格地圖中未覆蓋柵格區(qū)域的連通性;
74、5.4、采用步驟4.1至4.3計算噴槍下一時刻實際移動的柵格單元。
75、本發(fā)明的有益效果為:
76、(1)、針對生物激勵神經(jīng)網(wǎng)絡(luò)在全覆蓋路徑規(guī)劃任務(wù)中的路徑欠佳問題,依據(jù)中樞神經(jīng)元感知域內(nèi)的衰減神經(jīng)元的活性值建立反饋調(diào)節(jié)系數(shù),能夠有效解決狹窄區(qū)域處路徑無法完全覆蓋的問題,規(guī)劃出簡潔連貫的路徑。
77、(2)、對原算法中的移動路徑判斷公式中的轉(zhuǎn)向參數(shù)項進行修改,可以解決中樞神經(jīng)元鄰域活性值相同情況,選取出路徑最優(yōu)點。
78、(3)、對未覆蓋區(qū)域的柵格采用序列重復(fù)值編碼技術(shù),設(shè)計了快速檢測區(qū)域連通性的算法,彌補了生物激勵神經(jīng)網(wǎng)絡(luò)算法在全局規(guī)劃性上的薄弱缺點?;诖怂惴ń⒌膮^(qū)域分解規(guī)避機制,大幅降低了死區(qū)出現(xiàn)概率。