【導讀】機器人要想完成特定任務,就一定要有所動作,這個時候,必須掌握如何控制機器人走直線、曲線,從而使機器人移動到我們想做任務的地方。機器人走直線,難嗎?陀螺儀表示,少了它機器人連直線都走不了。
我們看到一些先進的機器人,走在路上非常穩(wěn),不僅在平地上行動不會摔跤,走在坑洼里也可以極好地保持平衡。
卻有另一些機器人走路歪歪扭扭,在平地上都可以把自己摔一跤,因為它不知道自身的平衡狀態(tài),一步歪,步步歪。
再看 RoboMaster 的機器人比賽,雖然機器人都有四個輪子,不容易摔倒,但要隨心所欲地實現(xiàn)跑直線、轉(zhuǎn)彎漂移,也需要很好地控制自己的平衡。
因為機器人的控制系統(tǒng)會有誤差,所以假設你讓輪子轉(zhuǎn) 5 圈,可能有一個輪子只轉(zhuǎn)了 4 圈。還有機械安裝上的誤差,以及輪子磨損造成了不同的摩擦力,會導致機器人越跑越歪。
在 PID 科普的文章中,我們學過反饋控制:《什么是機器人比賽中的PID控制?》。反饋控制的好處就是,假設有傳感器去測量實際數(shù)據(jù),那就有辦法消除誤差,讓實際數(shù)據(jù)穩(wěn)定在期望的數(shù)據(jù)上。
所以要讓機器人只有察覺到誤差,及時消除誤差,才能隨心所欲地奔跑。那如何發(fā)現(xiàn)誤差呢?
假設目標是讓機器人走出一條直線。機器人走得歪歪扭扭,是因為各種擾動使它發(fā)生了繞著垂直于地面方向的旋轉(zhuǎn),也就是頭的方向左右擺動。因此,要尋找一種傳感器來測量機器人垂直于地面方向的旋轉(zhuǎn)量,然后消除這個旋轉(zhuǎn)。
產(chǎn)生旋轉(zhuǎn)
尋找適合的傳感器
一般來說,找尋傳感器會從物理的原理上找。高中物理分為力、熱、聲、光、電和磁。先看力學,物體在自旋時會有一個向心力 F,向心力的公式為:
可以看到,雖然 F 和 ω(角速度)相關,似乎可以通過 F 求得 ω,但 F 也和 r(旋轉(zhuǎn)的半徑)相關,而這個 r 無法測量,所以向心力這個思路不行。
除了向心力,還有另一種力叫做科里奧利力。如果旋轉(zhuǎn)物體中,有質(zhì)點由于慣性進行了直線運動,相對于旋轉(zhuǎn)物體產(chǎn)生了偏移,這個力就會產(chǎn)生。它的公式為:
v 是內(nèi)部產(chǎn)生的可測量的震動??评飱W利力與向心力不同,它和旋轉(zhuǎn)的半徑?jīng)]有關系,所以這個思路可行。
現(xiàn)實中就有一種傳感器利用這個原理測量角速度,這種傳感器叫 MEMS 陀螺儀(微機械陀螺儀)。MEMS 陀螺儀測得角速度后,將角速度進行積分,就可以得到相對角度(參考系為自身的某一狀態(tài),比如和剛啟動時的狀態(tài)),最后再用 PID 修正角度,達到直行的效果。
陀螺儀
我們都知道,凡是測量都總是會有誤差,靠積分獲得的角度在一定時間內(nèi)雖然是可靠的,而積分將誤差同樣累計,在一段時間后這個角度也會越來越不準,這個時間的長短基本正相關于器件的價格。
利用類似原理的還有機械式陀螺儀和光纖陀螺儀。機械式陀螺儀是唯一一個真的有個陀螺在轉(zhuǎn)的傳感器。而在光學中,一般是基于薩格納克(Sagnac)效應的陀螺。
實際上,這幾種傳感器更準確的叫法應該是:角速度傳感器。但由于各種原因,現(xiàn)在一般都叫陀螺儀。結(jié)合成本和測量方法,一般選用 MEMS 陀螺儀。
獲取旋轉(zhuǎn)角度
以 ADIS16470 陀螺儀為例,講解陀螺儀如何獲取角度。
ADIS16470 陀螺儀
陀螺儀可以測出角速度,把角速度進行積分,就可以獲得角度。如果想獲得實時的角度,就要知道每次測量的時間間隔,利用時間和角速度再積分,就可以得到實時的角度了。
獲得時間間隔的方法有兩種:
1、裝一個計時器
計時器計算時間間隔,再告知陀螺儀。但這樣會有時間延遲。
2、陀螺儀自己計時
ADIS16470 陀螺儀有計時功能,自己給自己匯報時間,不會有延遲誤差。
陀螺儀的誤差
測量總會有誤差,陀螺儀的誤差產(chǎn)生來自于各種外力干擾和溫度變化。誤差會導致用陀螺儀修正過的機器人也在左右擺動,走不出平滑的線,或者靜止時會慢慢地自旋,這種現(xiàn)象叫做漂移。
這點誤差對于地面機器人的影響可能不大,但是對于無人機或者其他精度要求超高的機器人來說,稍微有點偏差都很致命。
如何消除誤差 溫度因素的誤差
溫度導致的漂移簡稱溫漂,主要原因是內(nèi)部測量器件會隨著溫度的變化而變化,一般有兩種方法解決:
1、硬件式
在陀螺儀旁邊加一個大電阻進行加熱,強制陀螺儀達到某一個溫度,就可以保持恒溫狀態(tài);
2、軟件式
先測量不同溫度下的溫漂情況,然后進行擬合和補償,也就是溫漂標定,使陀螺儀在不同的溫度下有不同的擬合和補償。
其他因素的誤差
除了測量相對角度,還有傳感器可以測量絕對角度(參考系為大地坐標系)。可以用絕對角度和相對角度進行互補來矯正角度。
另一種傳感器叫地磁計,相當于電子式的指南針,可以指出地磁場的方向。這種傳感器測量的是自己與地磁場的角度,也就是絕對角度。
由于磁場環(huán)境非常的敏感,電機轉(zhuǎn)動和房屋的鋼筋結(jié)構(gòu)都會對磁場造成影響,所以磁場的角度一般是不準的,但是在同一環(huán)境內(nèi)是穩(wěn)定的。
可以得知,陀螺儀適合短時和動態(tài)的,長時間下會有漂移;磁力計適合長時和靜態(tài)的,動態(tài)情況下會有誤差。各取所長,將兩個數(shù)據(jù)進行融合,并使用比較合適的濾波和算法融合手段,最終得到準確的角度值。這個過程也就是姿態(tài)解算。
數(shù)據(jù)融合
一般用卡爾曼濾波器進行解算。除了卡爾曼濾波算法,還有其他的融合算法,比如一階的互補濾波、二階互補濾波和權(quán)重參數(shù)自適應互補濾波等等。它們的復雜程度不同,要根據(jù)實際需求選擇適合的算法。
卡爾曼濾波
對于角度值的求取解算,一個傳感器往往是無能為力的,需要多個傳感器取長補短。而陀螺儀數(shù)據(jù)就是最核心的部分,其他傳感器基本是為了抑制陀螺儀的漂移而打輔助。
在實際的工程中,測量一個物體的姿態(tài)是非常常見的需求,所以很多產(chǎn)品都會把多種傳感器比如陀螺儀、加速度計、電子羅盤等等集成到一個模塊上,不需要一一安裝,是不是方便又體貼呀。
集成多個傳感器的模塊
通過上述一系列方法,我們獲得了一個物體相對于起始位置的角度,就可以利用 PID 反饋控制讓機器人隨心所欲地奔跑了。
還可以把這樣一套傳感器安裝在云臺上,將底盤的運動視為擾動。在底盤來回抖動時,云臺會以地面為參考系保持靜止,就可以單獨地控制云臺。
云臺靜止,機身扭動
總而言之,機器人走直線或者像上圖一樣扭腰,看起來像是一個很簡單的事情,但是影響因素有很多,每一步的實現(xiàn)都需要全面考量,只有選擇了合適的傳感器,才能更好地解決問題。
本期作者 華南理工大學 華南虎 RoboMaster 校機器人隊
推薦閱讀: