本發(fā)明涉及機器人控制領域,具體涉及一種移動機器人自主導航系統(tǒng)及方法。
背景技術:
移動機器人是一個集環(huán)境感知、動態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多功能于一體的綜合系統(tǒng)。它集中了傳感器技術、計算機技術、機械工程、電子工程、自動化控制工程以及人工智能等多學科的研究成果,是目前科學技術發(fā)展最活躍的領域之一。在自主式移動機器人相關技術的研究中,導航技術是其研究核心,同時也是移動機器人實現(xiàn)智能化及完全自主的關鍵技術。導航是指移動機器人通過傳感器感知環(huán)境信息和自身狀態(tài),實現(xiàn)在有障礙的環(huán)境中面向目標的自主運動。導航主要解決以下三方面的問題:(1)通過移動機器人的傳感器系統(tǒng)獲取環(huán)境信息;(2)用一定的算法對所獲信息進行處理并構建環(huán)境地圖;(3)根據(jù)地圖實現(xiàn)移動機器人的路徑規(guī)劃及運動控制。
移動機器人定位是指確定機器人在工作環(huán)境中相對于全局坐標的位置,是移動機器人導航的基本環(huán)節(jié)。當前移動機器人定位大多基于視覺傳感器、激光雷達、超聲波、uwb(ultrawideband,超寬帶)、紅外等傳感器,且大多采用多傳感器融合技術,先建立地圖,然后基于地圖進行行走與繞障的路徑規(guī)劃,從而實現(xiàn)自主導航與繞障功能。
現(xiàn)有機器人室內(nèi)導航與定位通常依賴一些標記,如rfid(radiofrequencyidentification,射頻識別)或者特定圖標,這些對環(huán)境要求比較強,而且需要對現(xiàn)有環(huán)境進行改造,不太適合普通家庭場景;另外還有依賴視覺的機器人,這些機器人對硬件要求很高,需要實時運行復雜的視覺算法,嵌入式平臺很難支撐,同時因為環(huán)境光線具有局限性,在效果和成本上優(yōu)勢不明顯;還有基于激光雷達+uwb的機器人,這種機器人定位精度高,工作范圍廣,但是需要安裝至少三個基站,依然需要對周圍環(huán)境進行改造,而且激光雷達成本也很高,也不是很適合普通家庭場景。
技術實現(xiàn)要素:
本發(fā)明提供一種移動機器人自主導航系統(tǒng)及方法,以降低對機器人硬件設備及工作環(huán)境的要求。
為此,本發(fā)明提供如下技術方案:
一種移動機器人自主導航系統(tǒng),包括:紅外傳感器測距單元、與所述紅外傳感器測距單元信號相連的上位機、與所述上位機通信的主控制器、與所述主控制器信號相連的電機;
紅外傳感器測距單元,用于實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離;
上位機,用于根據(jù)所述障礙物與所述移動機器人的距離對所述移動機器人進行路徑規(guī)劃,生成導航信息,將所述導航信息下發(fā)給主控器;
所述主控制器,用于根據(jù)所述主控器下發(fā)的導航信息,控制所述電機工作,以使所述電機驅動所述移動機器人自主行走。
優(yōu)選地,所述紅外傳感器測距單元包括:安裝在所述移動機器人前面左側的第一紅外傳感器、安裝在所述移動機器人前面右側的第二紅外傳感器、以及安裝在所述移動機器人后面的至少一個第三紅外傳感器;
所述第一紅外傳感器,用于測量所述移動機器人左前方障礙物的距離;
所述第二紅外傳感器,用于測量所述移動機器人右前方障礙物的距離;
所述第三紅外傳感器,用于測量所述移動機器人后方障礙物的距離。
優(yōu)選地,所述第一紅外傳感器和所述第二紅外傳感器的探測方向與水平面成設定角度。
優(yōu)選地,所述上位機,還用于根據(jù)所述紅外傳感器測距單元測量得到的距離判斷在設定范圍內(nèi)是否有障礙物;如果是,則向所述主控制器發(fā)送停止行進指令,以使所述主控制器控制電機停止工作;并且在所述移動機器人停止行進后的設定時間內(nèi),根據(jù)所述紅外傳感器測距單元測量得到的距離判斷所述障礙物是否已離開;如果是,則向所述主控制器發(fā)送繼續(xù)行進指令,以使所述主控制器控制電機恢復工作;如果否,則進行繞障處理。
優(yōu)選地,所述上位機采用基于狀態(tài)機的遞歸算法進行繞障處理。
優(yōu)選地,所述系統(tǒng)還包括:
警示單元,用于根據(jù)所述上位機的控制進行信息提示;
所述上位機,還用于根據(jù)所述紅外傳感器測距單元測量得到的距離判斷在設定范圍內(nèi)有障礙物后,控制所述警示單元進行信息提示。
優(yōu)選地,所述系統(tǒng)還包括:
慣性測量單元,用于實時獲取所述移動機器人的運動狀態(tài)及運動數(shù)據(jù);
所述上位機,還用于根據(jù)所述移動機器人的運動狀態(tài)及運動數(shù)據(jù)進行糾偏處理。
優(yōu)選地,所述慣性測量單元包括以下任意一種或多種:加速度計,陀螺儀,磁力計。
一種移動機器人自主導航方法,包括:
實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離;
根據(jù)所述障礙物與所述移動機器人的距離對所述移動機器人進行路徑規(guī)劃,生成導航信息;
根據(jù)所述導航信息,控制電機工作,以使所述電機驅動所述移動機器人自主行走。
優(yōu)選地,所述實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離包括:
利用安裝在所述移動機器人前面左側的第一紅外傳感器測量所述移動機器人左前方障礙物的距離;
利用安裝在所述移動機器人前面右側的第二紅外傳感器測量所述移動機器人右前方障礙物的距離;
利用安裝在所述移動機器人后面的至少一個第三紅外傳感器測量所述移動機器人后方障礙物的距離。
優(yōu)選地,所述方法還包括:
根據(jù)測量得到的距離判斷在設定范圍內(nèi)是否有障礙物;
如果是,則控制所述移動機器人停止行進;
如果在所述移動機器人停止行進后的設定時間內(nèi),所述障礙物仍在設定范圍內(nèi),則進行繞障處理。
優(yōu)選地,所述方法還包括:
在控制所述移動機器人停止行進后,進行信息提示。
優(yōu)選地,所述進行信息提示包括:
通過語音播放器播放提示語音;和/或
控制信號燈點亮或閃爍。
優(yōu)選地,所述進行繞障處理包括:
采用基于狀態(tài)機的遞歸算法進行繞障處理。
優(yōu)選地,所述方法還包括:
實時獲取所述移動機器人的運動狀態(tài)及運動數(shù)據(jù);
根據(jù)所述移動機器人的運動狀態(tài)及運動數(shù)據(jù)進行糾偏處理。
優(yōu)選地,所述運動狀態(tài)包括:直線運動、轉彎運動;
在所述移動機器人進行直線運動過程中,進行糾偏處理包括:
在檢測到所述移動機器人偏離直線后,繼續(xù)檢測偏離角度;
如果偏離角度小于設定的角度閾值,則計算得到糾偏量,并根據(jù)所述糾偏量及移動機器人運動正反解對所述移動機器人的行走機構進行pid閉環(huán)控制;
如果偏離角度大于或等于所述設定的角度閾值,則暫停當前運動,并根據(jù)偏離角度及偏離方向控制所述移動機器人原地轉彎,以使所述移動機器人轉彎回到原來的方向;在轉彎完成后,控制所述移動機器人繼續(xù)當前運動;
在所述移動機器人進行轉彎運動過程中,進行糾偏處理包括:
獲取所述移動機器人實際轉彎角度,并計算所述實際轉彎角度與理論轉彎角度的差值,并將該差值作為偏離角度;
如果所述偏離角度小于設定值,則根據(jù)所述偏離角度及移動機器人運動正反解對所述移動機器人的行走機構進行pid閉環(huán)控制;
如果所述偏離角度大于或等于所述設定值,則控制所述移動機器人停止運動,并在等待設定時間后從當前姿態(tài)繼續(xù)開始運動;
如果持續(xù)因所述偏離角度大于或等于所述設定值而停止運動的次數(shù)達到設定次數(shù),則放棄轉彎任務,重新規(guī)劃路徑。
本發(fā)明實施例提供的移動機器人自主導航系統(tǒng)及方法,利用低成本的紅外測距傳感器,實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離,基于測量得到的數(shù)據(jù)對所述移動機器人進行路徑規(guī)劃,生成導航信息,根據(jù)導航信息,控制電機工作,以使所述電機驅動移動機器人自主行走。本發(fā)明實施例的移動機器人自主導航系統(tǒng)及方法,可以大大降低對機器人硬件設備及工作環(huán)境的要求,尤其適用于普通家庭場景、以及對機器人自主導航精度要求較低的場景。
進一步地,本發(fā)明移動機器人自主導航系統(tǒng)及方法,在移動機器人前方有障礙物時,還可以實現(xiàn)移動機器人自主繞障。
進一步地,還用于根據(jù)移動機器人的行進狀態(tài)及行進數(shù)據(jù)進行糾偏處理,從而有效提高控制精度。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領域普通技術人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例移動機器人自主導航系統(tǒng)的一種結構示意圖;
圖2是本發(fā)明實施例中安裝在機器人前面的兩個紅外測距傳感器的示意圖;
圖3是本發(fā)明系統(tǒng)實施例中紅外傳感器安裝角度與障礙物探測距離示意圖;
圖4是本發(fā)明實施例中基于狀態(tài)機的一級繞障狀態(tài)轉移圖;
圖5是本發(fā)明實施例中基于狀態(tài)機的二級繞障狀態(tài)轉移圖;
圖6是本發(fā)明實施例移動機器人自主導航系統(tǒng)的另一種結構示意圖;
圖7是本發(fā)明實施例移動機器人自主導航方法的流程圖;
圖8是本發(fā)明方法實施例中繞障檢測及處理的流程圖;
圖9是本發(fā)明方法實施例中機器人直線運動過程中的糾偏處理流程圖;
圖10是本發(fā)明方法實施例中機器人轉彎運動過程中的糾偏處理流程圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明實施例的方案,下面結合附圖和實施方式對本發(fā)明實施例作進一步的詳細說明。
如圖1所示,是本發(fā)明實施例移動機器人自主導航系統(tǒng)的一種結構示意圖。
在該實施例中,所述系統(tǒng)包括:紅外傳感器測距單元、與所述紅外傳感器測距單元信號相連的上位機、與所述上位機通信的主控制器、與所述主控制器信號相連的電機。其中:
紅外傳感器測距單元,用于實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離;
上位機,用于根據(jù)所述障礙物與所述移動機器人的距離對所述移動機器人進行路徑規(guī)劃,生成導航信息,將所述導航信息下發(fā)給主控器;
主控制器,用于根據(jù)所述主控器下發(fā)的導航信息,控制所述電機工作,以使所述電機驅動所述移動機器人自主行走。所述導航信息可以包括行進序列信息(比如前進、左轉、右轉等)和行進參數(shù)(比如,啟停、使能、睡眠等)。
需要說明的是,在實際應用中,上述紅外傳感器測距單元可以由一個或多個紅外測距傳感器組成。比如,只需機器人單一方向行走的應用環(huán)境中,可以在機器人的前面中間位置安裝一個紅外測距傳感器,或者前、后各安裝一個紅外測距傳感器;在需要機器人能夠多方行走的應用環(huán)境中,可以在機器人的前面左、右兩側各安裝一個紅外測距傳感器,或者前面安裝兩個、后面安裝一個或多個紅外測距傳感器。
如圖2所示,是本發(fā)明實施例中安裝在機器人前面的兩個紅外測距傳感器的示意圖。其中,第一紅外傳感器21安裝在移動機器人前面左側,用于測量所述移動機器人左前方障礙物的距離;第二紅外傳感器22安裝在移動機器人前面右側,用于測量所述移動機器人右前方障礙物的距離。這樣便于識別左右障礙,也減少識別盲區(qū)。當然,根據(jù)應用需要,還可以在所述移動機器人后面安裝一個或多個第三紅外傳感器(未圖示)。因為機器人很少直接倒車,因此在機器人后面只安裝1個紅外傳感器,既可節(jié)省成本,也不會影響運動控制效果。另外,考慮到成本問題,可以采用測距為20cm左右的紅外測距傳感器。
當然,在實際應用中,紅外測距傳感器的具體數(shù)量及安裝位置可根據(jù)應用需求來確定,對此本發(fā)明實施例不做限定。
紅外測距傳感器是利用紅外信號遇到障礙物距離的不同,反射強度也不同的原理,進行障礙物遠近的檢測。紅外測距傳感器具有一對紅外信號發(fā)射與接收二極管,發(fā)射管發(fā)射特定頻率的紅外信號,接收管接收這種頻率的紅外信號。當紅外的檢測方向遇到障礙物時,紅外信號反射回來被接收管接收,經(jīng)過處理之后,通過數(shù)字傳感器接口返回到機器人主機,機器人即可利用紅外的返回信號來識別周圍環(huán)境的變化。它的原理是接收管接收的光強隨反射物體的距離而變化的,距離近則反射光強,距離遠則反射光弱。
進一步,為了使紅外測距傳感器能夠認別懸崖,如圖3所示,在本發(fā)明實施例的系統(tǒng)中,還可以將將紅外測距傳感器以一定高度h(如30mm)、一定水平向下傾斜角度α(如10度)安裝。在這種安裝方式下,無障礙物時,能檢測最大距離是d=h/tanα,當然斜邊長h/sinα必須小于傳感器最大測量范圍。如果前面有懸崖,那么反射回來的光量將出現(xiàn)突變,紅外測距傳感器返回的測量數(shù)據(jù)將發(fā)生突變,即由大(如1000)突然變小(如500),此時即可判斷前面有懸崖。
在本發(fā)明系統(tǒng)中,可以采用測量數(shù)據(jù)的絕對值來判斷障礙物及懸崖的距離??紤]到多種顏色地面對紅外反射情況不一,如白色墻壁,紅外傳感器可以識別18cm遠處的障礙物,黃色墻壁可以識別15cm遠處的障礙物,黑色墻壁可以識別10cm處的墻壁,因此,在本發(fā)明系統(tǒng)中,可以采用木桶原則,設計識別距離為其中的最短距離,如上述針對不同顏色地面,設計識別距離為10cm,這樣基本可以適配常見家庭應用場景。
另外,由于所述紅外測距傳感器可以探測前方一個圓錐面內(nèi)的障礙物,錐頂即為該紅外測距傳感器當前位置,因此,對于直線運動與轉彎運動,可以設置不同的檢測門限,如直線運動需要識別10cm遠處的障礙物,而轉彎運動只需要保證轉彎過程中機器人身體不觸碰障礙物即可,因此可以降低要求,只需要識別3cm遠處的障礙物即可,這樣即可避免機器人轉彎過程中,附近3cm-10cm之間障礙物的干擾。需要說明的是,在本發(fā)明實施例中,所述轉彎是指機器人原地轉彎。
在導航過程中,為了避免人正常行走對機器人運動造成干擾,在本發(fā)明系統(tǒng)另一實施例中,所述上位機還提供動態(tài)障礙物檢測功能。具體地,在機器人行進過程中,如果紅外傳感器測量得到的距離落在障礙物檢測門限范圍內(nèi)時,上位機向主控制器發(fā)送停止行進指令;相應地,主控制器收到該指令后,控制電機停止工作,從而使機器人立刻停止行進。如果在機器人停止行進后的一段時間內(nèi),障礙物離開,也就是說,紅外傳感器測量得到的距離不在障礙物檢測門限范圍內(nèi)時,上位機向主控制器發(fā)送繼續(xù)行進指令;相應地,主控制器收到該指令后,控制電機恢復工作,從而使機器人繼續(xù)按照規(guī)劃的路徑行進。如果在機器人停止行進后的一段時間內(nèi),障礙物沒有離開,也就是說,紅外傳感器測量得到的距離仍在障礙物檢測門限范圍內(nèi)時,此時可以繼續(xù)等待障礙物離開,也可以由上位機啟動繞障處理。
進一步地,在本發(fā)明實施例的系統(tǒng)中,還可包括警示單元(未圖示),用于根據(jù)所述上位機的控制進行信息提示。具體地,所述上位機根據(jù)所述紅外傳感器測距單元測量得到的距離判斷在設定范圍內(nèi)有障礙物后,控制所述警示單元進行信息提示。所述警示單元可以是:語音播放器,和/或信號燈等,也就是說,可以通過單一方式(比如語音、點亮信號燈等)進行信息提示,也可以同時采用多種方式進行信息提示,對此本發(fā)明實施例不做限定。通過警示單元的提示,可以使人工對所述移動機器人的行走進行干預。當然,也可以不用設置上述警示單元,而是由上位機進行繞障處理,從而使機器人繞過前面的障礙物,并最終回到既定路徑上繼續(xù)行進。
在現(xiàn)有技術中,機器人行進中如果遇到障礙物,大多數(shù)無圖繞障方案都是控制機器人一直朝一個方向轉,或者向無障礙物的方向轉,這樣的方案在機器人同時遇到多個障礙物時,則可能出現(xiàn)在一個區(qū)域繞圈的情況。
針對上述問題,本發(fā)明系統(tǒng)中,所述上位機采用基于狀態(tài)機的遞歸算法進行繞障處理,如遇到障礙物后,根據(jù)當前狀態(tài)機情況,如果左右方向都沒有嘗試,則先往遠離障礙物的一邊轉彎,繞過障礙物后,再回到原來規(guī)劃的路徑上;如果無法越過障礙物,則原路退回,選擇規(guī)劃的另一條路徑繼續(xù)行進。通過這種方式的繞障處理,在無法通過轉彎的方式繞過障礙物的情況下,也能夠選擇其它可能的路徑,從而可以最大程度地避免障礙物對機器人行進行影響,有效地提高機器人的繞障能力。圖4和圖5分別示出了本發(fā)明實施例中基于狀態(tài)機的一級繞障狀態(tài)轉移圖及二級繞障狀態(tài)轉移圖,其中,d左表示左前方距離障礙物的距離,d右表示右前方距離障礙物的距離。
如圖6所示,是本發(fā)明實施例移動機器人自主導航系統(tǒng)的另一種結構示意圖。
與圖1所示實施例不同的是,在該實施例中,所述系統(tǒng)還包括:慣性測量單元,用于實時獲取所述移動機器人的行進狀態(tài)及行進數(shù)據(jù)。所述慣性測量單元包括:加速度計、陀螺儀,還可進一步包括磁力計等。其中,加速度計能感知x,y,z方向加速度,通過對加速度積分得到速度,對速度積分得到距離;陀螺儀能感知繞x,y,z軸轉動的角速度,通過對角速度積分,可以得到繞x,y,z軸轉動的角度;由于陀螺儀容易漂移,可以與磁力計數(shù)據(jù)進行融合,從而獲得比較可靠的結果。
直線運動時,通過融合陀螺儀及磁力計的數(shù)據(jù),可以實時計算出機器人是否偏離航線,偏離多少度,進而通過糾偏算法及時糾正。通過加速度數(shù)據(jù),可以計算行進距離,然后與理論行進距離進行比較,進而計算出糾偏量,避免機器人由于打滑等因素造成走的距離不準確問題。
原地轉彎時,通過融合陀螺儀及磁力計的數(shù)據(jù),可以實時計算出機器人實際轉彎的角度,然后與理論行進轉彎角度進行比較,進而計算出糾偏量。
相應地,在該實施例中,所述上位機還用于根據(jù)所述移動機器人的行進狀態(tài)及行進數(shù)據(jù)進行糾偏處理,另外,由于上位機與下位機即前面所述的主控制器通信存在一定延時,因此在糾偏過程中,還引入了pid(比例-積分-微分)控制調節(jié)方法,運用d的預測性解決延時問題。具體糾偏處理的過程將在后面本發(fā)明移動機器人自主導航方法實施例中詳細說明。
在本發(fā)明系統(tǒng)中,所述上位機可以基于機器人運動學,建立機器人全局坐標系(一般以充電樁為全局坐標零點,前面朝向x軸正方向,按照右手系確定y軸,機器人前進方向與x軸正方向夾角定為θ)與局部坐標系(以機器人當前位置為零點,前正后負,左正右負)進行糾偏、導航、繞障的路徑規(guī)劃,同時也可以通過繞障過程中,機器人在每個方向行進的距離(如往前走10cm障礙消失,往右轉彎90度,再往前走20cm,右側障礙物消失,那么粗略估計障礙物似乎10*20cm大小),大致估算出障礙物的長寬大小情況,進行路徑規(guī)劃,做到不建圖的導航和繞障。
另外,為了避免機器人長期運動累計誤差影響定位導航,在本發(fā)明系統(tǒng)另一實施例中,所述系統(tǒng)還可以包括:自校準單元(未圖示),用于在所述移動機器人回到充電樁位置,即充電時,重置全局坐標系并復位零點位置,以消除累積誤差的影響。
本發(fā)明實施例提供的移動機器人自主導航系統(tǒng),利用低成本的紅外測距傳感器,實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離,根據(jù)所述障礙物與所述移動機器人的距離對所述移動機器人進行路徑規(guī)劃,生成導航信息,根據(jù)導航信息,控制電機工作,以使所述電機驅動移動機器人自主行走。本發(fā)明實施例的移動機器人自主導航系統(tǒng)及方法,可以大大降低對機器人硬件設備及工作環(huán)境的要求,尤其適用于普通家庭場景、以及對機器人自主導航精度要求較低的場景。
進一步地,本發(fā)明移動機器人自主導航系統(tǒng),在移動機器人前方有障礙物時,還可以實現(xiàn)移動機器人自主繞障,提高機器人的行走能力。而且,還可以根據(jù)移動機器人的行進狀態(tài)及行進數(shù)據(jù)進行糾偏處理,從而有效提高控制精度。
相應地,本發(fā)明實施例還提供一種移動機器人自主導航方法,如圖7所示,是本發(fā)明實施例移動機器人自主導航方法的一種流程圖,包括以下步驟:
步驟701,實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離。
比如,利用安裝在所述移動機器人前面左側的第一紅外傳感器測量所述移動機器人左前方障礙物的距離;利用安裝在所述移動機器人前面右側的第二紅外傳感器測量所述移動機器人右前方障礙物的距離;利用安裝在所述移動機器人后面的至少一個第三紅外傳感器測量所述移動機器人后方障礙物的距離。當然,在實際應用中,可以根據(jù)機器人的行走需求及應用環(huán)境來確定紅外傳感器的數(shù)量及安裝位置,對此本發(fā)明實施例不做限定。另外,為了能夠探測到懸崖,還可以按照預設角度安裝所述紅外傳感器,即紅外傳感器的探測方向與水平面成設定角度,具體的安裝角度可以根據(jù)探測距離來確定。
步驟702,根據(jù)所述障礙物與所述移動機器人的距離對所述移動機器人進行路徑規(guī)劃,生成導航信息。
具體地,需要根據(jù)測量得到的數(shù)據(jù)確定機器人的行走路徑、運動軌跡,另外,還需要一些插補處理,以得到平滑的運動軌跡曲線,具體的路徑規(guī)劃方式可采用現(xiàn)有技術,根據(jù)機器人的運動需求來確定,對此本發(fā)明實施例不做限定。
步驟703,根據(jù)所述導航信息,控制電機工作,以使所述電機驅動所述移動機器人自主行走。
在機器人行走過程中,為了避免人正常行走對機器人運動造成干擾,在本發(fā)明方法另一實施例中,還提供機器人行走繞障處理方案。如圖8所示,是本發(fā)明方法實施例中繞障檢測及處理的流程圖,包括以下步驟:
步驟801,獲取測量得到的障礙物與所述移動機器人的距離。
步驟802,判斷所述距離是否在設定范圍內(nèi),也就是說,判斷在設定范圍內(nèi)是否有障礙物;如果是,則執(zhí)行步驟803;否則,執(zhí)行步驟806。
步驟803,控制移動機器人停止行進,并開始計時。
步驟804,判斷在計時時限內(nèi),所述障礙物是否離開;如果是,則執(zhí)行步驟806;否則,執(zhí)行步驟805;
步驟805;進行繞障處理。
為了避免在機器人同時遇到多個障礙物時出現(xiàn)在一個區(qū)域繞圈的情況,在本發(fā)明實施例中,可以采用基于狀態(tài)機的遞歸算法進行繞障處理,具體處理過程前面已有詳細說明,在此不再贅述。
步驟806,控制移動機器人按規(guī)劃的路徑繼續(xù)行進。
需要說明的是,在控制所述移動機器人停止行進后,還可以進行信息提示。比如,通過語音播放器播放提示語音;和/或控制信號燈點亮或閃爍。
進一步地,為了避免機器人行走過程中因輪子打滑等情況引入航跡誤差,在本發(fā)明方法另一實施例中,還提供糾偏處理方案。具體地,可以實時獲取所述移動機器人的運動狀態(tài)(是直線運動還是轉彎運動)及運動數(shù)據(jù);并根據(jù)所述移動機器人的運動狀態(tài)及運動數(shù)據(jù)進行糾偏處理。基于移動機器人當前運動狀態(tài)的不同,糾偏處理的具體方式也不同,下面分別進行詳細說明。
如圖9所示,是本發(fā)明方法實施例中機器人直線運動過程中的糾偏處理流程圖,包括以下步驟:
步驟901,檢測到移動機器人偏離直線;
比如,通過融合陀螺儀及磁力計數(shù)據(jù),可以確定移動機器人是否偏離直線;
步驟902,檢測偏離角度是否小于設定的角度閾值(比如8度);如果是,則執(zhí)行步驟903;否則,執(zhí)行步驟904;
具體地,可以通過融合陀螺儀及磁力計數(shù)據(jù),計算偏離角度,具體計算方式可以采用現(xiàn)有技術,對此本發(fā)明實施例不做限定;
步驟903,計算得到糾偏量,并根據(jù)所述糾偏量及移動機器人運動正反解對所述移動機器人的行走(比如輪子或者履帶)機構進行pid閉環(huán)控制;
步驟904,暫停當前運動,并根據(jù)偏離角度及偏離方向控制所述移動機器人原地轉彎;比如,向左偏了30度,則應在原地向右轉30度,從而轉彎回到原來的方向;
步驟905,在原地轉彎完成后,控制所述移動機器人繼續(xù)當前運動。
如圖10所示,是本發(fā)明方法實施例中機器人轉彎運動過程中的糾偏處理流程圖,包括以下步驟:
步驟101,獲取移動機器人實際轉彎角度,并計算所述實際轉彎角度與理論轉彎角度的差值,將該差值作為偏離角度;
比如,通過融合實時采集的陀螺儀及磁力計數(shù)據(jù),可以計算得到所述移動機器人實際轉彎角度;
步驟102,判斷所述偏離角度是否小于設定值(如15度);如果是,則執(zhí)行步驟103;否則,執(zhí)行步驟104;
步驟103,根據(jù)所述偏離角度及移動機器人運動正反解對所述移動機器人的行走機構進行pid閉環(huán)控制;比如,將偏離角度調整量轉換為機器人輪子或者履帶等執(zhí)行器的輸入量;
步驟104,控制所述移動機器人停止運動,并在等待設定時間后從當前姿態(tài)繼續(xù)開始運動。
需要說明的是,重新運動,可能會有以下兩種情況:(1)如果是動態(tài)障礙物,障礙物離去,則重新開始運動是可以到達目標;(2)如果是靜態(tài)障礙物或者外界故意一直干擾,那么就繼續(xù)停止,以避免障礙卡死機器人,機器人一直運動,會燒壞機器人運動部件;因此,在這種情況下,如果嘗試次數(shù)超過設定次數(shù)(比如3次),則放棄轉彎任務,重新進行路徑規(guī)劃,比如迂回繞開后再回到期望的路徑上。
需要說明的是,考慮到轉彎偏離角度太大(如超過15度)的情況,多是由于機器人被障礙物卡住或者人為擋住,因此,在上述步驟104中,還可以通過聲音或者其他方式對障礙物進行提示。
本發(fā)明實施例提供的移動機器人自主導航方法,利用低成本的紅外測距傳感器,實時測量一個或多個不同方向上的障礙物與所述移動機器人的距離,根據(jù)所述障礙物與所述移動機器人的距離對所述移動機器人進行路徑規(guī)劃,生成導航信息,根據(jù)導航信息,控制電機工作,以使所述電機驅動移動機器人自主行走。本發(fā)明實施例的移動機器人自主導航系統(tǒng)及方法,可以大大降低對機器人硬件設備及工作環(huán)境的要求,尤其適用于普通家庭場景、以及對機器人自主導航精度要求較低的場景。進一步地,還可以實現(xiàn)移動機器人自主繞障及糾偏處理,從而有效提高機器人的性能。
以上對本發(fā)明實施例進行了詳細介紹,本文中應用了具體實施方式對本發(fā)明進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及系統(tǒng);同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。