Jump to content
  • Advertisement
Sign in to follow this  
aki.aleksic

Estimate center of a circle

This topic is 2607 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all,

I'm working on a project which involves tracking air crafts in real time and I'm having a problem of estimating center of a circle given three or more points, which should be as precise as possible, and I need this to track air craft in circle maneuver. I know how to calculate the center if you have thee points on circumference (I'm using this method), but the problem is that I have points which are not exactly on circumference, and can be on either side of circumference. Because the center is used to calculate a radius of the circle, depending on the points I get (the points are measures from the radar, and that is why they are inaccurate) I can get circles of different sizes, and what is worst I can get a circle on opposite side of that of the maneuver.

You can see what I mean in images 1 and 2 in attachment. On image one I estimate a center using the method I mentioned and its almost a perfect estimate. But in the second image I'm using an extra point, which gives me a completely different result, which is unacceptable. This is just an example of maneuver, in other situation may be different...

So this is what I need:
  • to estimate center of the circle given three or more points - 3 - 5 points, not more, because after the sixth point its already too late to track maneuver
  • during the maneuver I can update the center and radius with new data
    Things to have in mind:
    • points are not on the circumference, can be on either side of it
      If some one know a method for this, or have an idea please share :) I will be thankful

      Cheers and thank you

Share this post


Link to post
Share on other sites
Advertisement
Two ideas come to mind:

1) For any hypothetical center C, compute the distances from C to each of your points. The average of those distances would be the radius, and the standard deviation would be some measure of how bad a center this really is. So use some numerical method to find the center that gives you minimum standard deviation of distances.

2) Perhaps you don't need to compute a circle at all. Tracking aircrafts sounds like something a Kalman filter would be extremely good at. You could probably get an estimate of acceleration from a few data points, and the component of the acceleration that is perpendicular to the velocity would give you an estimate of turn radius.

Share this post


Link to post
Share on other sites
No need to estimate, you can calculate that: http://paulbourke.ne...ry/circlefrom3/

If you have more than 3 points, simply calculate several centers (using different 3-tuples of points), and average them. If they are on the same circle, it won't make a difference, and if they are not, there is no "correct" solution anyway.The average will be just as good then.

Share this post


Link to post
Share on other sites

2) Perhaps you don't need to compute a circle at all. Tracking aircrafts sounds like something a Kalman filter would be extremely good at. You could probably get an estimate of acceleration from a few data points, and the component of the acceleration that is perpendicular to the velocity would give you an estimate of turn radius.


Thank you for your answers :)

About the Kalman filter, yes I'm using it but the model that I use is only for uniform motion. I tried to expend it and use acceleration (singer model) to count for heading changes, but it gave me bad results, but its probably due to bad implementation :). Maybe I should revisit that. Anyway, now I'm using other method: when I detect maneuver due to heading i switch to other model for Kalman filter which tracks object in a radial coordinate system with center in a center of maneuver, thats why i need it :)

So, first i will try to compute center as alvaro sad, maybe I will use circular regression. If that doesn't work I will revisit singer model for Kalman filter which have info about acceleration.

Thanks


Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!