本發(fā)明屬于機器人導(dǎo)航領(lǐng)域,特別涉及一種實現(xiàn)機器人車載導(dǎo)航裝置實測坐標(biāo)校正與預(yù)測的方法。
背景技術(shù):
在移動機器人的室內(nèi)應(yīng)用領(lǐng)域,當(dāng)移動機器人在室內(nèi)復(fù)雜環(huán)境的運動時,不可避免會遇到各類由于機器人車載導(dǎo)航裝置收到室內(nèi)干擾而造成給移動機器人提供錯誤的機器人室內(nèi)坐標(biāo),從而導(dǎo)致移動機器人發(fā)生走偏或走丟等問題。這個問題嚴(yán)重影響了移動機器人在復(fù)雜室內(nèi)環(huán)境的安全運行。為解決這個問題,國內(nèi)外專家致力于不斷地提高機器人車載導(dǎo)航產(chǎn)品的可靠性和抗干擾能力,但是,現(xiàn)有技術(shù)中的抗干擾效果不佳,仍存在一定缺陷。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)中存在的機器人導(dǎo)航過程中存在大量的干擾信號的問題,提出了一種新的導(dǎo)航方法,通過構(gòu)建坐標(biāo)預(yù)測模型,提前預(yù)測機器人坐標(biāo),從而避免機器人導(dǎo)航出現(xiàn)偏差或走丟的問題。
一種實現(xiàn)機器人車載導(dǎo)航裝置實測坐標(biāo)校正與預(yù)測的方法,包括以下步驟:
步驟1:利用導(dǎo)航裝置所提供的機器人實時室內(nèi)坐標(biāo)值和歷史機器人室內(nèi)坐標(biāo),分別形成三維坐標(biāo)軸上的三組坐標(biāo)時間序列;
步驟2:利用坐標(biāo)時間序列構(gòu)建預(yù)測模型,然后使用預(yù)測模型獲取下一時刻的機器人室內(nèi)坐標(biāo),以機器人室內(nèi)坐標(biāo)預(yù)測值和實測值進行比較:
若兩者誤差超過誤差設(shè)定值,則將機器人室內(nèi)坐標(biāo)預(yù)測值作為機器人下一時刻室內(nèi)坐標(biāo),否則,將機器人室內(nèi)坐標(biāo)實測值作為機器人下一時刻室內(nèi)坐標(biāo);
步驟3:將機器人下一時刻室內(nèi)坐標(biāo)存入坐標(biāo)時間序列中,更新坐標(biāo)時間序列,返回步驟2,實現(xiàn)機器人車載導(dǎo)航裝置實測坐標(biāo)的校正與預(yù)測,直到機器人停止運動。
因為機器人的連續(xù)坐標(biāo)值數(shù)據(jù)是有潛在的數(shù)據(jù)特性規(guī)律的,即可用根據(jù)歷史時刻數(shù)據(jù)預(yù)測出下一時刻的值。
所述步驟2中利用坐標(biāo)時間序列構(gòu)建預(yù)測模型包括三個坐標(biāo)軸的預(yù)測模型,每個坐標(biāo)軸上的預(yù)測模型的構(gòu)建步驟相同,模型構(gòu)建步驟以及使用預(yù)測模型獲取下一時刻的機器人室內(nèi)坐標(biāo)具體過程如下:
步驟A:利用卡爾曼濾波算法對機器人的一坐標(biāo)軸上的坐標(biāo)時間序列進行濾波處理;
步驟B:利用混合分解策略對濾波后的坐標(biāo)時間序列進行分解,獲得分解坐標(biāo)序列群;
步驟C:對分解坐標(biāo)序列群分段采用卡爾曼濾波算法建立卡爾曼濾波預(yù)測模型;
步驟D:利用各段卡爾曼濾波預(yù)測模型獲得的預(yù)測值進行求和處理,獲得對應(yīng)坐標(biāo)軸上下一時刻的坐標(biāo)預(yù)測值。
所述步驟B中利用混合分解策略對濾波后的坐標(biāo)時間序列進行分解,具體過程如下:
首先,運用快速集成經(jīng)驗?zāi)J椒纸馑惴▽V波后的機器人坐標(biāo)序列進行分解,獲得機器人坐標(biāo)序列群,即一次分解坐標(biāo)序列群;
其次,利用增廣迪基富勒檢驗?zāi)P蛯ι鲜龅臋C器人坐標(biāo)序列群逐個進行平穩(wěn)性檢驗,若存在坐標(biāo)序列的ADF檢驗結(jié)果呈現(xiàn)為非平穩(wěn),則利用小波算法對ADF檢驗結(jié)果呈現(xiàn)非平穩(wěn)的序列進行第二次分解,并將第二次分解后所獲得的坐標(biāo)序列群替代一次分解坐標(biāo)序列群中對應(yīng)的非平穩(wěn)序列,獲得最終用于預(yù)測計算的擬預(yù)測坐標(biāo)序列群。
將坐標(biāo)時間序列輸入預(yù)測模型獲得預(yù)測值后,依據(jù)預(yù)測值與實測值進行比較,判斷是否需要用預(yù)測值取代錯誤的實測值,接著再更新預(yù)測模型,繼續(xù)獲取下一個預(yù)測值,如此往復(fù)更新。
本發(fā)明避開常規(guī)的抗干擾性思考,提出的一種巧妙解決干擾信號嚴(yán)重問題的新思維,利用機器人對導(dǎo)航設(shè)備/裝備所提供的實時實測的室內(nèi)坐標(biāo)值進行正確性判斷,對所提供的錯誤或有偏差的坐標(biāo)值進行修正,那么機器人就不會出現(xiàn)上述的走偏和走丟等問題。也就是機器人自身具備對車載導(dǎo)航裝置所測的錯誤坐標(biāo)數(shù)據(jù)進行校正。要讓機器人能夠?qū)Ξ?dāng)前的實測的室內(nèi)坐標(biāo)值進行有效的判斷并修正,就要求機器人能夠根據(jù)車載導(dǎo)航裝置所提供的歷史實測坐標(biāo)值計算出所需的下一時刻的坐標(biāo)值,即實現(xiàn)未來坐標(biāo)值的超前一步預(yù)測功能。機器人有了下一時刻的預(yù)測坐標(biāo)值,就可以用該值對下一時刻的實測坐標(biāo)值來進行校正。
有益效果
本發(fā)明提供了一種實現(xiàn)機器人車載導(dǎo)航裝置實測坐標(biāo)校正與預(yù)測的方法,通過利用機器人對導(dǎo)航設(shè)備/裝備所提供的實時實測的室內(nèi)坐標(biāo)值進行正確性判斷,對所提供的錯誤或有偏差的坐標(biāo)值進行修正;在預(yù)測下一個時刻的坐標(biāo)過程中,采用快速集成經(jīng)驗?zāi)J椒纸馑惴?、增廣迪基富勒檢驗?zāi)P汀⒖柭鼮V波算法以及加權(quán)處理完成預(yù)測,使得預(yù)測精度得到保證的同時,大大的降低了預(yù)測的復(fù)雜性,并且克服了重復(fù)性差的問題,整個過程實現(xiàn)簡單,本發(fā)明避開了常規(guī)的抗干擾性思考,采用的一種巧妙解決干擾信號嚴(yán)重問題的新思維,實現(xiàn)了準(zhǔn)確的高實時性的機器人室內(nèi)導(dǎo)航的預(yù)測。
附圖說明
圖1為本發(fā)明所述方法的原理流程圖;
圖2為本發(fā)明中構(gòu)建預(yù)測模型的流程示意圖;
圖3為本發(fā)明所述預(yù)測方法的具體流程示意圖;
圖4為本發(fā)明實例中一組實測的機器人室內(nèi)X軸坐標(biāo)值原始序列示意圖;
圖5為對圖4執(zhí)行基于卡爾曼算法的濾波處理后的機器人室內(nèi)坐標(biāo)序列示意圖;
圖6為對圖5執(zhí)行基于快速集成經(jīng)驗?zāi)J椒纸馑惴ǖ囊淮畏纸庥嬎愫蟮?0個子序列示意圖;
圖7為對圖6中的第1層序列進行第二次分解計算的結(jié)果示意圖;
圖8為對圖6中的第6層序列進行第二次分解計算的結(jié)果示意圖;
圖9為利用本發(fā)明所述方法對機器人室內(nèi)坐標(biāo)原始序列的預(yù)測結(jié)果示意圖,其中,(a)表示第301-600個采樣點上實測值與預(yù)測值的對比示意圖,(b)表示第601-900個采樣點上實測值與預(yù)測值的對比示意圖。
具體實施方式
下面將結(jié)合附圖和實施例對本發(fā)明做進一步的說明。
如圖1所示,一種實現(xiàn)機器人車載導(dǎo)航裝置實測坐標(biāo)校正與預(yù)測的方法,包括以下步驟:
步驟1:利用導(dǎo)航裝置所提供的機器人實時室內(nèi)坐標(biāo)值和歷史機器人室內(nèi)坐標(biāo),分別形成三維坐標(biāo)軸上的三組坐標(biāo)時間序列;
當(dāng)機器人開機工作后,機器人的車載筆記本就自動保存機器人車載導(dǎo)航裝置所輸出的機器人室內(nèi)坐標(biāo)值(x,y,z),形成三組機器人坐標(biāo)序列(記為X坐標(biāo)序列,Y坐標(biāo)序列和Z坐標(biāo)序列)。本實例中取每5秒采集一次機器人室內(nèi)坐標(biāo)值。
步驟2:利用坐標(biāo)時間序列構(gòu)建預(yù)測模型,然后使用預(yù)測模型獲取下一時刻的機器人室內(nèi)坐標(biāo),以機器人室內(nèi)坐標(biāo)預(yù)測值和實測值進行比較:
因為建立預(yù)測模型實現(xiàn)預(yù)測計算需要足夠數(shù)目的樣本數(shù)據(jù),因此當(dāng)機器人筆記本發(fā)現(xiàn)所儲存的3組坐標(biāo)序列{x1,x2,x3,...,xn-1,xn},{y1,y2,y3,...,yn-1,yn}和{z1,z2,z3,...,zn-1,zn}中已經(jīng)擁有足夠數(shù)量的樣本數(shù)據(jù)就可以開始建立預(yù)測模型。本實例中足夠樣本數(shù)據(jù)的閾值n取100。
車載筆記本根據(jù)圖2所示的建模步驟對上述3組坐標(biāo)序列分別建立最優(yōu)的預(yù)測模型。并分別利用所建立的預(yù)測模型計算出n+1時刻的預(yù)測坐標(biāo)值和
若兩者誤差超過誤差設(shè)定值,則將機器人室內(nèi)坐標(biāo)預(yù)測值作為機器人下一時刻室內(nèi)坐標(biāo),否則,將機器人室內(nèi)坐標(biāo)實測值作為機器人下一時刻室內(nèi)坐標(biāo);
將預(yù)測模型計算獲得的n+1時刻的預(yù)測坐標(biāo)值與機器人車載導(dǎo)航裝置實測n+1時刻的機器人室內(nèi)實測坐標(biāo)值(xn+1,yn+1,zn+1)進行對比,即執(zhí)行如下計算:
如果Δx,Δy,Δz都小于設(shè)定的誤差閾值,則認(rèn)為n+1時刻的機器人車載導(dǎo)航裝置所測的機器人實測坐標(biāo)值(xn+1,yn+1,zn+1)是正確的;反之,如果這三者中的任意一個大于所設(shè)定的誤差閾值,則認(rèn)為n+1時刻的機器人車載導(dǎo)航裝置所測的機器人實測坐標(biāo)值(xn+1,yn+1,zn+1)是錯誤的。本實例中取誤差閾值為0.05米。
步驟3:將機器人下一時刻室內(nèi)坐標(biāo)存入坐標(biāo)時間序列中,更新坐標(biāo)時間序列,返回步驟2,實現(xiàn)機器人車載導(dǎo)航裝置實測坐標(biāo)的校正與預(yù)測,直到機器人停止運動。
如果n+1時刻的機器人實測坐標(biāo)值(xn+1,yn+1,zn+1)被判定是正確的,則機器人車載筆記本就用該坐標(biāo)值控制機器人運動;反之,如果n+1時刻的機器人實測坐標(biāo)值(xn+1,yn+1,zn+1)被判定是錯誤的,則機器人車載筆記本就會用n+1時刻的機器人預(yù)測坐標(biāo)值控制機器人運動,并用預(yù)測獲得的坐標(biāo)值取代實測坐標(biāo)值(xn+1,yn+1,zn+1)作為n+1時刻的正確機器人坐標(biāo)值保存到機器人的坐標(biāo)序列中,供給下一次的預(yù)測計算。這樣,車載筆記本中所保存的機器人坐標(biāo)序列始終都是正確的,能用于計算下一步的預(yù)測值。
利用新的3組坐標(biāo)序列{x2,x3,x4,...,xn,xn+1},{y2,y3,y4,...,yn,yn+1}和{z2,z3,z4,...,zn,zn+1}參考上述的步驟,建立新的預(yù)測模型并計算出n+2時刻的預(yù)測坐標(biāo)值和并用預(yù)測計算獲得的坐標(biāo)值校正機器人的車載導(dǎo)航裝置在n+2時刻所測量提供的實測坐標(biāo)值(xn+2,yn+2,zn+2)。
如果實測坐標(biāo)值(xn+2,yn+2,zn+2)偏離預(yù)測坐標(biāo)值的誤差范圍沒有查過所設(shè)定的誤差閾值(即0.05米),則用實測坐標(biāo)值(xn+2,yn+2,zn+2)控制機器人運動并將實測坐標(biāo)值(xn+2,yn+2,zn+2)保存到機器人車載筆記本所存儲的機器人歷史坐標(biāo)序列中。否則,用預(yù)測獲得的坐標(biāo)值控制機器人運動,并取代實測坐標(biāo)值(xn+2,yn+2,zn+2)保存到機器人車載筆記本上。
只要機器人在運動的過程中,上述步驟將一直被執(zhí)行,即不斷地循環(huán)建模并計算獲得超n+3,n+4,n+5,…,n+m步的機器人預(yù)測坐標(biāo)值,并不斷地把預(yù)測值用于校正機器人車載導(dǎo)航裝置在那個時刻所實測的坐標(biāo)值,直到機器人安全地完成整個運動過程或是機器人被關(guān)機。
該預(yù)測方法的具體步驟流程如圖2所示:
所提出的方法包括濾波、分解、預(yù)測和加權(quán)四個方面的步驟。
(1)在濾波方面,利用卡爾曼濾波算法對機器人的歷史坐標(biāo)序列進行濾波處理,獲得沒有噪聲干擾的、能夠代表機器人運動變化規(guī)律的機器人坐標(biāo)序列。該步驟的目的是剔除車載筆記本所采集的機器人歷史坐標(biāo)序列中潛在的干擾噪聲數(shù)據(jù),這為后面的預(yù)測計算提供了干凈的建模樣本數(shù)據(jù)。
(2)在分解方面,提出混合分解策略對濾波后的機器人坐標(biāo)序列進行數(shù)據(jù)分解計算。
該混合分解策略包括如下步驟:
運用快速集成經(jīng)驗?zāi)J椒纸馑惴▽V波后的機器人坐標(biāo)序列進行分解,獲得一定數(shù)量的的機器人坐標(biāo)序列群(也稱為一次分解坐標(biāo)序列群)。
利用增廣迪基富勒(Augmented Dicky-Fuller,ADF)檢驗?zāi)P蛯ι鲜龅臋C器人坐標(biāo)序列群逐個進行平穩(wěn)性檢驗。如果某些序列的ADF檢驗結(jié)果呈現(xiàn)為平穩(wěn),則不再需要利用小波算法對這些序列進行第二次分解(因為他們已經(jīng)平穩(wěn)了)。反之,如果某些序列的ADF檢驗結(jié)果呈現(xiàn)非平穩(wěn)性,則需要利用小波算法對這些序列進行第二次分解。
這兩次分解的目的是不同的。第一次通過快速集成經(jīng)驗?zāi)J椒纸馑惴▽崿F(xiàn)的數(shù)據(jù)分解是為了將機器人坐標(biāo)原始序列轉(zhuǎn)化成一系列相對平穩(wěn)的子序列,以降低后期預(yù)測模型的計算難度;第二次通過小波算法的分解是為了消除第一次分解后某些序列中仍然殘留的非平穩(wěn)數(shù)據(jù)成分。即:第一次分解是為了數(shù)據(jù)轉(zhuǎn)化,而第二次分解是為了非平穩(wěn)性剔除。
如果執(zhí)行了第二次分解計算,則用第二次分解后所獲得的數(shù)據(jù)取代一次分解坐標(biāo)序列群中的對應(yīng)非平穩(wěn)序列,再與一次分解坐標(biāo)序列群中的其他平穩(wěn)性序列一起最終構(gòu)成可用于預(yù)測計算的擬預(yù)測序列群。
(3)在預(yù)測方面,利用卡爾曼濾波算法對全部的擬預(yù)測序列群都建立預(yù)測模型,并利用所建立的預(yù)測模型對對應(yīng)的擬預(yù)測序列進行超前預(yù)測計算,獲得一系列的超前預(yù)測值。本專利采用對完成二次分解后的擬預(yù)測序列群分別建立卡爾曼濾波預(yù)測模型。具體的卡爾曼預(yù)測方程參數(shù)請參見后面的解釋。
在加權(quán)方面,通過直接求和的方法對各個擬預(yù)測序列的超前預(yù)測值進行等值加權(quán),獲得機器人室內(nèi)坐標(biāo)原始序列的最終超前預(yù)測值。這些預(yù)測值將用于機器人的導(dǎo)航控制。
本實例提供了一個包括濾波、分解、預(yù)測和加權(quán)在內(nèi)的全部建模步驟的預(yù)測實例。一組實測的X軸方向的機器人坐標(biāo)序列如圖4所示。按照本發(fā)明所提出的建模方法(如圖2和圖3所示),對圖4中所提供的機器人實測坐標(biāo)序列的前300個樣本數(shù)據(jù)建立預(yù)測模型,然后對第301個數(shù)據(jù)開始進行迭代預(yù)測計算。
具體描述為:
(1)利用卡爾曼算法對圖4所示的機器人實測坐標(biāo)序列的前300個數(shù)據(jù)進行濾波處理,結(jié)果如圖5所示。利用快速集成模式經(jīng)驗分解算法對如圖5中的“執(zhí)行卡爾曼算法濾波后的機器人室內(nèi)坐標(biāo)序列”執(zhí)行分解計算,結(jié)果如圖所示6。利用增廣迪基富勒(Augmented Dicky-Fuller,ADF)檢驗?zāi)P团袛鄨D6中全部的分解序列的穩(wěn)定性。結(jié)果表明,除了第1序列和第6序列呈現(xiàn)非平穩(wěn)性外,其他的序列都呈現(xiàn)平穩(wěn)性。因此只需要采用小波算法對圖6中的第1序列和第6序列分別再進行第二次的分解計算,結(jié)果分別如圖7和圖8所示。用圖7中的“第1層序列”取代圖6中的“第1層序列”變成圖6中新的“第1層序列”,用圖8中的“第1層序列”取代圖6中的“第6層序列”變成圖6中新的“第6層序列”,加上圖6中沒有被取代的其他幾個分解序列,重新形成共計10組將進行卡爾曼濾波預(yù)測的“擬預(yù)測序列群”。
上述中的快速集成模式經(jīng)驗分解算法、增廣迪基富勒檢驗?zāi)P汀⑿〔ㄋ惴ê涂柭鼮V波算法均為現(xiàn)有計算方法。但他們之間的混合建模流程是本專利發(fā)明提出的。
(2)對上述步驟所最終形成的10組“擬預(yù)測序列群”分別建立10個卡爾曼預(yù)測模型,然后在每一個序列層上利用自己所述的卡爾曼預(yù)測模型進行迭代預(yù)測計算,分別獲得這一層的預(yù)測值。以圖7中的“第1層序列”為例,為了與分解前的坐標(biāo)序列進行區(qū)分,將該序列記為{x1,1,x1,2,x1,3,...,x1,299,x1,300}。對該序列建立卡爾曼預(yù)測模型,然后獲得該序列的預(yù)測值
圖7中的“第1層序列”所建立的卡爾曼濾波預(yù)測模型的方程如下所示:
在方程1中,X1,300的下標(biāo)數(shù)字意思解釋如下:X的第一個下標(biāo)“1”代表是經(jīng)過本專利提出的混合分解計算后所獲得的第一個子序列,X的第二個下標(biāo)“300”代表X1,300這個數(shù)值是上述第一個子序列中的第300個分解樣本。
(3)同理,對“擬預(yù)測序列群”中的另外9組子序列也建立卡爾曼濾波預(yù)測模型,然后利用所建的卡爾曼濾波預(yù)測模型以此獲得對應(yīng)的預(yù)測值,記為把獲得上述預(yù)測值加權(quán)相加,即獲得圖4所示的實測機器人坐標(biāo)序列的第301個采樣點x301的最終預(yù)測值
(4)重復(fù)上述步驟,即重新在各個子序列層上建立卡爾曼預(yù)測模型,然后運用卡爾曼預(yù)測模型獲得對應(yīng)的預(yù)測值然后對這些分解層的預(yù)測值進行求和計算,獲得圖4所示的實測機器人坐標(biāo)序列的第302個采樣點x302的最終預(yù)測值依次,直到獲得圖4所示的實測機器人坐標(biāo)序列的第900個采樣點x900的最終預(yù)測值
(5)將上述所獲得預(yù)測值與圖4中所示的預(yù)測值繪成圖9。從圖9中可以看出,本發(fā)明所提出的預(yù)測方法所預(yù)測的結(jié)果幾乎與原始數(shù)據(jù)重疊,體現(xiàn)了本專利的有效性。
以上應(yīng)用了具體個例對本發(fā)明進行闡述,只是為了幫助本領(lǐng)域中的普通技術(shù)人員很好的理解。在不偏離本發(fā)明的精神和范圍的情況下,還可以對本發(fā)明的具體實施方式作各種推演、變形和替換。這些變更和替換都將落在本發(fā)明權(quán)利要求書所限定的范圍內(nèi)。