GithubHelp home page GithubHelp logo

Comments (1)

tfoote avatar tfoote commented on July 19, 2024

Yes allowing extrapolation is technically relatively trivial. The original design of tf explicitly included this as a use case. After testing it was determined that using the naive extrapolation was actually very detrimental to operation because it is very sensitive to the noise signals and could easily turn stable systems into unstable systems.

In theory allowing extrapolation can help avoid phase lag in close loop control. However if the extrapolated values amplify the noise and not the signal it is much worse than waiting for the measurement to come in.

To this end we have been walking back the availability of extrapolation in the different generations of the tf APIs to the point in tf2 where it is not offered. So please don't take the time to add it back.

The problem with building the extrapolation into the generic tf API is that it does not have a model of the system. With a model of the system a estimator can be designed to estimate the state of the system and can estimate the future behaviour of the system using the model for feed forward. As a very trivial example use case, modelling a bouncing ball if the last measurement is when the ball is half way up it's parabola, and you use extrapolation based on the most recent measurements, your naive estimate of the balls position in the future is always rising which is obviously not true. For very short times linear extrapolation can be a good approximation, however the definition of short is completely dependent on the characteristics of the system, a ping pong ball and a barge have very different time scales over which extrapolation will remain valid.

Besides writing specific model/estimators for application specific extrapolation estimation, I think that there is room for building an extension/addon to tf2 which allows you to define a model and let it build up an estimate of the state of the model based on the tf history. And then support querying for times in the future based on the model's estimates in the future. This could provide the same API as the buffer and the model could have extrapolation tolerances built in which would limit the valid extrapolation distance.

from geometry2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.