組合導航姿態解算學習筆記_第1頁
組合導航姿態解算學習筆記_第2頁
組合導航姿態解算學習筆記_第3頁
組合導航姿態解算學習筆記_第4頁
組合導航姿態解算學習筆記_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2015-3-9 1. 參考丁君AHRS航姿解算中的兩種濾波方法的比較研究,發現使用加速度的數據可以解算橫滾角(roll)和俯仰角(pitch).2. 因開發板上單片機無ADC,無法對購買模塊進行處理,故僅僅參考附帶的程序。希望可以將adxl335模塊的示例程序轉移到mpu6050中,陀螺儀的數據暫時不用,僅僅使用加速度計的數據進行兩個角度的解算。3. 老師想讓我研究載體做圓周運動時加速度的解算,但是我想先從靜態的開始,我覺得靜態下的測試是基礎,上來就研究最難的我接受不了。所以我想先用三軸的加速度數據先把靜態下的姿態解算出來。4. 我發現如果我僅僅可以解算靜態下的姿態,無法解決載體做回轉運動下

2、的姿態我還是完不成本科生的任務。因為本科生的任務是汽車姿態測量,所以光靜止是不夠的。2015-3-11 5. 校正這一環節是我所沒有考慮到的,因為有偏差還有靈敏度不匹配。但前提是我要先解算出來。6. 論文不應該是最后完成的,論文是邊做邊寫的,最后應該是是復制粘貼修改格式和布局而已。7.8. 可以嘗試將adxl335的示例程序(淘寶模塊)移植到MPU6050中去解算橫滾角和俯仰角。2015-3-12 1. 為什么示例程序產生的六軸數據跟我想象的不一樣那呢?加速度計的數據不是9.8,沒有小數點。但是我發現買的arm模塊數據也不是9.8,而且我用手機里的磁鐵去干擾磁強計時,發現磁強計的數據發生了很大

3、的變化,如果真的要使用磁強計一定要注意周圍的磁場干擾。看來加速度計的數據是可以用的,因為別人都可以做到。為什么示例程序中減去偏移量,而我卻不能減去偏移量,比如+x的加速度最大值是16000,減去之后,在+x該等于零時,又出現了-16000,這是我更不想看到的。2. extern float atan2 (float y, float x);程序格式又搞錯了,人家不是atan2 (float y/float x),否則很容易出現錯誤too many actual parameters.3.現在的狀態是不能進行全姿態解算,x軸的顯示范圍是(90º270º),和我想要的范圍(-9

4、0º+90º)正好差了180º,但是減去還不行,減去后串口上只顯示一個負號。還好汽車達不到那個角度±90º,哪怕是在汽車測試中,但是飛機能達到啊。所以這個問題最終還是要解決的。我想先把一個角度解算出來,然后去推廣。我在主函數里改動pitch=(int)(atan(ratio)*180)/3.1415926)+180);這一句不行,后來我改動void lcd_printf(char *s,int temp_data)函數里面,在第一句我加上了temp_data-=180;然后俯仰角就輸出正常了,也不知道為什么。4. uchar是一個8位無符號數,

5、表示范圍0到255,而uint是十六位無符號數,表示范圍0到65535.但是要注意的是8位單片機。(摘自網絡)5. 現在能解一個俯仰角,下一個是橫滾角。我想這兩個角的性質應該是比較接近的。但是論文不是這么寫的。橫滾角也解算出來了,但是航向角好像不能通過加速度計解算。2015-3-13 1.因為航向角解算不出,所以找出MPU9150,希望采用其中的磁強計來解算磁航向角。接下來下載相關datasheet并閱讀。2.現在的解算方法還不涉及迭代,所以現在還沒出現那種隨著時間的推移,誤差累積越來越嚴重的情況。當前的解算與值與當前的采集數據有關。2015年3月15日1. 為什么不直接搞DSP直接跳過ARM

6、那一關,害怕,害怕就去學。2. 老師可能需要我做一個松耦合組合導航,先讓我去研究一下算法。然后再去用硬件實現。該整理資料了,整理完給老師一份,然后再說設計硬件編程的事。等我把航向角結算出來后后立馬去研究組合導航算法。方向錯了,停止就是前進,否則以后都不能和老師交流了。這是很危險的。我是否應該聽老師的,先搞算法,然后再去考慮接下來的實現。3. 網上的GPS模塊沒見有遵守I2C通信協議的,都是一個收一個發送,這樣我還真得考慮數據同步的問題。2015年3月16日1.我終于知道為什么用示例程序在串口上顯示的數據為什么和我想象的那么不一樣了,因為你在初始化MPU6050的時候會對陀螺儀和加速度進行一些配

7、置,其中包括一個叫做full scale range的配置,就拿陀螺儀來說如果你將這個范圍配置在,那么這個范圍所對應的sensitivity scale factor就是16.4。感謝唐朔飛老師的計算機組成原理,感謝日本Asahi Kasei的數據手冊,讓我在看補數、補碼的過程中,讓我在看到日本磁強計的測量數據與磁通密度的對比中讓我想到了陀螺儀和加速度計也是這樣的。謝謝你們。一個好的數據手冊就應該讓user看明白。2.怎樣才能在陀螺儀的寄存器中的16bit數據中看出那個表示小數點?都不表示小數點,只有通過sensitivity scale factor之后才會產生小數點,這時的數據才是精確地。

8、好了,這下可以全身心地投入到算法研究中去了,傳感器輸出的就是,加速度數據和角速度數據,接下來你要做的就是研究一個適合車輛檢測的算法了。3.MPU6050的程序遷移到9150中沒有發現問題,接下來采集磁強計的數據。僅僅修改了取數據的順序,加入了磁強計各個軸數據寄存器地址,沒有使用WIA(Device ID)。采集成功后開始解算航向角,接下來需要考慮的是磁強計的三軸正方向與GYRO&ACC是不同的,所以在解算時提前要考慮好,GYRO&ACC的俯仰角和橫滾角是什么,方向是怎么定義的,然后考慮相對于磁強計這些角度和方向又是如何。4.定義繞x軸旋轉為橫滾角,繞y軸為俯仰角,繞z軸為航向角

9、。5.Mpu9150顯示9軸原始數據時出現問題,磁強計的數據不發生改變。我懷疑是磁強計的CNTL寄存器沒有配置,導致傳感器處于掉電模式。問題依然沒有解決。6.現在的問題是和陀螺儀加速計在一起采集時,數據能采集出來,但是值一直保持不變,單獨被采集時壓根采集不出來。顯示-00001,這個值哪怕不連接傳感器都能做到。2015年3月17日1. 磁強計與GYRO&ACC使用的slaveaddress好像是一樣的,這樣讀出的數據雖然不變但是不是-00001了,三軸讀出的數據分別是24354,-01549,00336。數據是一直往上傳的。難道是現在磁強計現在運行在單次測量模式?2. 我覺得自己得好好

10、處理一下磁強計的數據,因為磁強計的數據擁有四個符號位。H=(Single_ReadI2C(REG_Address)&0x8f;與上0x8f后4位符號位只保留一位,值依然沒有改變,處理后的數據為03874,-30221,00336。但是這不能保證都是正數的補碼,所以我決定建立一個數組,長度為13.3.如何舍棄一個二進制數的前三位?不過我又發現多個符號位不影響從二進制轉換為十進制。4. IICwriteByte(0xd0,0x37,0x02);         /0xd0是mpu9150的slaveaddress,0x3

11、7是旁路使能配置寄存器55,配置為0x02說明處理器能夠直接讀取輔助I2C的數據。     IICwriteByte(0xD0,0x6A,0x00);/0x6a是用戶配置寄存器106,配置為輔助總線的邏輯由主I2C總線決定。        IICwriteByte(0x18,0x0A,0x01);          /0x18是磁強計的slaveaddress,0x0a是磁強計的控制寄存器CNTL,配置為單次測量模式。阿莫電子論壇上網友出的招數。5.針對這一句話,每

12、次讀完數據我再配置為單次讀寫模式。int GetData(uchar REG_Address)uchar H,L;H=(Single_ReadI2C(MAGADD,REG_Address);Single_WriteI2C(MAGADD,CNTL, 0x01);L=Single_ReadI2C(MAGADD,REG_Address-1);Single_WriteI2C(MAGADD,CNTL, 0x01);return (H<<8)+L; /合成數據6. 現在求解出來的航向角波動很大,非常不穩定,變化范圍在-180º180º之間。也許航向角的解算與俯仰角和橫滾角的

13、取值范圍也有關系。二者的取值范圍均為-90º90º。7. 現在航向角還是沒有求出來,我想這可能是磁強計的數據有問題2015年3月18日1. 現在的數據還是沒有換算成真實數據,而且帶小數點的數據通過串口往上傳我還沒試過。2. 另外提一點,我的俯仰角解算和橫滾角解算用的方法和上面論文提到的有差異。AN1057而且解出來的值也不是我想要的航向角,而且我懷疑上面兩個角度也不是我想要的航向角和橫滾角。3. 到現在我才明白采樣時間間隔內的角增量就是角速度,速度增量就是加速度,當時我竟然還給老師說,用的數據不是加速度和角速度,太愚蠢了,沒聽老師的話真是太失敗了。4. ?秦永元慣性導航第二

14、版P253答:表示的各分量構造成的叉乘斜對稱矩陣,。5. 汽車測試中存在劃槳效應嗎?需要劃槳效應補償量嗎?劃槳效應補償項的優化算法以劃槳運動為環境條件,那么在汽車測試中,尤其是做穩態回轉時的環境條件又是什么,這里可以分析一下,這里可以具體環境具體分析,這里可以出現創新點,就是將工作條件修改,這里就是研究生工作量的體現之處。6. 汽車在做等半徑穩態回轉時,我覺得俯仰角和橫滾角是不變的,只有航向角在發生變化。我覺得汽車在做穩態回轉運動中角速度和比力分別是因為我覺得在車輛做穩態回轉運動時,橫滾角存在擺動,z軸上加速度波動較大。但只是感性的猜測,沒有理性的數據支持。還有就是我希望自己的程序能夠做到自適

15、應,根據測試環境自動切換姿態解算算法。因為不同的環境條件下假設是不一樣的,不能一概而論。7. QIN2P296又出了一個惡心的名詞直流分量,細節,但就是卡著你讓你過不去,想了半天了,擱置一下吧。2015年3月24日10:461. 將坐標系理解成為剛體,引入四元數描述剛體的轉動,并建立四元數、與坐標變換矩陣也就是姿態矩陣之間的關系。一旦有了姿態矩陣就可以解算三個角度。四元數包含了所有的姿態信息,捷聯慣導中的姿態更新實質是如何計算四元數。2. 我想嘗試編寫采用定時采樣增量法解四元數微分方程解算姿態的程序。我覺得通過編程可以更加深入的了解四元數算法。3. 一直在困惑GPS在姿態解算中到底起什么作用,

16、今天終于釋然了,在(QIN2P255)這里雖然沒有提到GPS,但是GPS的信息可以從這里引入,引入到位置速率和地球自轉速率,但是只能用用緯度信息,但是GPS輸出的速度信息,而不是東北天方向的各個分量,所以和還是得不到。證據:(1)(2)(3)(4)(5)(6)我只想說我缺少完整的速度信息(即三個方向),但是低成本的傳感器不提供。而且如果真要做組合導航就得需要經度、緯度、高度三個信息都需要。還有就是我以前不知道所謂位置解算,結果就是經度、緯度和高度,得到的就是地球上的位置。從上圖最后一句話知道,要想解算姿態必須把速度和位置解算出來。也許下圖中可能有缺陷,但是他說明姿態速度位置解算是一個整體。3. 在慣性導航和GPS組合導航系統中各子系統的誤差源和量測中引入的誤差都是隨機的,而卡爾曼濾波從概率統計最優的角度估算出系統誤差并消除之。當然也可以使用經典的回路反饋法。這句話有力的說明了使用卡爾曼濾波的原因,就是為了消除誤差。4. 想問問老師GPS提供的信息是位置信息(經度、緯度和高度)和速度(東向、北向和天向)嗎?5. 因為我處理的信號都是隨機信號,沒有確定的頻譜,所以就不能使用處理確定性信號的常規的濾波了,比如低通、高通、帶通等。2015年3月25日16:54:231. 想買原子的mini開發板,自己板子上的arm不能用。按照光盤的資料提示操作串口打不開。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論