Pigeon IMU Drift

Okay, so I know the pigeon experiences drift so we set up our rotate command to be based on relative degrees (If pigeon is at 250 degrees and we want to turn 90 then turn to 340). So there’s some context now the problem.

Tell the pigeon to turn 180. Perfect. Rotate it back to the original orientation. Tell the pigeon to turn 180. Slightly left of where we want. Reset the bot.
Tell the pigeon to turn 180. Slightly more left. This continues and grows exponentially to the point where it becomes a problem. Any ideas what could be causing this?

1 Like

Please read section 8 - IMU Error Sources, in the Pigeon User’s Guide. This will tell you how to diagnose which source of error and how to fix it.

In addition - while section 8 touches upon this, I highly recommend you go through the temperature calibration procedure if you haven’t already. It helps eliminate most drift.

We measured 3° of drift over 5 minutes with our recently-installed IMUs, I don’t think that drift is your issue.

Your turning routine no doubt has a tolerance on each turn. Say that’s 1°. Every time you reset the robot’s position you can add up to 1° of error. I don’t think that you should be resetting position over and over because you’re accumulating this tolerance each time that you reset. Eventually it becomes too much to deal with.

Is your bot returning to the starting position via software commands or are you moving it “by hand”? If you are moving it by hand, how consistent is your starting position?

This is almost definitely it. If you perform temperature calibration, the drift is small enough to ignore; this would be better than using relative coordinates.

How long does it take to perform the Pigeon temperature calibration? We tried starting it yesterday, the Pigeon started strobing orange as expected, but we left it for 30 minutes and it was apparently still doing it. At that point we ran out of time and had to power down the robot, so I assume it didn’t finish and that we’ll need to do it again.

Is 30+ minutes normal?