本發(fā)明屬于機(jī)器人導(dǎo)航技術(shù)領(lǐng)域,尤其涉及一種機(jī)器人自主導(dǎo)航方法及系統(tǒng)。
背景技術(shù):
隨著現(xiàn)代化生產(chǎn)的快速發(fā)展,很多場合均采用機(jī)器人協(xié)助或代替人工完成很多枯燥、繁瑣和危險(xiǎn)的工作。在機(jī)器人工作時(shí),需要機(jī)器人按照正確的軌跡運(yùn)動(dòng)實(shí)現(xiàn)自主導(dǎo)航,從而完成指定的工作。由于目前自主導(dǎo)航的機(jī)器人(如自主巡檢機(jī)器人、自動(dòng)運(yùn)輸機(jī)器人等)在工作環(huán)境中幾乎都存在有一定的敏感區(qū)域,例如:危險(xiǎn)的設(shè)備、溝渠等,如果機(jī)器人要完全自動(dòng)移動(dòng)并避開這些危險(xiǎn)區(qū)域,則往往需要裝備大量高精度的傳感器。這樣機(jī)器人在進(jìn)行自主導(dǎo)航時(shí)便可以先根據(jù)地圖信息規(guī)劃全局路徑,然后再根據(jù)高精度傳感器檢測到的障礙物信息規(guī)劃局部行走路徑,以避開敏感區(qū)域。然而,機(jī)器人采用的這種自主導(dǎo)航方式對傳感器的要求較高,增加了機(jī)器人的成本和結(jié)構(gòu)復(fù)雜度,并且算法復(fù)雜,計(jì)算量大,容易出錯(cuò)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種機(jī)器人自主導(dǎo)航方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中機(jī)器人采用的自主導(dǎo)航方式對傳感器的要求較高,增加了機(jī)器人的成本和結(jié)構(gòu)復(fù)雜度,并且算法復(fù)雜,計(jì)算量大,容易出錯(cuò)的問題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種機(jī)器人自主導(dǎo)航方法,包括:
預(yù)先為導(dǎo)航空間制定虛擬路徑,所述虛擬路徑由坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成;
獲取機(jī)器人在所述導(dǎo)航空間中的初始位置和目的地位置,并根據(jù)所述初始位置和所述目的地位置,確定所述機(jī)器人對應(yīng)在所述虛擬路徑中的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn);
采用路徑規(guī)劃算法計(jì)算出在所述虛擬路徑中從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)的最短路徑;
根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例所述的機(jī)器人自主導(dǎo)航方法中,所述最短路徑包括從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)過程中的所有坐標(biāo)點(diǎn)以及所述目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例所述的機(jī)器人自主導(dǎo)航方法中,所述根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)具體包括:
從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地;
判斷所述機(jī)器人是否達(dá)到所述單次導(dǎo)航目的地;
若所述機(jī)器人到達(dá)所述單次導(dǎo)航目的地,則判斷所述最短路徑中的坐標(biāo)點(diǎn)是否取完;
若所述最短路徑中的坐標(biāo)點(diǎn)未取完,則返回從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地的步驟;若所述最短路徑中的坐標(biāo)點(diǎn)取完,則所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例所述的機(jī)器人自主導(dǎo)航方法中,所述判斷所述機(jī)器人是否達(dá)到所述單次導(dǎo)航目的地之前還包括:
判斷所述機(jī)器人的當(dāng)前位置是否處于所述最短路徑上;
若所述當(dāng)前位置不在所述虛擬路徑上,則根據(jù)所述當(dāng)前位置確定所述機(jī)器人的當(dāng)前位置偏離所述最短路徑的距離;
根據(jù)當(dāng)前位置所述偏離所述最短路徑的距離引導(dǎo)所述機(jī)器人保持在所述最短路徑上。
在本發(fā)明實(shí)施例所述的機(jī)器人自主導(dǎo)航方法中,所述根據(jù)所述當(dāng)前位置偏 離所述最短路徑的距離引導(dǎo)所述機(jī)器人保持在所述最短路徑上具體包括:
將所述當(dāng)前位置偏離所述最短路徑的距離作為偏差,通過pid算法計(jì)算得出機(jī)器人y軸方向的速度分量,并根據(jù)所述y軸方向的速度分量對所述機(jī)器人的速度進(jìn)行調(diào)整,所述y軸方向與所述機(jī)器人當(dāng)前運(yùn)動(dòng)方向垂直并指向所述最短路徑。
本發(fā)明實(shí)施例的另一目的在于提供一種機(jī)器人自主導(dǎo)航系統(tǒng),包括:
虛擬路徑設(shè)置模塊,用于預(yù)先為導(dǎo)航空間制定虛擬路徑,所述虛擬路徑由坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成;
定位匹配模塊,用于獲取機(jī)器人在所述導(dǎo)航空間中的初始位置和目的地位置,并根據(jù)所述初始位置和所述目的地位置,確定所述機(jī)器人對應(yīng)在所述虛擬路徑中的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn);
路徑規(guī)劃模塊,用于采用路徑規(guī)劃算法計(jì)算出在所述虛擬路徑中從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)的最短路徑;
導(dǎo)航控制模塊,用于根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例提供的所述的機(jī)器人自主導(dǎo)航系統(tǒng)中,所述最短路徑包括從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)過程中的所有坐標(biāo)點(diǎn)以及所述目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例提供的所述的機(jī)器人自主導(dǎo)航系統(tǒng)中,所述導(dǎo)航控制模塊具體包括:
單次導(dǎo)航目的地設(shè)置單元,用于從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地;
第一判斷單元,用于判斷所述機(jī)器人是否達(dá)到所述單次導(dǎo)航目的地;
第二判斷單元,用于若所述機(jī)器人到達(dá)所述單次導(dǎo)航目的地,則判斷所述最短路徑中的坐標(biāo)點(diǎn)是否取完,若所述最短路徑中的坐標(biāo)點(diǎn)未取完,則使所述單次導(dǎo)航目的地設(shè)置單元繼續(xù)從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航 目的地的;若所述最短路徑中的坐標(biāo)點(diǎn)取完,則所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例提供的所述的機(jī)器人自主導(dǎo)航系統(tǒng)中,所述導(dǎo)航控制模塊還包括:
第三判斷單元,用于判斷所述機(jī)器人的當(dāng)前位置是否處于所述最短路徑上;
計(jì)算單元,用于若所述當(dāng)前位置不在所述虛擬路徑上,則根據(jù)所述當(dāng)前位置確定所述機(jī)器人的當(dāng)前位置偏離所述最短路徑的距離;
調(diào)整單元,用于根據(jù)當(dāng)前位置所述偏離所述最短路徑的距離引導(dǎo)所述機(jī)器人保持在所述最短路徑上。
在本發(fā)明實(shí)施例提供的所述的機(jī)器人自主導(dǎo)航系統(tǒng)中,所述調(diào)整單元具體用于:
將所述當(dāng)前位置偏離所述最短路徑的距離作為偏差,通過pid算法計(jì)算得出機(jī)器人y軸方向的速度分量,并根據(jù)所述y軸方向的速度分量對所述機(jī)器人的速度進(jìn)行調(diào)整,所述y軸方向與所述機(jī)器人當(dāng)前運(yùn)動(dòng)方向垂直并指向所述最短路徑。
實(shí)施本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航方法及系統(tǒng)具有以下有益效果:
本發(fā)明實(shí)施例由于預(yù)先為導(dǎo)航空間制定虛擬路徑,所述虛擬路徑由坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成;然后獲取機(jī)器人在所述導(dǎo)航空間中的初始位置和目的地位置,并根據(jù)所述初始位置和所述目的地位置,確定所述機(jī)器人對應(yīng)在所述虛擬路徑中的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn);采用路徑規(guī)劃算法計(jì)算出在所述虛擬路徑中從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)的最短路徑;最后,根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn),從而不需要借助高精度的傳感器即可使機(jī)器人順利的達(dá)到導(dǎo)航目的地,降低了機(jī)器人的成本,并且減小了機(jī)器人自主導(dǎo)航系統(tǒng)的復(fù)雜度和導(dǎo)航過程中的計(jì)算量,提高了機(jī)器人自主導(dǎo)航系統(tǒng)的可靠性。
附圖說明
圖1是本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航方法的具體實(shí)現(xiàn)流程圖;
圖2是圖1所示實(shí)施例中s104的具體實(shí)現(xiàn)流程圖;
圖3是圖1所示實(shí)施例中s104的另一具體實(shí)現(xiàn)流程圖;
圖4是機(jī)器人速度合成示意圖;
圖5是本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航方法的具體實(shí)現(xiàn)流程圖。參見圖1所示,本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航方法包括:
在s101中,預(yù)先為導(dǎo)航空間制定虛擬路徑,所述虛擬路徑由坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成。
在本發(fā)明實(shí)施例中,所述虛擬路徑為用戶預(yù)先根據(jù)導(dǎo)航空間的環(huán)境指定的路徑,由導(dǎo)航空間中一系列的坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成,機(jī)器人可以在所述虛擬路徑上自主運(yùn)動(dòng),并且所述虛擬路徑在實(shí)際環(huán)境中并不可見,而是以地圖的形式存儲(chǔ)在所述機(jī)器人自主導(dǎo)航系統(tǒng)中。
在s102中,獲取機(jī)器人在所述導(dǎo)航空間中的初始位置和目的地位置,并根據(jù)所述初始位置和所述目的地位置,確定所述機(jī)器人對應(yīng)在所述虛擬路徑中的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn)。
在本發(fā)明實(shí)施例中,每個(gè)坐標(biāo)點(diǎn)均對應(yīng)有唯一的經(jīng)緯度,當(dāng)需要使機(jī)器人進(jìn)行自主導(dǎo)航時(shí),首先設(shè)置機(jī)器人的目的地位置,由用戶輸入設(shè)置的目的地地址,然后由機(jī)器人內(nèi)部的定位裝置自動(dòng)獲取當(dāng)前位置的經(jīng)緯度和所述目的地地 址所對應(yīng)的經(jīng)緯度,并將所述當(dāng)前位置的經(jīng)緯度和目的地位置的經(jīng)緯度與所述虛擬路徑中的坐標(biāo)點(diǎn)的經(jīng)緯度相匹配,以找出所述虛擬路經(jīng)中離所述機(jī)器人的當(dāng)前位置最近的坐標(biāo)點(diǎn)和離所述目的地位置最近的坐標(biāo)點(diǎn),這兩個(gè)坐標(biāo)點(diǎn)即分別為機(jī)器人在所述虛擬路徑上的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn)。需要說明的是,用戶在設(shè)置機(jī)器人的目的地時(shí),需要保證機(jī)器人的初始位置和目的地位置均在所述虛擬路徑附近。
在s103中,采用路徑規(guī)劃算法計(jì)算出在所述虛擬路徑中從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)的最短路徑。
在本實(shí)施例中,所述路徑規(guī)劃算法為a*算法或者迪杰斯特拉算法,所述最短路徑包括從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)過程中的所有坐標(biāo)點(diǎn)以及所述目的地坐標(biāo)點(diǎn)。
在s104中,根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
作為一具體實(shí)現(xiàn)示例,圖2示出了s104的具體實(shí)現(xiàn)流程,參見圖2所示,s104的具體實(shí)現(xiàn)流程詳述如下:
在s201中,從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地;
在s202中,判斷所述機(jī)器人是否達(dá)到所述單次導(dǎo)航目的地;
在s203中,若所述機(jī)器人到達(dá)所述單次導(dǎo)航目的地,則判斷所述最短路徑中的坐標(biāo)點(diǎn)是否取完;
在s204-1中,若所述最短路徑中的坐標(biāo)點(diǎn)未取完,則返回從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地的步驟;
在s204-2中,若所述最短路徑中的坐標(biāo)點(diǎn)取完,則所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
作為另一實(shí)現(xiàn)實(shí)例,圖3示出了s104的另一具體實(shí)現(xiàn)流程,參見圖3所示,本實(shí)施例相對于上一實(shí)現(xiàn)示例,s104的具體實(shí)現(xiàn)流程,在判斷所述機(jī)器人是否達(dá)到所述單次導(dǎo)航目的地之前還包括:
在s302中,判斷所述機(jī)器人的當(dāng)前位置是否處于所述最短路徑上;
在s303中,若所述當(dāng)前位置不在所述虛擬路徑上,則根據(jù)所述當(dāng)前位置確定所述機(jī)器人的當(dāng)前位置偏離所述最短路徑的距離;
在s304中,根據(jù)當(dāng)前位置所述偏離所述最短路徑的距離引導(dǎo)所述機(jī)器人保持在所述最短路徑上。
在本實(shí)現(xiàn)示例中,s304具體包括:將所述當(dāng)前位置偏離所述最短路徑的距離作為偏差,通過pid算法計(jì)算得出機(jī)器人y軸方向的速度分量,并根據(jù)所述y軸方向的速度分量對所述機(jī)器人的速度進(jìn)行調(diào)整,以使所述機(jī)器人保持在所述最短路徑左右的極小范圍內(nèi),所述y軸方向與所述機(jī)器人當(dāng)前運(yùn)動(dòng)方向(即圖4中的x軸方向)垂直并指向所述最短路徑,調(diào)整后的合成速度由x軸方向和y軸方向的速度分量共同合成,具體可參見圖4所示。
需要說明的是,本實(shí)現(xiàn)示例中的步驟s301、步驟s305~s308分別與圖2所示實(shí)現(xiàn)示例中的步驟s201~s204-2相同,因此,在此不再累述。
以上可以看出,本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航方法,由于預(yù)先為導(dǎo)航空間制定虛擬路徑,所述虛擬路徑由坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成;然后獲取機(jī)器人在所述導(dǎo)航空間中的初始位置和目的地位置,并根據(jù)所述初始位置和所述目的地位置,確定所述機(jī)器人對應(yīng)在所述虛擬路徑中的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn);采用路徑規(guī)劃算法計(jì)算出在所述虛擬路徑中從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)的最短路徑;最后根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn),從而不需要借助高精度的傳感器即可使機(jī)器人順利的達(dá)到導(dǎo)航目的地,降低了機(jī)器人的成本,并且減小了機(jī)器人自主導(dǎo)航系統(tǒng)的復(fù)雜度和導(dǎo)航過程中的計(jì)算量,提高了機(jī)器人自主導(dǎo)航系統(tǒng)的可靠性。
圖5是本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)用于運(yùn)行圖1~圖3所示實(shí)施例提供的方法。為了便于說明僅僅示出了與本實(shí)施例相關(guān)的部分。
參見圖5所示,本實(shí)施例包括一種機(jī)器人自主導(dǎo)航系統(tǒng),包括:
虛擬路徑設(shè)置模塊1,用于預(yù)先為導(dǎo)航空間制定虛擬路徑,所述虛擬路徑由坐標(biāo)點(diǎn)及坐標(biāo)點(diǎn)與坐標(biāo)點(diǎn)之間的連接關(guān)系組成;
定位匹配模塊2,用于獲取機(jī)器人在所述導(dǎo)航空間中的初始位置和目的地位置,并根據(jù)所述初始位置和所述目的地位置,確定所述機(jī)器人對應(yīng)在所述虛擬路徑中的初始坐標(biāo)點(diǎn)和目的地坐標(biāo)點(diǎn);
路徑規(guī)劃模塊3,用于采用路徑規(guī)劃算法計(jì)算出在所述虛擬路徑中從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)的最短路徑;
導(dǎo)航控制模塊4,用于根據(jù)所述最短路徑引導(dǎo)所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn)。
可選的,所述最短路徑包括從所述初始坐標(biāo)點(diǎn)到達(dá)所述目的地坐標(biāo)點(diǎn)過程中的所有坐標(biāo)點(diǎn)以及所述目的地坐標(biāo)點(diǎn)。
可選的,所述導(dǎo)航控制模塊4具體包括:
單次導(dǎo)航目的地設(shè)置單元41,用于從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地;
第一判斷單元42,用于判斷所述機(jī)器人是否達(dá)到所述單次導(dǎo)航目的地;
第二判斷單元43,用于若所述機(jī)器人到達(dá)所述單次導(dǎo)航目的地,則判斷所述最短路徑中的坐標(biāo)點(diǎn)是否取完,若所述最短路徑中的坐標(biāo)點(diǎn)取完,則所述機(jī)器人到達(dá)所述目的地坐標(biāo)點(diǎn);若所述最短路徑中的坐標(biāo)點(diǎn)未取完,則使所述單次導(dǎo)航目的地設(shè)置單元41繼續(xù)從所述最短路徑中順序取出坐標(biāo)點(diǎn)作為單次導(dǎo)航目的地的。
可選的,所述導(dǎo)航控制模塊4還包括:
第三判斷單元44,用于判斷所述機(jī)器人的當(dāng)前位置是否處于所述最短路徑上;
計(jì)算單元45,用于若所述當(dāng)前位置不在所述虛擬路徑上,則根據(jù)所述當(dāng)前位置確定所述機(jī)器人的當(dāng)前位置偏離所述最短路徑的距離;
調(diào)整單元46,用于根據(jù)當(dāng)前位置所述偏離所述最短路徑的距離引導(dǎo)所述機(jī) 器人保持在所述最短路徑上。
可選的,所述調(diào)整單元46具體用于:
將所述當(dāng)前位置偏離所述最短路徑的距離作為偏差,通過pid算法計(jì)算得出機(jī)器人y軸方向的速度分量,并根據(jù)所述y軸方向的速度分量對所述機(jī)器人的速度進(jìn)行調(diào)整,所述y軸方向與所述機(jī)器人當(dāng)前運(yùn)動(dòng)方向垂直并指向所述最短路徑。
需要說明的是,本發(fā)明實(shí)施例提供的上述系統(tǒng)中各個(gè)模塊,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明方法實(shí)施例相同,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
因此,可以看出,本發(fā)明實(shí)施例提供的一種機(jī)器人自主導(dǎo)航系統(tǒng),同樣不需要借助高精度的傳感器即可使機(jī)器人順利的達(dá)到導(dǎo)航目的地,降低了機(jī)器人的成本,并且減小了機(jī)器人自主導(dǎo)航系統(tǒng)的復(fù)雜度和導(dǎo)航過程中的計(jì)算量,提高了機(jī)器人自主導(dǎo)航系統(tǒng)的可靠性。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。