What's interpolation and extrapolation in the context of ROS?
In the FAQ, it's written
How does
tf
deal with interpolation and extrapolation?Our experimentation has shown that interpolation is fine, but extrapolation almost always ends up becoming more of a problem than a solution. If you are having trouble with data being ready before transforms are available I suggest using the
tf::MessageFilter
class intf
. It will queue incoming data until transforms are available. Having tried allowing "just a little" extrapolation, waiting for accurate data to be available has proved a much better approach.
First of all, what, in general, is interpolation and extrapolation in the context of ROS? I understood it's something to do with data, but could someone give me a complete explanation of these concepts?
Furthermore, the excerpt above states:
Our experimentation has shown that interpolation is fine
Fine in which sense, to do what? Why is it fine? How does ROS support interpolation? Which experiments did "they" use?
but extrapolation almost always ends up becoming more of a problem than a solution
Why does extrapolation almost always ends up becoming a problem? And why tf::MessageFilter
would be a "solution" to extrapolation?