本發(fā)明涉及機器人領(lǐng)域,特別是涉及一種機器人的移動控制方法及機器人。
背景技術(shù):
機器人作為為人類服務(wù)的智能設(shè)備,使用者通常會在機器人執(zhí)行某些任務(wù)時控制機器人的移動。比如,機器人在某區(qū)域執(zhí)行任務(wù),在任務(wù)未完成時,機器人不能跨越執(zhí)行區(qū)域。目前,市場上通常利用虛擬墻生成裝置產(chǎn)生的阻礙信號來限制機器人的執(zhí)行區(qū)域,或者采用某種機器人可識別的圖紋形成虛擬障礙物邊界,限制機器人跨域。
然而,若機器人需要移動覆蓋的移動區(qū)域很大,則需要使用者采用多個虛擬墻生成裝置或圖紋,將機器人的移動區(qū)域進劃分為多個子區(qū)域,導(dǎo)致成本升高。
技術(shù)實現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問題是提供一種,能夠解決現(xiàn)有技術(shù)中需要采用虛擬墻生成裝置或者圖紋產(chǎn)生虛擬障礙物邊界的問題。
為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種機器人的移動控制方法,包括:沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離;判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離;若兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離,則在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界;以虛擬障礙物邊界控制機器人的移動路徑。
其中,以虛擬障礙物邊界控制機器人的移動路徑的步驟包括:在機器人后續(xù)移動到虛擬障礙物邊界時,以虛擬障礙物邊界存在障礙物的方式控制機器人進行移動。
其中,沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離的步驟之前,進一步包括:獲取對應(yīng)于機器人的待作業(yè)區(qū)域的虛擬地圖,其中虛擬地圖劃分為陣列式排布的多個柵格;在機器人的移動過程中,沿移動方向和垂直方向?qū)C器人所處柵格的相鄰柵格進行狀態(tài)檢測,并在虛擬地圖上對柵格的狀態(tài)進行標(biāo)記,其中將機器人已經(jīng)過的柵格標(biāo)記為已作業(yè)柵格,將檢測到存在障礙物的柵格標(biāo)記為障礙物柵格,將檢測到不存在障礙物且機器人未經(jīng)過的柵格標(biāo)記為待作業(yè)柵格,將機器人未經(jīng)過且未進行狀態(tài)檢測的柵格標(biāo)記為未知柵格。
其中,沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離的步驟包括:沿移動方向或者垂直方向獲取機器人兩側(cè)的兩個相鄰障礙物柵格,并根據(jù)兩個相鄰障礙物柵格在虛擬地圖上的位置信息計算兩個相鄰障礙物柵格之間的距離。
其中,判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離的步驟進一步包括:判斷在兩個相鄰障礙物柵格之間的柵格的至少一側(cè)是否存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格;若兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離,則在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界的步驟包括:若兩個相鄰障礙物柵格之間的距離不大于第一預(yù)設(shè)距離,且在兩個相鄰障礙物柵格之間的柵格的至少一側(cè)存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格,則在兩個相鄰障礙物柵格之間設(shè)置虛擬障礙物邊界。
其中,若兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離,則在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界的步驟包括:控制機器人繼續(xù)移動以使得機器人移出虛擬障礙物邊界的所在位置后設(shè)置虛擬障礙物邊界。
其中,若兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離,則在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界的步驟進一步包括:若存在兩條以上虛擬障礙物邊界,則判斷兩條以上虛擬障礙物邊界在相互垂直的第一方向和第二方向中的任意一者上的距離是否小于第二預(yù)設(shè)距離,且在第一方向和第二方向的另一者上是否存在重疊區(qū)域;若小于第二預(yù)設(shè)距離且存在重疊區(qū)域,則對兩條以上虛擬障礙物邊界進行選擇性刪除。
其中,若小于第二預(yù)設(shè)距離且存在重疊區(qū)域,則對兩條以上虛擬障礙物邊界進行選擇性刪除的步驟包括:刪除設(shè)置時間相對較晚的虛擬障礙物邊界。
其中,以虛擬障礙物邊界控制機器人的移動路徑的步驟包括:利用虛擬障礙物邊界將待作業(yè)區(qū)域劃分成由虛擬障礙物邊界分隔的至少兩個子區(qū)域;控制機器人在對其中一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,刪除虛擬障礙物邊界,再對另一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格進行遍歷。
其中,以虛擬障礙物邊界控制機器人的移動路徑的步驟進一步包括:若在機器人的移動過程中,發(fā)現(xiàn)存在連通至少兩個子區(qū)域的已作業(yè)柵格和/或待作業(yè)柵格,則刪除虛擬障礙物邊界。
為解決上述技術(shù)問題,本發(fā)明采用的另一個技術(shù)方案是:提供一種機器人,包括:位置獲取模塊,用于沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離;距離判斷模塊,用于判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離;邊界設(shè)置模塊,用于在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界;移動控制模塊,用于以虛擬障礙物邊界控制機器人的移動路徑。
為解決上述技術(shù)問題,本發(fā)明采用的又一個技術(shù)方案是:提供一種機器人,包括:相互連接的傳感器和處理器;傳感器用于沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息;處理器用于計算兩個相鄰障礙物之間的距離,判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離,在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界,并以虛擬障礙物邊界控制機器人的移動路徑。
本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離,在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界,并以虛擬障礙物邊界控制機器人的移動路徑,不需要采用外部的虛擬墻生成裝置,機器人自身即可以完成虛擬障礙物邊界的設(shè)置,有效節(jié)省成本。
附圖說明
圖1是本發(fā)明機器人的移動控制方法一實施方式的流程圖;
圖2是圖1所示的方法中機器人所采用的虛擬地圖的示意圖;
圖3是圖1所示的方法中機器人沿行方向移動設(shè)置行方向的虛擬障礙物邊界的示意圖;
圖4是圖1所示的方法中機器人沿行方向移動設(shè)置列方向的虛擬障礙物邊界的示意圖;
圖5是圖1所示的方法中機器人沿列方向移動設(shè)置行方向的虛擬障礙物邊界的示意圖;
圖6是圖3所示的虛擬障礙物邊界的示意圖;
圖7是圖4所示的虛擬障礙物邊界的示意圖;
圖8是圖5所示的虛擬障礙物邊界的示意圖;
圖9是圖1所示的方法中機器人設(shè)置的行方向上的兩個虛擬障礙物邊界距離過近的示意圖;
圖10是圖1所示的方法中機器人設(shè)置的列方向上的兩個虛擬障礙物邊界距離過近的示意圖;
圖11是圖1所示的方法中機器人設(shè)置的行方向上的虛擬障礙物邊界與列方向上的虛擬障礙物邊界存在重疊區(qū)域的示意圖;
圖12是圖1所示的方法中機器人在待工作區(qū)域中存在單一虛擬障礙物邊界時的移動路徑示意圖;
圖13是圖1所示的方法中待工作區(qū)域存在多個虛擬障礙物邊界的示意圖;
圖14是現(xiàn)有技術(shù)中機器人在待工作區(qū)域中的移動路徑示意圖;
圖15是圖1所示的方法中機器人移動過程中發(fā)現(xiàn)兩個子區(qū)域通過已作業(yè)柵格和/或待作業(yè)柵格連通的示意圖;
圖16是本發(fā)明機器人第一實施方式的結(jié)構(gòu)示意圖;
圖17是本發(fā)明機器人第二實施方式的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,圖1是本發(fā)明機器人的移動控制方法一實施方式的流程圖。如圖1所示,本發(fā)明機器人的移動控制方法包括:
步驟S11:沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離;
其中,步驟S11之前,進一步包括:
步驟S101:獲取對應(yīng)于機器人的待作業(yè)區(qū)域的虛擬地圖,其中虛擬地圖劃分為陣列式排布的多個柵格;
具體地,如圖2所示,在一個應(yīng)用例中,機器人開始工作時,首先以陣列式排布的多個柵格存儲對應(yīng)于機器人的待作業(yè)區(qū)域的虛擬地圖,其中,機器人至少設(shè)置有一個傳感器,該傳感器存在檢測范圍,機器人通過傳感器獲取檢測范圍中各柵格的狀態(tài)并在虛擬地圖中做相應(yīng)標(biāo)記,而超出該檢測范圍的柵格狀態(tài)則標(biāo)記為未知。
步驟S102:在機器人的移動過程中,沿移動方向和垂直方向?qū)C器人所處柵格的相鄰柵格進行狀態(tài)檢測,并在虛擬地圖上對柵格的狀態(tài)進行標(biāo)記,其中將機器人已經(jīng)過的柵格標(biāo)記為已作業(yè)柵格,將檢測到存在障礙物的柵格標(biāo)記為障礙物柵格,將檢測到不存在障礙物且機器人未經(jīng)過的柵格標(biāo)記為待作業(yè)柵格,將機器人未經(jīng)過且未進行狀態(tài)檢測的柵格標(biāo)記為未知柵格。
具體地,在上述應(yīng)用例中,機器人的移動方式有逐行移動和逐列移動兩種。其中,進一步參閱圖2,逐行移動方式是機器人首先沿虛擬地圖中的行方向移動,在遇到障礙物時,則沿垂直于行方向的列方向移動到下一行,再繼續(xù)沿與上一行移動方向相反的行方向移動;例如,機器人首先在虛擬地圖的n行中從n行m列位置201向n行m+4列位置202移動,由于n行m+5列位置203存在一障礙物,機器人沿垂直于行方向的列方向從n行m+4列位置202向n+1行m+4列位置204移動,再繼續(xù)沿n+1行從n+1行m+4列位置204向n+1行m列位置205移動;逐列移動方式則是機器人首先沿虛擬地圖中的列方向移動,在遇到障礙物時,則沿垂直于列方向的行方向移動到下一列,再繼續(xù)沿與上一列移動方向相反的列方向移動。
以機器人逐行移動為例,在機器人移動過程中,沿移動方向(行方向)和垂直方向(列方向)對機器人所處柵格的相鄰柵格進行狀態(tài)檢測,并在虛擬地圖上對柵格的狀態(tài)進行標(biāo)記,機器人移動過程中,會對柵格狀態(tài)進行更新。如圖2所示,將機器人已經(jīng)過的柵格,包括當(dāng)前所處的柵格標(biāo)記為已作業(yè)柵格,即圖2中“已”字標(biāo)記的柵格;將檢測到存在障礙物的柵格標(biāo)記為障礙物柵格,即圖2中斜線標(biāo)記的柵格;將檢測到不存在障礙物且機器人未經(jīng)過的柵格標(biāo)記為待作業(yè)柵格,即圖2中“待”字標(biāo)記的柵格;將機器人未經(jīng)過且未進行狀態(tài)檢測的柵格標(biāo)記為未知柵格,即圖2中“未”字標(biāo)記的柵格。
當(dāng)然,在其他應(yīng)用例中,機器人也可以沿其他方向移動,虛擬地圖也可以通過其它方式存儲,此處不做具體限定。
進一步地,步驟S11包括:
步驟S111:沿移動方向或者垂直方向獲取機器人兩側(cè)的兩個相鄰障礙物柵格,并根據(jù)兩個相鄰障礙物柵格在虛擬地圖上的位置信息計算兩個相鄰障礙物柵格之間的距離。
具體地,在一個應(yīng)用例中,如圖3所示,機器人在n行中沿行方向移動時,獲取機器人兩側(cè)的兩個相鄰障礙物柵格,即虛擬地圖中n行m+1列位置301和n行m-j列302位置的障礙物柵格,由此計算出這兩個相鄰障礙物柵格之間的距離,即j+1個柵格。
步驟S12:判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離;
具體地,第一預(yù)設(shè)距離是機器人預(yù)先設(shè)置的第一距離閾值,在上述應(yīng)用例中,第一預(yù)設(shè)距離以柵格為單位,其具體取值可以根據(jù)實際需求而定,此處不做具體限定。
其中,步驟S12進一步包括:
步驟S121:判斷在兩個相鄰障礙物柵格之間的柵格的至少一側(cè)是否存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格;
具體地,在上述應(yīng)用例中,如圖3所示,機器人處于虛擬地圖的n行m列位置300,虛擬地圖中n行m+1列位置301和n行m-j列位置302均是障礙物柵格,若兩個障礙物柵格之間的柵格的一側(cè)(n+1行中)存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格,如存在與n+1行m+1列位置303的未知柵格相鄰設(shè)置且連接的n+1行m列位置304的待作業(yè)柵格,則后續(xù)設(shè)置的虛擬障礙物邊界是在機器人是從已作業(yè)區(qū)域向未作業(yè)區(qū)域移動過程中設(shè)置的。
步驟S13:若兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離,則在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界;
進一步地,步驟S13包括:
步驟S131:若兩個相鄰障礙物柵格之間的距離不大于第一預(yù)設(shè)距離,且在兩個相鄰障礙物柵格之間的柵格的至少一側(cè)存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格,則在兩個相鄰障礙物柵格之間設(shè)置虛擬障礙物邊界。
具體地,在上述應(yīng)用例中,如圖3所示,若兩個相鄰障礙物柵格301和302之間的距離(j+1個柵格)小于或等于第一預(yù)設(shè)距離(例如10個柵格),且在兩個相鄰障礙物柵格301和302之間的柵格的至少一側(cè)存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格,如存在與未知柵格303相鄰設(shè)置且連接的待作業(yè)柵格304,則在兩個相鄰障礙物柵格301和302之間設(shè)置虛擬障礙物邊界。
在另一個應(yīng)用例中,如圖4所示,機器人沿虛擬地圖的行方向移動,當(dāng)前機器人處于虛擬地圖的n行m列位置300,若機器人兩側(cè)的兩個相鄰障礙物305和306之間的距離(i+j個柵格)小于或等于第一預(yù)設(shè)距離(例如10個柵格),且在兩個相鄰障礙物柵格之間305和306的柵格的至少一側(cè)存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格,如n行m+1列位置307存在相鄰設(shè)置且與n行m+2列位置308的未知柵格連接的待作業(yè)柵格,則在兩個相鄰障礙物柵格305和306之間設(shè)置虛擬障礙物邊界。
如圖5所示,機器人在虛擬地圖中沿列方向移動,當(dāng)前機器人處于虛擬地圖的n行m列位置300,若機器人兩側(cè)的兩個相鄰障礙物309和310之間的距離(i+j個柵格)小于或等于第一預(yù)設(shè)距離(例如10個柵格),且在兩個相鄰障礙物柵格309和310之間的柵格的至少一側(cè)存在相鄰設(shè)置且與未知柵格連接的待作業(yè)柵格,如n+1行m列位置311存在相鄰設(shè)置且與n+2行m列位置312的未知柵格連接的待作業(yè)柵格,則可以在兩個相鄰障礙物柵格309和310之間設(shè)置虛擬障礙物邊界。
步驟S132:控制機器人繼續(xù)移動以使得機器人移出虛擬障礙物邊界的所在位置后設(shè)置虛擬障礙物邊界。
具體地,結(jié)合圖3和圖6所示,機器人沿列方向繼續(xù)移動到下一行(n+1行)時,機器人移出虛擬障礙物邊界31所在的位置后,設(shè)置虛擬障礙物邊界31,即該虛擬障礙物邊界31生效,如圖6中標(biāo)記所示柵格。
結(jié)合圖4和圖7所示,機器人沿行方向繼續(xù)移動到下一列(m+1列)時,機器人移出虛擬障礙物邊界32所在的位置后,設(shè)置虛擬障礙物邊界32,即該虛擬障礙物邊界32生效,如圖7中標(biāo)記所示柵格。
結(jié)合圖5和圖8所示,機器人沿列方向繼續(xù)移動到下一行(n+1行),機器人移出虛擬障礙物邊界33所在的位置后,設(shè)置虛擬障礙物邊界33,即該虛擬障礙物邊界33生效,如圖8中標(biāo)記所示柵格。
進一步地,步驟S13進一步包括:
步驟S133:若存在兩條以上虛擬障礙物邊界,則判斷兩條以上虛擬障礙物邊界在相互垂直的第一方向和第二方向中的任意一者上的距離是否小于第二預(yù)設(shè)距離,且在第一方向和第二方向的另一者上是否存在重疊區(qū)域;
其中,第二預(yù)設(shè)距離是機器人預(yù)先設(shè)置的第二距離閾值,其具體取值可以視實際需求而定,此處不做具體限定。在一個應(yīng)用例中,虛擬地圖上第一方向是行方向,第二方向是列方向,判斷虛擬地圖上兩條虛擬障礙物邊界在行方向和列方向其中一個方向上的距離是否小于第二預(yù)設(shè)距離,且在另一個方向上是否存在重疊區(qū)域,以判斷兩條虛擬障礙物邊界是否距離過近。
步驟S134:若小于第二預(yù)設(shè)距離且存在重疊區(qū)域,則對兩條以上虛擬障礙物邊界進行選擇性刪除。
具體地,在一個應(yīng)用例中,如圖9所示,虛擬地圖中,行方向上的兩條相鄰的虛擬障礙物邊界41和42之間的距離(i個柵格)小于第二預(yù)設(shè)距離(例如5個柵格),且該虛擬障礙物邊界41和42在列方向上的投影存在重疊區(qū)域401,則表明兩條相鄰的虛擬障礙物邊界41和42距離過近,選擇其中一條虛擬障礙物邊界進行刪除。
如圖10所示,虛擬地圖中,列方向上的兩條相鄰的虛擬障礙物邊界43和44之間的距離(j個柵格)小于第二預(yù)設(shè)距離(例如5個柵格),且該虛擬障礙物邊界43和44在列方向上的投影存在重疊區(qū)域402,則表明兩條相鄰的虛擬障礙物邊界43和44距離過近,選擇其中一條虛擬障礙物邊界進行刪除。
如圖11所示,虛擬地圖中,行方向上的虛擬障礙物邊界45和列方向上的虛擬障礙物邊界46之間的距離定義為0,小于第二預(yù)設(shè)距離(例如5個柵格),且虛擬障礙物邊界45和46存在重疊區(qū)域403,則表明兩條虛擬障礙物邊界45和46距離過近,選擇其中一條虛擬障礙物邊界進行刪除。
進一步地,步驟S134包括:
步驟S1341:刪除設(shè)置時間相對較晚的虛擬障礙物邊界。
具體地,在上述應(yīng)用例中,如圖9所示,虛擬障礙物邊界42設(shè)置時間晚于虛擬障礙物邊界41,則刪除虛擬障礙物邊界42;如圖10所示,虛擬障礙物邊界44設(shè)置時間晚于虛擬障礙物邊界43,則刪除虛擬障礙物邊界44;如圖11所示,虛擬障礙物邊界46設(shè)置時間晚于虛擬障礙物邊界45,則刪除虛擬障礙物邊界46。
步驟S14:以虛擬障礙物邊界控制機器人的移動路徑。
其中,步驟S14包括:
步驟S141:在機器人后續(xù)移動到虛擬障礙物邊界時,以虛擬障礙物邊界存在障礙物的方式控制機器人進行移動。
具體地,虛擬障礙物邊界生效后,機器人將虛擬障礙物邊界所在位置視為存在障礙物,機器人在后續(xù)移動過程中,無法跨越虛擬障礙物邊界所在位置的柵格,直至虛擬障礙物邊界刪除。
進一步地,步驟141包括:
步驟S1411:利用虛擬障礙物邊界將待作業(yè)區(qū)域劃分成由虛擬障礙物邊界分隔的至少兩個子區(qū)域;
具體地,如圖12所示,虛擬障礙物邊界51將待作業(yè)區(qū)域劃分為兩個子區(qū)域501和502;如圖13所示,虛擬障礙物邊界52、53和54將待作業(yè)區(qū)域劃分為四個子區(qū)域503、504、505和506。
步驟S1412:控制機器人在對其中一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,刪除虛擬障礙物邊界,再對另一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格進行遍歷。
具體地,如圖12所示,機器人逐行移動,從子區(qū)域501向子區(qū)域502移動過程中,在子區(qū)域501和子區(qū)域502之間設(shè)置虛擬障礙物邊界51,具體設(shè)置方法可以參考步驟S11至步驟S13,此處不再重復(fù);虛擬障礙物邊界51生效后,機器人即將虛擬障礙物邊界51所在位置視為存在障礙物,機器人在后續(xù)移動過程中,無法跨越虛擬障礙物邊界51從子區(qū)域502移動子區(qū)域501,直至虛擬障礙物邊界51刪除。因此,機器人首先對子區(qū)域502內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,刪除虛擬障礙物邊界51,此時,虛擬障礙物邊界51所在位置不存在障礙物,機器人可以從子區(qū)域502移動子區(qū)域501,繼續(xù)對子區(qū)域501內(nèi)的待作業(yè)柵格和未知柵格進行遍歷。
如圖13所示,機器人先后設(shè)置的虛擬障礙物邊界53、54和55將待工作區(qū)域劃分為四個子區(qū)域503、504、505和506。機器人在后續(xù)的移動過程中,首先對子區(qū)域506內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,刪除設(shè)置時間最晚的虛擬障礙物邊界55,此時,虛擬障礙物邊界55所在位置不存在障礙物,機器人可以從子區(qū)域506移動子區(qū)域505,繼續(xù)對子區(qū)域505內(nèi)的待作業(yè)柵格和未知柵格進行遍歷,遍歷完成后,依次刪除虛擬障礙物邊界54和53,依次完成子區(qū)域504、503內(nèi)的待作業(yè)柵格和未知柵格的遍歷。
現(xiàn)有技術(shù)中,如圖14所示,機器人從子區(qū)域501向子區(qū)域502移動過程中,由于沒有設(shè)置虛擬障礙物邊界,機器人后續(xù)移動中,沒有遍歷子區(qū)域502內(nèi)的待作業(yè)柵格和未知柵格,即從子區(qū)域502中移動回子區(qū)域501中,導(dǎo)致在對子區(qū)域501內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,機器人還需要返回子區(qū)域502內(nèi)重新進行工作,工作效率低,且耗時長。
相對于如圖14中的現(xiàn)有技術(shù),本發(fā)明機器人的移動控制方法設(shè)置的虛擬障礙物邊界將待工作區(qū)域劃分為至少兩個子區(qū)域,控制機器人在對其中一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,再對另一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格進行遍歷,有效提高機器人的工作效率,節(jié)省工作時間。
步驟S1413:若在機器人的移動過程中,發(fā)現(xiàn)存在連通至少兩個子區(qū)域的已作業(yè)柵格和/或待作業(yè)柵格,則刪除虛擬障礙物邊界。
具體地,由步驟S11至S13可知,虛擬障礙物邊界是在機器人是從已作業(yè)區(qū)域向未作業(yè)區(qū)域移動過程中設(shè)置的,即在初始設(shè)置虛擬障礙物邊界時,該虛擬障礙物邊界兩側(cè)的子區(qū)域之間無法通過已作業(yè)柵格和/或待作業(yè)柵格連通,而在機器人的移動過程中,柵格狀態(tài)變化,如圖15所示,出現(xiàn)兩個子區(qū)域507、508之間通過已作業(yè)柵格和/或待作業(yè)柵格連通,此時,該虛擬障礙物邊界56失效,機器人刪除該虛擬障礙物邊界56,從而可以節(jié)省存儲空間。
上述實施例中,通過沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離,在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界,并以虛擬障礙物邊界控制機器人的移動路徑,不需要采用外部的虛擬墻生成裝置,機器人自身即可以完成虛擬障礙物邊界的設(shè)置,有效節(jié)省成本;而且設(shè)置的虛擬障礙物邊界將待工作區(qū)域劃分為至少兩個子區(qū)域,使得機器人在對其中一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格完成遍歷后,再對另一個子區(qū)域內(nèi)的待作業(yè)柵格和未知柵格進行遍歷,有效提高機器人的工作效率,節(jié)省工作時間。
請參閱圖16,圖16是本發(fā)明機器人第一實施方式的結(jié)構(gòu)示意圖。如圖16所示,本發(fā)明機器人60包括:依次連接的位置獲取模塊601、距離判斷模塊602、邊界設(shè)置模塊603和移動控制模塊604。
其中,機器人60可以是掃地機器人,也可以是其他類型的機器人,此處不做具體限定。
位置獲取模塊601,用于沿機器人60的移動方向或者沿移動方向的垂直方向獲取位于機器人60兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離;
具體地,在一個應(yīng)用例中,機器人60通過傳感器獲取其移動方向或者移動方向的垂直方向上位于機器人60兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離,再將該距離傳輸給距離判斷模塊602。
距離判斷模塊602,用于判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離;
具體地,第一預(yù)設(shè)距離是機器人60預(yù)先設(shè)置的第一距離閾值,其取值可以視具體需求而定,此處不做具體限定。距離判斷模塊602接收到位置獲取模塊601傳輸?shù)膬蓚€相鄰障礙物之間的距離,判斷該距離是否小于或等于第一預(yù)設(shè)距離,并將判斷結(jié)果傳輸給邊界設(shè)置模塊603。
邊界設(shè)置模塊603,用于在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界;
具體地,邊界設(shè)置模塊603接收到距離判斷模塊602的判斷結(jié)果,若判斷結(jié)果是該距離小于或等于第一預(yù)設(shè)距離,則機器人60通過邊界設(shè)置模塊603在該兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界。
移動控制模塊604,用于以虛擬障礙物邊界控制機器人60的移動路徑。
具體地,在一個應(yīng)用例中,虛擬障礙物邊界設(shè)置后,機器人60在后續(xù)的移動中,將虛擬障礙物邊界所在位置判定為存在障礙物,機器人60無法跨越該虛擬障礙物邊界,以此控制機器人60的移動路徑。
上述實施例中,機器人通過沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息,并計算兩個相鄰障礙物之間的距離,在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界,并以虛擬障礙物邊界控制機器人的移動路徑,不需要采用外部的虛擬墻生成裝置,機器人自身即可以完成虛擬障礙物邊界的設(shè)置,有效節(jié)省成本。
請參閱圖17,圖17是本發(fā)明機器人第二實施方式的結(jié)構(gòu)示意圖。如圖17所示,本發(fā)明機器人70包括:傳感器701和處理器702,二者通過總線連接。
其中,機器人60可以是掃地機器人,也可以是其他類型的機器人,此處不做具體限定。
傳感器701用于沿機器人的移動方向或者沿移動方向的垂直方向獲取位于機器人兩側(cè)的兩個相鄰障礙物的位置信息;
具體地,傳感器701可以是距離傳感器,機器人70通過傳感器701可以獲取其移動方向或者移動方向的垂直方向上位于機器人70兩側(cè)的兩個相鄰障礙物的位置信息。其中,傳感器701也可以是其他類型的傳感器,只要可以獲取機器人70兩側(cè)的兩個相鄰障礙物的位置信息即可,此處不做具體限定。
處理器702控制機器人的移動,處理器702還可以稱為CPU(Central Processing Unit,中央處理單元)。處理器702可能是一種集成電路芯片,具有信號的處理能力。處理器702還可以是通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
機器人70可以進一步包括存儲器(圖中未畫出),存儲器用于存儲處理器702工作所必需的指令及數(shù)據(jù),例如機器人70兩側(cè)的兩個相鄰障礙物的位置信息和設(shè)置的虛擬障礙物邊界的位置信息等。
處理器702用于計算兩個相鄰障礙物之間的距離,判斷兩個相鄰障礙物之間的距離是否不大于第一預(yù)設(shè)距離,在兩個相鄰障礙物之間的距離不大于第一預(yù)設(shè)距離時,在兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界,并以虛擬障礙物邊界控制機器人的移動路徑。
其中,第一預(yù)設(shè)距離是機器人70預(yù)先設(shè)置的第一距離閾值,其取值可以視具體需求而定,此處不做具體限定。
具體地,在一個應(yīng)用例中,處理器702獲取傳感器701獲取到的機器人70兩側(cè)的兩個相鄰障礙物的位置信息,計算該兩個相鄰障礙物之間的距離,判斷該距離是否小于或等于第一預(yù)設(shè)距離,在該距離小于或等于第一預(yù)設(shè)距離時,則在該兩個相鄰障礙物之間設(shè)置虛擬障礙物邊界;然后,處理器702以該虛擬障礙物邊界存在障礙物的方式,以使得機器人70無法跨越該虛擬障礙物邊界,以此控制機器人70的移動路徑。
以上所述僅為本發(fā)明的實施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。