定位导航——旋转矩阵,IMU,左右乘
我們先明確一下這里所說的一些概念
IMU
IMU全稱Inertial Measurement Unit,慣性測量單元,主要用來檢測和測量加速度與旋轉運動的傳感器。起初只是用來測量角度的,后來隨著其他傳感器的加入,它的功能變得多樣了,而很多情況下,其名稱還是IMU,因此這也導致了:有的人認為IMU只能計算一些慣性力,進而獲得旋轉角度(加速度計);有些人發現有些叫IMU的產品還可以算偏航角(加速度計+磁力計);而更有甚者,IMU居然還能獲得經緯度(加速度計+磁力計+GNSS)
1)IMU包含加速度計和磁力計
我們先設想,我們的加速度計是一個正方體,里面放置一個小球。初始狀態是平方放在桌面,重力加速度g是垂直于平面的,即四周沒有受力,其實我們的IMU沒有繞x軸和y軸旋轉。當我們繞x軸旋轉后,我們會看到g被分攤到兩個平面,原本不受力的垂直于y方面的平面有了一個力,原本垂直于z方面的平面由原來的受力g變為了小于g的力。
通過這些力的分析,我們就可以算出我們的傾角。
這里記住,加速度計并非是我們來計算我們運動物體的加速度,而是在物體勻速運動或者靜止時,我們通過算出重力對受力平面的影響進而算出角度。
這里還要注意,偏航角定義為x軸投影到g垂直的平面后,與北方向的夾角,因此該角度和g無關,即加速度計無法獲得偏航角。
俯仰角,橫滾角,yaw角:來自加速度計
偏航角:磁力計
這里要注意,偏航角已經涉及了本體與地球北方向的夾角,即
如果你單純研究機體,那么你不用偏航角,不用磁力計
如果你還需要把機體搞到大地坐標系,那么你需要偏航角
2)廠家為其集成了GNSS
GNSS(全球導航為習慣系統),可用于提供高經緯度信息
這里還涉及了一個坐標系轉換的考慮
IMU坐標系的坐標原點在其質心
GNSS坐標系的坐標原點在其天線(蘑菇頭)的中心位置
所以如果給IMU集成GNSS,需要將GNSS天線坐標系下獲得的經緯度轉換到IMU坐標系,以實現整體的統一。
旋轉矩陣
首先我們先明確我們為什么要用旋轉矩陣
因為旋轉一個角度,它的旋轉結果只有一種
但是旋轉兩個角度,它們的組合就會出現兩種
R1R2;R2R1
如果三個角度,則會出現更多
一般情況下,三維的旋轉矩陣是不滿足交換律的,先繞哪個軸轉,再繞哪個軸轉,結果是不一樣的
直接拿我們的俯仰,橫滾和偏航為例,這三個角度,都是我們的機體坐標系與參考坐標系(大地坐標系)的夾角,這三個夾角都有明確的定義,和是我們自己想,我們會發現,這些角度的定義都是繞著機體坐標系定義的,而并非是參考坐標系。
俯仰:以飛機的翅膀為軸
橫滾:以飛機的頭為軸
偏航:飛機的航向與北方向的夾角
?????,前兩個角都是以飛機為參考的,最后一個不是了???
其實這里定義的挺亂的
準確來說,我們在研究姿態時,是不應該引入偏航角的,而我們要用的是yaw角
偏航角是
左乘右乘——純屬坑人,看下面就知道了
繞z旋轉如上圖,(x,y,z)是我們當前需要旋轉的坐標系的坐標點
繞z軸旋轉,z保持不變,從旋轉矩陣也可以看出,它讓我們的z保持不變
然后我們再繞xnow軸旋轉,如上圖,(xnow,ynow,z)是我們繞z旋轉后的新坐標系下的坐標點
繞xnow軸旋轉,x保持不變,從旋轉矩陣也可以看出,xnow沒有發生變化。
這說明了什么?乘上一個旋轉矩陣,其旋轉軸都是我們當前坐標系的軸。
記住,這是當前坐標系。。。。。。。。!!!!!!!!!
這樣一下就通順了,你會發現,很多公司給出的旋轉矩陣都是最后再轉偏航角,因為前兩次旋轉把當前坐標系的xy0平面轉換到了與世界坐標系的XY0平面平行,這個平行成立之后,那么
偏航角直接可以繞著當前坐標系的z軸旋轉了。
偏航角≠yaw
按偏航角轉過來,你會發現,你的x軸指向了北
按yaw轉過來,你會發現,你的x軸指向沒有實際的物理意義
旋轉矩陣做了什么?
可以看到,我們的用途不同,旋轉矩陣對于點的意義有所不同。
這也就是,在學習機器人運動時,我們聽到的左乘為固定坐標系,右乘為變化坐標系,其實說的都是點的運動,真實的原坐標系并未發生變化,只是點動了,可能會生成新的坐標系作為新的參考,就有了右乘。
在點的觀測時,我們只考慮坐標系的變化,它的變化都是繞當前坐標系轉動,都是乘在左邊,而并非大家說的左右乘。
這里也就好說明了,都是按照當前矩陣旋轉,因此那些先轉俯仰后轉橫滾和先轉橫滾后轉俯仰的,兩者可能結果相同,但是角度的大小肯定不一致,因此,用哪家的imu必須問清楚,其旋轉矩陣怎么定義的,才能使用。
角度正負問題
正常右手坐標系,逆時針的都為正
看清商家的坐標系定義和角度定義,轉換到和你自己坐標系匹配的關系,然后再求解。
關于矩陣中是-sinθ還是+sinθ,還有必要再談一下
1)下圖這一套旋轉矩陣,準確來說應該是回退旋轉矩陣
繞X和Z的轉動都是右上角為負值
θ的正負是按如何轉過來的定義
上式從左到右為慣性坐標系到物體坐標系,做了哪些旋轉
1)拿飛機為例子,平地的飛機到空中的飛機,需要如何操作。
下式可以表示為飛機先繞大地的z軸轉了γ角,即飛機偏航了γ角;然后繞y軸轉了β角,即飛機逆時針橫滾了β角,;最后飛機繞x軸轉了α角,即飛機揚起了頭,揚了α角。
上式從右到左為物體坐標系回退到慣性坐標系,需要回退的步驟
這時分清楚α、β和γ,哪個是當前坐標系定義的,很顯然,飛機從地面到空中最后一次用的α角,那么從空中到地面第一個就要用該角,然后轉β角,最后轉γ角。
這里可能會有人異或,角度不應該是負值么,回退應該是往回轉的?
這里需要明白一點
坐標點的對應:
觀測的點是絕對的,它對于世界來說是不動的;
點和坐標系的關系是相對的,坐標系順時針轉,點就逆時針轉。
這里轉坐標系是順時針轉了α,那么點就要逆時針轉α,即上式的正值。
總結
以上是生活随笔為你收集整理的定位导航——旋转矩阵,IMU,左右乘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据认知
- 下一篇: 安卓开发实现获取扫码枪扫码二维码、条形码