public class TimeStampedAngularCoordinatesHermiteInterpolator extends AbstractTimeInterpolator<TimeStampedAngularCoordinates>
由于这种插值的实现是多项式的,应该只在插值点数量较少(大约10-20个点)时使用,以避免朗格现象和数值问题(包括NaN的出现)。
HermiteInterpolator
, TimeStampedAngularCoordinates
AbstractTimeInterpolator.InterpolationData
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
Constructor and Description |
---|
TimeStampedAngularCoordinatesHermiteInterpolator()
构造函数:默认插值点数量为 DEFAULT_INTERPOLATION_POINTS 默认外推阈值为(DEFAULT_EXTRAPOLATION_THRESHOLD_SEC 秒) 使用角度和姿态插值的第一个时间导数 由于这种插值的实现是多项式的,应该只在插值点数量较少(大约10-20个点)时使用,以避免朗格现象和数值问题(包括NaN的出现)。
|
TimeStampedAngularCoordinatesHermiteInterpolator(int interpolationPoints)
/** 构造函数:默认外推阈值为( DEFAULT_EXTRAPOLATION_THRESHOLD_SEC 秒) 使用角度和姿态插值的第一个时间导数 由于这种插值的实现是多项式的,应该只在插值点数量较少(大约10-20个点)时使用,以避免朗格现象和数值问题(包括NaN的出现)。
|
TimeStampedAngularCoordinatesHermiteInterpolator(int interpolationPoints, AngularDerivativesFilter filter)
构造函数:默认外推阈值为( DEFAULT_EXTRAPOLATION_THRESHOLD_SEC 秒) 由于这种插值的实现是多项式的,应该只在插值点数量较少(大约10-20个点)时使用,以避免朗格现象和数值问题(包括NaN的出现)。
|
TimeStampedAngularCoordinatesHermiteInterpolator(int interpolationPoints, double extrapolationThreshold, AngularDerivativesFilter filter)
构造函数。
|
Modifier and Type | Method and Description |
---|---|
AngularDerivativesFilter |
getFilter()
获取用于插值的样本中的导数滤波器。
|
protected TimeStampedAngularCoordinates |
interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
从给定的插值数据中插值实例。
|
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getExtrapolationThreshold, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolate, interpolate
public TimeStampedAngularCoordinatesHermiteInterpolator()
DEFAULT_INTERPOLATION_POINTS
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
秒)public TimeStampedAngularCoordinatesHermiteInterpolator(int interpolationPoints)
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
秒)interpolationPoints
- 插值点数量
public TimeStampedAngularCoordinatesHermiteInterpolator(int interpolationPoints, AngularDerivativesFilter filter)
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
秒)interpolationPoints
- 插值点数量
filter
- 用于插值的样本中的导数滤波器
public TimeStampedAngularCoordinatesHermiteInterpolator(int interpolationPoints, double extrapolationThreshold, AngularDerivativesFilter filter)
由于这种插值的实现是多项式的,应该只在插值点数量较少(大约10-20个点)时使用,以避免朗格现象和数值问题(包括NaN的出现)。
interpolationPoints
- 插值点数量
extrapolationThreshold
- 超出此阈值的外推将失败
filter
- 用于插值的样本中的导数滤波器
public AngularDerivativesFilter getFilter()
protected TimeStampedAngularCoordinates interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
插值的实例是通过对罗德里格斯向量进行多项式Hermite插值而创建的,确保旋转速率保持旋转的确切导数。
此方法基于Sergei Tanygin的论文姿态插值,将向量的范数更改为匹配Malcolm D. Shuster的论文姿态表示调查中描述的修改后的罗德里格斯向量。此更改避免了π处的奇点。在2π处仍存在奇点,当检测到此奇点时,通过略微偏移所有旋转来处理。另一个更改是在插值之前首先去除平均线性运动,并在插值后添加回来。这允许在样本覆盖超过一个转或样本点之间相隔超过一个转时使用插值。
请注意,即使可以忽略样本中的第一和第二时间导数(旋转速率和加速度),插值的实例始终包括插值的导数。可以明确使用此功能来计算这些导数,当从分析公式计算这些导数过于复杂时:只需从显式公式计算几个样本点,并在这些样本点中将导数设置为零,然后使用插值添加与旋转一致的导数。
interpolate
在类 AbstractTimeInterpolator<TimeStampedAngularCoordinates>
interpolationData
- 插值数据
Copyright © 2002-2023 CS GROUP. All rights reserved.