Inherits opentl::models::Motion.
Inherited by opentl::models::Brownian, opentl::models::ConstantVelocity, and opentl::models::Oscillatory.
Public Member Functions | |
| virtual math::SquareMatrix & | getNoiseCovariance () |
| Get process noise covariance matrix. | |
| virtual int | getNoiseDim () |
| Returns dimension of process noise square matrix. | |
| virtual void | getUniformPrior (opentl::core::State &srcDstState) |
| Function to get the first state prior for the tracking. The filter calls this function at initialization. Requires to call setNoiseCovariance() first to get range values for uniform distribution. | |
| LinearARModels (MotionType motionType, boost::shared_ptr< opentl::core::State > stateTemplate, math::Matrix *matB=NULL, double fixedDeltaT=0.0) | |
| Constructor. | |
| virtual void | predictMotion (opentl::core::State &srcDstState, bool addNoise=false, math::SquareMatrix **noiseCovMat=NULL, math::SquareMatrix **jacStateTrans=NULL, math::Vector *inputU=NULL) |
| Predicts state(k+1) based on specific motion model. | |
| virtual void | setAveragePose (const math::Vector &averagePose) |
| Set average pose value (used by constrained models, with additive update only). | |
| void | setFixedDeltaT (double fixedDeltaT=0.0f) |
| Sets a fixed delta t. | |
| virtual void | setNoiseCovariance (const math::SquareMatrix &noiseCovMat) |
| Set process noise covariance, and update matrices accordingly. | |
| virtual void | setUniformNoiseRange (const math::Vector &uniformNoiseRange) |
| Set uniform noise range (for the initial prior). | |
| virtual void | updateMatrices ()=0 |
| Update internal matrices (mMatA, mMatW, mMatQw) using the internal parameter mDeltaT. | |
| virtual | ~LinearARModels () |
| Destructor. | |
Protected Member Functions | |
| void | convertMatricesToRealTime () |
| Convert AR matrices, from time-less (A,W) to real-time (At,Wt). Time-less state model: s(t) = [p(t),p(t-1)] Real-time state model: s(t) = [p(t),p_dot(t)] Conversion matrix: H = [I I*dt; I 0] New matrices: At = inv(H)*A*H; Wt = inv(H)*W;. | |
Protected Attributes | |
| math::Matrix | matWTmp |
| math::Vector | mAveragePoseVec |
| Average pose vector. | |
| clock_t | mCurrentTime |
| double | mDeltaT |
| Time difference (of old posterior state till now). | |
| double | mFixedDeltaT |
| Use a fixed time value for deltaT if this value is not -1.0. | |
| math::SquareMatrix | mMatA |
| Real-time state transition matrix (A). | |
| math::SquareMatrix | mMatATimeless |
| Time-less version of state transition matrix (A). | |
| math::Matrix * | mMatB |
| Control matrix (B) if input vector u is given. | |
| math::SquareMatrix | mMatH |
| Conversion matrix between time-less and real-time AR model (function of deltaT). | |
| math::SquareMatrix | mMatNoiseCov |
| Process noise covariance. | |
| math::SquareMatrix | mMatQw |
| Process noise covariance matrix Qw = (W*w)*(W*w)'. | |
| math::Matrix | mMatW |
| Real-time process noise matrix (W). | |
| math::Matrix | mMatWTimeless |
| Time-less version of process noise matrix (W). | |
| math::Vector | mNoiseParamVecW |
| Vectors containing std for Gaussian noise generation (obtained from mMatNoiseCov). | |
| math::Vector | mNoiseVecW |
| Process noise vector (w). | |
| int | mPoseIncDim |
| Pose degrees of freedom (increment dimension). | |
| int | mStateIncDim |
| Full state degrees of freedom (increment dimension). | |
| math::Vector | mStateTmp |
| math::Vector | mUniformNoiseRange |
| Range of uniform noise (-u,u) for initializing the *absolute* pose vector. | |
| math::Vector | mVecTmp |
| hold temporary state information | |
| opentl::models::LinearARModels::LinearARModels | ( | MotionType | motionType, | |
| boost::shared_ptr< opentl::core::State > | stateTemplate, | |||
| math::Matrix * | matB = NULL, |
|||
| double | fixedDeltaT = 0.0 | |||
| ) |
| virtual opentl::models::LinearARModels::~LinearARModels | ( | ) | [virtual] |
Destructor.
| void opentl::models::LinearARModels::convertMatricesToRealTime | ( | ) | [protected] |
Convert AR matrices, from time-less (A,W) to real-time (At,Wt). Time-less state model: s(t) = [p(t),p(t-1)] Real-time state model: s(t) = [p(t),p_dot(t)] Conversion matrix: H = [I I*dt; I 0] New matrices: At = inv(H)*A*H; Wt = inv(H)*W;.
| virtual math::SquareMatrix& opentl::models::LinearARModels::getNoiseCovariance | ( | ) | [virtual] |
| virtual int opentl::models::LinearARModels::getNoiseDim | ( | ) | [virtual] |
Returns dimension of process noise square matrix.
Implements opentl::models::Motion.
| virtual void opentl::models::LinearARModels::getUniformPrior | ( | opentl::core::State & | srcDstState | ) | [virtual] |
Function to get the first state prior for the tracking. The filter calls this function at initialization. Requires to call setNoiseCovariance() first to get range values for uniform distribution.
| srcDstState | State used as basis for initialization of motion |
Implements opentl::models::Motion.
| virtual void opentl::models::LinearARModels::predictMotion | ( | opentl::core::State & | srcDstState, | |
| bool | addNoise = false, |
|||
| math::SquareMatrix ** | noiseCovMat = NULL, |
|||
| math::SquareMatrix ** | jacStateTrans = NULL, |
|||
| math::Vector * | inputU = NULL | |||
| ) | [virtual] |
Predicts state(k+1) based on specific motion model.
| srcDstState | Variable holding input and output state | |
| addNoise | Optional: (default = false) if true, process noise will be added to state(k+1) | |
| noiseCovMat | Gives access to (dynamic) process noise covariance matrix | |
| jacStateTrans | Optional: returns Jacobian of state transition matrix | |
| inputU | Optional: input control vector (u) |
Implements opentl::models::Motion.
| virtual void opentl::models::LinearARModels::setAveragePose | ( | const math::Vector & | averagePose | ) | [inline, virtual] |
Set average pose value (used by constrained models, with additive update only).
| averagePose | Input average pose vector |
Implements opentl::models::Motion.
| void opentl::models::LinearARModels::setFixedDeltaT | ( | double | fixedDeltaT = 0.0f |
) | [virtual] |
Sets a fixed delta t.
| fixedDeltaT | value of delta t, if set to 0.0 then delta t is computed dynamically |
Implements opentl::models::Motion.
| virtual void opentl::models::LinearARModels::setNoiseCovariance | ( | const math::SquareMatrix & | noiseCovMat | ) | [virtual] |
| virtual void opentl::models::LinearARModels::setUniformNoiseRange | ( | const math::Vector & | uniformNoiseRange | ) | [inline, virtual] |
| virtual void opentl::models::LinearARModels::updateMatrices | ( | ) | [pure virtual] |
Update internal matrices (mMatA, mMatW, mMatQw) using the internal parameter mDeltaT.
Implemented in opentl::models::Brownian, opentl::models::ConstantVelocity, and opentl::models::Oscillatory.
math::Matrix opentl::models::LinearARModels::matWTmp [protected] |
Average pose vector.
clock_t opentl::models::LinearARModels::mCurrentTime [protected] |
double opentl::models::LinearARModels::mDeltaT [protected] |
Time difference (of old posterior state till now).
double opentl::models::LinearARModels::mFixedDeltaT [protected] |
Use a fixed time value for deltaT if this value is not -1.0.
Real-time state transition matrix (A).
Time-less version of state transition matrix (A).
math::Matrix* opentl::models::LinearARModels::mMatB [protected] |
Control matrix (B) if input vector u is given.
Conversion matrix between time-less and real-time AR model (function of deltaT).
Process noise covariance.
Process noise covariance matrix Qw = (W*w)*(W*w)'.
math::Matrix opentl::models::LinearARModels::mMatW [protected] |
Real-time process noise matrix (W).
Time-less version of process noise matrix (W).
Vectors containing std for Gaussian noise generation (obtained from mMatNoiseCov).
Process noise vector (w).
int opentl::models::LinearARModels::mPoseIncDim [protected] |
Pose degrees of freedom (increment dimension).
int opentl::models::LinearARModels::mStateIncDim [protected] |
Full state degrees of freedom (increment dimension).
Range of uniform noise (-u,u) for initializing the *absolute* pose vector.
math::Vector opentl::models::LinearARModels::mVecTmp [protected] |
hold temporary state information
1.5.8