IMU Double Integration Feasibility with Pigeon2

Based off of other posts and light research, I understand that an uncalibrated IMU is not accurate enough to do double integration of acceleration for pose estimation. Reading https://digital.wpi.edu/pdfviewer/t435gf32g it appears they were able to achieve fairly good accuracy after calibration of a NavX. My understanding is that a Pigeon2 comes calibrated from the factory, and I would like to know if this calibration is sufficient to achieve similar accuracy to that of the calibrated data in the linked paper. Additionally, if anyone knows any examples of this being done recently, please share. My goal would be to use the calculated pose with WPI’s PoseEstimator class alongside encoder based odometry data to improve accuracy.

1 Like

If there’s examples from this year, you’ll have to wait until teams release their code (if they ever do).

You and I seem to have very different definitions of “fairly good accuracy”, if you’re referring to their results from the NavX by itself; it’s not clear from your post whether you understand that the NavX was used in conjunction with encoders and vision data to further enhance their accuracy by fusing data from all three via a Kalman filter. EDIT: Upon re-reading, it’s clear that I missed reading your goal. Sorry about that.

Calibration can also mean quite a few different things; there’s no guarantee the Pigeon 2’s factory calibration goes as in-depth as this paper.

That said, if you just want the results of a simple double-integration of the accelerometer, I can see what I can do in a few weeks - though I can’t really give you anything more advanced. My team is largely done meeting for the season, and their spring break is this upcoming week, but I should be able to get into the shop for an hour or two sometime after that. If accelerometer data has quietly gotten significantly less noisy with the latest generation of IMUs, that would help a lot with a traction control project I have in mind, even if it’s not at the point where double integration for pose estimation is reasonable by itself.

The last item in the NavX FAQ gives some quantitative estimates of how good an IMU needs to be to reasonably track an FRC robot’s position over the duration of a match.

TL;DR professional sensors can do it, but ones accessible to FRC teams (<$600) can’t yet. Practically speaking, you probably want either a Kalman filter, or something philosophically similar: an algorithm that can occasionally determine your absolute position on the field (using e.g. vision), and can interpolate using inertial data.

Yeah, WPILib’s PoseEstimator uses a Kalman filter to combine multiple data sources. A Kalman filter can’t really correct for two sources of bad data, as I understand it however, so I’m not sure that will solve everything. I’m guessing implementing this isn’t that hard from a math standpoint, so when I have more time I will try it out if nobody’s done it yet.
To your other point, I would like to try optical flow tracking, as I think our current setup would allow fairly easy implementation of that. My ultimate goal would be using encoder data, the Pigeon, and optical flow tracking (using OpenCV and a human cam, not a mouse) to increase accuracy, because I have seen significant inaccuracy with encoders alone.

Yeah I’d like to try it out myself in a couple weeks. It will be good to have multiple tests, so keep me updated.

It can as long as both information sources are unbiased (i.e., the measurement is modeled as the true value plus unbiased noise). The main one that matters in this case is an unbiased pose measurement since acceleration is insufficient to observe the pose.

Consider if the robot is sitting at rest on the field. As you add more vision pose measurements, the pose estimate converges to the true pose. However, no amount of acceleration measurements will make you converge to the true pose because they’re all zero.

1 Like

So in the context of my situation, I will always know my starting pose. Would a Kalman filter taking inputs from encoders and an IMU be better than just input from encoders? Even if the IMU is extremely noisy?

It will be better, but the measurement noise covariance of your IMU might be so high relative to your encoders that it contributes basically nothing to the pose estimate. Depends on the quality of your IMU.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.