IMU or GPS for drift?

as we all know, wind drift is a problem when trying to get to our GPS coordinates. While in physics, for constant velocity drift, the equation is pretty easy, programming it to accomodate is a different story. while i haven't checked out, does the autopilot software being used by the geocrawlers adjust for that? Also, which is better to use to figure out the drift? An IMU is great, yes, but it isn't as accurate at predicting course errors. a gps has a 1sec refresh rate, but it atleast knows where you're going. which do you people use?

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Easy, you use a 5Hz refresh rate GPS :), but a combination of both would give better accuracy at the cost of more complex code (and $).
  • cool beans. To me, the easiest thing to do is a constantly shift- adjustment algorithm. I will get the equations for you in a little bit, but, for now, i'll label them A, B, C, etc for reference ease.

    GPS way- USes vector based equations
    You tell it to go to GPS waypoint. The plane should be under constant velocity, as it IS autopilot. Initial X,Y,Z coodindates are logged and a check XYZ coodinates is plotted. This Check XYZ is where the plane expects to be, and should be placed around 5 seconds after the Initial XYZ. Using a Vector Triangle **EQA**, you can find out the velocity of the the wind at that time in each axis. Using the compensation equation **EQB** you then replot the course, flying with, or against the wind. Once you attain the Corrected Heading, which will be a vector that will account for the wind, you restart the algorithm. This SHOULD accomodate for sudden gusts, as well as constant wind without really pressing any micro controller.

    IMU way-acceleration based equations (A/V/S eqs)
    This requires a timer and is a bit more processor intensive. Calculus is neccessary. From the starting point, there should be no acceleration. Constant velocity= 0 accleration. Any additional movement in the XYZ direction will have an acceleration associated with it. You must save and time every acceleration in the last 5 seconds. You can then find the velocity in all three axis by ading them together in their component form **EQC**. Create a vector triangle, then follow the process for the GPS way. However, the only change i would suggest is that the z direction be a bit mulled.

    Overall, the IMU will be the most precise, but also the one that you have to be the most careful in your adjusments. the plane is small and light so almost anything will make the sucker move.

    All algorithms assume you have a Co Pilot on board :-P. adding in a tilt is going to be annoying as all hell.
  • 3D Robotics
    Excellent point. We do not have special wind correction in our ArduPilot code (or any of the others), so wind can cause us to deviate considerably from a straight line to waypoint path. But the code is open source and being constantly improved, so I imagine one of us will put it in soon enough. I'd be interested to hear what algorithm people favor for this function.
This reply was deleted.

Activity