本發(fā)明涉及智能控制技術領域,具體涉及一種智能機器人的路徑規(guī)劃方法。
背景技術:
智能機器人作為世界經(jīng)濟與產(chǎn)業(yè)增長方式轉變過程中的關鍵因素,正在進入新的發(fā)展階段。智能機器人是具有感知、決策、執(zhí)行的制造裝備、設備工具、服務消費品,用于生產(chǎn)過程與環(huán)境中的制造裝備智能機器稱為工業(yè)機器人,用于個人或家政服務的消費品智能機器稱為家用服務機器人,用于特殊環(huán)境下作業(yè)與維護的設備工具智能機器稱為特種服務機器人。
以家用的掃地機器人為例,其又稱自動打掃機、智能吸塵、機器人吸塵器等,是智能家用電器的一種,能憑借一定的人工智能,自動在房間內(nèi)完成地板清理工作。
掃地機器人需要按照一定的路徑規(guī)劃來覆蓋整個房間區(qū)域,完成遍歷的目的。路徑規(guī)劃,有隨機遍歷和規(guī)劃遍歷兩種。
隨機遍歷,是指機器人根據(jù)一定的移動算法,如三角形、五邊形軌跡嘗試性的覆蓋作業(yè)區(qū),如果遇到障礙,則執(zhí)行對應的轉向函數(shù)。這種方法是一種以時間換空間的低成本策略,如不計時間可以達到100%覆蓋率。隨機覆蓋法不用定位、也沒有環(huán)境地圖,也無法對路徑進行規(guī)劃。當前irobot的大多數(shù)掃地機器人采用的就是這種方法。
規(guī)劃遍歷,是指機器人行走過程中建立起環(huán)境地圖,實時分析地圖并完成新的路徑規(guī)劃,將房間全部進行清掃。這種方法效率高,在保證覆蓋率的前提下,能夠以最快的速度完成清掃。
其中規(guī)劃清掃需要解決三個問題:
1、建立地圖,并能夠定位(確定機器人的位置)。
2、導航,從啟始位置導航到目標位置,且在導航過程中能夠實現(xiàn)自動避開障礙物。
3遍歷整個房間的方法。
技術實現(xiàn)要素:
本發(fā)明旨在提供一種低成本的機器人路徑規(guī)劃方法,只依靠機器人行為的距離信息、角度信息、碰撞信息及障礙信息就可以建立起一個誤差在可控范圍內(nèi)的有效柵格地圖,以便進行路徑規(guī)劃。本發(fā)明的目的由以下技術方案實現(xiàn):
一種智能機器人的路徑規(guī)劃方法,所述智能機器人包括主控模塊、行動輪、碰撞檢測傳感器、障礙物檢測傳感器、距離信息傳感器、角度信息傳感器;其特征在于,所述方法包括:
(1)將操作空間分為若干個n米*m米矩形虛擬區(qū)域;
(2)控制智能機器人以弓字型行為逐一遍歷每一個所述虛擬區(qū)域;
(3)智能機器人的弓字型行為過程中,以距離信息傳感器所獲取的距離信息、角度信息傳感器所獲得的角度信息、碰撞檢測傳感器獲取的碰撞信息及障礙物檢測傳感器獲取的障礙信息構建柵格地圖,并標記通過點、障礙物點、碰撞點;
(3)實時分析已經(jīng)構建的地圖,判斷整個操作空間是否已經(jīng)遍歷完成,是則進入步驟(4),否則返回步驟(2);
(4)控制智能機器人進行一次沿邊行為,并在構建的地圖上標記沿邊行為點。
作為具體的技術方案,所述弓字型行為包括:第一步、直行,直到發(fā)現(xiàn)障礙物,或到達所述虛擬區(qū)域邊界;第二步、發(fā)現(xiàn)障礙物或到達所述虛擬區(qū)域邊界后,轉90度;第三步、直行設定距離l或發(fā)現(xiàn)障礙物;第四步、轉90度,返回第一步。
作為具體的技術方案,所述弓字型行為第三步中的設定距離l米為機器人寬度的一半。
作為具體的技術方案,所述柵格地圖中每個柵格用一個數(shù)碼序列表示,其中包括:表示此柵格位于那個虛擬區(qū)域內(nèi)的數(shù)碼段、表示智能機器人是否到達過此柵格的數(shù)碼段、表示此柵格是否存在障礙物的數(shù)碼段、表示智能機器人在此柵格是否發(fā)生碰撞的數(shù)碼段、表示智能機器人沿邊時經(jīng)過此柵格的數(shù)碼段。
作為具體的技術方案,所述柵格地圖的表現(xiàn)形式可以為:用不同的顏色分別表示智能機器人未標記的柵格、通過點、障礙物點、碰撞點、沿邊行為點。
作為具體的技術方案,所述若干個矩形虛擬區(qū)域中第一個虛擬區(qū)域的邊界確定方法為:豎向邊界確定:智能機器人啟動時,以前行動方向為一條邊界,第一次啟動右轉,右邊n米的平行線為另一條邊界。豎向邊界在智能機器人啟動時,就已經(jīng)設置好了;橫向邊界確定:當在豎向行進時,不停的計算豎向方向上,智能機器人走過的地圖最大與最小坐標點,當最大最小坐標點的差值達到m米時,則以過豎向最大與最小坐標點,及與豎向邊界垂直的直線為橫向的邊界。
作為具體的技術方案,所述若干個矩形虛擬區(qū)域中新的虛擬區(qū)域的分析確定方法為:在第一各虛擬區(qū)域遍歷結束時,分析其四個虛擬邊界線上的坐標點;如果某個虛擬邊界上有兩個及以上連續(xù)的坐標點,智能機器人正常通過,且沒有發(fā)生碰撞,周圍也沒有發(fā)現(xiàn)障礙物,認為此虛擬邊界的旁邊存在一個新區(qū)域;則將此新區(qū)域存儲到虛擬區(qū)域的新區(qū)域數(shù)組中,然后從新區(qū)域數(shù)組中選取離智能機器人最近的區(qū)域并進入;按照所述第一個虛擬區(qū)域的邊界確定方法確定新進入的虛擬區(qū)域的邊界,該新虛擬區(qū)域遍歷完后,從新區(qū)域數(shù)組中將對應的新區(qū)域信息刪除;如此迭代,當發(fā)現(xiàn)新區(qū)域數(shù)組中再也沒有新的區(qū)域了,則弓字型行為結束,同時表明整個操作空間已經(jīng)遍歷完成。
作為具體的技術方案,所述以弓字型行為遍歷一個虛擬區(qū)域時,弓字型行為的退出條件包括:條件1:在弓字型行為第三步直行中,連續(xù)兩次發(fā)現(xiàn)障礙物,則縮短第一步直行的距離;在弓字型行為第一步直行中,連續(xù)兩次走的長度低于智能機器人的寬度的一半,則退出工字型行為;條件2:在弓字型行為的過程中,不停的分析弓字型行為第三步直行方向是否都為障礙物,如果都為障礙物則退出弓字型。
作為具體的技術方案,當一次弓字型行為結束時,分析地圖,尋找離當前智能機器人最近的漏經(jīng)局部區(qū)域,然后將智能機器人導航到漏經(jīng)的局部區(qū)域,再次啟動弓字型行為,直至該虛擬區(qū)域遍歷完成。
作為具體的技術方案,所述是否存在漏經(jīng)的局部區(qū)域,其判斷方法具體為:弓字型行為第三步直行方向或其180度的反方向上,是否存在連續(xù)二個邊界點,如果存在則認為此處存在漏經(jīng)的局部區(qū)域;所述邊界點為地圖邊界上的點,智能機器人正常通過且沒有發(fā)生碰著,周圍也沒有障礙物。
作為具體的技術方案,在所有漏經(jīng)的局部區(qū)域中,尋找離智能機器人最近的漏經(jīng)的局部區(qū)域,繼續(xù)啟動弓字型行為。
作為具體的技術方案,所述邊界點的確認方法包括:(a)判斷此點是否可正常通過且沒有發(fā)生碰撞,周圍也沒有檢測到障礙物,是則進入步驟(b),否則進入結束;(b)判斷此點前面的點機器人是否沒有通過且沒有發(fā)生碰撞,周圍也沒有檢測到障礙物,是則進入步驟(c),否則進入結束;(c)認為此點為邊界點;其中,所述前面的點,是指當前點,弓字型行為第三步直行方向上或其180度的反方向的下一個坐標。
作為具體的技術方案,所述整個操作空間的遍歷過程中,未遍歷的漏經(jīng)局部區(qū)域的確認方法具體包括:(a)遍歷整個地圖數(shù)組,判斷當前點是否為最后一個點,是則結束,否則進入步驟(b);(b)判斷當前點是否為虛擬邊界點,是則進入步驟(a),否則進入步驟(c);(c)判斷當前點是否為邊界點,是則進入步驟(d),否則進入步驟(a);(d)判斷此邊界點是否存在一個以上相鄰點也為邊界點,是則進入步驟(e),否則進入步驟(a);(e)將此點存入漏經(jīng)局部區(qū)域數(shù)組中。
作為具體的技術方案,所述沿邊行為包括:根據(jù)已經(jīng)建立好的地圖,算出已遍歷區(qū)域邊界總長度;用這個總長度除以智能機器人沿邊時前進的速度得出沿邊遍歷的時間;啟動沿邊,直到沿邊時間到,結束沿邊行為。
本發(fā)明采用一種弓字型的走法,以虛擬分區(qū)的方式來遍歷房間,只要在弓字型過程中,盡量避免發(fā)生碰撞,且轉90度時速度不要過快且平穩(wěn),這樣輪子編碼器和陀螺儀的誤差都會小。從而保證在弓字型過程中記錄的地圖是有效的。這種弓字型遍歷房間方法,在不需要校準的情況下,為我們建立一個誤差在可控范圍內(nèi)的地圖,提供一種可能。
附圖說明
圖1為本發(fā)明實施例提供的智能機器人的模塊構成圖。
圖2為本發(fā)明實施例提供的路徑規(guī)劃方法中機器人的弓字型行為的走法圖。
圖3為本發(fā)明實施例提供的路徑規(guī)劃方法中虛擬區(qū)域邊界界定的示意圖。
圖4、圖5、圖6分別為本發(fā)明實施例提供的路徑規(guī)劃方法中機器人以弓字型行為在虛擬區(qū)域中行走并遇到實際邊界的不同情形的示意圖。
圖7為本發(fā)明實施例提供的路徑規(guī)劃方法中邊界點的確認方法流程圖。
圖8為本發(fā)明實施例提供的路徑規(guī)劃方法中未遍歷的漏經(jīng)局部區(qū)域的確認方法流程圖。
具體實施方式
下面結合附圖對本發(fā)明的具體實施方式作進一步說明:
如圖1所示,本實施例提供的智能機器人的路徑規(guī)劃方法,其基于的智能機器人包括行動機體1、主控模塊4、傳感器集合5、電源模塊及區(qū)域操作組件。其中,行動機體1包括機殼、行動輪2、3。傳感器集合5包括碰撞檢測傳感器、防跌落檢測傳感器、障礙物檢測傳感器、距離信息傳感器、角度信息傳感器,均與主控模塊電連接。
具體地,碰撞檢測傳感器用于智能機器人前面碰到障礙物時,做出當前與障礙物發(fā)生了碰撞的判斷并通知主控模塊4。防跌路檢測傳感器用于當智能機器人下方為懸空狀態(tài)時,做出當前處于危險狀態(tài)的判斷并通知主控模塊4。障礙物檢測傳感器用于檢測機器人周圍是否出現(xiàn)障礙物并通知主控模塊4,檢測距離為10cm,由前,前左,前右,左,右,五個紅外測距傳感器組成。距離信息傳感器為輪子編碼器,角度信息傳感器為陀螺儀。區(qū)域操作組件是指對機器人所處區(qū)域進行某些功能操作的組件,可以為清潔組件、攝像組件、加濕組件、除濕組件、滅蟲組件中的一個或多個,本實施例以清潔組件為例進行說明,即本實施例所述的機器人為清潔機器人。
本實施例提供的智能機器人的路徑規(guī)劃方法中,機器人采用弓字型走法。如圖2所示,這四個步驟,一直重復,即實現(xiàn)弓字型走法:
第一步:直行,直到發(fā)現(xiàn)障礙物,或到達虛擬分區(qū)邊界。
第二步:發(fā)現(xiàn)障礙物后,轉90度。
第三步:直行,直行150mm(約智能機器人直徑或寬度的一半)或發(fā)現(xiàn)障礙物。
第四步:轉90度。
弓字型走法的好處在于,智能機器人只有走直線和轉90度,這兩個動作。我們知道,輪子編碼器的誤差主要來于輪子打滑,陀螺儀的誤差主要來于智能機器人轉彎過快或抖動時,超出其角速度測量范圍。在弓字型過程中,利用紅外測距傳感器,盡量避免發(fā)生碰撞,且使用黑白萬向輪用來檢測智能機器人是否發(fā)生打滑現(xiàn)象,當打滑現(xiàn)象發(fā)生時,忽略打滑時輪子編碼器給出的前進距離。同時,控制轉90度時速度不要過快且平穩(wěn),這樣輪子編碼器和陀螺儀的誤差都會小。從而保證在弓字型過程中記錄的地圖是有效的。
本實施例提供的智能機器人的路徑規(guī)劃方法中,構建地圖時采用柵格地圖。距離信息傳感器所獲取的距離信息、角度信息傳感器所獲得的角度信息、碰撞檢測傳感器獲取的碰撞信息及障礙物檢測傳感器獲取的障礙信息構建柵格地圖,并記錄通過點、障礙物點、碰撞點。智能機器人邊走邊更新地圖,只要是機器人走過的地方都會把狀態(tài)更新到柵格地圖上。
建立的柵格地圖保存于主控模塊4中。柵格地圖的表現(xiàn)形式可以為:黑色柵格表示智能機器人未標記此柵格,綠色柵格代表智能機器人正常通過的點,紅色柵格代表障礙物點,藍色柵格代表發(fā)生碰撞的點,白色柵格代表此點進行了沿邊行為。
其中,每個柵格用一個8bit的數(shù)來表示。其高四位記錄區(qū)域信息,表示此柵格位于那個區(qū)域內(nèi),因此最多支持16個區(qū)域。其低四位用來表示地圖的實際信息:第0位表示智能機器人是否到達過此柵格,為0表示未到達過,為1表示到達過;第1位表示此柵格是否存在障礙物,為0表示不存在,為1表示存在;第2位表示智能機器人在此柵格是否發(fā)生碰撞,為0表示沒有發(fā)生過碰撞,為1表示已發(fā)生過碰撞;第3位,表示機器人沿邊時,經(jīng)過此柵格。
本實施例提供的智能機器人的路徑規(guī)劃方法中,將操作空間分為多個n*m矩形虛擬區(qū)域,例如4*4平方米的虛擬區(qū)域。每次將一個虛擬區(qū)域遍歷完后,再去遍歷下一個區(qū)域。
第一個虛擬區(qū)域的確定:
如圖3所示,豎向邊界:智能機器人啟動時,以前行方向為一條邊界,第一次啟動右轉,右邊4米的平行線為另一條邊界。豎向邊界在智能機器人啟動時,就已經(jīng)設置好了。
橫向邊界:當在豎向行進時,不停的計算豎向方向上,智能機器人走過的地圖最大與最小坐標點,當最大最小坐標點的差值達到四米時,則以過豎向最大與最小坐標點,及與豎向邊界垂直的直線為橫向的邊界。
如圖4所示,其中虛線方形區(qū)域為一個虛擬區(qū)域,而實線部分為操作空間的一個實際邊界。
新的虛擬區(qū)域的分析確定:
在第一虛擬區(qū)域遍歷結束時,分析其四個虛擬邊界線上的坐標點。如果某個虛擬邊界上有2個及以上連續(xù)的坐標點(間隔0.3米以上),智能機器人正常通過,且沒有發(fā)生碰撞,周圍也沒有發(fā)現(xiàn)障礙物,認為此虛擬邊界的旁邊存在一個新區(qū)域。則將此新區(qū)域存儲到虛擬區(qū)域的新區(qū)域數(shù)組中。然后從新區(qū)域數(shù)組中選取離智能機器人最近的區(qū)域并進入。一個新虛擬區(qū)域遍歷完后,從新區(qū)域數(shù)組中將對應的新區(qū)域信息刪除。如此迭代,當發(fā)現(xiàn)新區(qū)域數(shù)組中再也沒有新的區(qū)域了,則弓字型行為結束,同時表明整個操作空間遍歷完成。
具體地,以弓字型行為遍歷一個虛擬區(qū)域時,弓字型行為的退出條件包括:
條件1:
在其第三步直行中,連續(xù)兩次發(fā)現(xiàn)障礙物,則縮短第一步直行的距離;
在其第一步直行中,連續(xù)兩次走的長度低于150mm(約為智能機器人的半徑或寬度的一半),則退出工字型行為。
條件2:
在弓字型行為的過程中,不停的分析弓字型行為第三步直行方向是否都為障礙物,如果都為障礙物則退出弓字型。
如圖5所示,其中虛線方形區(qū)域為一個虛擬區(qū)域,而實線部分為操作空間的一個實際邊界。當智能機器人走到墻邊如圖中右下方的點時,它檢測到弓字型第三步直行方向都是障礙物時,則認為此次弓字型行為結束。
當一次弓字型行為結束時,分析地圖,尋找離當前智能機器人最近的漏經(jīng)區(qū)域,然后將智能機器人導航到漏經(jīng)區(qū)域,再次啟動弓字型。如圖6所示,其中虛線方形區(qū)域為一個虛擬區(qū)域,而實線部分為操作空間的一個實際邊界。智能機器人遍歷該虛擬區(qū)域時,被困在角落的小區(qū)域里,此時取消弓字型行為時,發(fā)現(xiàn)旁邊存在未遍歷的局部區(qū)域,則導航到此區(qū)域,接著上次的弓字型,繼續(xù)遍歷,直至該虛擬區(qū)域遍歷完成。
對于是否存在漏經(jīng)局部區(qū)域的分析判斷方法,具體如下:
弓字型行為前進方向上(第三步直行方向)或其180度的反方向上,是否存在連續(xù)二個邊界點(0.3米,智能機器人直徑或寬度),如果存在則認為此處存在漏經(jīng)局部區(qū)域。
在所有的漏經(jīng)局部區(qū)域中,尋找離智能機器人最近的漏經(jīng)局部區(qū)域。將智能機器人導航到這個位置,啟動弓字型繼續(xù)遍歷。當再也沒有漏經(jīng)局部區(qū)域出現(xiàn)時,則認為這個虛擬區(qū)域遍歷結束。
邊界點:地圖邊界上的點,智能機器人正常通過且沒有發(fā)生碰著,周圍也沒有障礙物。
其中,邊界點的確認方法如圖7所示,包括:(a)判斷此點是否可正常通過且沒有發(fā)生碰撞,周圍也沒有檢測到障礙物,是則進入步驟(b),否則進入結束;(b)判斷此點前面的點機器人是否沒有通過且沒有發(fā)生碰撞,周圍也沒有檢測到障礙物,是則進入步驟(c),否則進入結束;(c)認為此點為邊界點。
所述前面的點,是指當前坐標,弓字型前進方向(第三步直行方向)上(或其180度的反方向)的下一個坐標。
參見圖8所示,在整個操作空間的遍歷過程中,未遍歷的漏經(jīng)局部區(qū)域的確認方法,具體包括:(a)遍歷整個地圖數(shù)組,判斷當前點是否為最后一個點,是則結束,否則進入步驟(b);(b)判斷當前點是否為虛擬邊界點,是則進入步驟(a),否則進入步驟(c);(c)判斷當前點是否為邊界點,是則進入步驟(d),否則進入步驟(a);(d)判斷此邊界點是否存在一個以上相鄰點也為邊界點,是則進入步驟(e),否則進入步驟(a);(e)將此點存入漏經(jīng)局部區(qū)域數(shù)組中。
然后從漏經(jīng)局部區(qū)域數(shù)組中,選取離當前坐標點最近的漏經(jīng)局部區(qū)域點為目標點。將智能機器人導航到此點,再次啟動弓字型繼續(xù)遍歷。
完成所有虛擬區(qū)域的遍歷后,根據(jù)已經(jīng)建立好的地圖,算出已遍歷區(qū)域邊界總長度。用這個總長度除以智能機器人沿邊時前進的速度得出沿邊遍歷的時間。啟動沿邊,直到沿邊時間到,結束沿邊行為。
以上實施例僅為充分公開而非限制本發(fā)明,凡基于本發(fā)明的創(chuàng)作主旨、未經(jīng)創(chuàng)造性勞動的等效技術特征的替換,應當視為本申請揭露的范圍。