本發明涉及機器人領域,具體涉及一種機器人互相檢測方法及裝置。
背景技術:
室內機器人在導航時,需要實時地對周圍環境進行檢測。目前室內的移動機器人使用的傳感器主要有兩類:一種是RGB深度(Red Green Blue Depth,RGB-D)攝像頭或者雙目相機,另一種是激光雷達。由于RGB-D攝像頭是通過圖像信息或者點云信息作為原始數據進行障礙檢測,造成其運算數據量較大,并且,其結果容易受到室內光線的影響,魯棒性較差。而激光雷達相較于RGB-D攝像頭,具有數據準確,不受環境光照影響,數據量較小等特點,因而被廣泛的應用在室內機器人上,作為室內機器人的“眼睛”。因為多線激光雷達的成本較高,目前普遍采用的是單線激光雷達。安裝有激光雷達的機器人,其外殼必須鏤空,才能讓激光雷達的射線發射出去以檢測環境中的障礙物,因而當有多個機器人在室內的同一樓層中運行時,一個機器人只能看到其它機器人的雷達,而無法看到其它機器人的整體輪廓。但是雷達的物理尺寸相對于機器人的整體輪廓來說還是太小了,這造成了機器人互相之間無法進行準確的位置檢測,影響到機器人在室內的運行。
技術實現要素:
本發明實施例提供一種機器人互相檢測方法及裝置,旨在當建筑物內運作有多個單線激光雷達機器人時,機器人之間能夠準確的進行位置檢測。
本發明實施例的第一方面,提供一種機器人互相檢測方法,所述機器人互相檢測方法包括:
第一機器人獲取第二機器人在全局地圖下的中心坐標;
獲取所述第二機器人的輪廓信息;
根據所述第二機器人的輪廓信息及所述第二機器人在全局地圖下的中心坐標,計算得到所述第二機器人在全局地圖下的輪廓坐標;
將所述第二機器人在全局地圖下的輪廓坐標轉換為在第一局部地圖下的輪廓坐標,其中,所述第一局部地圖為所述第一機器人的局部地圖;
在所述第一局部地圖下,根據所述第二機器人在第一局部地圖下的輪廓坐標,標記所述第二機器人。
本發明實施例的第二方面,提供一種機器人互相檢測裝置,所述機器人互相檢測裝置包括:
中心坐標獲取單元,用于獲取第二機器人在全局地圖下的中心坐標;
輪廓信息獲取單元,用于獲取所述第二機器人的輪廓信息;
輪廓坐標計算單元,用于根據所述輪廓信息獲取單元獲取到的第二機器人的輪廓信息及所述中心坐標獲取單元獲取到的第二機器人在全局地圖下的中心坐標,計算得到所述第二機器人在全局地圖下的輪廓坐標;
輪廓坐標轉換單元,用于將所述輪廓坐標計算單元計算得到的第二機器人在全局地圖下的輪廓坐標轉換為在第一局部地圖下的輪廓坐標,其中,所述第一局部地圖為所述第一機器人的局部地圖;
第二機器人標記單元,用于在所述第一局部地圖下,根據所述輪廓坐標轉換單元獲得的第二機器人在第一局部地圖下的輪廓坐標,標記所述第二機器人。
由上可見,在本發明實施例中,首先由第一機器人獲取第二機器人在全局地圖下的中心坐標,并隨后獲取所述第二機器人的輪廓信息,然后根據所述第二機器人的輪廓信息及所述第二機器人在全局地圖下的中心坐標,計算得到所述第二機器人在全局地圖下的輪廓坐標,將所述第二機器人在在全局地圖下的輪廓坐標轉換為在第一局部地圖下的輪廓坐標,其中,所述第一局部地圖為所述第一機器人的局部地圖,最后在所述第一局部地圖下,根據所述第二機器人在第一局部地圖下的輪廓坐標,標記所述第二機器人。本發明實施例使得單線激光雷達機器人能夠快速獲知其它機器人的位置,避免因位置檢測不及時而影響到機器人的運行。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的機器人互相檢測方法的實現流程圖;
圖2為本發明實施例提供的機器人互相檢測裝置的結構框圖。
具體實施方式
為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而非全部實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
以下結合具體實施例對本發明的實現進行詳細描述:
實施例一
圖1示出了本發明實施例一提供的機器人互相檢測方法的實現流程,詳述如下:
在步驟S101中,第一機器人獲取第二機器人在全局地圖下的中心坐標。
在本發明實施例中,為了更好的說明本發明實施例的方案,首先對第一機器人及第二機器人作簡單介紹。在同一建筑物中的所有機器人中,選定其中任意一個,作為本發明實施例中的第一機器人,并利用本發明實施例方案檢測其它機器人位置。由于本發明提供的是一種機器人互相檢測方法,因而除了上述第一機器人之外的其它所有機器人,都可以作為第二機器人。實際上,由于任一機器人都可以使用本發明實施例的方案檢測其它機器人,因而,上述第一機器人及第二機器人可以根據實際情況選定,此處不作限定。
上述第一機器人可以獲取上述第二機器人在全局地圖下的中心坐標。針對室內機器人的導航,為了其安全性,通常會在機器人正式開始運作之前,運用即時定位與地圖構建技術(Simultaneous Localization And Mapping,SLAM)構建室內環境地圖,作為機器人的全局地圖。雖然通過SLAM技術構建的先驗地圖由于人類活動等動態不確定因素,會導致與機器人實際運行時的地圖存在些許差別,但它仍能基本反映出機器人所處的環境。對于全局地圖,現有的主流方法為使用柵格地圖來表示。柵格地圖即為用一個個柵格來表示環境地圖,其坐標軸單位為行或列。當環境中某處有障礙物時,柵格地圖的對應位置也會被設置為障礙,當環境中某處不存在障礙物時,其在柵格地圖的對應位置會被設置為空閑。利用SLAM技術構建的全局地圖可以讓機器人了解到自身所處環境的大概狀況,初步確定運行軌跡。進一步地,此時獲取到的第二機器人的坐標位置,為第二機器人的中心位置,而并非第二機器人的輪廓位置。可以認為,由于機器人可以具有不同的外部形狀,因而獲取到的第二機器人的中心坐標并不能真實反映該機器人在環境中實際占有的空間,因而,需要對獲取到的中心坐標位置作進一步處理。
具體地,上述第一機器人可以與上述第二機器人建立藍牙連接,然后由上述第一機器人的上位機通過藍牙獲取上述第二機器人在世界坐標系下的中心坐標,并根據上述全局地圖中保存的與上述世界坐標系的關系,將上述第二機器人在世界坐標系下的中心坐標轉換為上述第二機器人在全局地圖下的中心坐標。其中,世界坐標系為物理坐標系,其坐標軸單位為米。機器人在初始啟動后利用SLAM技術構建全局地圖時在運行區域內行走的初始位置即為世界坐標系。在利用SLAM技術構建全局地圖完畢后,上述全局地圖中保存了其與上述世界坐標系之間的關系。通過上述全局地圖與上述世界坐標系之間的關系,就可以將上述全局地圖下的坐標與世界坐標系下的坐標進行轉換。而在每個機器人運行時,機器人都可以通過自身的定位系統實時獲知當前時刻自己在世界坐標系下的坐標,因此,上述第一機器人獲取到的第二機器人的中心坐標實際上為上述第二機器人在世界坐標系下的中心坐標。在獲取到了上述第二機器人在世界坐標系下的中心坐標后,上述第一機器人再根據全局地圖中保存的與上述世界坐標系之間的關系,得到上述第二機器人在全局地圖下的中心坐標。
在步驟S102中,獲取上述第二機器人的輪廓信息。
在本發明實施例中,上述第一機器人可以繼續獲取上述第二機器人的輪廓信息。由于不同機器人可以具有不同的外部形狀,因而,此處需要獲取與第二機器人相對應的輪廓信息。其中,上述第二機器人相對應的輪廓信息可以與上述第二機器人的中心點相關聯。
可選地,由于每個機器人都具備唯一的ID號,為了快速獲取上述第二機器人的輪廓信息,可以在步驟S102之前,首先獲取上述第二機器人的ID,并根據上述第二機器人的ID,確定上述第二機器人的型號。其中,由于每個機器人的ID唯一,因而可以根據獲取到的第二機器人的ID快速獲知第二機器人的型號。在獲取到了上述第二機器人的型號之后,可以根據上述第二機器人的型號,通過不同的渠道獲取上述第二機器人的輪廓信息。例如,當上述第二機器人與上述第一機器人的型號不相同時,則上述第一機器人可以從自身保存的預設的機器人輪廓信息表中查找上述第二機器人的輪廓信息;當上述第二機器人與上述第一機器人的型號相同時,則上述第一機器人可以直接讀取自身的輪廓信息,并將第一機器人自身的輪廓信息作為上述第二機器人的輪廓信息。其中,上述預設的機器人輪廓信息表可以保存運行區域內存在的所有機器人型號及對應的輪廓信息,并且可以由用戶根據運行區域內實際運行的機器人自行增加類別或刪減類別。由于上述第一機器人可以根據上述第二機器人的ID快速確定其型號,再通過查找上述預設的機器人輪廓信息表,可以簡單方便的確認上述第二機器人的輪廓信息。而在當上述第二機器人的型號跟第一機器人相同時,上述第二機器人與上述第一機器人的外形輪廓完全一致。由于上述第一機器人必然知道自身的輪廓信息,因而只需簡單的讀取自身的輪廓信息并將自身的輪廓信息作為上述第二機器人的輪廓信息即可。當然,也可以通過其它方法獲取上述第二機器人的輪廓信息,此處不作限定。若在區域內運行的所有機器人型號都一致,則無需保存上述預設的機器人輪廓信息表。
在步驟S103中,根據上述第二機器人的輪廓信息及上述第二機器人在全局地圖下的中心坐標,計算得到上述第二機器人在全局地圖下的輪廓坐標。
在本發明實施例中,根據步驟S102獲取到的上述第二機器人的輪廓信息及步驟S101獲取到的上述第二機器人在全局地圖下的中心坐標,計算得到上述第二機器人在全局地圖下的輪廓坐標。由于步驟S102中獲取到的第二機器人的輪廓信息與步驟S101中獲取到的第二機器人的中心坐標相關聯,因而可以通過該關聯關系,計算得到上述第二機器人在全局地圖下的輪廓坐標。
在步驟S104中,將上述第二機器人在全局地圖下的輪廓坐標轉換為在第一局部地圖下的輪廓坐標。
在本發明實施例中,在步驟S103獲取到了上述第二機器人在全局地圖下的輪廓坐標后,上述第一機器人可以繼續將上述第二機器人在全局地圖下的輪廓坐標轉換為第一局部地圖下的輪廓坐標,其中,上述第一局部地圖為上述第一機器人的局部地圖,其為一種柵格地圖,坐標軸單位為行或列。局部地圖為機器人在導航時進行避障策略的基礎,在以機器人為中心的預設范圍內的障礙物都可以標記在其中,它隨著機器人的移動而移動,不斷刷新。具體地,步驟S104可以這樣實現:首先由上述第一機器人將獲取到的上述第二機器人在全局地圖下的輪廓坐標轉換為在第一機器人坐標系下的輪廓坐標,然后再根據第一局部地圖保存的與第一機器人坐標系的轉換關系,將上述第二機器人在第一機器人坐標系下的輪廓坐標轉換為在第一局部地圖下的輪廓坐標。上述機器人坐標系為機器人以自身質心作為坐標原點構建的坐標系,其坐標軸單位為米。
可選地,由于步驟S104中,只獲取到了第二機器人在第一局部地圖下的輪廓坐標,而機器人實際上并不僅僅只是一個輪廓或者驅殼,因而,在步驟S104之后,還包括:獲取上述第二機器人在第一局部地圖下的內部坐標。
其中,可以將第一局部地圖下橫軸坐標相同的輪廓坐標放入同一優先級隊列中,并在上述同一優先級隊列中篩選出縱坐標最小及縱坐標最大的輪廓坐標點。可以簡單的認為,在上述橫軸坐標下,上述第二機器人占領的縱軸坐標范圍即為上述篩選出的縱坐標最小的點至縱坐標最大的點。通過上述方法,即可獲取到上述第二機器人在第一局部地圖下的所有內部坐標。
在步驟S105中,在上述第一局部地圖下,根據上述第二機器人在第一局部地圖下的輪廓坐標,標記上述第二機器人。
在本發明實施例中,在上述第一局部地圖下,根據步驟S104中已經獲取到的第二機器人在第一局部地圖下的輪廓坐標,標記出上述第二機器人作為障礙物,其中,上述第一局部地圖中包括有靜態層,障礙物層及膨脹層。上述靜態層為構建全局地圖時獲得的靜態的圖層;上述障礙物層為標記有傳感器檢測到的障礙物的圖層;上述膨脹層為對上述障礙物層標記的障礙物進行了膨脹處理后得到的圖層。為了將上述第二機器人也在第一局部地圖中得以表示,可以在上述第一局部地圖中增設機器人層,其中,上述機器人層與上述第一局部地圖的尺寸、坐標原點、坐標軸方向及分辨率均一致;然后基于上述第二機器人在第一局部地圖下的輪廓坐標,根據點在多邊形內的算法(Point in Polygon,PNPoly),在上述機器人層中篩選出被上述第二機器人占領的柵格,并標記為障礙物;在膨脹層中,將上述障礙物層及上述機器人層中已被標記為障礙物的柵格作膨脹處理;最后疊加上述機器人層、靜態層,障礙物層及膨脹層,完成在上述第一局部地圖下對上述第二機器人的標記。
其中,由于機器人的局部地圖僅僅顯示機器人預設范圍內的障礙物,而上述第二機器人在第一局部地圖的輪廓坐標及內部坐標實際上可能已經超出了第一局部地圖所能表示的范圍,這樣在步驟S105中的操作過程中就可能增加不必要的計算量,導致處理系統的負擔增加。為了避免這種情況的發生,在步驟S105中,運用到了PNPoly算法,以能夠正確的篩選出在第一局部地圖范圍內的被第二機器人占領的柵格,剔除掉不在第一局部地圖范圍內的無效輪廓坐標和/或無效內部坐標。
可選地,為了節約機器人的運算資源,在上述步驟S101之后,上述機器人互相檢測方法還包括:
檢測上述第二機器人是否在上述第一機器人的預設范圍內;
上述獲取上述第二機器人的輪廓信息,具體為:當上述第二機器人在上述第一機器人的預設范圍內時,獲取上述第二機器人的輪廓信息。
其中,在獲取到了上述第二機器人在全局地圖下的中心坐標信息后,可以運用歐拉距離計算公式,計算上述第二機器人與第一機器人的歐拉距離,根據上述歐拉距離,上述第一機器人可以作一個初步判定,判斷上述第二機器人是否在第一機器人的預設范圍內。通常情況下,機器人的局部地圖表示的范圍為以機器人為中心,半徑固定的圓形區域或者邊長固定的矩形區域。顯然地,當第一機器人與第二機器人相隔數十米之遠時,是沒有必要進行位置檢測的,只有當第二機器人進入了第一機器人的預設范圍內時,才有必要利用本發明實施例方案對其進行位置檢測。上述第一機器人的預設范圍可以由用戶進行設置,也可以由第一機器人自行設置為第一局部地圖能夠表示的范圍或者設置為第一機器人能夠進行藍牙連接的范圍,此處不作限定。
由上可見,在本發明實施例中,在有多個單線激光雷達機器人運行的區域內,任一機器人均可以獲取其它單線激光雷達機器人的坐標,并結合對應的輪廓信息,將其作為障礙物標記在自身的局部地圖中,使得單線激光雷達機器人能夠快速獲知其它機器人的位置,避免因位置檢測不及時而影響到機器人的運行。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,相應的程序可以存儲于一計算機可讀取存儲介質中,上述的存儲介質,如ROM/RAM、磁盤或光盤等。
實施例二
圖2示出了本發明實施例二提供的機器人互相檢測裝置的具體結構框圖,為了便于說明,僅示出了與本發明實施例相關的部分。該機器人互相檢測裝置2包括:中心坐標獲取單元21,輪廓信息獲取單元22,輪廓坐標計算單元23,輪廓坐標轉換單元24,第二機器人標記單元25。
其中,中心坐標獲取單元21,用于獲取第二機器人在全局地圖下的中心坐標;
輪廓信息獲取單元22,用于獲取上述第二機器人的輪廓信息;
輪廓坐標計算單元23,用于根據上述輪廓信息獲取單元22獲取到的第二機器人的輪廓信息及上述中心坐標獲取單元21獲取到的第二機器人在全局地圖下的中心坐標,計算得到上述第二機器人在全局地圖下的輪廓坐標;
輪廓坐標轉換單元24,用于將上述輪廓坐標計算單元23計算得到的第二機器人在全局地圖下的輪廓坐標轉換為在第一局部地圖下的輪廓坐標,其中,上述第一局部地圖為上述第一機器人的局部地圖;
第二機器人標記單元25,用于在上述第一局部地圖下,根據上述輪廓坐標轉換單元24獲得的第二機器人在第一局部地圖下的輪廓坐標,標記上述第二機器人。
可選地,上述機器人互相檢測裝置2,還包括:
距離檢測單元,用于檢測上述第二機器人是否在上述第一機器人的預設范圍內;
上述輪廓信息獲取裝置22,具體用于,當上述距離檢測單元檢測到上述第二機器人在上述第一機器人的預設范圍內時,獲取上述第二機器人的輪廓信息。
可選地,上述機器人互相檢測裝置2還包括:
ID獲取單元,用于獲取上述第二機器人的ID;
型號確定單元,用于根據上述ID獲取單元獲取到的第二機器人的ID,確定上述第二機器人的型號;
上述輪廓信息獲取裝置22,具體用于,若上述第二機器人與上述第一機器人的型號不相同,則從預設的機器人輪廓信息表中查找上述第二機器人的輪廓信息,若上述第二機器人與上述第一機器人的型號相同,則讀取上述第一機器人自身的輪廓信息,作為上述第二機器人的輪廓信息。
可選地,上述中心坐標獲取單元21,包括:
連接建立子單元,用于與上述第二機器人建立藍牙連接;
世界坐標獲取子單元,用于通過藍牙獲取上述第二機器人在世界坐標系下的中心坐標;
世界坐標轉換子單元,用于根據上述全局地圖中保存的與上述世界坐標系的關系,將上述世界坐標獲取子單元獲取到的第二機器人在世界坐標系下的中心坐標轉換為上述第二機器人在全局地圖下的中心坐標。
可選地,上述第一局部地圖中包括:靜態層,障礙物層及膨脹層;上述第二機器人標記單元25,包括:
機器人層設置子單元,用于在上述第一局部地圖中,增設機器人層,其中,上述機器人層與上述第一局部地圖的尺寸、坐標原點、坐標軸方向及分辨率均一致;
機器人障礙物標記子單元,用于基于上述第二機器人在第一局部地圖下的輪廓坐標,根據PNPoly算法在上述機器人設置子單元增設的機器人層中篩選出被上述第二機器人占領的柵格,并標記為障礙物;
障礙物膨脹子單元,用于在膨脹層中,將上述障礙物層及機器人層中已被標記為障礙物的柵格作膨脹處理;
圖層疊加子單元,用于疊加上述機器人層、靜態層,障礙物層及膨脹層,完成在上述第一局部地圖下對上述第二機器人的標記。
需要說明的是,本發明實施例中的機器人互相檢測裝置具體可以以軟件的方式(例如App的形式)和/或硬件的方式集成在機器人中。
由上可見,在本發明實施例中,在有多個單線激光雷達機器人運行的區域內,任一機器人均可以利用機器人互相檢測裝置,獲取其它單線激光雷達機器人的坐標,并結合對應的輪廓信息,將其它單線激光雷達機器人作為障礙物標記在自身的局部地圖中,使得單線激光雷達機器人能夠快速獲知其它機器人的位置,避免因位置檢測不及時而影響到機器人的運行。
需要說明的是,在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,上述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其它順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定都是本發明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
以上為對本發明所提供的一種較佳實施例,對于本領域的一般技術人員,依據本發明實施例的思想,在具體實施方式及應用范圍上均會有改變之處,綜上,本說明書內容不應理解為對本發明的限制。