書房內(nèi)的姿態(tài)解算——0.前言
????????我自己其實是一個物理專業(yè)出身,專業(yè)是凝聚態(tài)。按理說物理相關(guān)的知識也應(yīng)該是超過大多數(shù)認(rèn)了,但是很可惜的,剛體力學(xué)一直學(xué)的不太好。導(dǎo)致對物體的旋轉(zhuǎn)和轉(zhuǎn)動這部分的內(nèi)容一直似懂非懂。最近剛好有時間,就打算做一個姿態(tài)模擬的軟件。但是真動手就會發(fā)現(xiàn),想完全理解背后的原理,并非那么簡單。
????????網(wǎng)上也查看了不少資料,但是發(fā)現(xiàn)居然整個網(wǎng)絡(luò)上,從國內(nèi)到國外,幾乎沒有一篇能把這玩意說清楚的人,有些是會的吧,但是故弄玄虛,有些確實就是不懂,只是會做,自然更談不上說的清。
????????索性自己來寫一個從0開始的姿態(tài)解算系列文章,文集試圖從單個的 mpu9250芯片?開始,從物理和數(shù)學(xué)原理上,完整的得出剛體的姿態(tài)。? ?
????????當(dāng)中可能遇到各種各樣的問題,而我則會使用在電子和計算領(lǐng)域一些常用的方法予以解決,當(dāng)然這些未必都是最新最好的技術(shù),僅僅是帶領(lǐng)入門,重要的是肯定都是真正理解了才會說。功能上還是先實現(xiàn),再優(yōu)化。
????????不得不說,這段時間的學(xué)習(xí),最大的感觸就是網(wǎng)上的大佬,絕大多數(shù)未必真是大佬,天下程序一大抄,很多都是在別人的基礎(chǔ)上改改,甚至改都不改就當(dāng)作自己的東西。想理解背后的原理,需要善于動腦和樂于動腦,其中數(shù)學(xué)是必不可少的知識。真的想理解,還是拿起筆,自己動手吧。
????????另外相比起各種網(wǎng)文,書籍是更嚴(yán)謹(jǐn)?shù)墨@取知識的途徑,一般都是由各個專業(yè)領(lǐng)域混跡了半輩子的前輩,認(rèn)真花時間花精力寫成。雖然互抄現(xiàn)象也存在,但是總歸在知識上更成體系。
????????ps:mpu9250 是一個9軸傳感器,包含三軸陀螺儀?+ 三軸加速度+三軸磁場。
????????本文集的部分知識可以無改動的應(yīng)用于更常見的mpu6050模塊。后者僅包含三軸陀螺儀和三軸加速度計,不包含磁場模塊。因此用來測量航向角時,會無法校準(zhǔn),導(dǎo)致航向角隨著時間推移產(chǎn)生較大偏差。因此,對于mpu6050模塊的姿態(tài)解算源碼通常只會得出俯仰角和橫滾角。
????????我所使用的mpu9250集成于GY-91模塊,額外增加了一個BMP280模塊,用以測量氣壓,從而獲得高度信息。不過這個暫時不去研究。