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