本發(fā)明涉及機器人技術領域,特別涉及一種機器人的行走控制方法、裝置及系統(tǒng)。
背景技術:
掃地機器人,又稱自動打掃機、智能吸塵、機器人吸塵器等,是智能家用電器的一種,能憑借一定的人工智能,自動在房間內(nèi)完成地板清理工作。隨著生活水平的提高,對于一般家庭也越來越普及。
通常,掃地機器人的左右行動輪分別設有測速用的里程計,通過左右兩側(cè)的里程計來調(diào)節(jié)掃地機器人左右行動輪的驅(qū)動脈沖信號,從而完成對掃地機器人行走的控制,里程計可以是紅外碼盤,也可以是霍爾傳感器。當一側(cè)里程計失效時,會造成掃地機器人打轉(zhuǎn),走不了直線等故障,在掃地機器人的故障中,此故障一般占所有故障的10%左右。
技術實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種機器人的行走控制方法及裝置。
依據(jù)本發(fā)明的第一個方面,提供了一種機器人的行走控制方法,所述方法包括:
在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角;
根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走。
可選地,所述根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走,進一步包括:
獲取所述機器人第二側(cè)里程計所測量的第二速度值,根據(jù)所述偏航角及第二速度值調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號,從而完成對機器人行走的控制。
可選地,所述根據(jù)所述偏航角及第二速度值調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號,進一步包括:
判斷所述偏航角是否處于預設角度范圍內(nèi),在所述偏航角未處于預設角度范圍時,判斷所述第二速度值是否處于預設速度范圍內(nèi);
在所述第二速度值未處于預設速度范圍內(nèi)時,調(diào)整所述第二側(cè)里程計對應行動輪的驅(qū)動脈沖信號;
在所述第二速度值處于預設速度范圍內(nèi)時,調(diào)整所述第一側(cè)里程計對應行動輪的驅(qū)動脈沖信號。
可選地,所述在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角之前,所述方法還包括:
獲取機器人兩側(cè)里程計分別測量的第一速度值,在滿足下式時,認定所述第一側(cè)里程計失效,
SPEEDb<k*SPEEDa
其中,SPEEDb為第一側(cè)里程計所測量的第一速度值,SPEEDa為第二側(cè)里程計所測量的第一速度值,k為大于0且小于1的常數(shù)。
依據(jù)本發(fā)明的第二個方面,提供了一種機器人的行走控制裝置,所述裝置包括:
數(shù)據(jù)獲取單元,用于在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角;
行走控制單元,用于根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走。
可選地,所述行走控制單元,進一步用于獲取所述機器人第二側(cè)里程計所測量的第二速度值,根據(jù)所述偏航角及第二速度值調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號,從而完成對機器人行走的控制。
可選地,所述行走控制單元,進一步用于判斷所述偏航角是否處于預設角度范圍內(nèi),在所述偏航角未處于預設角度范圍時,判斷所述第二速度值是否處于預設速度范圍內(nèi);在所述第二速度值未處于預設速度范圍內(nèi)時,調(diào)整所述第二側(cè)里程計對應行動輪的驅(qū)動脈沖信號;在所述第二速度值處于預設速度范圍內(nèi)時,調(diào)整所述第一側(cè)里程計對應行動輪的驅(qū)動脈沖信號。
可選地,所述裝置還包括:失效判斷單元,用于獲取機器人兩側(cè)里程計分別測量的第一速度值,在滿足下式時,認定所述第一側(cè)里程計失效,
SPEEDb<k*SPEEDa
其中,SPEEDb為第一側(cè)里程計所測量的第一速度值,SPEEDa為第二側(cè)里程計所測量的第一速度值,k為大于0且小于1的常數(shù)。
依據(jù)本發(fā)明的第三個方面,提供了一種機器人的行走控制系統(tǒng),所述系統(tǒng)包括:所述的裝置。
可選地,所述系統(tǒng)還包括:機器人兩側(cè)里程計和機器人左右行動輪,所述機器人兩側(cè)里程計和機器人左右行動輪分別與所述裝置連接。
本發(fā)明在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角,根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走,從而能夠在第一側(cè)里程計失效時,不再依賴第一側(cè)里程計所檢測的速度值來控制機器人的行走,從而避免了機器人打轉(zhuǎn),走不了直線等問題。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1是現(xiàn)有技術中測速所采用的碼盤;
圖2是現(xiàn)有技術中行動行動輪測速的原理示意圖;
圖3是光電傳感器的原理圖;
圖4是掃地機器人的驅(qū)動輪位置圖;
圖5是本發(fā)明一種實施方式的機器人的行走控制方法的流程圖;
圖6是三軸陀螺儀三個方向所得角度的示意圖;
圖7是本發(fā)明另一種實施方式的機器人的行走控制方法的流程圖;
圖8是本發(fā)明一種實施方式的機器人的行走控制裝置的結構框圖。
具體實施方式
下面結合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
現(xiàn)有技術中里程計可采用圖1所示的碼盤,參照圖2,可將該碼盤設于機器人的行動輪電機上,并將圖3所示的光電傳感器設于所述圖2的對應位置處,當電機轉(zhuǎn)動后,通過碼盤的光柵遮擋或通過紅外信號來感應電機的轉(zhuǎn)動,從而得到一定頻率的方波,方波的頻率代表著電機的轉(zhuǎn)動速度。
此時,控制器在控制行動輪運動時,可通過驅(qū)動脈沖信號(PWM)來控制行動輪的電機運動,PWM的占空比越高,輸出電壓越大,電機轉(zhuǎn)速越高;PWM占空比越低,輸出電壓越小,電機轉(zhuǎn)速越低。
當然,現(xiàn)有技術中還采用多極磁環(huán)用作霍爾傳感器的碼盤,也就是說,將圖2中的碼盤設為多極磁環(huán),將圖2中的傳感器設為霍爾傳感器。
參照圖4,由于掃地機器人的左右行動輪分別設有測速用的里程計,通過左右兩側(cè)的里程計來調(diào)節(jié)掃地機器人左右行動輪的PWM,從而完成對掃地機器人行走的控制,當一側(cè)里程計失效時,會造成掃地機器人打轉(zhuǎn),走不了直線等故障,針對該故障,故而,提出以下實施方式。
圖5是本發(fā)明一種實施方式的機器人的行走控制方法的流程圖;參照圖5,所述方法包括:
S501:在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角;
需要說明的是,本實施方式的方法的執(zhí)行主體為控制器,所述控制器用于對機器人的行走進行控制,其可以設置于所述機器人上(參照圖2),即作為所述機器人的控制裝置,也可以不設置于所述機器人上,而通過遠程控制的方式控制所述機器人行走,當然,還可為其他類似功能的部件,本實施方式對此不加以限制。
可理解的是,所述機器人為可行走的機器人,例如:掃地機器人,當然,可為其他可行走的機器人,本實施方式對此不加以限制。
圖6是三軸陀螺儀三個方向所得角度的示意圖;參照圖6,三個方向所得角度分別為:pitch、yaw和roll,其中,pitch是圍繞X軸旋轉(zhuǎn),也叫做俯仰角;yaw是圍繞Y軸旋轉(zhuǎn),也叫偏航角;roll是圍繞Z軸旋轉(zhuǎn),也叫翻滾角;故而,本實施方式中的偏航角可通過三軸陀螺儀獲取,當然,還可采用其他傳感器獲取,本實施方式對此不加以限制。
S502:根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走。
可理解的是,所述控制器可控制機器人的行走,因此,本實施方式中可根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走。
本實施方式在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角,根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走,從而能夠在第一側(cè)里程計失效時,不再依賴第一側(cè)里程計所檢測的速度值來控制機器人的行走,從而避免了機器人打轉(zhuǎn),走不了直線等問題。
圖7是本發(fā)明另一種實施方式的機器人的行走控制方法的流程圖;參照圖7,所述方法包括:
S700:獲取機器人兩側(cè)里程計分別測量的第一速度值,在滿足下式時,認定所述第一側(cè)里程計失效,
SPEEDb<k*SPEEDa
其中,SPEEDb為第一側(cè)里程計所測量的第一速度值,SPEEDa為第二側(cè)里程計所測量的第一速度值,k為大于0且小于1的常數(shù);
可理解的是,通常在SPEEDa和SPEEDb之間存在明顯差距時,會認定為有一側(cè)里程計失效,為便于對失效的里程計進行確認,本實施方式中,通過以上公式進行判斷。
S701:在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角;
步驟S701與圖5所示的實施方式的步驟S501相同,在此不再贅述。
S702:獲取所述機器人第二側(cè)里程計所測量的第二速度值,根據(jù)所述偏航角及第二速度值調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號,從而完成對機器人行走的控制。
為便于對機器人行走進行控制,本實施方式中,通過調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號來實現(xiàn)。
在具體實現(xiàn)中,所述根據(jù)所述偏航角及第二速度值調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號,進一步包括以下步驟A1~A3:
A1:判斷所述偏航角是否處于預設角度范圍內(nèi),在所述偏航角未處于預設角度范圍時,判斷所述第二速度值是否處于預設速度范圍內(nèi);
A2:在所述第二速度值未處于預設速度范圍內(nèi)時,調(diào)整所述第二側(cè)里程計對應行動輪的驅(qū)動脈沖信號;
A3:在所述第二速度值處于預設速度范圍內(nèi)時,調(diào)整所述第一側(cè)里程計對應行動輪的驅(qū)動脈沖信號。
下面以一個具體實施例來說明本發(fā)明,但不限定本發(fā)明的保護范圍。假設控制行動輪運動的PWM波,行動輪A記為PWMa,行動輪B記為PWMb。行動輪運動每厘米檢測到的方波個數(shù)記為SQUARE_COUNT。行動輪A的方波個數(shù)記為SQURE_COUNTa,行動輪B的方波個數(shù)記為SQURE_COUNTb,機器運動固定速度SPEED_FIXED。
在機器人做直線運動時,進行步驟R1~R7:
R1:記錄機器人直線運動的航向角yaw值YAW_FIXED,標識機器人需按此航偏角做直線運動。
R2:開始運動時,行動輪A、行動輪B都以固定的PWM占空比控制,即PWMa=PWMb;
R3:當SQURE_COUNTa或SQURE_COUNTb中的某一個達到3厘米需要的count數(shù)時,開始檢測,假設SQURE_COUNTa達到3厘米所需的count數(shù),然后讀取SQURE_COUNTb的數(shù)據(jù),通過速度=里程/時間,計算出SPEEDa和SPEEDb;
如果SPEEDb的數(shù)據(jù)小于SPEEDb*0.3,則認為此時行動輪B的數(shù)據(jù)不良,如果強行調(diào)整行動輪B的PWM,使得SPEEDa=SPEEDb,則機器會表現(xiàn)出打轉(zhuǎn),亂走的異常現(xiàn)象。
R4:調(diào)整目標為整機速度跟設定速度一致,最大誤差不超過5%,整機航向角跟設定角度一致,最大誤差不超過2度。
R5:當知道行動輪B的測速單應異常后,不再使用行動輪B的測速數(shù)據(jù)。僅以行動輪A的測速數(shù)據(jù)當作機器人整機的運動速度,并使得SPEEDa不斷趨近與SPEED_FIXED。
R6:當SPEEDa在趨近SPEED_FIEXED的過程中,使得PWMb=PWMa,則此時SPEEDb也接近于SPEED_FIXED。
R7:讀取機器人的航偏角yaw_current值,當yaw_current大于YAW_FIXED時,表示機器人向左偏航。當yaw_current小于YAW_FIXED時,表示機器人向右偏航。
當(yaw_current–YAW_FIXED)的值大于2度時,表示機器人偏航較大,此時開始調(diào)整機器人的左右輪的PWM值,使得機器人回歸到正常的軌道。調(diào)整PWM的策略是:如果SPEEDa在SPEED_FIXED的5%的最大偏差范圍內(nèi),則調(diào)整PWMb,如果SPEEDa不在SPEED_FIXED的范圍內(nèi),則調(diào)整PWMa。這樣做就能保證整機運動的速度始終在SPEED_FIXED的正常范圍內(nèi),并且機器人不走偏。
對于方法實施方式,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明實施方式并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明實施方式,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施方式均屬于優(yōu)選實施方式,所涉及的動作并不一定是本發(fā)明實施方式所必須的。
圖8是本發(fā)明一種實施方式的機器人的行走控制裝置的結構框圖;參照圖8,所述裝置包括:
數(shù)據(jù)獲取單元801,用于在機器人第一側(cè)里程計失效時,實時獲取所述機器人的偏航角;
行走控制單元802,用于根據(jù)所述偏航角及所述機器人第二側(cè)里程計控制所述機器人的行走。
在本發(fā)明一種可選實施方式中,所述行走控制單元,進一步用于獲取所述機器人第二側(cè)里程計所測量的第二速度值,根據(jù)所述偏航角及第二速度值調(diào)節(jié)所述機器人左右行動輪的驅(qū)動脈沖信號,從而完成對機器人行走的控制。
在本發(fā)明一種可選實施方式中,所述行走控制單元,進一步用于判斷所述偏航角是否處于預設角度范圍內(nèi),在所述偏航角未處于預設角度范圍時,判斷所述第二速度值是否處于預設速度范圍內(nèi);在所述第二速度值未處于預設速度范圍內(nèi)時,調(diào)整所述第二側(cè)里程計對應行動輪的驅(qū)動脈沖信號;在所述第二速度值處于預設速度范圍內(nèi)時,調(diào)整所述第一側(cè)里程計對應行動輪的驅(qū)動脈沖信號。
在本發(fā)明一種可選實施方式中,所述裝置還包括:失效判斷單元,用于獲取機器人兩側(cè)里程計分別測量的第一速度值,在滿足下式時,認定所述第一側(cè)里程計失效,
SPEEDb<k*SPEEDa
其中,SPEEDb為第一側(cè)里程計所測量的第一速度值,SPEEDa為第二側(cè)里程計所測量的第一速度值,k為大于0且小于1的常數(shù)。
本發(fā)明還公開了一種機器人的行走控制系統(tǒng),所述系統(tǒng)包括:所述的裝置。
在本發(fā)明一種可選實施方式中,所述系統(tǒng)還包括:機器人兩側(cè)里程計和機器人左右行動輪,所述機器人兩側(cè)里程計和機器人左右行動輪分別與所述裝置連接。
對于裝置及系統(tǒng)實施方式而言,由于其與方法實施方式基本相似,所以描述的比較簡單,相關之處參見方法實施方式的部分說明即可。
應當注意的是,在本發(fā)明的裝置的各個部件中,根據(jù)其要實現(xiàn)的功能而對其中的部件進行了邏輯劃分,但是,本發(fā)明不受限于此,可以根據(jù)需要對各個部件進行重新劃分或者組合。
本發(fā)明的各個部件實施方式可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本裝置中,PC通過實現(xiàn)因特網(wǎng)對設備或者裝置遠程控制,精準的控制設備或者裝置每個操作的步驟。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,并且程序產(chǎn)生的文件或文檔具有可統(tǒng)計性,產(chǎn)生數(shù)據(jù)報告等。應該注意的是上述實施方式對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施方式。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干系統(tǒng)的單元權利要求中,這些系統(tǒng)中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關技術領域的普通技術人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應由權利要求限定。