Developer

Navigation algorithm for wind drift

I've been putting together my own UAV and live in SF so I'm always flying in high winds. Not over SF of course...I built a simulator in flash to hone my algorithm, but I wanted to put it out there to see if anyone had any suggestions. My idea is to basically calculate the optimal position, drift from the position and create a new virtual waypoint to target using a scaled version of the drift vector. It works well, but it does tend to hunt when turning into the wind. I could limit the offset of the virtual waypoint which should help a tad.Here's a link to the Flash Sim. (Requires Flash 10)Here's the Source with updated code to address wind better than the original.Click the image to run the Flash simulator:DriftComp.png
E-mail me when people leave their comments –

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

Join diydrones

Comments

  • Developer
    Updated the algorithm and feel OK enough about the source to put it out there. I'm sure my sim isn't perfect and it ignores things like rotational momentum, etc. But it's lightweight, fun to tinker with, and allows easy explorations of alternate algorithms.

    view
    download
    Simulator
  • that's pretty cool jason. Please can I tinker with the source?
  • T3
    Hi, the issue you described is not an issue for (simpler) UAV's, as UAV with just a GPS cannot "look out of the window" and does not know anyway which way the plane is pointed, it knows only where it is going. This is like flying IFR with windscreen covered and no compass - you take GPS heading and steer plane left or right in order to keep gps heading pointed towards your real waypoint. This works pretty well, assuming your waypoints are not too close to each other.
  • Developer
    I oversimplified, he had me pointing the plane at a point in the distance that he specified. We had very strong winds and we actually missed our airport because the front passed it quicker than we could get there.

    I will read about the cross track algorithm and let you know, thanks. I don't have ready access to this information. Is there a better place to find these algorithms? BTW, I like reinventing the wheel. It's a great hobby. You never know, if your clever, you could end up in a different place than everyone else. If not, you sure will understand it fundamentally.
  • @jasonshort1: "We hit a storm front coming perpendicular to us. He had me pick an imaginary point to the left of destination and rudder towards that point to counteract the wind. This was my only real flying experience, so this was simply based on that inspiration."

    Your friend basically had you point the nose of the airplane towards the (cross) wind so that you can keep your desired course (over ground). Somewhat simplified explanation is that you try to maintain straight line of travel while not letting wind blow you off course. The amount of rudder is not arbitrary ( "pick a imaginary point" - although your friend might of said that just to make it easier on you) - it depends, among other things, on "strength" of the wind - you want to apply just enough rudder as to keep travailing towards your desired destination. Hope this makes sense...
    Just as a point of note, it's also fun experience to land with strong crosswind - this time you bank (roll) wings towards ( or into) the wind while applying opposite rudder and hold that position until you almost land, straightening the airplane just before touchdown
  • 3D Robotics
    So I guess my question is how does your approach differ from the standard crosstrack error algorithm? Just trying to avoid reinventing the wheel here.
  • Developer
    No, I don't use the heading of the aircraft at all. I only use the current position relative to the 2 waypoints. I reviewed the paper on Aerosonde and the approach is very similar.
  • 3D Robotics
    bGatti, that's correct. Unless you've got magnetometers, GPS only provides heading over ground, which tells you nothing about the plane's actual yaw orientation.
  • jason,
    I would be concerned that your simulator assumes facts not in evidence. that is many AP do not know their current heading, rather they tend to know the delta between current position and last position. This delta can yield an effective heading, but it combines the wind drift with the airspeed and real heading.
    Does your simulator rely of fixing the plane to a determined heading?
  • 3D Robotics
    I'm afraid I still don't quite understand. Most of us use crosstrack correction to solve this problem. Check out this paper for more on the standard methods.
This reply was deleted.