Jafar
|
Sizeless 3D segment using the homogenous coordinates parametrisation observed in a perspective image. More...
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>
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 | |
SegmentFeatureModel & | segmentFeatureModel |
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) |
virtual jblas::vec3 jafar::slam::ImagePluckerFeatureObserveModel::imageModelToHomogeneous | ( | jblas::vec const & | rt_ | ) | [protected, pure virtual] |
Image representation to homogeneous transform.
rt_ | input 2D line representation -- e.g. rt = (rho,theta)' |
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.
rt_ | input 2D line representation |
HMrt | output 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.
rt_ | input 2D line representation |
l | output homogeneous line representation |
HMrt | output transformation Jacobian |
Implemented in jafar::slam::ScaledHomogeneousImagePluckerFeatureObserveModel, and jafar::slam::RhoThetaImagePluckerFeatureObserveModel.
void jafar::slam::ImagePluckerFeatureObserveModel::postInitCovariance | ( | jblas::sym_mat_range & | P, |
jblas::mat const & | Jx | ||
) | [virtual] |
Assign covariances of the unobserved part.
P | covariance of the landmark to initialize in global frame |
Jx | Jacobian 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.
pose | the robot pose |
poseCov | the robot pose covariance matrix |
ext | one of the extremities in 3D space |
extCov | the covariances matrix of the extreme in 3D space |
zPredExt | the predicted extreme in the 2D image |
zPredExtCov | the 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.
pose | the robot pose |
Ext | one of the extremities in 3D space |
eInImage | the predicted extreme in the 2D image |
JeR | and |
JeExt | Jacobians 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.
beta0 | The first component of the lines director vector for initialization |
beta1 | the second component |
sigma_beta | The standard deviation of beta0 and beta1 |
Generated on Wed Oct 15 2014 00:37:49 for Jafar by doxygen 1.7.6.1 |