我已經購買了該模塊
Kootek GY-521 MPU-6050 MPU6050模塊3軸模擬陀螺儀傳感器+ 3軸加速度計模塊
我的項目將涉及將其固定到移動物體上,移動物體的速度從每秒0.1到1.0米不等。
據我了解,該模塊將允許我推斷出旋轉和加速度,我是否能夠得出速度?
我可以期待多少精度?
我已經購買了該模塊
Kootek GY-521 MPU-6050 MPU6050模塊3軸模擬陀螺儀傳感器+ 3軸加速度計模塊
我的項目將涉及將其固定到移動物體上,移動物體的速度從每秒0.1到1.0米不等。
據我了解,該模塊將允許我推斷出旋轉和加速度,我是否能夠得出速度?
我可以期待多少精度?
傳感器本身無法為您提供速度。我已經在幾個項目中使用了它的加速度計,最簡單的獲取速度的方法是不斷監視加速度的變化並即時計算速度。
為此,請遵循以下說明。請注意,在實際情況下,這僅是一個軸讀數,您將必須對所有三個軸(即x,y和z)執行此操作。
我希望您了解運動方程(V = Vo + at)...傳感器將在任何給定時間為您提供加速度值。但是,在很大的時間間隔內,加速度的變化可能會很大,因此,請保持時間間隔“ t”較小。假設t = 10ms(取決於您)。因此,每隔10毫秒間隔計算一次V,這將在任何給定時間為您提供當前速度。但是Vo呢?如您所知,它被稱為初始速度,因此在開始時它將為0。第一次讀取後,當您要進行第二次讀取時,Vo會立即更改為先前計算出的V,因此將繼續。 >這意味著在任何給定的時間間隔內的Vo實際上是在前一個間隔中計算出的V。
我在使用加速度計的項目中嘗試了此方法。希望對您有幫助。
我使用基於Arduino的自動駕駛儀模塊,除了GPS數據外,該模塊通常使用類似的傳感器來保持其位置/速度/加速度的合理估計。如果您要在項目中添加其他傳感器(即GPS),則值得研究擴展卡爾曼濾波器( https://github.com/simondlevy/TinyEKF),這些濾波器通常能夠可以提供相當準確的結果。
如果僅使用加速度計,則EKF可能會過大,因此您可以研究其他降噪技術。例如,使用最後兩個讀數的加權平均值:
// alpha是介於0和1之間的值Acceleration = alpha * readAccelerationSensor()+(1- alpha)* lastSensorReading
另一種過濾掉噪聲的策略是在每個時間步長獲取多個傳感器讀數,並使用中值積分速度。
我認為這不可能。如果我對加速度計的理解是正確的,則可以測量加速度。然後,您會遇到速度恆定的情況。根據牛頓定律,加速度= 0。
您必須跟踪加速度的變化,然後執行數學運算以保持狀態。正如@克里斯·斯特拉頓(Chris Stratton)所建議的那樣,這將導致將錯誤整合到很可能獲得無意義價值的情況中。
但是,我以前從未使用過加速度計,因此在一定程度上是可行的。
很高興聽到實際嘗試過此操作的人。
我認為,按照Usama的描述計算瞬時速度是正確的方法,只要您可以處理累積誤差即可。我還建議您定期進行校準(例如返回家中)。
但是,如果要計算速度,最好的方法是使用陀螺儀,而不是加速度計。 。
陀螺儀是(什麼?)潛艇如何在水下航行。為了用陀螺儀傳感器測量加速度,當然是速度的變化率。 V = Vo + at和d = Vo.t +(a.t ^ 2)/ 2是您最重要的兩個公式。
您選擇哪種取決於您的應用程序。我會根據我的應用程序更可能具有恆定速度還是經常加速和減速來選擇。甚至可能兩者都有。
我還沒有嘗試過數字陀螺儀傳感器,但是請注意,有幾個可用的Arduino屏蔽罩。
用於羅盤+加速度計使用羅盤從讀數中消除g