• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# Predicting a sequence of positions

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

3 replies to this topic

Posted 15 August 2014 - 12:41 PM

Hello folks,

for my current project, I have a sequence of positions in 3D space usually sampled in a 1 second interval coming from a vehicle. I want to predict the position of the vehicle after the next 3-5 seconds. My first approach was using the history of sampled positions to generate a Lagrange polynomial, but this becomes very unstable even 1 second in the future. Do you know a similar approach that would be simple to implement and yet have basic stability against outliers? I think this would basically come down to approximation rather than interpolation.

Thanks!

### #2Scouting Ninja  Members

Posted 15 August 2014 - 02:29 PM

When using polynomial I tend to stick with range three or four for stability, splines can also smooth out any problems from large polynomials.

The question is do you need polynomials?

Polynomials only predict possible position and works best in stable environments and short burst, something like the car hitting the wall will cause large irregularities.

Using a short range means that the polynomial can quickly forget any irregularities and stabilise again.

If you just want a simple possible point of where something could be just do:

record 3 points of the car position. e.g. (0,0,0) (1,0,1) (2,0,4)

Average out the difference. e.g.

(1,0,1) - (0,0,0) = (1,0,1)

(2,0,4) - (1,0,1) = (1,0,3)

(1,0,1)+(1,0,3) = (2,0,4)/2 =(1,0,2)

add this to the last know position. e.g.

(2,0,4)+(1,0,2) = (3,0,6) //This is where it could be at.

I used this once in a space game and found it to work OK.

### #3Álvaro  Members

Posted 15 August 2014 - 02:30 PM

You need to define a clear metric for how good a predictor is. For instance, you could make a database of situations where you know both past and future positions, and then you want to minimize the sum of squares of the difference between the predicted and the actual positions. If you are going to be using more than very few parameters in your model, you probably want to separate your data into training data and testing data, to avoid overfitting.

You want to use some robust estimate, so high-degree polynomials are not an option. I would start by trying to estimate the vehicle's current position and velocity, and assume velocity will stay constant. You can then try to also estimate an acceleration vector and make predictions assuming constant acceleration.

I might be able to give you better advice if you provide more information: What kind of vehicle are we talking about? How is the history of previous positions obtained? What is the prediction going to be used for?

Posted 16 August 2014 - 05:50 AM

Hello,

what I have is a series of 3-6 3D Positions sampled in 1s intervals. So I have the current 3D position, the 3D position at -1 seconds, the 3D position at -2 seconds etc. I have no influence on how this data is generated and it may be noisy. I want to estimate the position for the vehicle after, say, 3 seconds in the future. The vehicle may drive straight or a curve and the data may be noisy so the estimator should work for these cases. I want it to be a little more sophisticated as just linear interpolation (for when it drives curves) but I also want to avoid techniques involving stuff as Kalman filter or nonlinear optimization as they are hard to implement and potentially slow. A quadratic polynomial might be enough, so the technique should be able to solve overdetermined problems. And I don't want to use an external library.

Edited by Desperado, 16 August 2014 - 11:05 AM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.