信息處理方法和信息處理設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種信息處理方法和設(shè)備,應(yīng)用于可移動電子設(shè)備,所述可移動電子設(shè)備被用于未知環(huán)境的即時定位與地圖構(gòu)建。所述方法包括:獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點;計算所述當(dāng)前節(jié)點的位置信息;確定所述當(dāng)前節(jié)點的誤差范圍;判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點;以及如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。因此,在本發(fā)明中,可以在更為準(zhǔn)確地提供用于機器人路徑的位置估計的同時,有效地檢測機器人運動軌跡的環(huán)路閉合,從而對現(xiàn)有技術(shù)中的SLAM方法進行了充分優(yōu)化。
【專利說明】信息處理方法和信息處理設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,更具體地,本發(fā)明涉及一種信息處理方法和信息處理設(shè)備。
【背景技術(shù)】
[0002]即時定位與地圖構(gòu)建(SimultaneousLocalization and Mapping, SLAM)是目前在機器人定位方面的熱門研究課題。所謂SLAM就是將可移動電子設(shè)備(例如,移動機器人)定位與環(huán)境地圖創(chuàng)建融為一體,即機器人在運動過程中根據(jù)自身位姿估計和傳感器對環(huán)境的感知構(gòu)建增量式環(huán)境地圖,同時利用該地圖實現(xiàn)自身的定位。
[0003]現(xiàn)有技術(shù)中的SLAM方法主要包括掃描匹配(scan-matching)方法和特征匹配(feature-matching)方法兩種。該掃描匹配方法往往應(yīng)用于二維(2D)的SLAM方法中;而該特征匹配方法往往應(yīng)用于三維(3D)的SLAM方法中,
[0004]在2D-SLAM的過程中,人們往往無法使用該特征匹配方法,這是由于在該2D-SLAM的過程中在一幀掃描數(shù)據(jù)中將獲得極少量的掃描點,并且每一個掃描點的坐標(biāo)點僅僅具有二維坐標(biāo)U,y),這將導(dǎo)致很難從這些掃描點中提取出可在后續(xù)特征匹配時使用的特征點,從而導(dǎo)致無法有效地完成特征匹配過程,進而難以準(zhǔn)確地估計機器人在未知環(huán)境中的運動軌跡。相反地,該掃描匹配方法可以提供用于機器人路徑的更為精確的位置估計,然而,它卻難以有效地檢測機器人運動軌跡的環(huán)路閉合(簡稱為閉環(huán))。
[0005]在3D-SLAM的過程中,人們往往無法使用該掃描匹配方法,這是由于在3D-SLAM的過程中在一幀掃描數(shù)據(jù)中將獲得極大量的掃描點,并且每一個掃描點的坐標(biāo)點具有三維坐標(biāo)(X,y, z),即比2D情況下多出一維坐標(biāo),這將導(dǎo)致使用該掃描匹配方法時,運算量巨大,占用系統(tǒng)資源過多,且速度緩慢,從而難以快速地檢測到機器人運動軌跡中的環(huán)路閉合。相反地,該特征匹配方法可以很好地實現(xiàn)閉環(huán)檢測,然而,它在機器人運動軌跡估計方面只能產(chǎn)生較差的結(jié)果。
[0006]因此,需要一種新型的信息處理方法和信息處理設(shè)備來解決上述問題。
【發(fā)明內(nèi)容】
[0007]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的一個方面,提供了一種信息處理方法,應(yīng)用于可移動電子設(shè)備,所述可移動電子設(shè)備被用于未知環(huán)境的即時定位與地圖構(gòu)建,其特征在于,所述方法包括:獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點;計算所述當(dāng)前節(jié)點的位置信息;確定所述當(dāng)前節(jié)點的誤差范圍;判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點;以及如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。
[0008]此外,根據(jù)本發(fā)明的另一方面,提供了一種信息處理設(shè)備,應(yīng)用于可移動電子設(shè)備,所述可移動電子設(shè)備被用于未知環(huán)境的即時定位與地圖構(gòu)建,其特征在于,所述信息處理設(shè)備包括:節(jié)點獲取單元,用于獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點;位置計算單元,用于計算所述當(dāng)前節(jié)點的位置信息;誤差確定單元,用于確定所述當(dāng)前節(jié)點的誤差范圍;范圍判斷單元,用于判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點;以及環(huán)路檢測單元,用于如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。
[0009]與現(xiàn)有技術(shù)相比,采用根據(jù)本發(fā)明的信息處理方和信息處理設(shè)備,可以獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點,計算所述當(dāng)前節(jié)點的位置信息和誤差范圍,并且當(dāng)在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點時,對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。因此,在本發(fā)明中,可以在更為準(zhǔn)確地提供用于機器人路徑的位置估計的同時,有效地檢測機器人運動軌跡的環(huán)路閉合,從而對現(xiàn)有技術(shù)中的SLAM方法進行了充分優(yōu)化。
[0010]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0011]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0012]圖1圖示了根據(jù)本發(fā)明的信息處理方法。
[0013]圖2圖示了根據(jù)本發(fā)明的第一引導(dǎo)設(shè)備。
[0014]圖3圖示了根據(jù)本發(fā)明第一實施例的信息處理方法。
[0015]圖4圖示了根據(jù)本發(fā)明第一實施例的信息處理設(shè)備。
[0016]圖5圖示了根據(jù)本發(fā)明實施例的可移動電子設(shè)備的運動軌跡。
[0017]圖6圖示了根據(jù)本發(fā)明第一實施例的節(jié)點和誤差范圍。
[0018]圖7圖示了根據(jù)本發(fā)明第二實施例的信息處理方法。
[0019]圖8圖示了根據(jù)本發(fā)明第二實施例的信息處理設(shè)備。
[0020]圖9圖示了根據(jù)本發(fā)明第二實施例的節(jié)點、場景和誤差范圍。
[0021]圖1Oa圖示了機器人的真實運動軌跡。
[0022]圖1Ob圖示了根據(jù)現(xiàn)有技術(shù)得到的運動軌跡。
[0023]圖1Oc圖示了根據(jù)本發(fā)明得到的運動軌跡。
【具體實施方式】
[0024]將參照附圖詳細描述根據(jù)本發(fā)明的各個實施例。這里,需要注意的是,在附圖中,將相同的附圖標(biāo)記賦予基本上具有相同或類似結(jié)構(gòu)和功能的組成部分,并且將省略關(guān)于它們的重復(fù)描述。
[0025]在下文中,將參考圖1和2來描述根據(jù)本發(fā)明的信息處理方法和引導(dǎo)設(shè)備。
[0026]圖1圖示了根據(jù)本發(fā)明的信息處理方法,而圖2圖示了根據(jù)本發(fā)明的第一引導(dǎo)設(shè)備 100。
[0027]所述信息處理方法應(yīng)用于可移動電子設(shè)備,所述可移動電子設(shè)備被用于未知環(huán)境的即時定位與地圖構(gòu)建。并且,所述信息處理方法通過圖2所圖示的信息處理設(shè)備來實現(xiàn)。具體地,如圖2所圖示的,所述信息處理設(shè)備100包括:節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、范圍判斷單元140和環(huán)路檢測單元150。
[0028]如圖1所圖示的,所述信息處理方法包括:
[0029]在步驟SllO中,節(jié)點獲取單元110獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點;
[0030]在步驟S120中,位置計算單元120計算所述當(dāng)前節(jié)點的位置信息;
[0031]在步驟S130中,誤差確定單元130確定所述當(dāng)前節(jié)點的誤差范圍;
[0032]在步驟S140中,范圍判斷單元140判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點;以及
[0033]在步驟S150中,如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則環(huán)路檢測單元150對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。
[0034]由此可見,采用根據(jù)本發(fā)明的信息處理方和信息處理設(shè)備,可以獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點,計算所述當(dāng)前節(jié)點的位置信息和誤差范圍,并且當(dāng)在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點時,對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。因此,在本發(fā)明中,可以在更為準(zhǔn)確地提供用于機器人路徑的位置估計的同時,有效地檢測機器人運動軌跡的環(huán)路閉合,從而對現(xiàn)有技術(shù)中的SLAM方法進行了充分優(yōu)化。
[0035]在下文中,將參考圖3和圖4來描述根據(jù)本發(fā)明第一實施例的信息處理方法和信息處理設(shè)備。
[0036]圖3圖示了根據(jù)本發(fā)明第一實施例的信息處理方法,而圖4圖示了根據(jù)本發(fā)明第一實施例的信息處理設(shè)備100。
[0037]圖3所圖示的根據(jù)本發(fā)明第一實施例的信息處理方法可以應(yīng)用于一個或多個可移動電子設(shè)備,所述可移動電子設(shè)備被用于在未知環(huán)境中進行運動,同時通過執(zhí)行即時定位與地圖構(gòu)建(SLAM)來對自身進行快速定位并生成關(guān)于未知環(huán)境的準(zhǔn)確地圖數(shù)據(jù)。
[0038]所述信息處理方法可以通過圖4所圖示的信息處理設(shè)備100來實現(xiàn)。如圖4所圖示的,與圖2中一樣地,該信息處理設(shè)備100包括:節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、范圍判斷單元140和環(huán)路檢測單元150。此外,優(yōu)選地,該信息處理設(shè)備100還可以包括:特征提取單元160和/或存儲單元170。
[0039]例如,該信息處理設(shè)備100可以作為一個軟件模塊和/或硬件裝置而集成到可移動電子設(shè)備中。這樣,該可移動電子設(shè)備可以在本地快速地處理自身在未知環(huán)境中進行SLAM所獲得的數(shù)據(jù),從而在沒有任何傳送延遲的情況下進行快速定位并生成地圖數(shù)據(jù)。
[0040]然而,由于該可移動電子設(shè)備在存儲容量和計算性能方面受到限制,所以自開發(fā)式移動機器人在不丟棄其自身數(shù)據(jù)的情況下,不能在未知的、開放環(huán)境中長時間進行SLAM??紤]到上述問題,替換地,該信息處理設(shè)備100也可以作為一個軟件模塊和/或硬件裝置而集成到一服務(wù)器中,該服務(wù)器通過有線和/或無線地方式與該可移動電子設(shè)備連接,用于接收可移動電子設(shè)備在未知環(huán)境中進行SLAM所獲得的數(shù)據(jù)。所述數(shù)據(jù)至少包括以下數(shù)據(jù)中的一種或者多種:所述可移動電子設(shè)備的運動軌跡(例如,機器人的位置信息或坐標(biāo)信息)、所述可移動電子設(shè)備的運動軌跡姿態(tài)(例如,機器人的朝向信息或角度信息)、當(dāng)前已構(gòu)建的地圖信息(例如,關(guān)于未知環(huán)境部分區(qū)域的地圖數(shù)據(jù))。這樣,該可移動電子設(shè)備可以將自身獲取的數(shù)據(jù)傳送到具有海量存儲容量和高速計算速度的服務(wù)器,使得在服務(wù)器中完成機器人的定位和地圖數(shù)據(jù)的生成,從而將在機器人中存儲和計算的數(shù)據(jù)量保持到最小,使得機器人可以將系統(tǒng)資源有效地用于執(zhí)行SLAM和躲避障礙物等操作。[0041]在下文中,以將該信息處理設(shè)備100實現(xiàn)在服務(wù)器中為例來對本發(fā)明的實施例進行說明。然而,本發(fā)明不限于此。而是,還可以將信息處理設(shè)備100實現(xiàn)在可移動電子設(shè)備或其他各種設(shè)備中。
[0042]如圖3所圖示的,根據(jù)本發(fā)明第一實施例的信息處理方法包括:
[0043]在步驟S210中,獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點。
[0044]當(dāng)需要利用可移動電子設(shè)備(例如,可移動的機器人Robot)來對一未知環(huán)境執(zhí)行探索時,可以通過服務(wù)器預(yù)先地為Robot虛擬出一條無碰撞的最優(yōu)路徑,使得機器人可以根據(jù)該最優(yōu)路徑在未知環(huán)境中進行運動。替換地,該機器人也可以自主地在未知環(huán)境中進行運動,以對所在環(huán)境進行探測和理解。然后,該機器人在進行運動的同時,對該未知環(huán)境執(zhí)行即時定位與地圖構(gòu)建(SLAM)。
[0045]隨著移動機器人在未知環(huán)境中進行移動和拍攝,信息處理設(shè)備100在各個位置點獲得通過執(zhí)行SLAM操作所得到的數(shù)據(jù)。
[0046]圖5圖不了根據(jù)本發(fā)明實施例的可移動電子設(shè)備的運動軌跡,而圖6圖不了根據(jù)本發(fā)明第一實施例的節(jié)點和誤差范圍。
[0047]在本發(fā)明的第一實施例中,假設(shè)機器人在未知環(huán)境中采取圓形運動軌跡進行運動。如圖5所圖示的,機器人從起點位置I開始運動到位置2,再繼續(xù)運動到位置3,如此繼續(xù),進而運動到位置12,并最終回到起點位置1,從而完成了圓形的運動軌跡。
[0048]需要注意的是,盡管在這里以圓形軌跡為例來對本發(fā)明實施例進行說明,但是本發(fā)明不限于此。而是,機器人可以采用任意的規(guī)則或不規(guī)則軌跡而在未知環(huán)境中進行運動。
[0049]在機器人的運動期間,它在各個位置點不斷執(zhí)行SLAM操作,并獲得結(jié)果數(shù)據(jù)。然后,在該信息處理設(shè)備100中,節(jié)點獲取單元110獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點。
[0050]具體地,以起點的位置I為例,機器人首先在位置I處執(zhí)行SLAM操作。該節(jié)點獲取單元Iio從機器人接收一幀觀測數(shù)據(jù),作為當(dāng)前節(jié)點,即如圖6所圖示的節(jié)點1,例如,該幀觀測數(shù)據(jù)可以通過在機器人上裝備的激光傳感器發(fā)射激光而得到的反射結(jié)果。在2D-SLAM的情況下,該幀觀測數(shù)據(jù)將包括導(dǎo)致激光返回的每個掃描點的二維坐標(biāo)(X,y)。在激光的發(fā)射角度是180度且每隔I度發(fā)射一束激光的情況下,節(jié)點獲取單元110可以獲取到180個掃描點的二維坐標(biāo),并且將其作為該節(jié)點I。
[0051]然后,存儲單元170可以在存儲器中存儲當(dāng)前節(jié)點,以供稍后使用。
[0052]在步驟S220中,計算當(dāng)前節(jié)點的位置信息。
[0053]接下來,位置計算單元120從節(jié)點獲取單元110接收該當(dāng)前節(jié)點,并且計算所述當(dāng)前節(jié)點的位置信息。
[0054]具體地,該位置計算單元120可以使用第一匹配方法,來對所述當(dāng)前節(jié)點和所述當(dāng)前節(jié)點的前一節(jié)點進行局部地圖構(gòu)建。例如,由于此時當(dāng)前節(jié)點(即,節(jié)點I)是第一個節(jié)點,在它之前并不存在任何歷史節(jié)點,所以該位置計算單元120可以使用迭代最近點(ICP)算法或極點掃描匹配(PSM)算法來對該當(dāng)前節(jié)點進行局部地圖構(gòu)建,以獲得該當(dāng)前節(jié)點在未知環(huán)境中的坐標(biāo)信息。如果假設(shè)第一位置是整個未知環(huán)境的原點位置,則該位置計算單元120可以得知該當(dāng)前節(jié)點的坐標(biāo)值是(0,O),或者更一般地是(xl,yl)。
[0055]在步驟S230中,從當(dāng)前節(jié)點中提取特征信息。
[0056]在位置計算單元120計算出所述當(dāng)前節(jié)點的位置信息之后,特征提取單元160從所述當(dāng)前節(jié)點中提取特征信息。
[0057]具體地,該特征提取單元160可以從機器人獲得的掃描點中提取其中包含的特征點集。該特征點集是指特征點的集合,即具有高區(qū)分度的點的集合。例如特征點可以是一個矩形平面的角點,或者一個灰色背景中的紅色點等等。
[0058]在該特征提取單元160提取出特征信息之后,存儲單元170可以存儲該節(jié)點I的特征信息,并且將所存儲的特征信息與之前存儲的當(dāng)前節(jié)點(即,節(jié)點I)建立聯(lián)系,使得環(huán)路檢測單元150能夠得知在存儲單元170中存儲的每個節(jié)點都包括哪些特征信息。
[0059]在步驟S240中,確定當(dāng)前節(jié)點的誤差范圍。
[0060]接下來,誤差確定單元130確定所述當(dāng)前節(jié)點的誤差范圍。
[0061]具體地,該誤差確定單元130可以在該位置計算單元120使用例如掃描匹配方法來對該當(dāng)前節(jié)點進行局部地圖構(gòu)建的同時,通過該掃描匹配方法的運算結(jié)果來計算當(dāng)前節(jié)點(即,節(jié)點I)的方差和/或協(xié)方差。該方差和協(xié)方差可以指示出該位置計算單元120所計算得到的當(dāng)前節(jié)點的坐標(biāo)Gd,yl)與該當(dāng)前節(jié)點在未知環(huán)境中的真實坐標(biāo)之間的誤差范圍。
[0062]由于當(dāng)前機器人處于其初始位置(S卩,位置I)處,所以一般情況下,該位置計算單元120所得到的該節(jié)點I的坐標(biāo)信息往往并不存在任何誤差,所以該誤差確定單元130在對該節(jié)點I的誤差范圍進行確定之后,很可能得知該節(jié)點I的誤差范圍為O。
[0063]在步驟S250中,判斷在當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點。
[0064]在誤差確定單元130確定所述當(dāng)前節(jié)點的誤差范圍之后,該范圍判斷單元140判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點。如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則該范圍判斷單元140通知環(huán)路檢測單元150對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。否則,該環(huán)路檢測單元150不執(zhí)行任何操作,并且根據(jù)本發(fā)明第一實施例的信息處理方法返回到步驟S210繼續(xù)執(zhí)行,直到機器人不再運動為止,也就是說,直到節(jié)點獲取單元110無法獲取到新的一幀觀測數(shù)據(jù)為止。
[0065]具體地,由于此時當(dāng)前節(jié)點(即,節(jié)點I)是機器人運動軌跡中的第一個節(jié)點,在它之前并不存在任何歷史節(jié)點,所以該范圍判斷單元140必然判斷在所述當(dāng)前節(jié)點的誤差范圍中沒有存在歷史節(jié)點。
[0066]換言之,即使在當(dāng)前節(jié)點之前存在一個或多個歷史節(jié)點,但是由于此時該當(dāng)前節(jié)點的誤差范圍是0,所以該范圍判斷單元140也必然判斷在所述當(dāng)前節(jié)點的誤差范圍中沒有存在歷史節(jié)點。
[0067]故此,如上所述,該范圍判斷單元140沒有通知環(huán)路檢測單元150進行環(huán)路檢測,而是通知節(jié)點獲取單元110繼續(xù)獲取下一幀觀測數(shù)據(jù)。接下來,根據(jù)本發(fā)明第一實施例的信息處理方法返回到步驟S210繼續(xù)執(zhí)行。此時,機器人沿著自身的圓形軌跡繼續(xù)運動,并且以一預(yù)定時間間隔、或在接收到掃描請求時,通過激光傳感器繼續(xù)獲得在下一位置(即,位置2)的觀測數(shù)據(jù)。
[0068]具體地,機器人在位置2處繼續(xù)執(zhí)行SLAM操作。該節(jié)點獲取單元110在步驟S210中從機器人接收下一幀觀測數(shù)據(jù)(例如,180個掃描點的二維坐標(biāo)),作為當(dāng)前節(jié)點,即如圖6所圖示的節(jié)點2,并且該存儲單元170在存儲器中存儲該節(jié)點2。然后,該位置計算單元120在步驟S220中使用例如掃描匹配方法中的迭代最近點(ICP)算法來估計節(jié)點2與節(jié)點I之間的轉(zhuǎn)移矩陣,確定在節(jié)點2中一定數(shù)目的掃描點,通過該轉(zhuǎn)移矩陣來將節(jié)點2的坐標(biāo)系下的這些掃描點轉(zhuǎn)換到節(jié)點I的坐標(biāo)系下,尋找在節(jié)點I中距離它們最近的掃描點,估計它們之間的誤差,并再次確定一定數(shù)目的掃描點,重復(fù)上述過程,從而通過迭代的方式使得這個誤差最小化,直到實現(xiàn)節(jié)點2與節(jié)點I之間的準(zhǔn)確掃描對準(zhǔn)為止,以獲得該節(jié)點2在未知環(huán)境中的坐標(biāo)信息(x2,y2)。
[0069]顯然,該位置計算單元120也可以使用掃描匹配方法中的極點掃描匹配(PSM)算法來獲得該節(jié)點2在未知環(huán)境中的坐標(biāo)信息(x2,y2)。
[0070]接下來,該特征提取單元160在步驟S230中從節(jié)點2中提取其中包括的特征信息,并且存儲單元170可以與節(jié)點2相關(guān)聯(lián)地存儲該節(jié)點2的特征信息。在步驟S240中,誤差確定單元130通過計算節(jié)點2的方差和/或協(xié)方差,從而獲得節(jié)點2的誤差范圍,例如,該節(jié)點2的誤差范圍在圖6中通過節(jié)點2外圍的虛線圓圈來示意性地表示。由于此時機器人已經(jīng)離開自己的初始位置而到達未知環(huán)境中的一不確定位置,所以通過SLAM而計算得到的該機器人的坐標(biāo)位置必須存在一定誤差,并且該誤差也將隨著機器人的不斷運動,計算的不斷執(zhí)行而逐漸累加。換言之,當(dāng)前節(jié)點的誤差范圍必然大于歷史節(jié)點中前面第一個節(jié)點的誤差范圍,而前面第一個節(jié)點的誤差范圍也必須大于歷史節(jié)點中前面第二個節(jié)點的誤差范圍,并以此類推。然后,在步驟S250中,范圍判斷單元140判斷在當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點。如圖6所圖示的,該節(jié)點2雖然存在一定的誤差,但是它的誤差不是很大,顯然,節(jié)點2的歷史節(jié)點(即,節(jié)點I)并沒有位于該誤差范圍內(nèi)。因此,該范圍判斷單元140同樣通知節(jié)點獲取單元110繼續(xù)獲取下一幀觀測數(shù)據(jù)。
[0071]如此類推,在根據(jù)本發(fā)明第一實施例的信息處理設(shè)備中,節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、范圍判斷單元140、特征提取單元160和存儲單元170繼而對機器人在位置3到位置12的觀測數(shù)據(jù)進行處理、存儲和判斷。如圖6所圖示的,在當(dāng)前節(jié)點的誤差范圍中都沒有存在歷史節(jié)點。
[0072]最后,機器人重新回到初始位置1,并且執(zhí)行SLAM操作。該節(jié)點獲取單元110在步驟S210中從機器人接收下一幀觀測數(shù)據(jù)(例如,180個掃描點的二維坐標(biāo)),作為當(dāng)前節(jié)點,即如圖6所圖示的節(jié)點13,并且該存儲單元170在存儲器中存儲該節(jié)點13。然后,該位置計算單元120在步驟S220中使用例如掃描匹配方法中的迭代最近點(ICP)算法或極點掃描匹配(PSM)算法來獲得節(jié)點13與節(jié)點12的準(zhǔn)確掃描對準(zhǔn),以獲得該節(jié)點13在未知環(huán)境中的坐標(biāo)信息(xl3,yl3)。接下來,該特征提取單元160在步驟S230中從節(jié)點13中提取其中包括的特征信息,并且存儲單元170可以與節(jié)點13相關(guān)聯(lián)地存儲該節(jié)點13的特征信息。在步驟S240中,誤差確定單元130通過計算節(jié)點13的方差和/或協(xié)方差,從而獲得節(jié)點13的誤差范圍,例如,該節(jié)點13的誤差范圍在圖6中通過節(jié)點13外圍的虛線圓圈來示意性地表示。如上所述,節(jié)點13的誤差范圍大于節(jié)點12的誤差范圍,并且其中包括有節(jié)點
I。然后,在步驟S250中,范圍判斷單元140可以判斷出在當(dāng)前節(jié)點(S卩,節(jié)點13)的誤差范圍中存在歷史節(jié)點(即,節(jié)點1),于是該范圍判斷單元140進一步通知環(huán)路檢測單元150對節(jié)點13和節(jié)點I進行環(huán)路檢測。
[0073]在步驟S260中,對當(dāng)前節(jié)點和歷史節(jié)點進行環(huán)路檢測。
[0074]在接收到范圍判斷單元140的通知之后,環(huán)路檢測單元150對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。[0075]具體地,該環(huán)路檢測單元150可以使用第一匹配方法,通過所述當(dāng)前節(jié)點的特征信息和所述歷史節(jié)點的特征信息,來對兩者進行環(huán)路檢測。例如,該環(huán)路檢測單元150可以首先從存儲單元170中讀取在該節(jié)點13和節(jié)點I中包括的特征信息,并且使用例如特征匹配方法來對節(jié)點13中一定數(shù)目的特征點和節(jié)點I中一定數(shù)目的特征點進行匹配,尋找兩者之間的特征點對的匹配,從而確定兩者之間是否存在閉環(huán)。因此,該環(huán)路檢測單元150最終可以發(fā)現(xiàn)節(jié)點13的位置坐標(biāo)與節(jié)點I的位置坐標(biāo)是相同的,并因而,在所繪制的未知環(huán)境的地圖中將機器人的運動軌跡進行環(huán)路閉合。
[0076]由此可見,采用根據(jù)本發(fā)明第一實施例的信息處理方和信息處理設(shè)備,可以首先利用掃描匹配方法來計算出當(dāng)前robot的位置和姿態(tài)信息,再提取掃描信息中的2D特征點,然后將每一幀觀測數(shù)據(jù)看做圖中的節(jié)點來構(gòu)建地圖,最后利用特征點對匹配的方法來尋找閉環(huán)。因此,在本發(fā)明的第一實施例中,可以在更為準(zhǔn)確地提供用于機器人路徑的位置估計的同時,有效地檢測機器人運動軌跡的環(huán)路閉合,從而實現(xiàn)了一種有效閉環(huán)的2D-SLAM方法以用于機器人的精確定位。
[0077]需要說明的是,盡管在上文中以特定的順序描述了根據(jù)本發(fā)明第一實施例的信息處理方法,但是本發(fā)明不限于此。例如,顯然,步驟S230可以在步驟S220之前執(zhí)行或者與之同時執(zhí)行。同理,步驟S230可以在步驟S240之后執(zhí)行或者與之同時執(zhí)行。[0078]在下文中,將參考圖7和圖8來描述根據(jù)本發(fā)明第二實施例的信息處理方法和信息處理設(shè)備。
[0079]圖7圖示了根據(jù)本發(fā)明第二實施例的信息處理方法,而圖8圖示了根據(jù)本發(fā)明第二實施例的信息處理設(shè)備100。
[0080]圖7所圖示的根據(jù)本發(fā)明第二實施例的信息處理方法可以通過圖8所圖示的信息處理設(shè)備100來實現(xiàn)。如圖8所圖示的,與圖2中一樣地,該信息處理設(shè)備100包括--節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、范圍判斷單元140和環(huán)路檢測單元150。此外,優(yōu)選地,該信息處理設(shè)備100還可以包括:特征提取單元160、存儲單元170、數(shù)目判斷單元180、場景規(guī)約單元190、和/或誤差修改單元200。
[0081]如圖7所圖示的,根據(jù)本發(fā)明第二實施例的信息處理方法包括:
[0082]在步驟S310中,獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點。
[0083]隨著移動機器人在未知環(huán)境中進行移動和拍攝,信息處理設(shè)備100在各個位置點獲得通過執(zhí)行SLAM操作所得到的數(shù)據(jù)。
[0084]圖5圖不了根據(jù)本發(fā)明實施例的可移動電子設(shè)備的運動軌跡,而圖9圖不了根據(jù)本發(fā)明第二實施例的節(jié)點、場景和誤差范圍。
[0085]在本發(fā)明的第二實施例中,繼續(xù)假設(shè)機器人在未知環(huán)境中采取如圖5所圖示的圓形運動軌跡進行運動。也就是說,如圖5所圖示的,機器人從起點位置I開始運動到位置2,再繼續(xù)運動到位置3,如此繼續(xù),進而運動到位置12,并最終回到起點位置1,從而完成了圓形的運動軌跡。
[0086]首先,該節(jié)點獲取單元110從處于未知環(huán)境中的機器人接收一幀觀測數(shù)據(jù),作為當(dāng)前節(jié)點,即如圖9所圖示的節(jié)點I。
[0087]在步驟S320中,計算當(dāng)前節(jié)點的位置信息。
[0088]接下來,位置計算單元120從節(jié)點獲取單元110接收該當(dāng)前節(jié)點,并且計算所述當(dāng)前節(jié)點的位置信息。
[0089]在步驟S330中,從當(dāng)前節(jié)點中提取特征信息。
[0090]在位置計算單元120計算出所述當(dāng)前節(jié)點的位置信息之后,特征提取單元160從所述當(dāng)前節(jié)點中提取特征信息。假設(shè)在當(dāng)前節(jié)點I中包括的特征點的數(shù)目是10。
[0091]在步驟S340中,確定當(dāng)前節(jié)點的誤差范圍。
[0092]接下來,誤差確定單元130確定所述當(dāng)前節(jié)點的誤差范圍。
[0093]需要說明的是,由于第二實施例中的步驟S310到S340與第一實施例中的步驟S210到S240相同,所以在此為了簡潔而省略其詳細描述。
[0094]在步驟S350中,將當(dāng)前節(jié)點和所存儲的歷史節(jié)點規(guī)約為單一場景作為當(dāng)前場景,并且確定當(dāng)前場景的誤差范圍。
[0095]在特征提取單元160從所述當(dāng)前節(jié)點中提取到特征信息之后,數(shù)目判斷單元180判斷所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和是否大于或等于閾值數(shù)目。如果所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和大于或等于所述閾值數(shù)目,則場景規(guī)約單元190將所述當(dāng)前節(jié)點和所存儲的歷史節(jié)點規(guī)約為單一場景作為當(dāng)前場景。如果所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和小于所述閾值數(shù)目,則存儲單元170將所述當(dāng)前節(jié)點添加存儲到所存儲的歷史節(jié)點中,并且將所述當(dāng)前節(jié)點的特征信息添加存儲到所存儲的歷史節(jié)點的特征信息中,并同樣與當(dāng)前節(jié)點相關(guān)聯(lián)地存儲該當(dāng)前節(jié)點的誤差范圍。然后,根據(jù)本發(fā)明第二實施例的信息處理方法返回到步驟S310繼續(xù)執(zhí)行,直到規(guī)約出單一場景為止。
[0096]具體地,數(shù)目判斷單元180確定特征提取單元160從節(jié)點I中提取到的特征信息的數(shù)目,并且由于該節(jié)點I是第一個節(jié)點,在它之前并不存在任何歷史節(jié)點,所以該數(shù)目判斷單元180判斷在節(jié)點I中包括的特征點的數(shù)目10是否達到閾值數(shù)目M。該M是在一個場景中需要包括的特征點的最小數(shù)目,以免由于特征點過少而導(dǎo)致最終所使用特征匹配算法失敗。在此為了說明將該閾值數(shù)目M假設(shè)為100。
[0097]因此,該數(shù)目判斷單元180可以判斷出在節(jié)點I中包括的特征點的數(shù)目10小于閾值數(shù)目100,然后,它就通知存儲單元170在存儲器中存儲節(jié)點I作為歷史節(jié)點,并與該節(jié)點I相關(guān)聯(lián)地存儲在節(jié)點I中包括的特征信息以及節(jié)點I的誤差范圍,以供稍后使用。
[0098]故此,如上所述,該數(shù)目判斷單元180沒有通知場景規(guī)約單元190進行規(guī)約處理,而是通知節(jié)點獲取單元110繼續(xù)獲取下一幀觀測數(shù)據(jù)。接下來,根據(jù)本發(fā)明第二實施例的信息處理方法返回到步驟S310繼續(xù)執(zhí)行。此時,機器人沿著自身的圓形軌跡繼續(xù)運動,并且以一預(yù)定時間間隔、或在接收到掃描請求時,通過激光傳感器繼續(xù)獲得在下一位置(即,位置2)的觀測數(shù)據(jù)。
[0099]具體地,機器人在位置2處繼續(xù)執(zhí)行SLAM操作。該節(jié)點獲取單元110在步驟S310中從機器人接收下一幀觀測數(shù)據(jù)(例如,180個掃描點的二維坐標(biāo)),作為當(dāng)前節(jié)點,即如圖9所圖示的節(jié)點2。然后,該位置計算單元120在步驟S320中使用例如掃描匹配方法中的迭代最近點(ICP)算法或極點掃描匹配(PSM)算法來獲得該節(jié)點2在未知環(huán)境中的坐標(biāo)信息(x2, y2)。接下來,該特征提取單元160在步驟S330中從節(jié)點2中提取其中包括的特征信息,假設(shè)在當(dāng)前節(jié)點2中包括的特征點的數(shù)目是40。誤差確定單元130在步驟S340中確定節(jié)點2的誤差范圍。在步驟S350中,數(shù)目判斷單元180判斷出特征提取單元160從節(jié)點2中提取到的特征點的數(shù)目40與所存儲的歷史節(jié)點(即,節(jié)點I)的特征點的數(shù)目10之和為50,仍然小于閾值數(shù)目100,因此,該數(shù)目判斷單元180同樣通知存儲單元170在存儲器中存儲節(jié)點2作為歷史節(jié)點,并與該節(jié)點2相關(guān)聯(lián)地存儲在節(jié)點2中包括的特征信息以及節(jié)點2的誤差范圍,并且通知節(jié)點獲取單元110繼續(xù)獲取下一幀觀測數(shù)據(jù)。
[0100]如此類推,在根據(jù)本發(fā)明第二實施例的信息處理設(shè)備中,節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、特征提取單元160、存儲單元170、和數(shù)目判斷單元180繼而對機器人在位置3的觀測數(shù)據(jù)進行處理、存儲和判斷,假設(shè)在當(dāng)前節(jié)點3中包括的特征點的數(shù)目是50。于是,在步驟S350中,數(shù)目判斷單元180判斷出特征提取單元160從節(jié)點3中提取到的特征點的數(shù)目50與所存儲的歷史節(jié)點(即,節(jié)點2和節(jié)點I)的特征點的數(shù)目之和為100,即已經(jīng)達到閾值數(shù)目100。然后,它就通知場景規(guī)約單元190進行規(guī)約處理。
[0101]在該規(guī)約處理中,所述場景規(guī)約單元將所述當(dāng)前節(jié)點和所存儲的歷史節(jié)點規(guī)約為單一場景作為當(dāng)前場景,將所述歷史節(jié)點中的第一個節(jié)點作為所述當(dāng)前場景的根節(jié)點,將所述根節(jié)點的誤差范圍作為所述當(dāng)前場景的誤差范圍,并且刪除所存儲的歷史節(jié)點和所存儲的歷史節(jié)點的特征信息,并且所述場景規(guī)約單元濾除在所述當(dāng)前節(jié)點的特征信息與所存儲的歷史節(jié)點的特征信息之間重復(fù)的特征信息,并且將剩余的特征信息作為所述當(dāng)前場景的特征信息。
[0102]具體地,該場景規(guī)約單元190將當(dāng)前節(jié)點(即,節(jié)點3)和在存儲單元170中存儲的歷史節(jié)點(即,節(jié)點2和節(jié)點I)規(guī)約為單一場景,作為當(dāng)前場景,即如圖9所圖示的場景I。然后,該場景規(guī)約單元190將在存儲單元170中存儲的所有歷史節(jié)點(例如,節(jié)點2和節(jié)點I)中的第一個節(jié)點(即,節(jié)點I)作為場景I的根節(jié)點,將節(jié)點I的誤差范圍作為場景I的誤
差范圍。
[0103]然后,該場景規(guī)約單元190對在當(dāng)前節(jié)點(即,節(jié)點3)中包括的特征信息和在存儲單元170中存儲的歷史節(jié)點(即,節(jié)點2和節(jié)點I)中包括的特征信息進行過濾,刪除它們之中的重疊特征信息,并且將不包括任何冗余性的特征信息作為場景I的特征信息。然后,該存儲單元170將場景I的特征信息與場景I相關(guān)聯(lián)地存儲到存儲器中,使得環(huán)路檢測單元150能夠得知在存儲單元170中存儲的每個場景都包括哪些節(jié)點和哪些特征信息。
[0104]最后,該場景規(guī)約單元190通知存儲單元170刪除在其中所存儲的歷史節(jié)點(SP,節(jié)點2和節(jié)點I)和它們的特征信息,以便釋放存儲器的空間,防止過多無用數(shù)據(jù)占用存儲資源。
[0105]這樣,場景規(guī)約單元190就生成了以下的場景1,即節(jié)點I作為根節(jié)點,節(jié)點I的誤差范圍作為其誤差范圍,并且包括有節(jié)點3到節(jié)點I中全部特征信息。
[0106]在步驟S360中,判斷在當(dāng)前場景的誤差范圍中是否存在歷史場景。
[0107]在場景規(guī)約單元190確定所述當(dāng)前場景的誤差范圍之后,該范圍判斷單元140判斷在所述當(dāng)前場景的誤差范圍中是否存在歷史場景。該范圍判斷單元140獲取歷史場景,提取所述歷史場景的根節(jié)點的位置信息,并且根據(jù)所述歷史場景根節(jié)點的位置信息來判斷所述歷史場景是否存在于所述當(dāng)前場景的誤差范圍中。如果在所述當(dāng)前場景的誤差范圍中存在歷史場景,則該范圍判斷單元140通知環(huán)路檢測單元150對所述當(dāng)前場景和所述歷史場景進行環(huán)路檢測。否則,該環(huán)路檢測單元150不執(zhí)行任何操作,并且根據(jù)本發(fā)明第二實施例的信息處理方法返回到步驟S310繼續(xù)執(zhí)行,直到機器人不再運動為止,也就是說,直到節(jié)點獲取單元110無法獲取到新的一幀觀測數(shù)據(jù)為止。
[0108]具體地,由于此時當(dāng)前場景(B卩,場景I)是機器人運動軌跡中的第一個場景,在它之前并不存在任何歷史場景,所以該范圍判斷單元140必然判斷在所述當(dāng)前場景的誤差范圍中沒有存在歷史場景。
[0109]換言之,即使在當(dāng)前場景之前存在一個或多個歷史場景,但是由于此時該當(dāng)前場景的誤差范圍是節(jié)點I的誤差范圍,即為0,所以該范圍判斷單元140也必然判斷在所述當(dāng)前場景的誤差范圍中沒有存在歷史場景。
[0110]故此,如上所述,該范圍判斷單元140沒有通知環(huán)路檢測單元150進行環(huán)路檢測,而是通知節(jié)點獲取單元110繼續(xù)獲取下一幀觀測數(shù)據(jù)。接下來,根據(jù)本發(fā)明第二實施例的信息處理方法返回到步驟S310繼續(xù)執(zhí)行。
[0111]具體地,機器人在位置4到位置8處繼續(xù)執(zhí)行SLAM操作。節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、特征提取單元160、存儲單元170、和數(shù)目判斷單元180繼而對機器人在位置4到位置8的觀測數(shù)據(jù)進行處理、存儲和判斷,假設(shè)在當(dāng)前節(jié)點4到節(jié)點8中包括的特征點的數(shù)目分別是10、10、10、10和70。于是,在步驟S350中,數(shù)目判斷單元180判斷出特征提取單元160從節(jié)點8中提取到的特征點的數(shù)目70與所存儲的歷史節(jié)點(即,節(jié)點7、節(jié)點6、節(jié)點5和節(jié)點4)的特征點的數(shù)目之和為110,即已經(jīng)超過閾值數(shù)目100。然后,它就通知場景規(guī)約單元190進行規(guī)約處理。場景規(guī)約單元190就生成了以下的場景2,即節(jié)點4作為根節(jié)點,節(jié)點4的誤差范圍作為其誤差范圍,并且包括有節(jié)點8到節(jié)點4中全部特征信息。然后,該存儲單元170將場景2的特征信息和場景2中的所有節(jié)點與場景2相關(guān)聯(lián)地存儲到存儲器中。接下來,在步驟S360中,范圍判斷單元140獲取當(dāng)前場景(即,場景2)的所有歷史場景(即,場景1),提取場景I的根節(jié)點(即,節(jié)點I)的位置信息,根據(jù)節(jié)點I的位置信息來判斷場景I是否存在于場景2的誤差范圍中。如圖9所圖示的,該場景2雖然存在一定的誤差,但是它的誤差不是很大,顯然,場景2的歷史場景(S卩,場景I)的根節(jié)點(節(jié)點I)并沒有位于該誤差范圍內(nèi)。因此,該范圍判斷單元140同樣通知節(jié)點獲取單元110繼續(xù)獲取下一幀觀測數(shù)據(jù)。
[0112]如此類推,在根據(jù)本發(fā)明第二實施例的信息處理設(shè)備中,節(jié)點獲取單元110、位置計算單元120、誤差確定單元130、范圍判斷單元140、特征提取單元160、存儲單元170、數(shù)目判斷單元180和場景規(guī)約單元190繼而對機器人在位置9到位置12的觀測數(shù)據(jù)進行處理、存儲和判斷。場景規(guī)約單元190就生成了以下的場景3,即節(jié)點9作為根節(jié)點,節(jié)點9的誤差范圍作為其誤差范圍,并且包括有節(jié)點9到節(jié)點12中全部特征信息。然后,該存儲單元170將場景3的特征信息和場景3中的所有節(jié)點與場景3相關(guān)聯(lián)地存儲到存儲器中。如圖9所圖示的,在當(dāng)前場景的誤差范圍中也沒有存在歷史場景。
[0113]最后,機器人重新回到初始位置I,并且執(zhí)行SLAM操作。該節(jié)點獲取單元110在步驟S310中從機器人接收下一幀觀測數(shù)據(jù)(例如,180個掃描點的二維坐標(biāo)),作為當(dāng)前節(jié)點,即如圖9所圖示的節(jié)點13。然后,該位置計算單元120在步驟S320中使用例如掃描匹配方法中的迭代最近點(ICP)算法或極點掃描匹配(PSM)算法來獲得節(jié)點13在未知環(huán)境中的坐標(biāo)信息(xl3,yl3)。接下來,該特征提取單元160在步驟S330中從節(jié)點13中提取其中包括的特征信息,假設(shè)在當(dāng)前節(jié)點2中包括的特征點的數(shù)目是140。誤差確定單元130在步驟S340中通過計算節(jié)點13的方差和/或協(xié)方差,從而獲得節(jié)點13的誤差范圍,例如,該節(jié)點13的誤差范圍在圖9中通過節(jié)點13外圍的虛線圓圈來示意性地表示。在步驟S350中,數(shù)目判斷單元180判斷出特征提取單元160從節(jié)點2中提取到的特征點的數(shù)目140已經(jīng)超過閾值數(shù)目100。然后,它就通知場景規(guī)約單元190進行規(guī)約處理。這樣,場景規(guī)約單元190就生成了以下的場景4,即節(jié)點13作為根節(jié)點,節(jié)點13的誤差范圍作為其誤差范圍,并且包括有節(jié)點13中全部特征信息。然后,該存儲單元170將場景4的特征信息和場景4中的所有節(jié)點與場景4相關(guān)聯(lián)地存儲到存儲器中。如圖9所圖示的,場景4的誤差范圍大于場景3的誤差范圍,并且其中包括有場景I。然后,在步驟S360中,范圍判斷單元140可以判斷出在當(dāng)前場景(即,場景4)的誤差范圍中存在歷史場景(S卩,場景1),于是該范圍判斷單元140進一步通知環(huán)路檢測單元150對場景4和場景I進行環(huán)路檢測。
[0114]在步驟S370中,對當(dāng)前場景和歷史場景進行環(huán)路檢測。
[0115]在接收到范圍判斷單元140的通知之后,環(huán)路檢測單元150對所述當(dāng)前場景和所述歷史場景進行環(huán)路檢測。
[0116]具體地,該環(huán)路檢測單元150可以使用第一匹配方法,通過所述當(dāng)前場景的特征信息和所述歷史場景的特征信息,來對所述當(dāng)前場景中的最后一個節(jié)點和所述歷史場景中的第一個節(jié)點進行環(huán)路檢測。例如,該環(huán)路檢測單元150可以首先從存儲單元170中讀取在該場景4和場景I中包括的特征信息,并且使用例如特征匹配方法來對場景4中一定數(shù)目的特征點和場景I中一定數(shù)目的特征點進行匹配,尋找兩者之間的特征點對的匹配,從而確定在場景4中的最后一個節(jié)點(即節(jié)點13)與場景I中的第一個節(jié)點(即,節(jié)點I)之間是否存在閉環(huán)。因此,該環(huán)路檢測單元150最終可以發(fā)現(xiàn)節(jié)點13的位置坐標(biāo)與節(jié)點I的位置坐標(biāo)是相同的,并因而,在所繪制的未知環(huán)境的地圖中將機器人的運動軌跡進行環(huán)路閉合。
[0117]當(dāng)然,這種環(huán)路檢測只有在兩個節(jié)點的位置坐標(biāo)完全相同或者非常接近的時候才會成功,也就是說,即使范圍判斷單元140判斷出在當(dāng)前場景的誤差范圍中存在歷史場景,而如果所述當(dāng)前場景中的最后一個節(jié)點和所述歷史場景中的第一個節(jié)點之間根本沒有存在環(huán)路,該環(huán)路檢測單元150也將不會在兩者之間進行環(huán)路閉合,即將得到正確的環(huán)路檢測結(jié)果。
[0118]在步驟S380中,將當(dāng)前場景的誤差范圍修改為歷史場景的誤差范圍。
[0119]如果環(huán)路檢測單元150在所述當(dāng)前場景與所述歷史場景之間成功地檢測到環(huán)路,則誤差修改單元200將所述當(dāng)前場景的誤差范圍修改為所述歷史場景的誤差范圍。
[0120]具體地,當(dāng)環(huán)路檢測單元150成功地在場景4中的最后一個節(jié)點(即節(jié)點13)與場景I中的第一個節(jié)點(即,節(jié)點I)之間發(fā)現(xiàn)環(huán)路之后,該誤差修改單元200采用回溯算法來降低先前所計算的場景的誤差范圍。
[0121]在一個示例中,假設(shè)場景I的誤差范圍是0,場景2的誤差范圍是60,場景3的誤差范圍是90,而場景4的誤差范圍是100。那么,誤差修改單元200可以將場景4的誤差范圍修改為場景I的誤差范圍,即O ;將場景3的誤差范圍修改為場景4的誤差范圍與場景3的誤差范圍之差再加上場景4修改后的誤差范圍,即100-90+0=10 ;而將場景2的誤差范圍修改為場景3的誤差范圍與場景2的誤差范圍之差再加上場景3修改后的誤差范圍,即90-60+10=40 ο
[0122]在另一示例中,假設(shè)場景I的誤差范圍是0,場景2的誤差范圍是30,場景3的誤差范圍是90,而場景4的誤差范圍是100。那么,誤差修改單元200可以將場景4的誤差范圍修改為場景I的誤差范圍,即O ;將場景3的誤差范圍修改為場景4的誤差范圍與場景3的誤差范圍之差再加上場景4修改后的誤差范圍,即100-90+0=10 ;而將場景2的誤差范圍修改為場景3的誤差范圍與場景2的誤差范圍之差再加上場景3修改后的誤差范圍,即90-30+10=70。這時,由于場景2修改后的誤差范圍要大于場景2的原始誤差范圍,所以基于希望獲得最小誤差的目的,該誤差修改單元200不再對場景2的誤差進行修改。
[0123]顯然,步驟S380同樣也可以在本發(fā)明的第一實施例中執(zhí)行,以使得如果環(huán)路檢測單元150在節(jié)點13與節(jié)點I之間成功地檢測到環(huán)路,則將節(jié)點13的誤差范圍修改為節(jié)點I的誤差范圍,即O。
[0124]由此可見,采用根據(jù)本發(fā)明第二實施例的信息處理方和信息處理設(shè)備,提出了一種基于場景(session)的融合掃描匹配和特征匹配的2D-SLAM方法。該方法首先利用掃描匹配方法來計算出當(dāng)前robot的位姿,再提取掃描信息中的2D特征點,然后將連續(xù)的特征點統(tǒng)一規(guī)約到session中去,并把每一個session看成圖中的節(jié)點來構(gòu)建地圖,最后利用特征點對匹配的方法來尋找閉環(huán),并利用圖優(yōu)化算法來優(yōu)化最后的robot位姿。因此,在本發(fā)明的第二實施例中,一方面,具有高度的可擴展性,使得能夠基于圖優(yōu)化的算法可以結(jié)合2D-SLAM的一系列算法,另一方面,在大范圍場景中,可以精確地對機器人進行定位,發(fā)現(xiàn)機器人軌跡中的環(huán)路,從而實現(xiàn)了一種對節(jié)點相關(guān)性幾乎沒有依賴的有效閉環(huán)的2D-SLAM方法以用于機器人精確定位。
[0125]需要說明的是,盡管在上文中以特定的順序描述了根據(jù)本發(fā)明第二實施例的信息處理方法,但是本發(fā)明不限于此。例如,顯然,步驟S330可以在步驟S320之前執(zhí)行或者與之同時執(zhí)行。同理,步驟S330可以在步驟S340之后執(zhí)行或者與之同時執(zhí)行。
[0126]下面,將參考圖1Oa到圖1Oc來說明根據(jù)現(xiàn)有技術(shù)的解決方案與根據(jù)本發(fā)明的信息處理方法所生成的運動軌跡的效果比對。
[0127]圖1Oa圖示了機器人的真實運動軌跡,圖1Ob圖示了根據(jù)現(xiàn)有技術(shù)得到的運動軌跡,而圖1Oc圖示了根據(jù)本發(fā)明得到的運動軌跡。
[0128]如圖1Oa所圖示,機器人在正圓形形狀的未知環(huán)境中行進。該機器人按照時間順序從起始點(如其中灰色橢圓形標(biāo)記所圖示的)移動到最終點(如其中黑色橢圓形標(biāo)記所圖示的)。
[0129]如圖1Ob所圖示,當(dāng)只使用現(xiàn)有技術(shù)中的掃描匹配方法來對機器人的運動軌跡進行估計和繪制時,可以看出結(jié)果無法閉環(huán),而且累計誤差非常大。
[0130]如圖1Oc所圖示,當(dāng)只使用根據(jù)本發(fā)明的基于session的融合掃描匹配和特征匹配的2D-SLAM方法來對機器人的運動軌跡進行估計和繪制時,可以看出所形成的路徑和機器人的真實運動軌跡非常接近,而且實現(xiàn)了完美閉環(huán)。
[0131]此外,表I示出了根據(jù)現(xiàn)有技術(shù)的解決方案與根據(jù)本發(fā)明的信息處理方法所生成的誤差范圍的效果比對。
[0132]
【權(quán)利要求】
1.一種信息處理方法,應(yīng)用于可移動電子設(shè)備,所述可移動電子設(shè)備被用于未知環(huán)境的即時定位與地圖構(gòu)建,其特征在于,所述方法包括: 獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點; 計算所述當(dāng) 前節(jié)點的位置信息; 確定所述當(dāng)前節(jié)點的誤差范圍; 判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點;以及 如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。
2.根據(jù)權(quán)利要求1的方法,其特征在于,所述方法還包括: 從所述當(dāng)前節(jié)點中提取特征信息; 判斷所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和是否大于或等于閾值數(shù)目;以及 如果所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和大于或等于所述閾值數(shù)目,則將所述當(dāng)前節(jié)點和所存儲的歷史節(jié)點規(guī)約為單一場景作為當(dāng)前場景,并且將所述當(dāng)前節(jié)點的特征信息和所存儲的歷史節(jié)點的特征信息規(guī)約為所述當(dāng)前場景的特征信息。
3.根據(jù)權(quán)利要求2的方法,其特征在于,所述將所述當(dāng)前節(jié)點和所存儲的歷史節(jié)點規(guī)約為單一場景作為當(dāng)前場景的步驟包括: 將所述歷史節(jié)點中的第一個節(jié)點作為所述當(dāng)前場景的根節(jié)點; 將所述根節(jié)點的誤差范圍作為所述當(dāng)前場景的誤差范圍;以及 刪除所存儲的歷史節(jié)點和所存儲的歷史節(jié)點的特征信息。
4.根據(jù)權(quán)利要求2的方法,其特征在于,所述將所述當(dāng)前節(jié)點的特征信息和所存儲的歷史節(jié)點的特征信息規(guī)約為所述當(dāng)前場景的特征信息的步驟包括: 濾除在所述當(dāng)前節(jié)點的特征信息與所存儲的歷史節(jié)點的特征信息之間重復(fù)的特征信息;以及 將剩余的特征信息作為所述當(dāng)前場景的特征信息。
5.根據(jù)權(quán)利要求2的方法,其特征在于, 所述判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點的步驟包括: 判斷在所述當(dāng)前場景的誤差范圍中是否存在歷史場景,并且 所述如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測的步驟包括: 如果在所述當(dāng)前場景的誤差范圍中存在歷史場景,則對所述當(dāng)前場景和所述歷史場景進行環(huán)路檢測。
6.根據(jù)權(quán)利要求5的方法,其特征在于,所述判斷在所述當(dāng)前場景的誤差范圍中是否存在歷史場景的步驟包括: 獲取歷史場景; 提取所述歷史場景的根節(jié)點的位置信息;以及 根據(jù)所述歷史場景根節(jié)點的位置信息來判斷所述歷史場景是否存在于所述當(dāng)前場景的誤差范圍中。
7.根據(jù)權(quán)利要求5的方法,其特征在于,所述對所述當(dāng)前場景和所述歷史場景進行環(huán)路檢測的步驟包括: 使用第一匹配方法,通過所述當(dāng)前場景的特征信息和所述歷史場景的特征信息,來對所述當(dāng)前場景中的最后一個節(jié)點和所述歷史場景中的第一個節(jié)點進行環(huán)路檢測。
8.根據(jù)權(quán)利要求2的方法,其特征在于,所述方法還包括: 如果所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和小于所述閾值數(shù)目,則將所述當(dāng)前節(jié)點添加存儲到所存儲的歷史節(jié)點中,并且將所述當(dāng)前節(jié)點的特征信息添加存儲到所存儲的歷史節(jié)點的特征信息中。
9.根據(jù)權(quán)利要求1的方法,其特征在于,所述計算所述當(dāng)前節(jié)點的位置信息的步驟包括: 使用第二匹配方法來對所述當(dāng)前節(jié)點和所述當(dāng)前節(jié)點的前一節(jié)點進行局部地圖構(gòu)建。
10.根據(jù)權(quán)利要求1的方法,其特征在于,所述方法還包括: 如果在所述當(dāng)前節(jié)點與所述歷史節(jié)點之間成功地檢測到環(huán)路,則將所述當(dāng)前節(jié)點的誤差范圍修改為所述歷史節(jié)點的誤差范圍。
11.一種信息處理設(shè)備,應(yīng)用于可移動電子設(shè)備,所述可移動電子設(shè)備被用于未知環(huán)境的即時定位與地圖構(gòu)建,其特征在于,所述信息處理設(shè)備包括: 節(jié)點獲取單元,用于獲取一幀觀測數(shù)據(jù)作為當(dāng)前節(jié)點; 位置計算單元,用于計算所述當(dāng)前節(jié)點的位置信息; 誤差確定單元,用于確定所述當(dāng)前節(jié)點的誤差范圍; 范圍判斷單元,用于判斷在所述當(dāng)前節(jié)點的誤差范圍中是否存在歷史節(jié)點;以及 環(huán)路檢測單元,用于如果在所述當(dāng)前節(jié)點的誤差范圍中存在歷史節(jié)點,則對所述當(dāng)前節(jié)點和所述歷史節(jié)點進行環(huán)路檢測。
12.根據(jù)權(quán)利要求11的信息處理設(shè)備,其特征在于,所述信息處理設(shè)備還包括: 特征提取單元,用于從所述當(dāng)前節(jié)點中提取特征信息; 數(shù)目判斷單元,用于判斷所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和是否大于或等于閾值數(shù)目;以及 場景規(guī)約單元,用于如果所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和大于或等于所述閾值數(shù)目,則將所述當(dāng)前節(jié)點和所存儲的歷史節(jié)點規(guī)約為單一場景作為當(dāng)前場景,并且將所述當(dāng)前節(jié)點的特征信息和所存儲的歷史節(jié)點的特征信息規(guī)約為所述當(dāng)前場景的特征信息。
13.根據(jù)權(quán)利要求12的信息處理設(shè)備,其特征在于,所述場景規(guī)約單元將所述歷史節(jié)點中的第一個節(jié)點作為所述當(dāng)前場景的根節(jié)點,將所述根節(jié)點的誤差范圍作為所述當(dāng)前場景的誤差范圍,并且刪除所存儲的歷史節(jié)點和所存儲的歷史節(jié)點的特征信息。
14.根據(jù)權(quán)利要求12的信息處理設(shè)備,其特征在于,所述場景規(guī)約單元濾除在所述當(dāng)前節(jié)點的特征信息與所存儲的歷史節(jié)點的特征信息之間重復(fù)的特征信息,并且將剩余的特征信息作為所述當(dāng)前場景的特征信息。
15.根據(jù)權(quán)利要求12的信息處理設(shè)備,其特征在于, 所述范圍判斷單元判斷在所述當(dāng)前場景的誤差范圍中是否存在歷史場景,并且 如果在所述當(dāng)前場景的誤差范圍中存在歷史場景,則所述環(huán)路檢測單元對所述當(dāng)前場景和所述歷史場景進行環(huán)路檢測。
16.根據(jù)權(quán)利要求15的信息處理設(shè)備,其特征在于,所述范圍判斷單元獲取歷史場景,提取所述歷史場景的根節(jié)點的位置信息,并且根據(jù)所述歷史場景根節(jié)點的位置信息來判斷所述歷史場景是否存在于所述當(dāng)前場景的誤差范圍中。
17.根據(jù)權(quán)利要求15的信息處理設(shè)備,其特征在于,所述環(huán)路檢測單元使用第一匹配方法,通過所述當(dāng)前場景的特征信息和所述歷史場景的特征信息,來對所述當(dāng)前場景中的最后一個節(jié)點和所述歷史場景中的第一個節(jié)點進行環(huán)路檢測。
18.根據(jù)權(quán)利要求12的信息處理設(shè)備,其特征在于,所述信息處理設(shè)備還包括: 存儲單元,用于如果所述當(dāng)前節(jié)點的特征信息數(shù)目與所存儲的歷史節(jié)點的特征信息數(shù)目之和小于所述閾值數(shù)目,則將所述當(dāng)前節(jié)點添加存儲到所存儲的歷史節(jié)點中,并且將所述當(dāng)前節(jié)點的特征信息添加存儲到所存儲的歷史節(jié)點的特征信息中。
19.根據(jù)權(quán)利要求11的信息處理設(shè)備,其特征在于,所述位置計算單元使用第二匹配方法來對所述當(dāng)前節(jié)點和所述當(dāng)前節(jié)點的前一節(jié)點進行局部地圖構(gòu)建。
20.根據(jù)權(quán)利要求11的信息處理設(shè)備,其特征在于,所述信息處理設(shè)備還包括: 誤差修改單元,用于如果在所述當(dāng)前節(jié)點與所述歷史節(jié)點之間成功地檢測到環(huán)路,則將所述當(dāng)前節(jié)點的 誤差范圍修改為所述歷史節(jié)點的誤差范圍。
【文檔編號】G05D1/02GK103901885SQ201210589700
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】張賀, 劉國良 申請人:聯(lián)想(北京)有限公司