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