一種自動制圖裝置及方法
【專利摘要】本發(fā)明實施例提供的自動制圖裝置及方法,涉及機(jī)器人制圖領(lǐng)域。本發(fā)明的自動制圖裝置及方法,將未知環(huán)境信息,轉(zhuǎn)換為機(jī)器人識別的二維動態(tài)柵格地圖,機(jī)器人運動,柵格地圖也跟著運動與更新,避免了機(jī)器人人為制圖帶來的多次調(diào)整與跟蹤機(jī)器人的運動姿態(tài)帶來的繁瑣工作,大大減少了機(jī)器人制圖所用的時間,并且通過建立四叉樹模型,明確運動目標(biāo)點,第一次在局部柵格地圖上進(jìn)行路徑規(guī)劃,全部過程可以自動完成,計算效率高,編程實現(xiàn)簡單,同時機(jī)器人能夠采集充分的點云數(shù)據(jù),保證了地圖的清晰度。
【專利說明】
_種自動制圖裝置及方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及機(jī)器人制圖領(lǐng)域,具體而言,涉及一種自動制圖裝置及方法。
【背景技術(shù)】
[0002] 隨著計算機(jī)科學(xué)技術(shù)與人工智能,計算機(jī)視覺技術(shù)的發(fā)展,智能自主移動機(jī)器人 同時定位與地圖創(chuàng)建已經(jīng)成為機(jī)器人領(lǐng)域的研究熱點,其目的是研究應(yīng)用計算機(jī)視覺技 術(shù),在復(fù)雜環(huán)境下機(jī)器人能高效率高精度的實現(xiàn)自主定位和地圖創(chuàng)建,體現(xiàn)了計算機(jī)視覺 與機(jī)器人技術(shù)的最新成果。
[0003] 機(jī)器人在未知環(huán)境中從一個未知位置開始移動,在移動過程中利用里程計,輪式 碼盤,深度攝像頭進(jìn)行位置估計和傳感器數(shù)據(jù)采集實現(xiàn)自身定位,同時建造增量式地圖。在 SLAM中,機(jī)器人利用自身攜帶的傳感器識別未知環(huán)境中的特征標(biāo)志,然后根據(jù)機(jī)器人與特 征標(biāo)志之間的相對位置和里程計的讀數(shù)估計機(jī)器人與特征標(biāo)志的全局坐標(biāo)。目前移動機(jī)器 人的地圖創(chuàng)建過程不能夠?qū)崿F(xiàn)自動化,一般的創(chuàng)建流程如下:機(jī)器人通過視覺系統(tǒng)采集未 知環(huán)境的深度信息,操作者通過外部設(shè)備,比如手機(jī),Google Tango或者鍵盤控制機(jī)器人的 運動,機(jī)器人在移動的過程中,一邊采集數(shù)據(jù),同時完成對未知環(huán)境的地圖創(chuàng)建,這樣,在人 為的控制移動機(jī)器人運動姿態(tài)下,機(jī)器人采集完整個未知環(huán)境信息后,通過里程傳感器和 閉環(huán)檢測算法自動實現(xiàn)了對整個未知環(huán)境的場景建模,最終生成未知環(huán)境對應(yīng)的點云圖, 該方法能滿足機(jī)器人三維地圖創(chuàng)建的精度要求。但是對于復(fù)雜環(huán)境的地圖創(chuàng)建,機(jī)器人的 運動軌跡,姿態(tài)調(diào)整等需要人一直控制,即使對操作經(jīng)驗豐富的工程師,也需要多次實踐才 能建立整個未知環(huán)境的地圖。這個過程往往要花費大量的時間,而且一張完整的地圖當(dāng)中, 對機(jī)器人來說,也有可能存在盲區(qū)(機(jī)器人掃描不到的位置),很難保證與真實環(huán)境的一致 性??偟膩碚f,通過人為控制的機(jī)器人制圖在復(fù)雜環(huán)境移動過程中通常花費大量的時間和 成本。
[0004] 在人為的控制機(jī)器人制圖的過程中,機(jī)器人與周圍障礙物的任何一次碰撞都會對 地圖的創(chuàng)建產(chǎn)生很大的匹配誤差,每一次的碰撞很有可能導(dǎo)致整個地圖創(chuàng)建失敗,綜合考 慮各種因素,現(xiàn)行的機(jī)器人地圖創(chuàng)建需要更進(jìn)一步優(yōu)化。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明實施例的目的在于提供一種自動制圖裝置及方法。
[0006] 本發(fā)明實施例提供的一種自動制圖裝置,應(yīng)用于計算機(jī)裝置,所述計算機(jī)裝置與 一安裝有視覺系統(tǒng)且可移動的機(jī)器人連接,所述自動制圖裝置包括:
[0007] 地圖模型建立模塊,用于建立用于生成二維地圖模型的二維坐標(biāo)系,以所述機(jī)器 人的初始位置作為機(jī)器人在所述二維坐標(biāo)系中的初始坐標(biāo);
[0008] 局部地圖建立模塊,用于根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述初始坐標(biāo)處 的局部地圖;
[0009] 移動控制模塊,用于根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按 照預(yù)設(shè)的策略控制所述機(jī)器人進(jìn)行移動;
[0010] 所述地圖模型建立模塊還用于記錄所述機(jī)器人移動后在所述二維坐標(biāo)系中的節(jié) 點坐標(biāo);
[0011] 所述局部地圖建立模塊還用于根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述節(jié)點 坐標(biāo)處的局部地圖;
[0012] 所述移動控制模塊還用于根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路 徑,按照預(yù)設(shè)的策略控制所述機(jī)器人進(jìn)行移動,直到所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo) 的局部地圖全部建立。
[0013] 優(yōu)選地,所述局部地圖建立模塊建立局部地圖的方式具體為:
[0014] 對所述二維坐標(biāo)系進(jìn)行柵格化;
[0015] 在以所述機(jī)器人的當(dāng)前坐標(biāo)為中心的預(yù)設(shè)大小的局部地圖模型中,根據(jù)所述圖像 信息獲取圖像中障礙物在該局部地圖模型中的位置,將障礙物所在的網(wǎng)格標(biāo)記為障礙物網(wǎng) 格,將沒有障礙物的網(wǎng)格標(biāo)記為自由空間網(wǎng)格;
[0016] 其中,所述當(dāng)前坐標(biāo)為初始坐標(biāo)或者節(jié)點坐標(biāo)。
[0017] 優(yōu)選地,所述局部地圖建立模塊標(biāo)記網(wǎng)格的方式具體為:
[0018] 對于包括有障礙物的網(wǎng)絡(luò),如果在該網(wǎng)格中障礙物所占的空間超過一半,則將該 網(wǎng)格標(biāo)記為障礙物網(wǎng)格,如果在該網(wǎng)格中障礙物所占的空間小于一半,則將該網(wǎng)格標(biāo)記為 自由空間網(wǎng)格。
[0019] 優(yōu)選地,所述移動控制模塊計算所述機(jī)器人的移動路徑的方式具體為:
[0020] 以所述機(jī)器人的當(dāng)前坐標(biāo)為中心,將所述局部地圖模型劃分為四個區(qū)域;
[0021] 分別查找每個區(qū)域中由連續(xù)的自由空間網(wǎng)格組成的可移動區(qū)域的中心位置;
[0022]建立四叉樹模型,以所述當(dāng)前坐標(biāo)為對應(yīng)的位置為當(dāng)前節(jié)點,以每個區(qū)域的可移 動區(qū)域的中心位置為所述當(dāng)前節(jié)點的子節(jié)點;
[0023] 采用預(yù)設(shè)的移動路徑算法,根據(jù)所述機(jī)器人的當(dāng)前坐標(biāo)、各個區(qū)域中的障礙物網(wǎng) 格計算機(jī)器人從所述當(dāng)前坐標(biāo)移動到每個子節(jié)點的移動路徑。
[0024] 優(yōu)選地,所述預(yù)設(shè)的移動路徑算法包括用于規(guī)劃全局路徑的迪杰斯特拉算法和用 于完成局部避障功能的動態(tài)窗口法。
[0025] 優(yōu)選地,所述移動控制模塊按照預(yù)設(shè)的策略控制所述機(jī)器人進(jìn)行移動的方式具體 為:
[0026] 對比各個區(qū)域中可移動區(qū)域所包括的自由空間網(wǎng)格的數(shù)量;
[0027] 按照從大到小的順序控制所述機(jī)器人依次遍歷每個所述子節(jié)點。
[0028] 優(yōu)選地,所述移動控制模塊按照預(yù)設(shè)的策略控制所述機(jī)器人進(jìn)行移動的方式還包 括為:
[0029] 當(dāng)每個區(qū)域中的可移動區(qū)域所包括的自由空間網(wǎng)格的數(shù)量均小于預(yù)設(shè)的閾值時, 控制所述機(jī)器人返回到在四叉樹模型中當(dāng)前節(jié)點的上一層節(jié)點。
[0030] 優(yōu)選地,所述移動控制模塊按照預(yù)設(shè)的策略控制所述機(jī)器人進(jìn)行移動的方式還包 括為:
[0031 ]當(dāng)檢測到所述機(jī)器人移動到達(dá)的節(jié)點坐標(biāo)已經(jīng)被記錄時,判斷當(dāng)前節(jié)點的子節(jié)點 是否已經(jīng)全部遍歷,如果是,控制所述機(jī)器人返回到在四叉樹模型中當(dāng)前節(jié)點的上一層節(jié) 點。
[0032] 優(yōu)選地,所述移動控制模塊判斷所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖 是否全部建立的方式為:
[0033] 當(dāng)所述機(jī)器人返回到初始坐標(biāo)對應(yīng)的根節(jié)點時,判斷根節(jié)點的子節(jié)點是否已經(jīng)全 部遍歷,如果是,如果則說明所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖已經(jīng)全部建 立。
[0034] 本發(fā)明實施例提供的一種自動制圖方法,應(yīng)用于與一安裝有視覺系統(tǒng)且可移動的 機(jī)器人連接的計算機(jī)裝置,所述自動制圖方法包括:
[0035] 建立用于生成二維地圖模型的二維坐標(biāo)系,以所述機(jī)器人的初始位置作為機(jī)器人 在所述二維坐標(biāo)系中的初始坐標(biāo);
[0036] 根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述初始坐標(biāo)處的局部地圖;
[0037] 根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按照預(yù)設(shè)的策略控制所 述機(jī)器人進(jìn)行移動;
[0038] 記錄所述機(jī)器人移動后在所述二維坐標(biāo)系中的節(jié)點坐標(biāo);
[0039] 根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述節(jié)點坐標(biāo)處的局部地圖;
[0040] 根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按照預(yù)設(shè)的策略控制所 述機(jī)器人進(jìn)行移動并建立局部地圖,直到所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖 全部建立。
[0041] 與現(xiàn)有技術(shù)相比,本發(fā)明的自動制圖裝置及方法,將未知環(huán)境信息,轉(zhuǎn)換為機(jī)器人 識別的二維動態(tài)柵格地圖,機(jī)器人運動,柵格地圖也跟著運動與更新,避免了機(jī)器人人為制 圖帶來的多次調(diào)整與跟蹤機(jī)器人的運動姿態(tài)帶來的繁瑣工作,大大減少了機(jī)器人制圖所用 的時間,并且通過建立四叉樹模型,明確運動目標(biāo)點,第一次在局部柵格地圖上進(jìn)行路徑規(guī) 劃,全部過程可以自動完成,計算效率高,編程實現(xiàn)簡單,同時機(jī)器人能夠采集充分的點云 數(shù)據(jù),保證了地圖的清晰度。
[0042]為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合 所附附圖,作詳細(xì)說明如下。
【附圖說明】
[0043] 為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附 圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對 范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這 些附圖獲得其他相關(guān)的附圖。
[0044] 圖1為本發(fā)明較佳實施例提供的計算機(jī)裝置與機(jī)器人進(jìn)行交互的示意圖。
[0045] 圖2為本發(fā)明較佳實施例提供的機(jī)器人的方框示意圖。
[0046] 圖3為本發(fā)明實施例提供的自動制圖裝置的功能模塊示意圖。
[0047] 圖4為本發(fā)明實施例提供的劃分局部地圖模型的示意圖。
[0048] 圖5為本發(fā)明實施例提供的建立四叉樹模型的示意圖。
[0049] 圖6為本發(fā)明實施例提供的自動制圖方法的流程圖。
[0050] 主要元件符號說明
【具體實施方式】
[0052]下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整 地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在 此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因 此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的 范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做 出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0053] 應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一 個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。同時,在本發(fā)明的 描述中,術(shù)語"第一"、"第二"等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。 [0054]如圖1所示,是本發(fā)明較佳實施例提供的計算機(jī)裝置100與機(jī)器人200進(jìn)行交互的 示意圖。所述計算機(jī)裝置100與機(jī)器人200有通信連接,相互之間可以進(jìn)行信息的傳輸和交 互。
[0055]所述機(jī)器人200為安裝有視覺系統(tǒng)且可移動的機(jī)器人200。通過所述視覺系統(tǒng),機(jī) 器人200可以獲得其周邊環(huán)境的圖像信息,所述視覺系統(tǒng)可以是但不限于紅外傳感器、攝像 頭等。
[0056] 所述計算機(jī)裝置100可以安裝于機(jī)器人200內(nèi)部,通過電學(xué)器件與機(jī)器人200的控 制系統(tǒng)相連接。也可以是獨立的設(shè)備,如個人電腦(personal computer,PC)、服務(wù)器等具有 數(shù)據(jù)處理功能的設(shè)備,與機(jī)器人200的控制系統(tǒng)通過無線網(wǎng)絡(luò)連接。所述機(jī)器人200的控制 系統(tǒng)接收由計算機(jī)裝置100發(fā)送的數(shù)據(jù)信息,并以此對機(jī)器人200進(jìn)行控制,如控制機(jī)器人 200移動和開啟視覺系統(tǒng)獲得圖像信息。同時機(jī)器人200內(nèi)部的信息和由視覺視覺系統(tǒng)獲得 圖像信息,也由機(jī)器人200的控制系統(tǒng)發(fā)送到計算機(jī)裝置100進(jìn)行處理,以實現(xiàn)建立二維地 圖模型的操作。
[0057]如圖2所示,是所述計算機(jī)裝置100的方框示意圖。所述計算機(jī)裝置100包括自動制 圖裝置10、存儲器20以及處理器30。
[0058]所述存儲器20和處理器30之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或交 互。例如,可通過一條或多條通訊總線或信號線實現(xiàn)電性連接。所述自動制圖裝置10包括至 少一個可以軟件或固件(f irmware)的形式存儲于所述存儲器20中或固化在所述計算機(jī)裝 置100的操作系統(tǒng)(operating system,OS)中的軟件功能模塊。所述處理器30用于執(zhí)行存儲 器20中存儲的可執(zhí)行模塊,例如所述自動制圖裝置10包括的軟件功能模塊或計算機(jī)程序。 [0059] 其中,存儲器20可以是,但不限于,隨機(jī)存取存儲器(Random Access Memory, RAM),只讀存儲器(Read Only Memory,R0M),可編程只讀存儲器(Programmable Read-Only Memory,PROM),可擦除只讀存儲器(Erasable Programmable Read-Only Memory,EPROM), 電可擦除只讀存儲器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。 其中,存儲器20用于存儲程序,所述處理器30在接收到執(zhí)行指令后,執(zhí)行所述程序,下述本 發(fā)明實施例任一實施例揭示的流過程定義的計算機(jī)裝置100所執(zhí)行的方法可以應(yīng)用于處理 器30中,或者由處理器30實現(xiàn)。
[0060]處理器30可能是一種集成電路芯片,具有信號的處理能力。上述的處理器可以是 通用處理器,包括中央處理器(Central Processing Unit,簡稱CPU)、網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程 門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢?實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處 理器或者該處理器也可以是任何常規(guī)的處理器等。
[0061]請參閱圖3,是本發(fā)明較佳實施例提供的圖2所示的自動制圖裝置10的功能模塊示 意圖。所述自動制圖裝置10包括地圖模型建立模塊101、局部地圖建立模塊102、移動控制模 塊 103〇
[0062] 地圖模型建立模塊101,用于建立用于生成二維地圖模型的二維坐標(biāo)系,以所述機(jī) 器人200的初始位置作為機(jī)器人200在所述二維坐標(biāo)系中的初始坐標(biāo)。
[0063] 在開始建立機(jī)器人200所在環(huán)境的地圖模型時,對于該空間的所有信息都是未知 的,因此,在建立用于生成二維地圖模型的二維坐標(biāo)系之后,以所述機(jī)器人200的初始位置 作為機(jī)器人200在所述二維坐標(biāo)系中的初始坐標(biāo)。在本實施例中,可以將初始坐標(biāo)設(shè)為原 點,以初始坐標(biāo)為中心,開始對該空間的建立地圖模型。
[0064] 局部地圖建立模塊102,用于根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述初始坐 標(biāo)處的局部地圖。
[0065]機(jī)器人200所使用的視覺系統(tǒng)的探測距離是有限的,因此以某個坐標(biāo)為中心進(jìn)行 探測后,可以獲得該坐標(biāo)處一定大小的局部地圖。局部地圖的大小和視覺系統(tǒng)的探測距離 相關(guān),根據(jù)視覺系統(tǒng)獲得的圖像信息,即可建立該坐標(biāo)出的局部地圖。機(jī)器人200所處的初 始位置為初始坐標(biāo),因此首先建立初始坐標(biāo)處的局部地圖。
[0066]移動控制模塊103,用于根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人200的移動路 徑,按照預(yù)設(shè)的策略控制所述機(jī)器人200進(jìn)行移動。
[0067]在建立了初始坐標(biāo)處的局部地圖之后,以初始坐標(biāo)為起點,控制機(jī)器人200向其他 位置移動,機(jī)器人200移動的軌跡是根據(jù)已經(jīng)建立的局部地圖中的障礙物300確定的。
[0068]所述地圖模型建立模塊101還用于記錄所述機(jī)器人200移動后在所述二維坐標(biāo)系 中的節(jié)點坐標(biāo)。
[0069]機(jī)器人200從初始位置離開之后,對其停留的位置的進(jìn)行記錄,并根據(jù)該位置與初 始位置之間的相對距離和方向獲得停留的位置對應(yīng)的節(jié)點坐標(biāo)。
[0070]所述局部地圖建立模塊102還用于根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述節(jié) 點坐標(biāo)處的局部地圖。
[0071 ]機(jī)器人200每移動到一個節(jié)點坐標(biāo),就建立該節(jié)點坐標(biāo)處的局部地圖。建立節(jié)點坐 標(biāo)出的局部地圖的方法與建立初始坐標(biāo)處的相同。
[0072]所述移動控制模塊103還用于根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人200的 移動路徑,按照預(yù)設(shè)的策略控制所述機(jī)器人200進(jìn)行移動,直到所述機(jī)器人200所在環(huán)境的 所有節(jié)點坐標(biāo)的局部地圖全部建立。
[0073]隨著機(jī)器人200不斷地移動到新的節(jié)點坐標(biāo),建立了越來越多的局部地圖,逐漸構(gòu) 成了一個完整的機(jī)器人200所在環(huán)境的二維地圖模型。當(dāng)記錄的節(jié)點坐標(biāo)不再增加時,則所 機(jī)器人200所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖全部建立,將建立的所述局部地圖按照初 始坐標(biāo)和節(jié)點坐標(biāo)組合起來,即可得到機(jī)器人200所在環(huán)境的二維地圖模型。
[0074]在本實施例中,所述局部地圖建立模塊102建立初始坐標(biāo)處和節(jié)點坐標(biāo)處的局部 地圖的方法是相同的,是基于機(jī)器人200的視覺系統(tǒng)在需要建立局部地圖的坐標(biāo)處獲得的 圖像信息。機(jī)器人200的視覺系統(tǒng)在該坐標(biāo)處進(jìn)行水平方向上360°的探測,獲得其探測范圍 內(nèi)所有障礙物300的位置。為了方便對障礙物300的位置進(jìn)行準(zhǔn)確的描述,首先對二維坐標(biāo) 系進(jìn)行柵格化,根據(jù)障礙物300的位置對視覺系統(tǒng)范圍內(nèi)的網(wǎng)格進(jìn)行標(biāo)記,將障礙物300所 在的網(wǎng)格標(biāo)記為障礙物300網(wǎng)格,將沒有障礙物300的網(wǎng)格標(biāo)記為自由空間網(wǎng)格。通常,在柵 格化時,一個網(wǎng)格對應(yīng)實際大小為邊長0.1米的正方形。具體地,在對網(wǎng)格進(jìn)行標(biāo)記時,對于 一些處于障礙物300邊緣、包括有障礙物300的網(wǎng)絡(luò),其標(biāo)記的方法是如果在該網(wǎng)格中障礙 物300所占的空間超過一半,則將該網(wǎng)格標(biāo)記為障礙物300網(wǎng)格,如果在該網(wǎng)格中障礙物300 所占的空間小于一半,則將該網(wǎng)格標(biāo)記為自由空間網(wǎng)格。對探測范圍內(nèi)的所有網(wǎng)格都標(biāo)記 完成后,即得到該坐標(biāo)處的局部地圖。
[0075]在本實施例中,移動控制模塊103根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人200 的移動路徑的方式和根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人200的移動路徑的方式是 相同的。在完成對某個坐標(biāo)處的局部地圖的建立之后,基于所標(biāo)記的網(wǎng)格,對機(jī)器人200的 移動路徑進(jìn)行計算,具體的方式為:
[0076]以所述機(jī)器人200的當(dāng)前坐標(biāo)為中心,將所述局部地圖模型劃分為四個區(qū)域。
[0077] 分別查找每個區(qū)域中由連續(xù)的自由空間網(wǎng)格組成的可移動區(qū)域的中心位置。
[0078] 建立四叉樹模型,以所述當(dāng)前坐標(biāo)為對應(yīng)的位置為當(dāng)前節(jié)點,以每個區(qū)域的可移 動區(qū)域的中心位置為所述當(dāng)前節(jié)點的子節(jié)點。
[0079]采用預(yù)設(shè)的移動路徑算法,根據(jù)所述機(jī)器人200的當(dāng)前坐標(biāo)、各個區(qū)域中的障礙物 300網(wǎng)格計算機(jī)器人200從所述當(dāng)前坐標(biāo)移動到每個子節(jié)點的移動路徑。
[0080]如圖4所示,本發(fā)明實施例提供的劃分局部地圖模型的示意圖。以所述機(jī)器人200 的當(dāng)前坐標(biāo)為中心,將局部地圖劃分為A、B、C、D四個區(qū)域。然后查找每個區(qū)域中由連續(xù)的自 由空間網(wǎng)格組成的可移動區(qū)域,如果機(jī)器人200所在位置的四周存在連續(xù)的多個自由空間 網(wǎng)格,說明有可以供機(jī)器人200移動的空間。考慮的機(jī)器人200本身的體積,在本實施例中, 設(shè)置有一預(yù)設(shè)的閾值,當(dāng)某個區(qū)域中的可移動區(qū)域所包括的自由空間網(wǎng)格的數(shù)量均小于該 閾值時,說明該區(qū)域內(nèi)不存在可以供機(jī)器人200移動的空間。同時,在確定每個區(qū)域是否存 在包括的自由空間網(wǎng)格的數(shù)量大于閾值的可移動區(qū)域后,對于存在可移動區(qū)域的區(qū)域,將 可移動區(qū)域中心位置作為機(jī)器人200移動時的目標(biāo)位置。
[0081 ]在此基礎(chǔ)上建立四叉樹模型,以所述當(dāng)前坐標(biāo)為對應(yīng)的位置為當(dāng)前節(jié)點,以每個 區(qū)域的可移動區(qū)域的中心位置為所述當(dāng)前節(jié)點的子節(jié)點。每個當(dāng)前節(jié)點的子節(jié)點數(shù)量,與 局部地圖包括的自由空間網(wǎng)格的數(shù)量閾值的可移動區(qū)域相同,因此子節(jié)點數(shù)量小于等于4。 如果當(dāng)前節(jié)點的局部地圖不包括的自由空間網(wǎng)格的數(shù)量閾值的可移動區(qū)域,說明該位置周 圍都是障礙物300,在完成局部地圖的建立后,執(zhí)行歸遞操作,即控制機(jī)器人200返回到在四 叉樹模型中當(dāng)前節(jié)點的上一層節(jié)點。由于機(jī)器人200每到一個節(jié)點,都會對該節(jié)點的節(jié)點坐 標(biāo)進(jìn)行記錄,當(dāng)檢測到所述機(jī)器人200移動到達(dá)的節(jié)點坐標(biāo)已經(jīng)被記錄時,所述機(jī)器人200 不是首次到達(dá)該節(jié)點,此時需要判斷當(dāng)前節(jié)點的子節(jié)點是否已經(jīng)全部遍歷,如果是,同樣執(zhí) 行歸遞操作,控制所述機(jī)器人200返回到在四叉樹模型中當(dāng)前節(jié)點的上一層節(jié)點。
[0082] 要建立完整的二維地圖模型,需要建立所有節(jié)點處的局部地圖。因此,需要對所有 當(dāng)前節(jié)點及其子節(jié)點進(jìn)行遍歷,即控制機(jī)器人200移動到每一個節(jié)點,建立其對應(yīng)的局部地 圖。在進(jìn)行遍歷時,需要按一定的順序進(jìn)行移動。在本實施例中,采用的方式是對比各個區(qū) 域中可移動區(qū)域所包括的自由空間網(wǎng)格的數(shù)量,按照從大到小的順序控制所述機(jī)器人200 依次遍歷每個所述子節(jié)點,即先從對應(yīng)的可移動區(qū)域較大的節(jié)點開始,并按照可移動區(qū)域 從大到小的順序進(jìn)行。
[0083] 如圖5所示,本發(fā)明實施例提供的建立四叉樹模型的示意圖。a表示根節(jié)點,屬于根 節(jié)點有4個子節(jié)點b、c、d、e,對節(jié)于點b,其對應(yīng)的子節(jié)點有f、g、h、i,節(jié)點c、d不存在子節(jié)點, 對節(jié)于點e,其對應(yīng)的子節(jié)點有」、1^、1、111,對于節(jié)點」,其對應(yīng)的子節(jié)點有11、 〇、?^。機(jī)器人200 的初始位置為a,首先建立a的局部地圖,根據(jù)a的局部地圖確定a的存在四個子節(jié)點。假設(shè)四 個子節(jié)點對應(yīng)所在可移動區(qū)域包括的自由空間網(wǎng)格的數(shù)量的關(guān)系為c〈d〈b〈e,按照上述的 遍歷規(guī)則,機(jī)器人200首先確定移動的目標(biāo)為e。計算出對應(yīng)路徑到達(dá)e后,建立e的局部地 圖,根據(jù)e的局部地圖確定e的存在四個子節(jié)點。假設(shè)四個子節(jié)點對應(yīng)所在可移動區(qū)域包括 的自由空間網(wǎng)格的數(shù)量的關(guān)系為m〈l〈k〈j,按照遍歷規(guī)則,機(jī)器人200確定下一個移動的目 標(biāo)為j。計算出對應(yīng)路徑到達(dá)j后,建立j的局部地圖,根據(jù)j的局部地圖確定j的還存在四個 子節(jié)點。假設(shè)四個子節(jié)點對應(yīng)所在可移動區(qū)域包括的自由空間網(wǎng)格的數(shù)量的關(guān)系為q〈P〈〇〈 n,按照遍歷規(guī)則對四個子節(jié)點依次遍歷,遍歷的過程中,每移動到一個子節(jié)點后,沒有確定 新的子節(jié)點,執(zhí)行歸遞操作返回四叉樹模型中n、o、p、q的上一層節(jié)點j。當(dāng)從子節(jié)點q返回節(jié) 點j后,判斷j的所有子節(jié)點已經(jīng)遍歷,執(zhí)行歸遞操作返回四叉樹模型中j、k、l、m的上一層節(jié) 點e,繼續(xù)遍歷節(jié)點e的其他幾個子節(jié)點。以此類推,當(dāng)機(jī)器人200回溯到根節(jié)點a,且判斷節(jié) 點a的4個子節(jié)點已經(jīng)全部遍歷之后,說明機(jī)器人200所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖 已經(jīng)全部建立。
[0084] 在上述的遍歷過程中,確定了機(jī)器人200的移動的目標(biāo)后,采用預(yù)設(shè)的移動路徑算 法,根據(jù)所述機(jī)器人200的當(dāng)前坐標(biāo)、各個區(qū)域中的障礙物300網(wǎng)格計算機(jī)器人200從所述當(dāng) 前坐標(biāo)移動到目標(biāo)節(jié)點的移動路徑。在本實施例中,采用的移動路徑算法包括用于規(guī)劃全 局路徑的迪杰斯特拉(Dijkstrala)算法和用于完成局部避障功能的動態(tài)窗口法(Dynamic Window Approach,DWA)。其中,通過迪杰斯特拉算法確定機(jī)器人200移動的全局方向,而通 過DWA完成機(jī)器人200的在移動過程中對障礙物300的躲避和對移動速度的規(guī)劃,即局部路 徑規(guī)劃。根據(jù)這兩種算法,即可得到從當(dāng)前節(jié)點到目標(biāo)節(jié)點的曲線路徑。
[0085]在本實施例中,機(jī)器人200從初始位置出發(fā),最后返回初始位置,結(jié)合中途所遍歷 的所有節(jié)點的局部地圖,輸出一張二維地圖模型,完成整個自動制圖過程。
[0086]請參閱圖6,是本發(fā)明較佳實施例提供的應(yīng)用于圖3所示的自動制圖裝置10的自動 制圖方法的流程圖。下面將對圖6所示的具體流程進(jìn)行詳細(xì)闡述。
[0087]步驟S101,建立用于生成二維地圖模型的二維坐標(biāo)系,以所述機(jī)器人200的初始位 置作為機(jī)器人200在所述二維坐標(biāo)系中的初始坐標(biāo)。
[0088]步驟S102,根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述初始坐標(biāo)處的局部地圖。 [0089] 步驟S103,根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人200的移動路徑,按照預(yù)設(shè) 的策略控制所述機(jī)器人200進(jìn)行移動。
[0090] 步驟S104,記錄所述機(jī)器人200移動后在所述二維坐標(biāo)系中的節(jié)點坐標(biāo)。
[0091] 步驟S105,根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述節(jié)點坐標(biāo)處的局部地圖。 [0092]步驟S106,判斷機(jī)器人200所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖是否全部建立,如 果是,則結(jié)束本方法流程,如果否,執(zhí)行步驟S107、S104和S105。
[0093] 步驟S107,根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人200的移動路徑,按照預(yù)設(shè) 的策略控制所述機(jī)器人200進(jìn)行移動。
[0094]步驟S101和步驟S104由自動制圖裝置10的地圖模型建立模塊101執(zhí)行,關(guān)于步驟 S101和步驟S104的具體描述,參照上述對地圖模型建立模塊101的描述。
[0095]步驟S102和步驟S105由自動制圖裝置10的局部地圖建立模塊102執(zhí)行,關(guān)于步驟 S10 2和步驟S105中建立局部地圖方法的具體描述,參照上述對局部地圖建立模塊102的描 述。
[0096] 步驟S103、步驟S106以及步驟S107由自動制圖裝置10的移動控制模塊103執(zhí)行,關(guān) 于步驟S103和步驟S107中計算所述機(jī)器人200的移動路徑的方法以及控制所述機(jī)器人200 進(jìn)行移動的方法,參照上述對移動控制模塊103的描述,關(guān)于步驟S106中判斷機(jī)器人200所 在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖是否全部建立的方法,參照上述對移動控制模塊103的 描述。
[0097] 本發(fā)明實施例以移動機(jī)器人在室內(nèi)進(jìn)行二維自動制圖的路徑規(guī)劃為例,說明了機(jī) 器人進(jìn)行制圖模式下的基于柵格化局部地圖,四叉樹模型的路徑規(guī)劃方法,可以為機(jī)器人 二維自動制圖規(guī)劃處高地清晰度的地圖。本發(fā)明也可以運用到移動機(jī)器人的室外未知環(huán)境 的地圖創(chuàng)建,同時適用復(fù)雜的地形環(huán)境的地圖創(chuàng)建。
[0098] 綜上所述,本發(fā)明的自動制圖裝置及方法,將未知環(huán)境信息,轉(zhuǎn)換為機(jī)器人識別的 二維動態(tài)柵格地圖,機(jī)器人運動,柵格地圖也跟著運動與更新,避免了機(jī)器人人為制圖帶來 的多次調(diào)整與跟蹤機(jī)器人的運動姿態(tài)帶來的繁瑣工作,大大減少了機(jī)器人制圖所用的時 間,并且通過建立四叉樹模型,明確運動目標(biāo)點,第一次在局部柵格地圖上進(jìn)行路徑規(guī)劃, 全部過程可以自動完成,計算效率高,編程實現(xiàn)簡單,同時機(jī)器人能夠采集充分的點云數(shù) 據(jù),保證了地圖的清晰度。
[0099] 在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過 其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖 顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、 功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一 部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí) 行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于 附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也 可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每 個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基 于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0100]另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部 分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。 [0101]所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以 存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說 對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計 算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個 人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。 而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(R0M,Read-0nly Memory)、隨機(jī)存取存 儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要 說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與 另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實 際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的包 含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括 沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。 在沒有更多限制的情況下,由語句"包括一個......"限定的要素,并不排除在包括所述要 素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0102] 以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在 下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需 要對其進(jìn)行進(jìn)一步定義和解釋。
[0103] 以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項】
1. 一種自動制圖裝置,應(yīng)用于計算機(jī)裝置,所述計算機(jī)裝置與一安裝有視覺系統(tǒng)且可 移動的機(jī)器人連接,其特征在于,所述自動制圖裝置包括: 地圖模型建立模塊,用于建立用于生成二維地圖模型的二維坐標(biāo)系,以所述機(jī)器人的 初始位置作為機(jī)器人在所述二維坐標(biāo)系中的初始坐標(biāo); 局部地圖建立模塊,用于根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述初始坐標(biāo)處的局 部地圖; 移動控制模塊,用于根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按照預(yù) 設(shè)的策略控制所述機(jī)器人進(jìn)行移動; 所述地圖模型建立模塊還用于記錄所述機(jī)器人移動后在所述二維坐標(biāo)系中的節(jié)點坐 標(biāo); 所述局部地圖建立模塊還用于根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述節(jié)點坐標(biāo) 處的局部地圖; 所述移動控制模塊還用于根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按 照預(yù)設(shè)的策略控制所述機(jī)器人進(jìn)行移動,直到所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部 地圖全部建立。2. 根據(jù)權(quán)利要求1所述的自動制圖裝置,其特征在于,所述局部地圖建立模塊建立局部 地圖的方式具體為: 對所述二維坐標(biāo)系進(jìn)行柵格化; 在以所述機(jī)器人的當(dāng)前坐標(biāo)為中心的預(yù)設(shè)大小的局部地圖模型中,根據(jù)所述圖像信息 獲取圖像中障礙物在該局部地圖模型中的位置,將障礙物所在的網(wǎng)格標(biāo)記為障礙物網(wǎng)格, 將沒有障礙物的網(wǎng)格標(biāo)記為自由空間網(wǎng)格; 其中,所述當(dāng)前坐標(biāo)為初始坐標(biāo)或者節(jié)點坐標(biāo)。3. 根據(jù)權(quán)利要求2所述的自動制圖裝置,其特征在于,所述局部地圖建立模塊標(biāo)記網(wǎng)格 的方式具體為: 對于包括有障礙物的網(wǎng)絡(luò),如果在該網(wǎng)格中障礙物所占的空間超過一半,則將該網(wǎng)格 標(biāo)記為障礙物網(wǎng)格,如果在該網(wǎng)格中障礙物所占的空間小于一半,則將該網(wǎng)格標(biāo)記為自由 空間網(wǎng)格。4. 根據(jù)權(quán)利要求2所述的自動制圖裝置,其特征在于,所述移動控制模塊計算所述機(jī)器 人的移動路徑的方式具體為: 以所述機(jī)器人的當(dāng)前坐標(biāo)為中心,將所述局部地圖模型劃分為四個區(qū)域; 分別查找每個區(qū)域中由連續(xù)的自由空間網(wǎng)格組成的可移動區(qū)域的中心位置; 建立四叉樹模型,以所述當(dāng)前坐標(biāo)為對應(yīng)的位置為當(dāng)前節(jié)點,以每個區(qū)域的可移動區(qū) 域的中心位置為所述當(dāng)前節(jié)點的子節(jié)點; 采用預(yù)設(shè)的移動路徑算法,根據(jù)所述機(jī)器人的當(dāng)前坐標(biāo)、各個區(qū)域中的障礙物網(wǎng)格計 算機(jī)器人從所述當(dāng)前坐標(biāo)移動到每個子節(jié)點的移動路徑。5. 根據(jù)權(quán)利要求4所述的自動制圖裝置,其特征在于,所述預(yù)設(shè)的移動路徑算法包括用 于規(guī)劃全局路徑的迪杰斯特拉算法和用于完成局部避障功能的動態(tài)窗口法。6. 根據(jù)權(quán)利要求4所述的自動制圖裝置,其特征在于,所述移動控制模塊按照預(yù)設(shè)的策 略控制所述機(jī)器人進(jìn)行移動的方式具體為: 對比各個區(qū)域中可移動區(qū)域所包括的自由空間網(wǎng)格的數(shù)量; 按照從大到小的順序控制所述機(jī)器人依次遍歷每個所述子節(jié)點。7. 根據(jù)權(quán)利要求6所述的自動制圖裝置,其特征在于,所述移動控制模塊按照預(yù)設(shè)的策 略控制所述機(jī)器人進(jìn)行移動的方式還包括為: 當(dāng)每個區(qū)域中的可移動區(qū)域所包括的自由空間網(wǎng)格的數(shù)量均小于預(yù)設(shè)的閾值時,控制 所述機(jī)器人返回到在四叉樹模型中當(dāng)前節(jié)點的上一層節(jié)點。8. 根據(jù)權(quán)利要求6所述的自動制圖裝置,其特征在于,所述移動控制模塊按照預(yù)設(shè)的策 略控制所述機(jī)器人進(jìn)行移動的方式還包括為: 當(dāng)檢測到所述機(jī)器人移動到達(dá)的節(jié)點坐標(biāo)已經(jīng)被記錄時,判斷當(dāng)前節(jié)點的子節(jié)點是否 已經(jīng)全部遍歷,如果是,控制所述機(jī)器人返回到在四叉樹模型中當(dāng)前節(jié)點的上一層節(jié)點。9. 根據(jù)權(quán)利要求7或8所述的自動制圖裝置,其特征在于,所述移動控制模塊判斷所述 機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖是否全部建立的方式為: 當(dāng)所述機(jī)器人返回到初始坐標(biāo)對應(yīng)的根節(jié)點時,判斷根節(jié)點的子節(jié)點是否已經(jīng)全部遍 歷,如果是,如果則說明所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖已經(jīng)全部建立。10. -種自動制圖方法,應(yīng)用于與一安裝有視覺系統(tǒng)且可移動的機(jī)器人連接的計算機(jī) 裝置,其特征在于,所述自動制圖方法包括: 建立用于生成二維地圖模型的二維坐標(biāo)系,以所述機(jī)器人的初始位置作為機(jī)器人在所 述二維坐標(biāo)系中的初始坐標(biāo); 根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述初始坐標(biāo)處的局部地圖; 根據(jù)初始坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按照預(yù)設(shè)的策略控制所述機(jī) 器人進(jìn)行移動; 記錄所述機(jī)器人移動后在所述二維坐標(biāo)系中的節(jié)點坐標(biāo); 根據(jù)所述視覺系統(tǒng)獲得的圖像信息建立所述節(jié)點坐標(biāo)處的局部地圖; 根據(jù)節(jié)點坐標(biāo)處的局部地圖計算所述機(jī)器人的移動路徑,按照預(yù)設(shè)的策略控制所述機(jī) 器人進(jìn)行移動并建立局部地圖,直到所述機(jī)器人所在環(huán)境的所有節(jié)點坐標(biāo)的局部地圖全部 建立。
【文檔編號】G05D1/02GK105911988SQ201610266803
【公開日】2016年8月31日
【申請日】2016年4月26日
【發(fā)明人】戴雄明, 李洪
【申請人】湖南拓視覺信息技術(shù)有限公司