為什麼這篇imu應用鄉民發文收入到精華區:因為在imu應用這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Seabook (嶺北有女萬事足~)看板Electronics標題Re: [問題] 六軸IMU使...
※ 引述《adaj (ada)》之銘言:
: 標題: [問題] 六軸IMU使用
: 時間: Wed Apr 20 17:36:39 2016
:
: 大家好
: 最近小弟想使用一顆六軸的慣性感測器
: 他可得到三軸加速度及角速度(100Hz)
: 想要積分兩次得到位移的軌跡
: 但是怎麼計算都不太對
: 想問各位大大有沒有使用過的經驗能夠指導一下小弟QQ
我做機器人大概10幾年 IMU跟KF玩了大概10年,略懂一點。(叔叔有練過小朋友不要學)
一顆六軸IMU可以經由sensor fusion估測出兩軸角度 (X,Y軸)
Z | 重力(g)
^ |
| |
| V
|
/--------->X
/
/
Y
原理是利用重力夾角的關係,因為Z軸怎麼轉跟重力夾角都固定,有一軸(Z軸)算不出來
要算那一軸一般用三軸電磁感測器(electrical compass)去得到地磁數據,算出來的。
這就是為啥有些IMU會到9軸的原因(加速度*3,角速度*3,磁力*3)。
OK,回到你的問題。
那......... 用IMU算位移哩?? 用積分不行嗎???
當然不行 很不準 因為加速度計有漂移 有誤差 你一直積 累積誤差會很大
新手1: 很大?! 請問誤差有多大?
ANS: 我8年前的經驗,用日本的IMU大概1美元,用DSP 100HZ兩次積分誤差會一直變大
變大的速度大概20~50cm/sec,因為這誤差還會隨時間增加...
好一點的Sensor誤差小一點,但這積出來的數據不能用。
你用尺量都比較準!
新手2: 那誤差跟實際值不會剛好一正一負加加減減抵銷嗎? 積分後不就沒有誤差了!
ANS: 這機率比買樂透十次都中還低。
OK. 所以到底要怎麼用IMU量到比較精確的位移呢?
答案是 sensor fusion, 你需要另外一個sensor幫助IMU才能算位移
例如你現在手邊有個不太準的sonar, IR or Laser 可以量直線距離
你可以用Kalman filter 把加速規 跟 sonar 的數據作融合得到更精確的數據。
(當然前提是假設你的sensor 量距離不太準, 準的話用這個量就好了,IMU直接丟掉)
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.252.126
: ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1461145001.A.015.html
: → Schottky: 這會準才有鬼 04/20 17:45
Sch大講話真實在....
: → adaj: 短時間內也不行嗎? 04/20 20:01
: → MasterChang: 用ADIS16448試試,會好一點點。 04/20 20:32
: → adaj: 想請問有計算的流程能參考一下嗎 04/20 21:31
你的問題不在於積分計算 你的問題在於不懂sensor特性(感測的物理量跟更新頻率etc.)
聽好了,接下來講的從Wii搖桿用到火星機器人,再到擴增實境(AR)
你現在可能聽不懂,但多年後你會挖出這篇廢文,一拍天靈蓋說:阿!~賭喜阿內!
以下教一個解這問題的正途,未來也可以延伸到更複雜應用。
Kalman filter在台灣一般修"估測理論"的課,也幾乎不教或提點皮毛,
所以找個應用,蒐集一些相關PAPER,tutorial,自己練習是一個可行的方案。
當然最好有一些機率,隨機程序的基礎
參考一下以下這篇論文:
https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf
計算流程:
(Equation 1.9~1.13) 因為你問題是1D而已,寫出來大概5行CODE。
假設你有兩個sensors, sonar 量到是zk, IMU量到的加速度是uk (k是time step)
已知sensor 起始位置離牆壁 L cm, 求IMU的即時位移X=?
L
冏牆<---------Sonar (量到距離 zk)
IMU (量到加速度 uk)
KF 有兩個步驟,"Prediction" 跟 "Correction"
Prediction:
根據國中學的v=v0+at & x=v0t+0.5*at^2 你可以推算出EQ1.9內的 A跟 B 矩陣
Correction:
根據國小學的 L-zk=X 你可以推算出 EQ1.12~1.13的 H矩陣
寫出 Equation 1.9~1.13, Q,R 參數調好 單晶片就能自動估測出IMU的位移了。
這個會了以後,你就可以開始挑戰2D,3D的sensor fusion了,
現實中9成9的應用Model會有非線性, 所以要用 Extended Kalman filter (EKF)
用泰勒展開式(Taylor series,就是你高中學過但不知道有啥用的東西)線性逼近
EQ1.9~1.13 變成 EQ2.14~2.18 還是一樣5行CODE (當然要CALL一些線代library)
這個好好學以後一定有飯碗,現在越來越多手機,AR應用需要即時估測
人或環境的狀態,這些只有上帝才知道的真實數據,
我們人類能做的就是用sensor fusion猜一猜! Good Luck!
--
他高傲,但是宅心仁厚;他謙虛,但是受萬人敬仰:
他可以把神仙賜給人的機械運用的出神入化...
可以做出堪稱神之藝術的超級機械!
他究竟是神仙的化身?還是地獄的使者?沒人知道!
但是可以肯定,每個人都給他一個稱號............................機械小天才!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.94.47.18
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1461388077.A.3C1.html
※ 編輯: Seabook (160.94.47.18), 04/23/2016 13:15:28