本發(fā)明實(shí)施例涉及機(jī)器人領(lǐng)域,特別涉及一種路徑規(guī)劃方法及機(jī)器人。
背景技術(shù):
隨著機(jī)器人的應(yīng)用越來(lái)越廣泛,人們對(duì)機(jī)器人的要求不斷提高,可移動(dòng)的機(jī)器人作為機(jī)器人應(yīng)用中的重要分支,其在生活中的重要性也逐漸體現(xiàn)出來(lái)。比如用于搬運(yùn)貨物或帶人的機(jī)器人越來(lái)越多地被用于人們的日常生活中。為了讓機(jī)器人成功完成任務(wù),就需要保證機(jī)器人能順利到達(dá)目標(biāo)位置,因此,機(jī)器人的路徑規(guī)劃問(wèn)題就顯得非常重要。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施方式的目的在于提供一種路徑規(guī)劃方法及機(jī)器人,以解決室外復(fù)雜環(huán)境下機(jī)器人的路徑規(guī)劃問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明的實(shí)施方式提供了一種路徑規(guī)劃方法,包括:獲取環(huán)境地圖,并根據(jù)當(dāng)前的地圖信息對(duì)所述地圖進(jìn)行區(qū)塊劃分;根據(jù)每個(gè)區(qū)塊的信息對(duì)所述區(qū)塊進(jìn)行分級(jí);確定目標(biāo)位置,根據(jù)各區(qū)塊的級(jí)別規(guī)劃?rùn)C(jī)器人從當(dāng)前位置到目標(biāo)位置的路線。
本發(fā)明的實(shí)施方式還提供了一種機(jī)器人,包括:至少一個(gè)處理器;以及與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行上述的路徑規(guī)劃方法。
本發(fā)明的實(shí)施方式還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的路徑規(guī)劃方法。
本發(fā)明實(shí)施方式相對(duì)于現(xiàn)有技術(shù)而言,對(duì)地圖進(jìn)行區(qū)塊劃分并獲取每個(gè)區(qū)塊的級(jí)別,根據(jù)這些級(jí)別,機(jī)器人可以清楚地了解周?chē)h(huán)境中哪些地方可以走、哪些地方不可以走、哪些地方更通暢等。在對(duì)周?chē)h(huán)境有所了解后,機(jī)器人再規(guī)劃從當(dāng)前位置到目標(biāo)位置的路線。這種做法可使機(jī)器人避開(kāi)障礙物、禁止機(jī)器人行走的區(qū)域等,有助于增強(qiáng)規(guī)劃的路線的可靠性,且可保證機(jī)器人快速、順利地到達(dá)目標(biāo)位置。
進(jìn)一步地,在所述根據(jù)每個(gè)區(qū)塊的信息對(duì)所述區(qū)塊進(jìn)行分級(jí)之后,所述路徑規(guī)劃方法還包括:實(shí)時(shí)更新所述區(qū)塊的信息,并根據(jù)更新后的信息調(diào)整所述區(qū)塊的級(jí)別。這使得機(jī)器人可實(shí)時(shí)根據(jù)當(dāng)前的環(huán)境狀況,調(diào)整自己的行走路線,這可實(shí)時(shí)確保路線的最優(yōu)性,從而進(jìn)一步保障機(jī)器可快速到達(dá)目標(biāo)位置。
進(jìn)一步地,所述確定目標(biāo)位置,具體包括:計(jì)算機(jī)器人所在區(qū)塊的當(dāng)前級(jí)別與預(yù)設(shè)范圍內(nèi)待選區(qū)塊的當(dāng)前級(jí)別之間的差值;根據(jù)計(jì)算所得的差值,從所述待選區(qū)塊中選出滿(mǎn)足預(yù)設(shè)條件的區(qū)塊作為目標(biāo)位置。提供一種確定目標(biāo)位置的方法。
進(jìn)一步地,所述根據(jù)各區(qū)塊的級(jí)別規(guī)劃?rùn)C(jī)器人從當(dāng)前位置到目標(biāo)位置的路線,具體包括:比較機(jī)器人所在區(qū)塊的各鄰近區(qū)塊的級(jí)別大小,并選擇所述各鄰近區(qū)塊中級(jí)別最高的區(qū)塊作為機(jī)器人的下一步行進(jìn)目標(biāo)。提供一種確定路線的方法。
進(jìn)一步地,在所述獲取環(huán)境地圖之前,所述路徑規(guī)劃方法還包括:預(yù)先設(shè)置并存儲(chǔ)不同的區(qū)塊與各級(jí)別之間的對(duì)應(yīng)關(guān)系;所述根據(jù)每個(gè)區(qū)塊的信息對(duì)所述區(qū)塊進(jìn)行分級(jí),具體包括:將所述區(qū)塊與存儲(chǔ)的區(qū)塊進(jìn)行匹配;在匹配成功時(shí),從所述對(duì)應(yīng)關(guān)系中查找所述存儲(chǔ)的區(qū)塊對(duì)應(yīng)的級(jí)別,并將所述級(jí)別作為所述區(qū)塊的級(jí)別。提供一種獲取各區(qū)別級(jí)別的方法。
進(jìn)一步地,在所述將所述區(qū)塊與存儲(chǔ)的區(qū)塊進(jìn)行匹配之后,所述路徑規(guī)劃方法還包括:若匹配不成功,則將所述區(qū)塊的信息發(fā)送至服務(wù)器;在接收到服務(wù)器返回的所述區(qū)塊的級(jí)別時(shí),將返回的級(jí)別作為所述區(qū)塊的級(jí)別并更新所述對(duì)應(yīng)關(guān)系。通過(guò)這種自學(xué)習(xí)的方式,有利于進(jìn)一步完善機(jī)器人對(duì)周?chē)h(huán)境的認(rèn)知。
附圖說(shuō)明
一個(gè)或多個(gè)實(shí)施例通過(guò)與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說(shuō)明,這些示例性說(shuō)明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類(lèi)似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1是根據(jù)本發(fā)明第一實(shí)施方式的路徑規(guī)劃方法的流程圖;
圖2是根據(jù)本發(fā)明第一實(shí)施方式的機(jī)器人根據(jù)各區(qū)塊的級(jí)別規(guī)劃出的行進(jìn)路線的示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的各實(shí)施方式進(jìn)行詳細(xì)的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實(shí)施方式中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì)節(jié)。但是,即使沒(méi)有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)所要求保護(hù)的技術(shù)方案。
本發(fā)明的第一實(shí)施方式涉及一種路徑規(guī)劃方法。具體流程如圖1所示;
步驟101:獲取環(huán)境地圖,并根據(jù)當(dāng)前的地圖信息對(duì)地圖進(jìn)行區(qū)塊劃分。
該地圖的信息可包括每部分的標(biāo)識(shí)信息,如住宅區(qū)、道路、辦公大樓、河流等。根據(jù)這些信息可將地圖劃分成一個(gè)個(gè)區(qū)塊。一個(gè)區(qū)塊可以是一個(gè)住宅區(qū)、一幢辦公大樓、一個(gè)學(xué)?;蛞粭l馬路。對(duì)于具有多個(gè)車(chē)道的馬路而言,還可具體將每個(gè)車(chē)道作為一個(gè)區(qū)塊。在本實(shí)施應(yīng)用中,可根據(jù)實(shí)際情況進(jìn)行區(qū)塊的劃分,本實(shí)施方式對(duì)此不做限制。
步驟102:根據(jù)每個(gè)區(qū)塊的信息對(duì)區(qū)塊進(jìn)行分級(jí)。
該區(qū)塊的信息可包括標(biāo)識(shí)信息、是否允許通行、擁擠程度、允許行進(jìn)的最大速度、當(dāng)前機(jī)器人的數(shù)量等。具體地說(shuō),若某個(gè)區(qū)塊是個(gè)住宅區(qū),它的標(biāo)識(shí)信息就是住宅區(qū);若該區(qū)塊是條道路,它的標(biāo)識(shí)信息即是道路。根據(jù)這些標(biāo)識(shí)信息機(jī)器人可以大致判斷出哪些區(qū)塊可以作為行走路線、哪些區(qū)塊不可以作為行走路線。機(jī)器人還可根據(jù)區(qū)塊是否允許通行來(lái)進(jìn)一步確定其是否可以作為行走路線。對(duì)于道路而言,還可考慮其各個(gè)車(chē)道當(dāng)前的擁擠程度、允許行進(jìn)的最大速度等信息。
在實(shí)際應(yīng)用中可綜合一個(gè)區(qū)塊的所有信息,來(lái)評(píng)估其作為機(jī)器人行進(jìn)路線的可行性,從而對(duì)其進(jìn)行分級(jí)??尚行栽酱?,給其分配的級(jí)別就越高。對(duì)于一些禁入?yún)^(qū)塊(可以是明令禁止非工作人員的進(jìn)入的地方,也可以是河流、建筑物等機(jī)器人無(wú)法通過(guò)的地方)可以直接分配最低級(jí)別。而對(duì)于其他允許機(jī)器人通行的區(qū)塊,可根據(jù)機(jī)器人可自由行走的程度來(lái)分配級(jí)別。如對(duì)于一條具有多個(gè)車(chē)道的馬路來(lái)說(shuō),每條車(chē)道的擁擠程度可能有所區(qū)別,這就導(dǎo)致機(jī)器人可自由行走的程度有所差異,從而使得不同車(chē)道的級(jí)別不同。
步驟103:確定目標(biāo)位置。
本實(shí)施方式可預(yù)先設(shè)定當(dāng)機(jī)器人所在的區(qū)塊的級(jí)別與預(yù)設(shè)范圍內(nèi)的待選區(qū)塊的級(jí)別之間的差值滿(mǎn)足預(yù)設(shè)條件時(shí),機(jī)器人就會(huì)以待選區(qū)塊為目標(biāo)位置;若差值不滿(mǎn)足預(yù)設(shè)條件,則將機(jī)器人當(dāng)前所在的位置作為目標(biāo)位置,即使機(jī)器人留在原地。
在實(shí)際應(yīng)用中,當(dāng)需要機(jī)器人前往待選區(qū)塊,而機(jī)器人所在區(qū)塊的級(jí)別與該待選區(qū)塊的級(jí)別的差值不滿(mǎn)足預(yù)設(shè)條件時(shí),還可通過(guò)調(diào)整機(jī)器人所在區(qū)塊的級(jí)別或該待選區(qū)塊的級(jí)別,以使兩者的差值滿(mǎn)足預(yù)設(shè)條件。例如,機(jī)器人所在的區(qū)塊的機(jī)器人數(shù)量過(guò)多,而待選區(qū)塊的機(jī)器人數(shù)量又過(guò)少時(shí),為了合理分配兩個(gè)區(qū)塊的機(jī)器人數(shù)量,就可通過(guò)調(diào)整機(jī)器人所在區(qū)塊的級(jí)別或該待選區(qū)塊的級(jí)別,以使兩者的差值滿(mǎn)足預(yù)設(shè)條件。
本實(shí)施方式,可通過(guò)以下方式來(lái)確定目標(biāo)位置:
步驟1031:計(jì)算機(jī)器人所在區(qū)塊的當(dāng)前級(jí)別與預(yù)設(shè)范圍內(nèi)待選區(qū)塊的當(dāng)前級(jí)別之間的差值。
值得一提的是,待選區(qū)塊的數(shù)量可以有多個(gè),多個(gè)待選區(qū)塊分布在不同的地區(qū)。例如,機(jī)器人所在的區(qū)塊為a,待選區(qū)塊分別為b、c、d,其中b、c、d分布在不同的地區(qū)。
步驟1032:根據(jù)計(jì)算所得的差值,從待選區(qū)塊中選出滿(mǎn)足預(yù)設(shè)條件的區(qū)塊作為目標(biāo)位置。
得到a與b、a與c、a與d之間的級(jí)別之差后,可將這些差值與預(yù)設(shè)的閾值進(jìn)行比較,當(dāng)某個(gè)差值達(dá)到該預(yù)設(shè)的閾值后,就可將該差值對(duì)應(yīng)的待選區(qū)塊作為目標(biāo)位置。
在實(shí)際應(yīng)用中,當(dāng)期望機(jī)器人到達(dá)b時(shí),就可調(diào)整a或b的級(jí)別,以使兩者的級(jí)別之差達(dá)到該預(yù)設(shè)的閾值。同時(shí),也要保證a與c、a與d之間的級(jí)別之差不能達(dá)到該預(yù)設(shè)的閾值。
步驟104:根據(jù)各區(qū)塊的級(jí)別規(guī)劃?rùn)C(jī)器人從當(dāng)前位置到目標(biāo)位置的路線。
在確定目標(biāo)位置后,可通過(guò)實(shí)時(shí)比較機(jī)器人當(dāng)前所在的區(qū)塊的各鄰近區(qū)塊的級(jí)別大小,來(lái)選擇機(jī)器人的下一步行進(jìn)目標(biāo)。在選擇下一步行進(jìn)目標(biāo)時(shí),可選擇該各鄰近區(qū)塊中級(jí)別最高的區(qū)塊作為該行進(jìn)目標(biāo)。
或者,在確定目標(biāo)位置后,也可根據(jù)當(dāng)前各區(qū)別的級(jí)別,先搜索出從當(dāng)前位置到目標(biāo)位置的所有路線。然后計(jì)算每條路線中包括的所有區(qū)塊的級(jí)別之和,并將級(jí)別之和最大的路線作為機(jī)器人的行進(jìn)路線。與此同時(shí),還需要考慮路程的長(zhǎng)度,優(yōu)選級(jí)別之和較大且路程長(zhǎng)度較短的路線。即可根據(jù)所有區(qū)塊的級(jí)別之和及總的路程的長(zhǎng)度來(lái)選擇行進(jìn)路線。
圖2示出了機(jī)器人根據(jù)各區(qū)塊的級(jí)別規(guī)劃出的行進(jìn)路線。圖中的數(shù)字代表每個(gè)區(qū)塊的級(jí)別,其中,1代表最大級(jí)別,10代表最小級(jí)別。這里的“級(jí)別之和最大”,即是數(shù)字之和最小。
需要說(shuō)明的是,在步驟102確定各區(qū)塊的級(jí)別后,每個(gè)區(qū)塊的級(jí)別并非是固定不變的,而是會(huì)隨著時(shí)間不斷更新。可以理解,一條道路在不同的時(shí)間點(diǎn)其擁堵程度是不同的,例如,早晚上下班高峰時(shí)期時(shí),其擁堵程度顯示高于其它時(shí)間點(diǎn)。道路的這種信息變化,使得其在不同的時(shí)間的級(jí)別不同。為了及時(shí)掌握這些變化的信息,可實(shí)時(shí)更新每個(gè)區(qū)塊的信息,并根據(jù)更新后的信息調(diào)整區(qū)塊的級(jí)別,以使其級(jí)別更能反應(yīng)現(xiàn)實(shí)情況。
本實(shí)施方式相對(duì)于現(xiàn)有技術(shù)而言,對(duì)地圖進(jìn)行區(qū)塊劃分并獲取每個(gè)區(qū)塊的級(jí)別,根據(jù)這些級(jí)別,機(jī)器人可以清楚地了解周?chē)h(huán)境中哪些地方可以走、哪些地方不可以走、哪些地方更通暢等。在對(duì)周?chē)h(huán)境有所了解后,機(jī)器人再規(guī)劃從當(dāng)前位置到目標(biāo)位置的路線。這種做法可使機(jī)器人避開(kāi)障礙物、禁止機(jī)器人行走的區(qū)域等,有助于增強(qiáng)規(guī)劃的路線的可靠性,且可保證機(jī)器人快速、順利地到達(dá)目標(biāo)位置。
本發(fā)明的第二實(shí)施方式涉及一種路徑規(guī)劃方法。第二實(shí)施方式與第一實(shí)施方式大致相同,主要區(qū)別之處在于:第一實(shí)施方式中,是根據(jù)機(jī)器人所在的區(qū)塊的級(jí)別與預(yù)設(shè)范圍內(nèi)的待選區(qū)塊的級(jí)別之間的差值,來(lái)確定目標(biāo)位置的。而第二實(shí)施方式中,則是根據(jù)機(jī)器人所在區(qū)塊調(diào)整后的級(jí)別與調(diào)整前的級(jí)別之間的差值,來(lái)確定目標(biāo)位置的。
可預(yù)設(shè)多個(gè)閾值,并根據(jù)機(jī)器人所在區(qū)塊調(diào)整后的級(jí)別與調(diào)整前的級(jí)別之間的差值與該多個(gè)閾值之間的關(guān)系,來(lái)確定目標(biāo)位置。閾值的數(shù)量可根據(jù)待選區(qū)塊的數(shù)量來(lái)設(shè)置。
例如,機(jī)器人所在的區(qū)塊為a,有b、c兩個(gè)待選區(qū)塊,則可設(shè)置兩個(gè)閾值,分別為第一閾值與第二閾值。
在調(diào)整a的級(jí)別之后,計(jì)算a調(diào)整后的級(jí)別與調(diào)整前的級(jí)別之差。若差值小于預(yù)設(shè)的第一閾值,則將機(jī)器人當(dāng)前所在的位置作為目標(biāo)位置,即讓機(jī)器人留在原地。若差值大于或等于所述第一閾值、且小于第二閾值,則將b作為目標(biāo)位置,即使機(jī)器人從a移動(dòng)到b。若差值大于第二閾值,則將c作為目標(biāo)位置。
另外,本實(shí)施方式還可在獲取環(huán)境地圖之前,預(yù)先設(shè)置并存儲(chǔ)不同的區(qū)塊與級(jí)別之間的對(duì)應(yīng)關(guān)系。這樣在根據(jù)每個(gè)區(qū)塊的信息對(duì)劃分出的區(qū)塊進(jìn)行分級(jí)時(shí),就可先將劃分出的區(qū)塊與存儲(chǔ)的區(qū)塊進(jìn)行匹配,在匹配成功時(shí),則可從存儲(chǔ)的對(duì)應(yīng)關(guān)系中查找該存儲(chǔ)的區(qū)塊對(duì)應(yīng)的級(jí)別,并將查找出的級(jí)別作為區(qū)塊的級(jí)別。如果匹配不成功,則可將該區(qū)塊的信息發(fā)送給服務(wù)器,由服務(wù)器來(lái)分配該區(qū)塊的級(jí)別。之后服務(wù)器可將分配的級(jí)別返回給機(jī)器人,機(jī)器人將返回的級(jí)別作為該區(qū)塊的級(jí)別。與此同時(shí),機(jī)器人還可存儲(chǔ)將該區(qū)塊與對(duì)應(yīng)的級(jí)別,以更新對(duì)應(yīng)關(guān)系。
上面各種方法的步驟劃分,只是為了描述清楚,實(shí)現(xiàn)時(shí)可以合并為一個(gè)步驟或者對(duì)某些步驟進(jìn)行拆分,分解為多個(gè)步驟,只要包括相同的邏輯關(guān)系,都在本專(zhuān)利的保護(hù)范圍內(nèi);對(duì)算法中或者流程中添加無(wú)關(guān)緊要的修改或者引入無(wú)關(guān)緊要的設(shè)計(jì),但不改變其算法和流程的核心設(shè)計(jì)都在該專(zhuān)利的保護(hù)范圍內(nèi)。
本發(fā)明的第三實(shí)施方式涉及一種機(jī)器人。該機(jī)器人包括:至少一個(gè)處理器;以及與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行上述實(shí)施方式所述的路徑規(guī)劃方法。
其中,存儲(chǔ)器和處理器采用總線方式連接,總線可以包括任意數(shù)量的互聯(lián)的總線和橋,總線將一個(gè)或多個(gè)處理器和存儲(chǔ)器的各種電路連接在一起??偩€還可以將諸如外圍設(shè)備、穩(wěn)壓器和功率管理電路等之類(lèi)的各種其他電路連接在一起,這些都是本領(lǐng)域所公知的,因此,本文不再對(duì)其進(jìn)行進(jìn)一步描述。總線接口在總線和收發(fā)機(jī)之間提供接口。收發(fā)機(jī)可以是一個(gè)元件,也可以是多個(gè)元件,比如多個(gè)接收器和發(fā)送器,提供用于在傳輸介質(zhì)上與各種其他裝置通信的單元。經(jīng)處理器處理的數(shù)據(jù)通過(guò)天線在無(wú)線介質(zhì)上進(jìn)行傳輸,進(jìn)一步,天線還接收數(shù)據(jù)并將數(shù)據(jù)傳送給處理器。
處理器負(fù)責(zé)管理總線和通常的處理,還可以提供各種功能,包括定時(shí),外圍接口,電壓調(diào)節(jié)、電源管理以及其他控制功能。而存儲(chǔ)器可以被用于存儲(chǔ)處理器在執(zhí)行操作時(shí)所使用的數(shù)據(jù)。
本發(fā)明第四實(shí)施方式涉及一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)程序。計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述方法實(shí)施例。
即,本領(lǐng)域技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一個(gè)設(shè)備(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
本領(lǐng)域的普通技術(shù)人員可以理解,上述各實(shí)施方式是實(shí)現(xiàn)本發(fā)明的具體實(shí)施例,而在實(shí)際應(yīng)用中,可以在形式上和細(xì)節(jié)上對(duì)其作各種改變,而不偏離本發(fā)明的精神和范圍。