Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
jafar::slam::ImagePluckerFeatureObserveModel Class Reference

Sizeless 3D segment using the homogenous coordinates parametrisation observed in a perspective image. More...


Detailed Description

Sizeless 3D segment using the homogenous coordinates parametrisation observed in a perspective image.

Class ImagePluckerFeatureObserveModel

Definition at line 448 of file segmentFeature.hpp.

#include <segmentFeature.hpp>

Inheritance diagram for jafar::slam::ImagePluckerFeatureObserveModel:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 ImagePluckerFeatureObserveModel (SegmentFeatureModel &featureModel_, jafar::camera::CameraPinhole const &camera_)
Observation::ObservationType typeObs () const
void setPixCov (jblas::vec const &pixCov_, double stabilizingFactor=1.0)
void initInternalState (BaseFeature &feature, jafar::geom::T3DEuler const &robotPose_, Observation const &obs_) const
 Init extremities of the segment.
void updateInternalState (BaseFeature &feature, jafar::geom::T3DEuler const &robotPose_, Observation const &obs_) const
 Update extremities of the segment.
void predictExtObs (jblas::vec_range const &pose, jblas::sym_mat_range const &poseCov, jblas::vec3 const &ext, jblas::sym_mat const &extCov, jblas::vec &zPredExt, jblas::sym_mat &zPredExtCov)
 Predict the extremes of the observed line, with their covariance in the image plane.
void predictExtObsJac (jblas::vec_range const &pose, jblas::vec3 const Ext, jblas::vec &eInImage, jblas::mat &JeR, jblas::mat &JeExt)
 Predict the extreme and Jacobians.
void postInitCovariance (jblas::sym_mat_range &P, jblas::mat const &Jx)
 Assign covariances of the unobserved part.
void setup (double beta0=0, double beta1=0, double sigma_beta=0.5)
 Set up initial parameters.

Protected Member Functions

virtual jblas::vec const & homogeneousToImageModel (jblas::vec3 const &l_)=0
 homogeneous to Image 2D line representation conversion
virtual void homogeneousToImageModelJac (jblas::vec3 const &l_, jblas::mat &Jl) const =0
 homogeneous to Image 2D line representation -- Jacobians
virtual jblas::vec3 imageModelToHomogeneous (jblas::vec const &rt_)=0
 Image representation to homogeneous transform.
virtual void imageModelToHomogeneousJac (jblas::vec const &rt_, jblas::mat &HMrt)=0
 Rho-theta to homogeneous transform -- Jacobian.
virtual void imageModelToHomogeneousJac (jblas::vec const &rt_, jblas::vec3 &l, jblas::mat &HMrt)=0
 Rho-theta to homogeneous transform -- Jacobian.
jblas::vec3 planeBaseToDirVector (jblas::vec3 const &an_, jblas::vec2 const &beta_)
 Plane sub-vector a to plane base vector beta.
void planeBaseToDirVectorJac (jblas::vec_range const &an_, jblas::vec2 const &beta_, jblas::vec_range &b, jblas::mat33 &B_a)
 Plane sub-vector a to plane base vector -- Jacobians.
boost::tuple< double, double > computeExtremitiesAbscissa (SegmentFeature const &segFeature_, geom::T3DEuler const &robotPose_, SegmentObservation const &obs_) const
void segmentExtremitiesPluckerLines (SegmentObservation const &segObs_, jblas::vec &lineExt1Sensor, jblas::vec &lineExt2Sensor) const

Static Protected Member Functions

static boost::tuple< double,
double, double > 
pluckerLinesDistance (jblas::vec const &line1_, jblas::vec const &line2_)

Protected Attributes

SegmentFeatureModelsegmentFeatureModel
 Feature model.
jafar::camera::CameraPinhole camera
 Perspective camera.
jblas::mat33 Pl
 Plucker camera matrix.
jblas::mat33 Plinv
 Plucker camera inverse matrix.
jblas::vec2 beta
 initial plane base vector
jblas::mat22 covar_beta
 covariances matrix of initial plane base vector
jblas::mat JbBeta
 Jacobian of b wrt beta.
jblas::sym_mat p_pixCov
 covariance on pixel coordinate (u,v)

Member Function Documentation

Image representation to homogeneous transform.

Parameters:
rt_input 2D line representation -- e.g. rt = (rho,theta)'
Returns:
The homogeneous line in P3 -- l = (a,b,c)'

Implemented in jafar::slam::ScaledHomogeneousImagePluckerFeatureObserveModel, and jafar::slam::RhoThetaImagePluckerFeatureObserveModel.

virtual void jafar::slam::ImagePluckerFeatureObserveModel::imageModelToHomogeneousJac ( jblas::vec const &  rt_,
jblas::mat HMrt 
) [protected, pure virtual]

Rho-theta to homogeneous transform -- Jacobian.

Parameters:
rt_input 2D line representation
HMrtoutput transformation Jacobian

Implemented in jafar::slam::ScaledHomogeneousImagePluckerFeatureObserveModel, and jafar::slam::RhoThetaImagePluckerFeatureObserveModel.

virtual void jafar::slam::ImagePluckerFeatureObserveModel::imageModelToHomogeneousJac ( jblas::vec const &  rt_,
jblas::vec3 l,
jblas::mat HMrt 
) [protected, pure virtual]

Rho-theta to homogeneous transform -- Jacobian.

Parameters:
rt_input 2D line representation
loutput homogeneous line representation
HMrtoutput transformation Jacobian

Implemented in jafar::slam::ScaledHomogeneousImagePluckerFeatureObserveModel, and jafar::slam::RhoThetaImagePluckerFeatureObserveModel.

Assign covariances of the unobserved part.

Parameters:
Pcovariance of the landmark to initialize in global frame
JxJacobian of the feature in global frame wrt the feat. in robot frame

Reimplemented from jafar::slam::FeatureObserveModel.

void jafar::slam::ImagePluckerFeatureObserveModel::predictExtObs ( jblas::vec_range const &  pose,
jblas::sym_mat_range const &  poseCov,
jblas::vec3 const &  ext,
jblas::sym_mat const &  extCov,
jblas::vec zPredExt,
jblas::sym_mat zPredExtCov 
)

Predict the extremes of the observed line, with their covariance in the image plane.

Parameters:
posethe robot pose
poseCovthe robot pose covariance matrix
extone of the extremities in 3D space
extCovthe covariances matrix of the extreme in 3D space
zPredExtthe predicted extreme in the 2D image
zPredExtCovthe covariances matrix of the predicted extreme CAUTION: THIS IMPLEMENTATION IGNORES THE CROSS-VARIANCES ROBOT/FEATURE AND LEADS TO TOO BIG ELLIPSES IN THE IMAGE.
void jafar::slam::ImagePluckerFeatureObserveModel::predictExtObsJac ( jblas::vec_range const &  pose,
jblas::vec3 const  Ext,
jblas::vec eInImage,
jblas::mat JeR,
jblas::mat JeExt 
)

Predict the extreme and Jacobians.

Parameters:
posethe robot pose
Extone of the extremities in 3D space
eInImagethe predicted extreme in the 2D image
JeRand
JeExtJacobians of the prediction with respect to pose and extremity
void jafar::slam::ImagePluckerFeatureObserveModel::setup ( double  beta0 = 0,
double  beta1 = 0,
double  sigma_beta = 0.5 
)

Set up initial parameters.

Parameters:
beta0The first component of the lines director vector for initialization
beta1the second component
sigma_betaThe standard deviation of beta0 and beta1

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:49 for Jafar by doxygen 1.7.6.1
LAAS-CNRS