How should I modify my real-time IMU data for usage in insfilterAsync/insfilterMARG object(s)?
1 view (last 30 days)
Show older comments
I'm trying to use the example imu-gps fusion code from the MATLAB example (site adress is at the end of the passage) for my real-time ins-gps applicaiton. I sense that there is a discrepency in the imu sensor frames between my data and MATLAB's imu sensor. I can see that accleration in Z axis is 9.81 in the simulated data whereas in realtime data it is -9.81 (Both sensor body and local navigation frames are NED.) Although I have modified the acceleration, angular velocity and magnetic field vectors many times, I can't find the true modification for the filter to work. So how should i modify my accelerometer, gyroscope and magnetometer data in order to use in insFilterAsync/insfilterMARG specially in functions fuseaccel, fusegyro and fusemag?
Example code: https://www.mathworks.com/help/fusion/ug/pose-estimation-from-asynchronous-sensors.html
2 Comments
zipeng li
on 23 Nov 2022
I meet the same problem as you. My imu data is x-right, y-front, z-up. I transform them to x-front y-right z- down to send into insfilter of matlab (which maybe x-front, y-right, z-down in NED). However, I found that I also need to negative the measurement of accelerometer, and do not need to negative the measurement of gyroscope. I am very confused.
Answers (1)
Brian Fanous
on 22 Nov 2022
This example may help in understanding how to do this:
You may need to swap and/or invert axes, but, essentially, you want to map your recorded IMU data to the same convention as imuSensor outputs.
See Also
Categories
Find more on Sensor Models in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!