移動機器人在工作區域內的角度修正方法及移動機器人與流程
2023-05-06 00:14:46 1

本發明屬於移動機器人領域,尤其是涉及具有角度修正功能的移動機器人以及移動機器人在工作區域內的角度修正方法。
背景技術:
現有的移動機器人(如掃地機器人)使用慣性導航原理測量自身角度,在移動機器人工作一段時間後,會因累計誤差原因,導致移動機器人對獲取的自身角度不準確,影響移動機器人的在工作區域內的回充效率及覆蓋效率。
針對上述問題,現有技術方案通過在移動機器人上安裝攝像機,通過識別周圍環境特徵點(如天花板上的特徵點或人為設置的標記)來實現對移動機器人自身角度的糾正;或者通過在工作區域邊界設置信標,移動機器人在檢測到信標發出的信號後調整自身位姿及角度。
但上述方式需額外提供的零部件來實現,增加了移動機器人的成本,控制也較為複雜。
技術實現要素:
本發明的目的之一在於克服背景技術中的缺陷,提供一種移動機器人在工作區域內的角度修正方法,本發明方法的方案如下:
一種移動機器人在工作區域內的角度修正方法,包括以下步驟:
s1:以移動機器人首次尋找到的障礙物邊緣的長直線為參考建立直角坐標系,其中,長直線定義為長度大於某一預設值的直線或近似直線;
s2:在移動機器人再次尋找到障礙物邊緣的長直線時獲取其行進角度,並在該行進角度與直角坐標系的坐標軸方向的角度差值小於某一預設值時將行進角度修正為對應的坐標軸方向。
在本發明方法的優化方案中,為多次修正移動機器人在工作區域內角度,本發明方法還包括步驟s3:重複步驟s2直到移動機器人完成該工作區域內的工作。
進一步地,在本發明方法的一個實施例中,所述步驟s1包括以下子步驟:s11:移動機器人直線運動直到遇到障礙物並沿障礙物邊緣行走;s12:在預定時間t0內多次獲取移動機器人的行走角度並判斷障多個行走角度值是否在a0附近且變化量小於閾值d0,如果是則進入步驟s13,如果否則在移動機器人運行預定時間t0或預定距離d0後返回步驟s11;s13:以障礙物邊緣的長直線為參考建立直角坐標系。
可選擇地,為提高移動機器人尋找障礙物邊緣的長直線的效率,所述步驟s12還包括:判斷移動機器人沿障礙物行走的時間是否大於預定值,如果是則停止沿障礙物邊緣行走並返回步驟s11。
可選擇地,為提高移動機器人尋找障礙物邊緣的長直線的效率,所述步驟s12還包括:判斷移動機器人沿障礙物行走的旋轉角度是否大於預定值,如果是則停止沿障礙物邊緣行走並返回步驟s11。
進一步地,所述步驟s13為:以移動機器人為原點、以長直線的ao方向為x軸正方向、以長直線的ao方向垂直的左垂直方向或右垂直方向為y軸正方向建立直角坐標系。
進一步地,在本發明方法的一個實施例中,所述步驟s2包括以下子步驟:s21:移動機器人直線運動直到遇到障礙物並沿障礙物邊緣行走;s22:在預定時間t1內獲取移動機器人的多個行走角度並判斷多個行走角度是否在角度a1附近且變化量小於閾值d1,如果是則進入步驟s23,如果否則在移動機器人運行預定時間t1或預定距離d1後返回步驟s21;s24:獲取角度a1與直角坐標系x軸正負方向、y軸正負方向的角度差dx+、dx-、dy+、dy-;s24:判斷dx+、dx-、dy+、dy-是否小於閾值d2時,如果是則進步步驟s25,如果否則在移動機器人運行預定時間t2或預定距離d2後返回步驟s21;s25:將移動機器人當前角度修正為對應坐標軸的方向。
本發明的目的之二在於克服背景技術中的缺陷,提供一種具有角度修正功能的移動機器人,本發明移動機器人的具體方案如下:
一種移動機器人,包括控制器、驅動系統、角度傳感器、沿邊傳感器、距離傳感器和存儲器;所述沿邊傳感器用於檢測工作區域內的障礙物邊緣並使移動機器人沿障礙物邊緣運動;所述控制器用於:根據接收到的沿邊傳感器的信息檢測障礙物邊緣是否存在長直線,以首次檢測到的長直線作為參考建立直角坐標系,在再次檢測到長直線時獲取移動機器人行進角度並在該角度與直角坐標系的某一坐標軸方向的角度差值小於某一預設值時將移動機器人行進角度修正為對應的坐標軸方向,其中,所述長直線定義為長度大於某一預設值的直線或近似直線;所述角度傳感器用於實時獲取移動機器人的行進角度;所述距離傳感器用於獲取移動機器人的行走距離;所述存儲器用於存儲直角坐標系信息及各預設值。
進一步地,在本發明方法的一個實施例中,所述角度傳感器為陀螺儀或電子羅盤;所述沿邊傳感器為紅外傳感器;所述距離傳感器為裡程計。
進一步地,在本發明方法的一個實施例中,所述移動機器人為掃地機器人。
本發明公開的技術方案利用移動機器人的工作區域內的障礙物邊緣的長直線作為參考以調整其行進角度,本發明方案成本低、容易實施且實施效果好,可用於移動機器人的覆蓋式路徑規劃。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明較佳實施例的流程圖;
圖2為本發明較佳實施例的清潔機器人的硬體構成圖;
圖3為本發明較佳實施例中的移動機器人在工作區域內的軌跡示意圖。
具體實施方式
下面將結合附圖和具體實施例對本發明技術方案進行清楚、完整地描述,顯然,這裡所描述的實施例僅僅是發明的一部分實施例,而不是全部的實施例。基於本發明描述的具體實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明權利要求所限定的保護範圍內。
如圖1所示,為本發明方法的一個較佳實施例的流程圖。
本實施例中的移動機器人以掃地機器人為例進行說明,如圖2所示,本實施例中的掃地機器人包括控制器、驅動系統、角度傳感器(本實施例中為陀螺儀)、距離傳感器(本實施例中為裡程計)、沿邊傳感器和存儲器。其中,沿邊傳感器用於檢測工作區域內的障礙物邊緣並使移動機器人沿障礙物邊緣運動,本實施例中採用紅外傳感器,安裝在掃地機器人側邊,用於檢測工作區域內的障礙物邊緣的長直線,長直線定義為長度大於某一預設值(如0.5米至2米)的直線或近似直線;控制器用於:根據接收到的沿邊傳感器的信息檢測障礙物邊緣是否存在長直線,以首次檢測到的長直線作為參考建立直角坐標系,在再次檢測到長直線時獲取移動機器人角度並在該角度與直角坐標系的某一坐標軸方向的角度差值小於某一預設值時(如5°至10°)將移動機器人角度修正為對應的坐標軸方向;所述角度傳感器用於實時獲取移動機器人的行進角度,本實施例中具體為陀螺儀,也可以採用電子羅盤;所述距離傳感器用於獲取移動機器人的行走距離,本實施例中為裡程計;所述存儲器用於存儲直角坐標系信息及各預設值以及預設的清掃程序,存儲器可為獨立的存儲器,也可以為集成在控制器的存儲器。
本實施例中的步驟s1(即以移動機器人首次尋找到的障礙物邊緣的長直線為參考建立直角坐標系,其中,長直線定義為長度大於某一預設值的直線或近似直線)由子步驟s11、s12、s13構成,具體描述如下:
s11:移動機器人直線運動直到遇到障礙物並沿障礙物邊緣行走。
掃地機器人(移動機器人)在工作區域內開機啟動後,初始化角度信息(如將前進方向視為0°),並以啟動時的方向直線向前運動,由於工作區域是有限的,在直線運動一段時間內後必然碰到障礙(包括牆及桌子、沙發等家具),掃地機器人用紅外傳感器檢測障礙物邊緣並保持探測障礙物邊緣,使掃地機器人沿障礙物邊緣行走。
s12:在預定時間t0內多次獲取移動機器人的行走角度並判斷障多個行走角度值是否在a0附近且變化量小於閾值d0,如果是則進入步驟s13,如果否則在移動機器人運行預定時間t0或預定距離d0後返回步驟s11。
掃地機器人通過陀螺儀在預定時間t0(如2秒至5秒)內以固定頻率(如100hz)多次採集掃地機器人的行走角度並傳輸給控制器,控制器通過計算,判斷該多個行走角度數據是否位於a0(a0一般為該多個角度值的平均值)附近,且與a0的差值都小於閾值d0(本實施例中為1°)。如果滿足上述條件,則認為掃地機器人在t0時間段是沿著角度值a0(相對掃地機器人啟動時的角度)的長直線行走的;如果不滿足上述條件,則認為掃地機器人在t0時間段沿非長直線行走,掃地機器人按清掃程序工作一段時間t0(如10至20秒)或行走預定距離d0(如5米至10米)後,返回步驟s11。
為提高掃地機器人第一次尋找障礙邊緣的長直線效率,掃地機器人在沿障礙物行走的時間大於預設值(如10秒)或行走的旋轉角度大於預設值(如180°),如果是則停止沿障礙物邊緣行走,並返回步驟s11,避免掃地機器人沿障礙物邊緣多次運動或在受困區域內循環運動。
s13:以障礙物邊緣的長直線為參考建立直角坐標系。
控制器以掃地機器人當前位置為原點、以長直線的ao方向為x軸正方向、以長直線的ao方向垂直的左垂直方向或右垂直方向為y軸正方向建立直角坐標系,然後將該直角坐標系儲存至存儲器。
本實施例中的步驟s1(即,在移動機器人再次尋找到障礙物邊緣的長直線時獲取其行進角度,並在該行進角度與直角坐標系的坐標軸方向的角度差值小於某一預設值時將行進角度修正為對應的坐標軸方向)由子步驟s21、s22、s23、s24、s25構成,具體描述如下:
s21:移動機器人直線運動直到遇到障礙物並沿障礙物邊緣行走。
掃地機器人在建立了直角坐標系後,按清掃程序工作一段時間(如10至20秒)或行走預定距離(如5米至10米)後,開始直線運動直到碰到障礙物,然後通過紅外傳感器檢測障礙物邊緣並沿障礙物邊緣運動。
s22:在預定時間t1內獲取移動機器人的多個行走角度並判斷多個行走角度是否在角度a1附近且變化量小於閾值d1,如果是則進入步驟s23,如果否則在移動機器人運行預定時間t1或預定距離d1後返回步驟s21。
此步驟與步驟s12基本相同,即檢測當前障礙物邊緣是否存在長直線。具體地,掃地機器人通過陀螺儀在預定時間t1(如2秒至5秒)內以固定頻率(100hz)多次採集掃地機器人的行走角度並傳輸給控制器,控制器通過計算,判斷該多個行走角度數據是否位於a1(a1一般為該多個角度值的平均值)附近,且與a1的差值都小於閾值d1(本實施例中為1°)。如果滿足上述條件,則認為掃地機器人在t1時間段是沿著角度值a1(相對步驟s13中創建的直角坐標系)的長直線行走的,即a1為掃地機器人行進角度;如果不滿足上述條件,則認為掃地機器人在t1時間段沿非長直線行走,掃地機器人按清掃程序工作一段時間t1(如10至20秒)或行走預定距離d1(如5米至10米)後,返回步驟s21。
s23:獲取角度a1與直角坐標系x軸正負方向、y軸正負方向的角度差dx+、dx-、dy+、dy-;
控制器分別計算a1與x軸正方向的角度差dx+、a1與x軸負方向的角度差dx-、a1與y軸正方向的角度差dy+以及a1與y軸正方向的角度差dy-。
s24:判斷dx+、dx-、dy+、dy-是否小於閾值d2時,如果是則進入步驟s25,如果否則在移動機器人運行預定時間t2或預定距離d2後返回步驟s21。
通過比較dx+、dx-、dy+、dy-與閾值d2(本實施例中為1°)的大小,如果dx+、dx-、dy+、dy-之一小於閾值d2,則認為長直線應當與對應的直角坐標系的坐標軸平行,掃地機器人因累計誤差導致該角度差,需進行自身角度修正;如果dx+、dx-、dy+、dy-都不小於d2,則認為長直線本身與坐標系的各坐標軸方向並不平行,不能作為修正掃地機器人的參考,掃地機器人按清掃程序行走t2(如10至20秒)或行走預定距離d2(如5米至10米)後返回步驟s21。
s25:將移動機器人當前角度修正為對應坐標軸的方向。
如果dx+小於閾值d2,則將掃地機器人當前運行方向修正為坐標系的x軸正方向;如果dx-小於閾值d2,則將掃地機器人當前運行方向修正為坐標系的x軸負方向;如果dy+小於閾值d2,則將掃地機器人當前運行方向修正為坐標系的y軸正方向;如果dy-小於閾值d2,則將掃地機器人當前運行方向修正為坐標系的y軸負方向。
s3:重複步驟s2直到移動機器人完成該工作區域內的工作。
控制器檢測掃地機器人是否完成該工作區域的工作,如果是,則掃地機器人返回充電座,結束工作;如果否,則返回步驟s21。
下面結合圖3對本發明的實施過程進行完整的描述。
如圖3所示,掃地機器人的工作區域為大致呈矩形,工作區域內包括橢圓形障礙物b1(如桌子)以及矩形障礙物b2(如沙發)。
掃地機器人m從點p0出發,然後直線運動至點p1,此時檢測到桌子a1;掃地機器人的以左側沿桌子b1運動(可通過算法可使掃地機器人的左側或右側沿障礙運動),掃地機器人沿桌子a1運動的過程中的點p1至點p2為路徑為弧形(在此期間認為桌子b1邊緣不存在長直線)。
當掃地機器人到達點p2時,已沿桌子b1行走了預定時間、預定距離或預定旋轉角度,因此停止沿桌子b2運動,並以當前方向直線向前運動直到運動至點p3,在點p3處檢測到牆邊緣,然後掃地機器人沿牆邊緣運動。
在點p3和點p4之間檢測到了長直線,此時以該長直線為參考建立直角坐標系:即以點p4為原點,以掃地機器人當前方向為x軸正方向,垂直於長直線的掃地機器人左側方向為y軸正方向建立直角坐標系。掃地機器人按清掃程序進行清掃,直到在點p5檢測到沙發b2,掃地機器人開始沿沙發b2運動。
在點p5和點p6之間檢測到了長直線,此時從陀螺儀獲取該長直線的角度大致為150°(相對點p4處建立的直角坐標系),然後計算長直線角度與直角坐標系各坐標軸方向的角度差,其最小角度差dx-為大約30°,遠大於設定的閾值(1°),認為該長直線本身與坐標系各坐標軸方向都不平行,因此不對掃地機器人當前行進方向的角度進行修正,掃地機器人在點p6時以當前方向直線向前運動直到在點p7檢測到牆邊緣,然後掃地機器人沿牆邊緣運動。
在點p7和點p8之間檢測到長直線,此時從陀螺儀處獲取長直線的角度為89.5°,該長直線方向與直角坐標系的y軸正方向之間的角度差為0.5°,小於設定的閾值(1°),此時將掃地機器人在點p8處的方向修正為90°。
如此循環,直到掃地機器人完成在該矩形區域的工作。
以上所揭露的僅為本發明技術方案的實施例而已,不能以此來限定本發明之權利範圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的範圍。