大家好,我已经把CSDN上的博客迁移到了知乎上,欢迎大家在知乎关注我的专栏慢慢悠悠小马车(https://zhuanlan.zhihu.com/duangduangduang)。希望大家可以多多交流,互相学习。
Lagrange Interpolation
- output a polynomial passing all the input control points, interpolated points can be get from the polynomial
- the order of interpolation polynomials increases with the number of control points. Runge phenomenon may happen when the order is too high, which will result in a greator error and oscillation.
- low precision
- rarely used
Bezier Curve Interpolation
- interpolates the first and last control point, while the inner ones are approximated
- the polynomial order grows linearly with the number of control points
- high order curves suffer from the oscillation problems inherent to high order polynomials
- global control, meaning a base pose update affects the whole curve
B-spline Interpolation
- is a piecewise polynomial function and a generation of Bezier curve
- actually interpolates the first and last control points, approximates the inner control points
- local control contrasts to the Bezier curve
Piecewise Cubic Hermite Interpolation
- H(xi) = yi, H'(xi) = yi', 3-order polynomial for every segment
- continuous first derivative on the whole domain
- maintain the shape
Piecewise Cubic Spline Interpolation
- output a polynomial passing all the input control points
- curve is smooth on control points. first and second derivative is continuous, but second derivative is not smooth.
- local control
- 3 different boundary conditions:
- natural, 自然边界(边界点的二阶导为0)
- not-a-knot, default choice in MATLAB, 非扭结边界(使两端点的三阶导与这两端点的邻近点的三阶导相等)
- clamping, 夹持边界(边界点导数给定)
- 3 different solving methods
- undetermined first derivative, solving three corner equations, also called three gradient interpolation, actually based on piecewise cubic Hermite polynomials and make their second derivatives continuous on control points. Apollo uses this.
- undetermined second derivative, solving three moment equations, most frequently used.
- base functions
- can't maintain the shape
- frequently used
- 2D cubic spline interpolation: output a polynomial z = f(x,y) passing all the input control points (x,y,z).
Time Based Interpolation
- dispart the 2D movement into 2 1D movement, such as x(t) and y(t)
Inverse Distance Weighted Interpolation
- assuming closer values are more related than further values. The assigned values to unknown points are calculated with a weighted average of the values available at the known points. It resorts to the inverse of the distance to each known point when assigning weights.
- It is usually used in Geology spatial interpolation and performs well when data is dense and evenly-spaced.
- Specifying the power of the distance's inverse and the size of the neighborhood is needed. When the data is uneven, it's difficult to adjust the size according to the points' distribution.
Conclusion
- When the input control points are dense, all the methods are ok except Lagrange interpolation method.
- If the input control points are sparce and unevenly distributed, we may decompose the trajectory to x(t) and y(x), apply Piecewise Cubic Spline Interpolation on each function.