Help with using Complementary filter (Madgwick) for IMU orientation estimates
21 次查看(过去 30 天)
显示 更早的评论
Apologies if this question has a very simple solution. I am clinician and very new to Matlab and inertial measurement. I am using the Madgwick AHRS algorithm for obtaining orientation estimates from the meta motion R IMU. I have got it working reasonably well but feel output is suboptimal due to the heterogeneity of sensor sampling. The gyro, acc and mag are not sampling on the exact same time stamps and so I do not receive 9 data points at specific times. There are 3 things that complicate the situation.
1)The Mag can sample at a max rate of 25Hz.
2)Sampling isn't absolutely perfect e.g. 60 sec of sampling at 100Hz may give me 5950 Acc data entries and 5790 gyro data entries.
3)Due to BLE limitation 3 packets of data are sent with a single timestamp, so we don't actually know the exact times when 2/3 of the data is being sampled.
Can anyone recommend an optimal way to resample the data so they are on similar timestamps? Or is there a way to implement the complementary filter with sensor data at different time points and sampling rates.
The best I have managed is a crude resampling (using the resample function) and artificially allocating resampled data points to a new time stamp (e.g. t=0:0.01:60 for a 60 sec trial).
Thank you!
0 个评论
回答(1 个)
Star Strider
2017-10-27
‘The best I have managed is a crude resampling (using the resample function) and artificially allocating resampled data points to a new time stamp (e.g. t=0:0.01:60 for a 60 sec trial).’
The Signal Processing Toolbox resample (link) function is your best option, especially for signal processing purposes, since it uses an anti-aliasing filter.
I would not recommend interpolation without using an anti-aliasing filter.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!