本發(fā)明涉及機器人防摔控制技術(shù)領(lǐng)域,特別涉及一種機器人防傾倒方法、裝置及防傾倒機器人。
背景技術(shù):
機器人是自動執(zhí)行工作的機器裝置,其任務(wù)是協(xié)助或取代人類工作的工作,例如生產(chǎn)業(yè)、建筑業(yè),或是危險的工作。為了適應(yīng)不同的工作環(huán)境,從移動方式方面來看,機器人種類繁多,包括仿生機器人、雙輪機器人、獨輪機器人等,其中大多數(shù)機器人因特殊的結(jié)構(gòu)形態(tài),無法長期保持平衡,在遇到摔倒、失去平衡等情況時會導(dǎo)致無法正常工作甚至損傷設(shè)備?,F(xiàn)有技術(shù)中,對于機器人摔倒的解決方案主要為降低機器人重心,具體可包括機器人扁平化和在機器人底端增加重量兩種方案。
機器人扁平化通常為在機器人底部設(shè)置三個或三個以上的水平行走足,,并減少機器人的高度,使機器人處于水平移動狀態(tài),例如掃地機器人,但該解決方案的缺陷在于并非所有的工作場合都適合扁平化的機器人。
在機器人底端增加重量的主要手段為增加配重,通常情況下配重為電池,雖然增加電池雖然可以提高機器人的運行時間,減少機器人摔倒的情況,但由于機器人增加了重量,在同樣的驅(qū)動力下,達到相同移動速度的時間會增加,同時在某些工作場合,不符合輕量化的工作要求。
綜上所述,如何防止機器人摔倒是本領(lǐng)域技術(shù)人員目前需要解決的一項技術(shù)問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種機器人防傾倒方法、裝置及防傾倒機器人,可以有效防止機器人摔倒。其具體方案如下:
一種機器人防傾倒裝置,包括傾斜角度獲取模塊、處理器、編碼器、驅(qū)動電機和支撐臂,其中,
所述傾斜角度獲取模塊,用于獲取機器人的傾斜角度;
所述處理器,用于判斷所述傾斜角度是否大于預(yù)設(shè)值,若是,則向所述驅(qū)動電機輸出電機控制信號,若否,則重新獲取傾斜角度;
所述編碼器,用于獲取所述驅(qū)動電機的旋轉(zhuǎn)角度和速度,并發(fā)送至所述處理器;
所述驅(qū)動電機,用于根據(jù)所述電機控制信號調(diào)整所述支撐臂的位置;
所述支撐臂,用于對所述機器人進行支撐。
優(yōu)選的,所述傾斜角度獲取模塊包括:
第一陀螺儀,用于獲取所述機器人的傾斜角速度;
第一積分單元,用于對所述傾斜角速度進行積分,得到所述傾斜角度。
優(yōu)選的,所述傾斜角度獲取模塊包括:
第二陀螺儀,用于獲取所述機器人的傾斜角速度;
第二積分單元,用于對所述機器人的傾斜角速度進行積分,得到初始傾斜角度;
加速度傳感器,用于獲取所述機器人的傾斜加速度;
第三積分單元,用于對所述機器人的傾斜加速度進行積分,得到換算角度;
誤差角度獲取單元,用于將所述初始傾斜角度和所述換算角度進行比較,得到誤差角度;
誤差角度放大單元,用于按照預(yù)設(shè)比例對所述誤差角度進行放大,得到修正角度;
角度疊加單元,用于將所述修正角度與所述初始傾斜角度進行疊加計算,得到所述傾斜角度。
優(yōu)選的,所述支撐臂包括轉(zhuǎn)動軸和伸縮臂中的至少一種,其中所述轉(zhuǎn)動軸用于調(diào)整所述支撐臂與所述機器人之間的角度,所述伸縮臂用于調(diào)整所述支撐臂的長度。
優(yōu)選的,所述機器人防傾倒裝置還包括行走足和用于根據(jù)所述傾斜角度調(diào)整所述行走足的移動狀態(tài)的自平衡驅(qū)動模塊,其中,所述移動狀態(tài)包括行走足移動方向和行走足加速度,所述傾斜角度在所述行走足的移動平面上分量與所述行走足移動方向呈反相關(guān),所述機器人在所述行走足的移動平面上加速度分量與所述行走足加速度呈反相關(guān)。
本發(fā)明還提供了一種防傾倒機器人,包括上述任一項所述的機器人防傾倒裝置。
本發(fā)明還提供了一種機器人防傾倒方法,包括:
獲取機器人的傾斜角度;
判斷所述傾斜角度是否大于預(yù)設(shè)值,若是,則調(diào)整支撐臂的位置,以對所述機器人進行支撐,若否,則重新獲取傾斜角度。
優(yōu)選的,獲取所述機器人的傾斜角度包括:
獲取所述機器人的傾斜角速度;
對所述傾斜角速度進行積分,得到所述傾斜角度。
優(yōu)選的,獲取所述機器人的傾斜角度包括:
對獲取的所述機器人的傾斜角速度進行積分,得到初始傾斜角度;
對獲取的所述機器人的傾斜加速度進行積分,得到換算角度;
將所述初始傾斜角度和所述換算角度進行比較,得到誤差角度;
按照預(yù)設(shè)比例對所述誤差角度進行放大,得到修正角度;
將所述修正角度與所述初始傾斜角度進行疊加計算,得到所述傾斜角度。
優(yōu)選的,所述支撐臂的長度或所述支撐臂與所述機器人之間的角度可調(diào)整。
本發(fā)明提供了一種機器人防傾倒裝置,包括傾斜角度獲取模塊、處理器、編碼器、驅(qū)動電機和支撐臂,其中,所述傾斜角度獲取模塊,用于獲取機器人傾斜角度;所述處理器,用于判斷所述傾斜角度是否大于預(yù)設(shè)值,若是,則向所述驅(qū)動電機輸出電機控制信號,若否,則重新獲取傾斜角度;所述編碼器,用于獲取所述驅(qū)動電機的旋轉(zhuǎn)角度和速度,并發(fā)送至所述處理器;所述驅(qū)動電機,用于根據(jù)所述電機控制信號調(diào)整所述支撐臂的位置;所述支撐臂,用于對所述機器人進行支撐??梢?,本發(fā)明對獲取的機器人傾斜角度進行判斷,若該傾斜角度未超過預(yù)設(shè)值,即機器人不存在摔倒的風(fēng)險,則待機繼續(xù)獲取機器人傾斜角度,若該傾斜角度大于預(yù)設(shè)值,即機器人即將摔倒,則控制驅(qū)動電機調(diào)整支撐臂的位置以對機器人進行支撐,同時,編碼器向處理器發(fā)送驅(qū)動電機的旋轉(zhuǎn)角度和速度,形成反饋系統(tǒng),提高了調(diào)整支撐臂的準確性,從而在不需要改變機器人的高度或在機器人底端設(shè)置配重的情況下,有效地避免了機器人摔倒。
本發(fā)明還提供了一種防傾倒機器人,具有與上述機器人防傾倒裝置相同的技術(shù)效果,再次不再贅述。
本發(fā)明還提供了一種機器人防傾倒方法,具有與上述機器人防傾倒裝置相同的技術(shù)效果,再次不再贅述。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種機器人防傾倒裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例提供的一種具體的機器人防傾倒裝置中傾斜角度獲取模塊的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例提供的一種具體的機器人防傾倒裝置中傾斜角度獲取模塊的工作流程示意圖;
圖4為本發(fā)明實施例提供的一種具體的單輪防傾倒機器人在傾倒狀態(tài)下受力分析示意圖;
圖5為本發(fā)明實施例提供的一種機器人防傾倒方法的流程示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供了一種機器人防傾倒裝置,參見圖1所示,包括傾斜角度獲取模塊11、處理器12、編碼器13、驅(qū)動電機14和支撐臂15,其中,
所述傾斜角度獲取模塊11,用于獲取機器人傾斜角度。
機器人在實際應(yīng)用中出現(xiàn)傾倒狀態(tài),通常情況表現(xiàn)為機器人上端位移比下端位移大,即重心相對于支撐點在水平方向和豎直方向均出現(xiàn)位移,即重心相對于支撐點旋轉(zhuǎn)從而產(chǎn)生傾斜角度,機器人重心發(fā)生位移是判斷機器人發(fā)生傾倒的必要條件,因此可以通過獲取傾斜角度來判斷機器人是否發(fā)生傾倒。
需要特別說明的是,在實際操作中,角度獲取模塊并不單純指對機器人傾倒角度進行監(jiān)測的器件,因為某些對機器人傾倒角度進行監(jiān)測的器件無法直接獲取的機器人傾倒角度,需要處理器對相應(yīng)數(shù)據(jù)進行計算處理才得到機器人傾倒角度。本發(fā)明的目的是提供一種機器人防傾倒的思路,具體實現(xiàn)過程中,因器件功能差異所導(dǎo)致的器件之間的配合不在本發(fā)明討論的范圍內(nèi),因此,這種需要通過處理器計算得到機器人傾倒角度的情況也應(yīng)落在本發(fā)明保護的范圍內(nèi)。
通常情況下,重心由于受到重力的原因在豎直方向發(fā)生的位移方向朝下,但不排除在特殊的場合下重心在豎直方向發(fā)生的位移方向朝上,例如,機器人利用電磁鐵的磁力吸附在物體外表面,此時,重心在豎直方向發(fā)生的位移方向可能朝上。
當然,機器人重心發(fā)生位移并不是機器人發(fā)生傾倒的必要條件,重心在水平方向和豎直方向均出現(xiàn)位移也可能是機器人正常移動所導(dǎo)致的,機器人傾倒最直觀的表現(xiàn)為機器人上部位移大于機器人下部位移。
需要說明的是,在上述對機器人傾倒的描述中,機器人和機器人支撐面兩者均被視為了剛體,即機器人在傾倒時,機器人的支撐點和機器人支撐面均未發(fā)生形變。
需要進一步說明的是,在實際中,機器人和機器人支撐面均為非剛體,機器人傾倒時,由于部分機器人的外殼材料硬度可能小于機器人支撐面的硬度,例如,機器人的外殼材料為塑料或鋁,機器人支撐面為混凝土,機器人在傾倒時外殼接觸支撐面,在機器人重量的作用下,外殼發(fā)生形變,此時,機器人傾倒不能僅僅被視作重心相對機器人外殼未發(fā)生形變的支撐點發(fā)生旋轉(zhuǎn)。
可以理解的是,此處的外殼形變包括彈性形變和非彈性形變。非彈性形變意味著機器人發(fā)生損壞,由于在實際應(yīng)用中很少出現(xiàn)中機器人傾倒即發(fā)生損壞的設(shè)計,因此,此處的外殼形變主要為彈性形變,而當外殼形變?yōu)榉菑椥孕巫儠r,本發(fā)明則可避免機器人進一步損壞。
同理,在實際中存在機器人的外殼材料硬度大于機器人支撐面的硬度的情況,例如機器人外殼材料為鋼鐵,機器人支撐面為沙地,機器人在傾倒時外殼接觸支撐面,在機器人重量的作用下,支撐面即沙地發(fā)生形變,支撐點發(fā)生位移,此時,機器人傾倒也不能僅僅被視作重心相對支撐面未發(fā)生形變的支撐點發(fā)生旋轉(zhuǎn)。
在將機器人和機器人的支撐面兩者視作非剛體時,機器人和機器人支撐面均存在應(yīng)力,因此機器人和機器人支撐面均會發(fā)生形變。
機器人發(fā)生傾倒時,支撐點可以為機器人的行走足,該行走足同樣可被視為剛體或非剛體,分析原理與上述外殼相同,在此不再贅述。
在現(xiàn)有技術(shù)中,獲取傾斜角度獲取可通過陀螺儀來實現(xiàn),本發(fā)明對傾斜角度獲取模塊提供兩種具體的實施方案。
實施方案一:
傾斜角度獲取模塊通過陀螺儀和積分單元實現(xiàn)對傾斜角度的計算,其中具體包括:第一陀螺儀,用于獲取所述機器人的傾斜角速度;第一積分單元,用于對所述傾斜角速度進行積分,得到所述傾斜角度。本實施方案中,將機器人和機器人的支撐面兩者均視為了剛體,通過對第一陀螺儀獲取的傾斜角速度進行積分計算,得到的傾斜角度,適用于一些低成本且無需高精度的玩具機器人。
在實際應(yīng)用中,機器人和機器人的支撐面并非剛體,且第一陀螺儀本身存在誤差,為了避免誤差被累積放大,無法形成正確的角度信號,本發(fā)明對傾斜角度獲取模塊還提供下述實施方案。
實施方案二:
傾斜角度獲取模塊通過陀螺儀和積分單元實現(xiàn)對傾斜角度的計算,同時利用加速度傳感器和積分單元對傾斜角度進行數(shù)據(jù)修正,從而得到機器人的傾斜角度,參見圖2所示,具體包括:
第二陀螺儀111,用于獲取所述機器人的傾斜角速度;第二積分單元112,用于對獲取的所述機器人的傾斜角速度進行積分,得到初始傾斜角度;加速度傳感器113,用于獲取所述機器人的傾斜加速度;第三積分單元114,用于對獲取的所述機器人的傾斜加速度進行積分,得到換算角度;誤差角度獲取單元115,用于將所述初始傾斜角度和所述換算角度進行比較,得到誤差角度;誤差角度放大單元116,用于按照預(yù)設(shè)比例對所述誤差角度進行放大,得到修正角度;角度疊加單元117,用于將所述修正角度與所述初始傾斜角度進行疊加計算,得到所述傾斜角度。
陀螺儀獲取的具體參數(shù)為轉(zhuǎn)動角速度,由于在本發(fā)明提供的所有實施方案中,存在將機器人或機器人支撐面視為非剛體的情況,由于支撐點可能發(fā)生變化,對于機器人整體來看,陀螺儀所獲取的轉(zhuǎn)動角速度并非嚴格意義的機器人的轉(zhuǎn)動角速度,因此,在本發(fā)明中將陀螺儀獲取的具體參數(shù)定義為傾斜角速度。
本實施方案中,傾斜角度獲取模塊具體的工作流程如圖3所示,對通過第二陀螺儀獲取的傾斜角速度進行積分,得到初始傾斜角度,將初始傾斜角度和換算角度進行比較求差值,得到的誤差角度,按照預(yù)設(shè)的比例系數(shù)進行放大,與傾斜角速度進行疊加積分,形成反饋系統(tǒng),從而輸出修正后的傾斜角度。
需要進一步說明的是,本發(fā)明中的第一積分單元、第二積分單元和第三積分單元中的任一個的功能,在實際操作中均可以由處理器來實現(xiàn),本發(fā)明僅僅是為了對功能進行區(qū)分而命名的,并不代表該功能的實現(xiàn)具有先后順序或該功能必須依靠獨立器件實現(xiàn)。
所述處理器12,用于判斷所述傾斜角度是否大于預(yù)設(shè)值,若是,則向所述驅(qū)動電機輸出電機控制信號,若否,則重新獲取傾斜角度。
可以理解的是,存在一個最大自平衡傾角,當傾斜角度小于或等于最大自平衡傾角時,物體只會來回擺動,最終因為摩擦阻力,減少擺動幅度,即減少傾倒角度,直至重新處于穩(wěn)定狀態(tài);當傾斜角度大于最大自平衡傾角時,物體則會傾倒。因此,處理器對傾斜角度進行判斷,若小于或等于預(yù)設(shè)值,則本發(fā)明提供的防傾倒裝置待機,重新獲取傾斜角度,若大于預(yù)設(shè)值,則表明機器人即將摔倒,需要支撐臂對機器人進行支撐,則向驅(qū)動電機輸出電機控制信號。
需要說明的是,所述預(yù)設(shè)值與所述最大自平衡傾角可以相同,也可以不同。
由于驅(qū)動電機調(diào)整支撐臂位置本身需要時間,因此將預(yù)設(shè)值設(shè)置成小于最大自平衡傾角,可以避免出現(xiàn)機器人傾倒速度大于支撐臂調(diào)整速度的情況,當然,在實際應(yīng)用中,通常情況下,機器人的傾倒速度不會超過支撐臂的調(diào)整速度。
在實際應(yīng)用中,通常情況下,支撐臂的調(diào)整速度遠遠大于機器人的傾倒速度,因此也可以將預(yù)設(shè)值設(shè)置成大于最大自平衡傾角。
需要進一步說明的是,機器人的傾倒速度超過支撐臂的調(diào)整速度的情況下,大多數(shù)為機器人受了外力,且在該外力下機器人所產(chǎn)生的加速度遠遠大于驅(qū)動電機的加速度,該情況不在本發(fā)明所討論的范圍內(nèi)。
所述編碼器13,用于獲取所述驅(qū)動電機的旋轉(zhuǎn)角度和速度,并發(fā)送至所述處理器。
在實際應(yīng)用中,不同的傾斜角度需要支撐臂處于不同位置,編碼器獲取驅(qū)動電機的旋轉(zhuǎn)角度和速度,并將該旋轉(zhuǎn)角度和速度發(fā)送至處理器,形成反饋系統(tǒng),從而令處理器可以更準確地調(diào)整支撐臂的位置。。
需要說明的是,編碼器獲取驅(qū)動電機的旋轉(zhuǎn)角度和速度,包括實時獲取和間隔獲取。
實時獲取為編碼器對驅(qū)動電機進行實時監(jiān)測,同時將監(jiān)測得到的旋轉(zhuǎn)角度和速度發(fā)送至處理器。
間隔獲取為編碼器對驅(qū)動電機按照預(yù)設(shè)的間隔時長進行相關(guān)參數(shù)的獲取,即編碼器每經(jīng)過預(yù)設(shè)的間隔時長獲取一次驅(qū)動電機的旋轉(zhuǎn)角度和速度,并發(fā)送至處理器。此種場景一般應(yīng)用在低電量、節(jié)約能耗模式或處理器的性能無法承受編碼器實時獲取驅(qū)動電機的旋轉(zhuǎn)角度和速度的情形。
所述驅(qū)動電機14,用于根據(jù)所述電機控制信號調(diào)整所述支撐臂的位置。
根據(jù)編碼器輸出的電機控制信號,驅(qū)動電機在實際應(yīng)用中包括步進電機、直流電機、伺服電機等,本發(fā)明對驅(qū)動電機的類型不做限定。
所述支撐臂15,用于對所述機器人進行支撐。
支撐臂包括轉(zhuǎn)動軸和伸縮臂中的至少一種,其中所述轉(zhuǎn)動軸用于調(diào)整所述支撐臂與所述機器人之間的角度,所述伸縮臂用于調(diào)整所述支撐臂的長度。
當然,在實際應(yīng)用中,可以具體包括以下三種形式的支撐臂:
(1)長度不可變化的轉(zhuǎn)動軸支撐臂,驅(qū)動電機驅(qū)動支撐臂圍繞轉(zhuǎn)動軸旋轉(zhuǎn),將支撐臂調(diào)整至與傾斜角度相應(yīng)的支撐位置。
采用長度不可變化的轉(zhuǎn)動軸支撐臂,編碼器根據(jù)編碼器工作信號輸出預(yù)設(shè)的電機控制信號,此時,機器人存在最大傾斜角度,即支撐臂垂直于地面時的傾斜角度,當機器人的實際傾斜角度小于最大傾斜角度時,驅(qū)動電機控制支撐臂向機器人方向旋轉(zhuǎn),從而使機器人達到直立狀態(tài)。
(2)長度可變化不可轉(zhuǎn)動的固定支撐臂,即支撐臂具有伸縮臂,驅(qū)動電機根據(jù)傾斜角度調(diào)整伸縮臂的伸縮量,即調(diào)整支撐臂的長短,從而對機器人進行支撐。
采用長度可變化不可轉(zhuǎn)動的固定支撐臂時,機器人存在最大傾斜角度,即伸縮臂的伸縮量達到最大時,且垂直于地面時的傾斜角度,當機器人的實際傾斜角度小于最大傾斜角度時,即伸縮臂長度未達到最大時,驅(qū)動電機控制伸縮臂伸長,沿著伸縮臂方向產(chǎn)生加速度,從而使機器人達到直立狀態(tài)。
(3)長度可變化的轉(zhuǎn)動軸支撐臂,驅(qū)動電機根據(jù)傾斜角度控制支撐臂圍繞轉(zhuǎn)動軸旋轉(zhuǎn),且控制伸縮臂的伸縮量,調(diào)整支撐臂的長短,以對機器人進行支撐。
需要說明的是,當支撐臂包括伸縮臂時,本發(fā)明提供的機器人防傾倒裝置還可包括紅外測距裝置,可以根據(jù)傾倒距離調(diào)整伸縮臂的伸縮量。
進一步地,還可以對上述任一實施方案進行優(yōu)化,為了使發(fā)生傾倒的機器人恢復(fù)正常狀態(tài),所述機器人防傾倒裝置還包括行走足和用于根據(jù)所述傾斜角度調(diào)整所述行走足的移動狀態(tài)的自平衡驅(qū)動模塊,其中,所述移動狀態(tài)包括行走足移動方向和行走足加速度,所述傾斜角度在所述行走足的移動平面上分量與所述行走足移動方向呈反相關(guān),所述機器人在所述行走足的移動平面上加速度分量與所述行走足加速度呈反相關(guān)。
可以理解的是,機器人的行走足包括輪子、履帶和驅(qū)動腿。
下面以輪子為例進行說明,參見圖4所示,類似平衡車的單輪機器人,且該機器人的支撐臂為長度不可變化轉(zhuǎn)動軸支撐臂,依靠地面摩擦力提供動力,機器人為了保持平衡輪子與身體的傾斜做相對運動,在水平方向產(chǎn)生加速度a,若等效質(zhì)心位置,這個加速度在垂直方向的加速度分量acosα等于重心的傾角的gsinα,即:
其中k為驅(qū)動電機減速比,tmax為驅(qū)動電機的最大扭矩,r為輪子半徑,m為機器人質(zhì)量,α為機器人傾斜角度,g為重力加速度。
由于驅(qū)動電機減速比,驅(qū)動電機的最大扭矩,輪子半徑,機器人質(zhì)量固定,因此可以計算出理論的最大自平衡傾角。實際因打滑或者地面摩擦力無法完全反作用于輪子的動力,因此實際的最大自平衡傾角會比計算得到的最大自平衡傾角偏小。
當機器人傾角大于最大自平衡傾角,控制支撐臂電機,將支撐臂調(diào)整到防摔姿勢,由支撐臂接觸到地面,然后支撐臂支撐身體調(diào)整角度到自平衡傾角范圍之內(nèi),調(diào)整到自平衡,同時,自平衡驅(qū)動模塊驅(qū)動輪子反相轉(zhuǎn)動,幫助機器人直立。當然,也可以不采用自平衡驅(qū)動模塊驅(qū)動輪子。
當機器人處于臥倒狀態(tài),輪子抱死,通過支撐臂將身體支撐到機器人傾角小于最大自平衡傾角,驅(qū)動電機加速,使機器人處于直立狀態(tài)同時,自平衡驅(qū)動模塊驅(qū)動輪子反相轉(zhuǎn)動,幫助機器人直立。當然,也可以不采用自平衡驅(qū)動模塊驅(qū)動輪子。
機器人存在最大傾斜角度,即支撐臂垂直于地面時的傾斜角度α等于最大自平衡傾角,支撐臂長度l為機器人底端至旋轉(zhuǎn)軸的高度l的余弦值,即l=lcosα。
本發(fā)明還提供了一種防傾倒機器人,包括上述的機器人防傾倒裝置。
本發(fā)明還提供了一種機器人防傾倒方法,參見圖5所示,包括步驟s11至s12,其中:
步驟s11:獲取機器人的傾斜角度;
機器人在實際應(yīng)用中出現(xiàn)傾倒狀態(tài),通常情況表現(xiàn)為機器人上端位移比下端位移大,即重心相對于支撐點在水平方向和豎直方向均出現(xiàn)位移,即重心相對于支撐點旋轉(zhuǎn)從而產(chǎn)生傾斜角度,機器人重心發(fā)生位移是判斷機器人發(fā)生傾倒的必要條件,因此可以通過獲取傾斜角度來判斷機器人是否發(fā)生傾倒。
通常情況下,重心由于受到重力的原因在豎直方向發(fā)生的位移方向朝下,但不排除在特殊的場合下重心在豎直方向發(fā)生的位移方向朝上,例如,機器人利用電磁鐵的磁力吸附在物體外表面,此時,重心在豎直方向發(fā)生的位移方向可能朝上。
當然,機器人重心發(fā)生位移并不是機器人發(fā)生傾倒的必要條件,重心在水平方向和豎直方向均出現(xiàn)位移也可能是機器人正常移動所導(dǎo)致的,機器人傾倒最直觀的表現(xiàn)為機器人上部位移大于機器人下部位移。
需要說明的是,在上述對機器人傾倒的描述中,機器人和機器人支撐面兩者均被視為了剛體,即機器人在傾倒時,機器人的支撐點和機器人支撐面均未發(fā)生形變。
需要進一步說明的是,在實際中,機器人和機器人支撐面均為非剛體,機器人傾倒時,由于部分機器人的外殼材料硬度可能小于機器人支撐面的硬度,例如,機器人的外殼材料為塑料或鋁,機器人支撐面為混凝土,機器人在傾倒時外殼接觸支撐面,在機器人重量的作用下,外殼發(fā)生形變,此時,機器人傾倒不能僅僅被視作重心相對機器人外殼未發(fā)生形變的支撐點發(fā)生旋轉(zhuǎn)。
可以理解的是,此處的外殼形變包括彈性形變和非彈性形變。非彈性形變意味著機器人發(fā)生損壞,由于在實際應(yīng)用中很少出現(xiàn)中機器人傾倒即發(fā)生損壞的設(shè)計,因此,此處的外殼形變主要為彈性形變,而當外殼形變?yōu)榉菑椥孕巫儠r,本發(fā)明則可避免機器人進一步損壞。
同理,在實際中存在機器人的外殼材料硬度大于機器人支撐面的硬度的情況,例如機器人外殼材料為鋼鐵,機器人支撐面為沙地,機器人在傾倒時外殼接觸支撐面,在機器人重量的作用下,支撐面即沙地發(fā)生形變,支撐點發(fā)生位移,此時,機器人傾倒也不能僅僅被視作重心相對支撐面未發(fā)生形變的支撐點發(fā)生旋轉(zhuǎn)。
在將機器人和機器人的支撐面兩者視作非剛體時,機器人和機器人支撐面均存在應(yīng)力,因此機器人和機器人支撐面均會發(fā)生形變。
機器人發(fā)生傾倒時,支撐點可以為機器人的行走足,該行走足同樣可被視為剛體或非剛體,分析原理與上述外殼相同,在此不再贅述。
在現(xiàn)有技術(shù)中,獲取傾斜角度獲取可通過陀螺儀來實現(xiàn),本發(fā)明提供兩種具體的實施方案。
實施方案一:
通過獲取所述機器人的傾斜角速度,并對所述傾斜角速度進行積分,得到所述傾斜角度。
本實施方案中,將機器人和機器人的支撐面兩者均視為了剛體,對傾斜角速度進行積分計算,從而得到的傾斜角度,適用于一些低成本且無需高精度的玩具機器人。
在實際應(yīng)用中,機器人和機器人的支撐面并非剛體,且陀螺儀本身存在誤差,本實施方案會導(dǎo)致誤差被累積放大,無法形成正確的角度信號,因此本發(fā)明對傾斜角度獲取模塊還提供下述實施方案。
實施方案二:
通過對獲取的傾斜角速度進行積分,再利用對換算角度進行積分得到換算角度進行修正,從而得到機器人的傾斜角度,具體包括:
對獲取的所述機器人的傾斜角速度進行積分,得到初始傾斜角度;對獲取的所述機器人的傾斜加速度進行積分,得到換算角度;將所述初始傾斜角度和所述換算角度進行比較,得到誤差角度;按照預(yù)設(shè)比例對所述誤差角度進行放大,得到修正角度;將所述修正角度與所述初始傾斜角度進行疊加計算,得到所述傾斜角度。
步驟s12:判斷所述傾斜角度是否大于預(yù)設(shè)值,若是,則調(diào)整支撐臂的位置,以對所述機器人進行支撐,若否,則重新獲取傾斜角度。
可以理解的是,存在一個最大自平衡傾角,當傾斜角度小于或等于最大自平衡傾角時,物體只會來回擺動,最終因為摩擦阻力,減少擺動幅度,即減少傾倒角度,直至重新處于穩(wěn)定狀態(tài);當傾斜角度大于最大自平衡傾角時,物體則會傾倒。因此,處理器對傾斜角度進行判斷,若小于或等于預(yù)設(shè)值,則重新獲取傾斜角度,若大于預(yù)設(shè)值,則表明機器人即將摔倒,需要支撐臂對機器人進行支撐,則調(diào)整支撐臂的位置。
需要說明的是,預(yù)設(shè)值與最大自平衡傾角可以相同,也可以不同。
由于調(diào)整支撐臂位置本身需要時間,因此將預(yù)設(shè)值設(shè)置成小于最大自平衡傾角,可以避免出現(xiàn)機器人傾倒速度大于支撐臂調(diào)整速度的情況,當然,在實際應(yīng)用中,通常情況下,機器人的傾倒速度不會超過支撐臂的調(diào)整速度。
在實際應(yīng)用中,通常情況下,支撐臂的調(diào)整速度遠遠大于機器人的傾倒速度,因此也可以將預(yù)設(shè)值設(shè)置成大于最大自平衡傾角。
需要進一步說明的是,機器人的傾倒速度超過支撐臂的調(diào)整速度的情況下,大多數(shù)為機器人受了外力,且在該外力下機器人所產(chǎn)生的加速度遠遠大于驅(qū)動電機的加速度,該情況不在本發(fā)明所討論的范圍內(nèi)。
本發(fā)明中提供的支撐臂的長度或所述支撐臂與所述機器人之間的角度可調(diào)整。
支撐臂包括轉(zhuǎn)動軸和伸縮臂中的至少一種,其中所述轉(zhuǎn)動軸用于調(diào)整所述支撐臂與所述機器人之間的角度,所述伸縮臂用于調(diào)整所述支撐臂的長度。
當然,在實際應(yīng)用中,可以具體包括以下三種形式的支撐臂:
(1)長度不可變化的轉(zhuǎn)動軸支撐臂,驅(qū)動電機驅(qū)動支撐臂圍繞轉(zhuǎn)動軸旋轉(zhuǎn),將支撐臂調(diào)整至與傾斜角度相應(yīng)的支撐位置。
采用長度不可變化的轉(zhuǎn)動軸支撐臂,編碼器根據(jù)編碼器工作信號輸出預(yù)設(shè)的電機控制信號,此時,機器人存在最大傾斜角度,即支撐臂垂直于地面時的傾斜角度,當機器人的實際傾斜角度小于最大傾斜角度時,驅(qū)動電機控制支撐臂向機器人方向旋轉(zhuǎn),從而使機器人達到直立狀態(tài)。
(2)長度可變化不可轉(zhuǎn)動的固定支撐臂,即支撐臂具有伸縮臂,驅(qū)動電機根據(jù)傾斜角度調(diào)整伸縮臂的伸縮量,即調(diào)整支撐臂的長短,從而對機器人進行支撐。
采用長度可變化不可轉(zhuǎn)動的固定支撐臂時,機器人存在最大傾斜角度,即伸縮臂的伸縮量達到最大時,且垂直于地面時的傾斜角度,當機器人的實際傾斜角度小于最大傾斜角度時,即伸縮臂長度未達到最大時,驅(qū)動電機控制伸縮臂伸長,沿著伸縮臂方向產(chǎn)生加速度,從而使機器人達到直立狀態(tài)。
(3)長度可變化的轉(zhuǎn)動軸支撐臂,驅(qū)動電機根據(jù)傾斜角度控制支撐臂圍繞轉(zhuǎn)動軸旋轉(zhuǎn),且控制伸縮臂的伸縮量,調(diào)整支撐臂的長短,以對機器人進行支撐。
需要說明的是,當支撐臂包括伸縮臂時,還可獲取傾倒距離,從而根據(jù)傾倒距離調(diào)整伸縮臂的伸縮量。
參見圖4所示,下面以類似平衡車的單輪機器人來進行說明,且該機器人的支撐臂為長度不可變化轉(zhuǎn)動軸支撐臂,依靠地面摩擦力提供動力,機器人為了保持平衡輪子與身體的傾斜做相對運動,在水平方向產(chǎn)生加速度a,若等效質(zhì)心位置,這個加速度在垂直方向的加速度分量acosα等于重心的傾角的gsinα,即:
其中k為驅(qū)動電機減速比,tmax為驅(qū)動電機的最大扭矩,r為輪子半徑,m為機器人質(zhì)量,α為機器人傾斜角度,g為重力加速度。
由于驅(qū)動電機減速比,驅(qū)動電機的最大扭矩,輪子半徑,機器人質(zhì)量固定,因此可以計算出理論的最大自平衡傾角。實際因打滑或者地面摩擦力無法完全反作用于輪子的動力,因此實際的最大自平衡傾角會比計算得到的最大自平衡傾角偏小。
當機器人傾角大于最大自平衡傾角,控制支撐臂電機,將支撐臂調(diào)整到防摔姿勢,由支撐臂接觸到地面,然后支撐臂支撐身體調(diào)整角度到自平衡傾角范圍之內(nèi),調(diào)整到自平衡,同時,自平衡驅(qū)動模塊驅(qū)動輪子反相轉(zhuǎn)動,幫助機器人直立。當然,也可以不采用自平衡驅(qū)動模塊驅(qū)動輪子。
當機器人處于臥倒狀態(tài),輪子抱死,通過支撐臂將身體支撐到機器人傾角小于最大自平衡傾角,驅(qū)動電機加速,使機器人處于直立狀態(tài)同時,自平衡驅(qū)動模塊驅(qū)動輪子反相轉(zhuǎn)動,幫助機器人直立。當然,也可以不采用自平衡驅(qū)動模塊驅(qū)動輪子。
機器人存在最大傾斜角度,即支撐臂垂直于地面時的傾斜角度α等于最大自平衡傾角,支撐臂長度l為機器人底端至旋轉(zhuǎn)軸的高度l的余弦值,即l=lcosα。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種機器人防傾倒方法、裝置及防傾倒機器人進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。