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

3D segments using the anchored plucker parametrisation observed in a perspective image. More...


Detailed Description

3D segments using the anchored plucker parametrisation observed in a perspective image.

Definition at line 150 of file segmentAnchorPluckerFeature.hpp.

#include <segmentAnchorPluckerFeature.hpp>

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

List of all members.

Public Member Functions

 ImageAnchorPluckerFeatureObserveModel (SegAnchorPluckerFeatureModel &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 postInitCovariance (jblas::sym_mat_range &P, jblas::mat const &Jx)
 Assign covariances of the unobserved part.
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.
virtual jblas::vec const & computeInnovation (jblas::vec const &z_, jblas::vec const &zPred_)
 Innovation.
virtual void computeSensorR (Observation const &obs)
 Build covariances matrix of observation.
void setup (double beta0=0, double beta1=0, double sigma_beta=0.5)
 Set up initial parameters.

Static Public Member Functions

static jblas::vec2 extToImageModel (jblas::vec const &ext1, jblas::vec const &ext2)
 Compute two lines from the optical center through both segment extremities.
static void extToImageModelJac (jblas::vec const &ext1, jblas::vec const &ext2, jblas::mat &J)
 The Jacobians of extToLine() wrt the extremes.

Protected Member Functions

boost::tuple< double, double > computeExtremitiesAbscissa (SegmentAnchorFeature const &segFeature_, geom::T3DEuler const &robotPose_, SegmentObservation const &obs_) const
void segmentExtremitiesPluckerLines (SegmentObservation const &segObs_, jblas::vec &lineExt1Sensor, jblas::vec &lineExt2Sensor) const
jblas::vec const & predictObservationInSensorFrame (const jblas::vec &feature_)
 Prediction of the observation, the feature is expressed in the sensor frame featureInSensorFrame_.
void predictObservationInSensorFrameJac (const jblas::vec &feature_)
 Jacobian of predictObservationInSensorFrame().
jblas::vec inverseObservationInSensorFrame (Observation const &obs_)
void inverseObservationInSensorFrameJac (Observation const &obs_)
 jacobian of inverseObservationInSensorFrame()

Static Protected Member Functions

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

Protected Attributes

SegAnchorPluckerFeatureModelsegAnchorPluckerFeatureModel
 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

Build covariances matrix of observation.

Parameters:
obsobservation as a couple of endpoints

Reimplemented from jafar::slam::BaseFeatureObserveModel.

Compute two lines from the optical center through both segment extremities.

Parameters:
ext1the first extreme of the detected segment
ext2the second extreme
static void jafar::slam::ImageAnchorPluckerFeatureObserveModel::extToImageModelJac ( jblas::vec const &  ext1,
jblas::vec const &  ext2,
jblas::mat J 
) [static]

The Jacobians of extToLine() wrt the extremes.

Parameters:
ext1the first extreme of the detected segment
ext2the second extreme
JThe returned Jacobian

inverse observation function in sensor frame, to be defined by user.

Implements jafar::slam::FeatureObserveModel.

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::ImageAnchorPluckerFeatureObserveModel::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::ImageAnchorPluckerFeatureObserveModel::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::ImageAnchorPluckerFeatureObserveModel::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