中原大學

四旋翼感測器不精準

4月11日 01:09
各位神人好,小弟在使用TI的DSP(28379D)控制四旋翼懸停 使用九軸感測器GY-953,通訊介面為SPI,來取得尤拉角資料 目前已把yaw角和高度的控制器參數調整穩定 卻在調整pitch roll角時發生問題,只要沒給基本的推力,感測器給的資料都正確, 但在給推力(馬達高速旋轉到能推起機體的轉速)後,感測器給的資料開始亂跳, 例如原本的0度的水平面變成10度,整個基準跑掉。 請問有可能是什麼問題造成的嗎? 有可能是感測器沒有內建濾波器才會這麼不穩定嗎? 我有用超音波感測器來得知高度 沒有內建濾波器 但非常穩定 有錯版再麻煩告知 不知道要發在哪版😭
3
回應 16
文章資訊
Logo
每月有 4 則貼文
共 16 則留言
南臺科技大學
你因該是用九軸裡面的三軸陀螺儀輸出吧 請問有做單位轉換嗎 如果有先檢查單位轉換是正確的再往下考慮. 1.是否機身本身的微晃動與轉換公式產生的起伏偏大 2.本身感測器是數位的輸出,可能要檢查一下 電路的接線是否有干擾 ,線距是否過長(個人覺得比較不會,諾用到DRAM那些總線協議的時候就要特別考慮了 以上希望對你有幫助。
原 PO - 中原大學
B1 請問你說的單位轉換是指陀螺儀的原始數據轉換成尤拉角的意思嗎? 1.轉換公式不是固定的嗎,微晃動造成公式輸出數據不穩定的話,有什麼解決方法呢? 或可能是0.1度的分辨率,加上DSP給的指令太快,導致在快速震動下導致數據錯誤?
南臺科技大學
B2 公式是固定的沒錯 怕說是不是在其中有寫錯之類的要確認一下 , 如果都正確 你可以參考下面做法: 怕雜訊干擾可以使用過採樣動態平均 ,每次採樣都採10次以上做平均在使用。 先試試看有沒有改善.希望對你有幫助
原 PO - 中原大學
B3 公式可能無法檢查QQ 感測器直接輸出2組byte數據 一個高8位一個低8位排列而已 我也不清楚他內部是如何運算
南臺科技大學
B4 我剛剛看了資料 輸出的值要除以16.4做單位轉換(陀螺儀的部分 還是你用的模組是不同的模組呢?
原 PO - 中原大學
B5 不好意思 是一樣的 那我先依加速度計和陀螺儀的原始數據去換算尤拉角 再看是否有更穩定的算法去得數據 再不行只能取樣取平均值了 就先不用感測器直接給出的尤拉角了 謝謝你的指導
國立虎尾科技大學
雖然不見得能幫得上忙... 請問你遇到的問題是每次給予動力並復原後, 尤拉角相較於水平總是會發生不規律的偏移是嗎?
原 PO - 中原大學
B7 對的 QQ
國立虎尾科技大學
昨天有翻了一下資料 datasheet:
講IMU的網路文章:
根據datasheet跟文章的內容: 模組計算尤拉角的時候除了對陀螺儀的數值做積分外, 可能還用了加速計的值對pitch、roll角做濾波。 模組接收到震動但實際的角度並沒有傾斜,導致了一連串的誤差。 或許找適當的時機進行reset或暫時停止採集資料試試。 因為計算尤拉角需要實時的以感測器資料對時間做積分,所以會非常的耗MCU資源。 原則上應該先以改善模組的誤差(模組本身能下指令校正誤差)或取值時機(上方的提議)為目標。 如果模組的算法真的很爛... 模組有預留燒錄腳位,MCU是STM32F103T8U6、感測器是MPU9250
原 PO - 中原大學
B9 謝謝!! 我會試試 我懷疑可能是我指令感測器沒收到 導致他以默認的50hz運作 不確定我這樣寫對不對 我是在main(類似arduino的setup)傳一次地址再傳指令 另外Datasheet 寫說如果要寫入暫存器地址前面要加01 例如: TXBUF=0x41; //寫入控制暫存器(0x01) TXBUF=0x7D; //感測器全開+200hz 後來我嘗試傳指令將陀螺儀 加速度計關閉試試 改成TXBUF=0x4D 但卻還是能抓到值... 加了Delay還是一樣 所以我懷疑會不會是這個問題
國立虎尾科技大學
B10 模組開機有三秒的自檢,指令儘量三秒後再下,連下兩次試試 然後看寫入有沒有成功除了看現象,也可以把暫存器的值拉出來看
原 PO - 中原大學
B11 真的無解... 重新上電後沒給指令能讀到暫存器的值 但只要一給指令就完全沒值了 之後除非重新上電 不然後面都讀不到值 也試過把指令轉成char再傳也無解
國立虎尾科技大學
B12 裡論上指令沒下錯。 雖然很絕望,但還是得確認: 1.把值塞進TXBUF前用flag來判斷能不能丟值, 用delay的方式效率比較差而且可能出錯。 2.為了防止傳輸過程中暫存器被修改, 有些裝置在CS被放掉之前暫存器內容不會更新, 所以給完指令後記得放掉CS。 然後資料的型別對傳輸模組來說沒有任何意義, 溝通資料型別的是傳輸協議。 所以你的指令是立即值、char、byte都無所謂
原 PO - 中原大學
B13 可能都沒問題 後來想到如果只有50Hz 應該也足夠應付四懸翼的震動 現在我嘗試找硬體問題時發現 程式碼加10cm杜邦線都沒問題 但換上20cm杜邦線後 變得不穩定 不知道SPI對於傳輸是否這麼敏感
國立虎尾科技大學
B14 通訊介面對線材都有一定的要求, 杜邦線的芯比較細又少,模組地線只有一條, 距離拉長就容易翻車。 JST連接線了解一下
原 PO - 中原大學
B15 目前能做的解法大概就是換好一點的線 中斷給的頻率在高一點QQ 還有買另外一家廠商的gy953試試看