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