I've created a working antenna tracker for my hexacopter with a MultiWii controller using a spare Arduino Nano V3 and an XBee Pro 900 pair.  MW protocol is decoded and GPS LAT/LON/Speed and ALT and extracted.  The issue I have is that the positions are updated with an amount of lag that can become an issue performing close fast passes. 

After watching a number of videos of the various trackers out there it is fairly apparent that they all show the same lag.  The antenna's all seem to point behind the drone as it is travelling along perpendicular to a zero bearing.

Read quite a few posts and it does appear that a few of you have tried looking at a solution to this.

What I would like to propose is to calculate an estimate of the actual drone position based on the last three positions and the current speed.  using three positions can give you the angle of a curve.  The distance traveled from the last point along that curve can be estimated from the current speed.  In the time between the last GPS pos and the next one to arrive, you could estimate where it should currently be.  You could also filter out repeat coordinates based on where you estimate it should be next.  In my case, the hexacopter can be speeding along and then come to a stand still at one position.  If the last three GPS positions are the same then the curve and distance calculations should resolve to the same position.

The question to put out there is if anyone has come up with any related maths to work this one out?  

When you think about it, most GPS car navigation systems would use this method to show your position moving along smoothly on a freeway, so there must be some maths already out there to work this out.

Input greatly appreciated. 

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

Join diydrones

Email me when people reply –


  • Now looks like the latest MultiWii dev code (1311) contains GPS filtering developed by Jason Short which gives me this approximation. Hoping the filtered coordinates are sent out in the MW serial protocol to the antenna tracker.
  • I've done some very basic look ahead while playing around with ardustation's antenna tracker functionality. Some thoughts on this

    - My lookahead was only on pan since tilt is mostly close enough. I looked at the average of the 2 previous pan movements, calculated the new one and then added 20% of the previous average to the new one to get a pan angle with some look ahead. Playing around with the 20% to suit your pan servo setup is the trick, using velocity instead of a fixed % would be better. It works well enough for me.

    - You can build in some fat with antenna choice. I'm using a helical antenna, it has a coverage cone of around 60 degrees, so it is not critical to be pointed directly at the plane.

    - Another option that is working really well for me is using a diversity receiver. With a directional and cloverleaf antenna on the reciever, it chooses the strongest signal. When the plane is in close, it mostly uses the cloverleaf.

    Using velocity and adjusting pan and tilt would be the ultimate. I'd be keen to see what others have to say.

This reply was deleted.


sam liked Jimmy Oliver's profile
Aug 25
Mike Whitney liked Mike Whitney's profile
Jul 19
Abdulatif Tlaib liked Ryan's profile
Jun 24