62                         std::vector<Eigen::MatrixXf> 
depth;
    66                         std::vector<Eigen::MatrixXf> 
xx;
    70                         std::vector<Eigen::MatrixXf> 
yy;
    84                         Eigen::Matrix<bool, Eigen::Dynamic, Eigen::Dynamic> 
null;
   140                         void buildCoordinatesPyramid();
   141                         void buildCoordinatesPyramidFast();
   144                         void performWarping();
   147                         void calculateCoord();
   150                         void calculateDepthDerivatives();
   153                         void computeWeights();
   157                         void solveOneLevel();
   160                         void filterLevelSolution();
   191                         void odometryCalculation();
   197                         inline void getCTFLevels(
unsigned int &levels)
 const {levels = ctf_levels;}
   200                         inline void setFOV(
float new_fovh, 
float new_fovv);
   203                         inline void getFOV(
float &cur_fovh, 
float &cur_fovv)
 const {cur_fovh = 57.296*fovh; cur_fovv = 57.296*fovv;}
   218                         inline void getPointsCoord(Eigen::MatrixXf &
x, Eigen::MatrixXf &
y, Eigen::MatrixXf &
z);
   221                         inline void getDepthDerivatives(Eigen::MatrixXf &cur_du, Eigen::MatrixXf &cur_dv, Eigen::MatrixXf &cur_dt);
   233                         inline void getWeights(Eigen::MatrixXf &we);
   237                         virtual void loadFrame() = 0;
 
float previous_speed_const_weight
Speed filter parameters: Previous_speed_const_weight - Directly weights the previous speed in order t...
 
unsigned int image_level
Aux varibles: levels of the image pyramid and the solver, respectively. 
 
std::vector< Eigen::MatrixXf > xx
 
mrpt::poses::CPose3D cam_oldpose
Previous camera pose. 
 
std::vector< Eigen::MatrixXf > depth_warped
 
std::vector< Eigen::MatrixXf > yy_warped
 
float fps
Frames per second (Hz) 
 
unsigned int rows_i
Aux variables: number of rows and cols at a given level. 
 
float previous_speed_eig_weight
Default 0.5. 
 
std::vector< Eigen::MatrixXf > xx_old
 
std::vector< Eigen::MatrixXf > xx_warped
 
float getSpeedFilterConstWeight() const
Get the filter constant-weight of the velocity filter. 
 
void getCTFLevels(unsigned int &levels) const
Get the number of coarse-to-fine levels that are considered by the visual odometry method...
 
mrpt::math::CMatrixFloat61 getSolverSolution() const
Get the camera velocity (vx, vy, vz, wx, wy, wz) expressed in local reference frame estimated by the ...
 
std::vector< Eigen::MatrixXf > transformations
Transformations of the coarse-to-fine levels. 
 
unsigned int rows
The maximum resolution that will be considered by the visual odometry method. 
 
Eigen::MatrixXf depth_wf
Matrix that stores the original depth frames with the image resolution. 
 
mrpt::math::CMatrixFloat66 getCovariance() const
Get the least-square covariance matrix. 
 
std::vector< Eigen::MatrixXf > yy_old
 
float getSpeedFilterEigWeight() const
Get the filter eigen-weight of the velocity filter. 
 
bool fast_pyramid
Gaussian masks used to build the pyramid and flag to select accurate or fast pyramid. 
 
float execution_time
Execution time (ms) 
 
A numeric matrix of compile-time fixed size. 
 
Eigen::MatrixXf weights
Weights for the range flow constraint equations in the least square solution. 
 
void getFOV(float &cur_fovh, float &cur_fovv) const
Get the horizontal and vertical field of vision (in degrees) 
 
mrpt::math::CMatrixFloat61 getLastSpeedAbs() const
Get the last camera velocity (vx, vy, vz, wx, wy, wz) expressed in the world reference frame...
 
std::vector< Eigen::MatrixXf > depth_inter
 
unsigned int width
Aux variables: size from which the pyramid starts to be built. 
 
std::vector< Eigen::MatrixXf > depth_old
 
This abstract class implements a method called "Difodo" to perform Visual odometry with range cameras...
 
int JSAMPARRAY int int num_rows
 
int JSAMPARRAY int int JDIMENSION num_cols
 
unsigned int ctf_levels
Number of coarse-to-fine levels. 
 
Eigen::Matrix< float, 6, 1 > kai_loc
Filtered velocity in local coordinates. 
 
Eigen::Matrix< float, 6, 1 > kai_loc_level
Solution from the solver at a given level. 
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
std::vector< Eigen::MatrixXf > yy
 
std::vector< Eigen::MatrixXf > yy_inter
 
Eigen::Matrix< float, 6, 1 > kai_loc_old
 
A class used to store a 3D pose (a 3D translation + a rotation in 3D). 
 
unsigned int num_valid_points
Num of valid points after removing null pixels. 
 
Eigen::Matrix< float, 6, 1 > kai_abs
Last filtered velocity in absolute coordinates. 
 
float fovh
Camera properties: 
 
void setSpeedFilterConstWeight(float new_cweight)
Set the filter constant-weight of the velocity filter. 
 
mrpt::poses::CPose3D cam_pose
Camera poses. 
 
void setSpeedFilterEigWeight(float new_eweight)
Set the filter eigen-weight of the velocity filter. 
 
Eigen::Matrix< bool, Eigen::Dynamic, Eigen::Dynamic > null
Matrix which indicates whether the depth of a pixel is zero (null = 1) or not (null = 00)...
 
Eigen::Matrix< float, 6, 6 > est_cov
Least squares covariance matrix. 
 
std::vector< Eigen::MatrixXf > depth
Matrices that store the point coordinates after downsampling. 
 
float fovv
Vertical field of view (rad) 
 
unsigned int downsample
Downsample the image taken by the range camera. 
 
std::vector< Eigen::MatrixXf > xx_inter
 
void getRowsAndCols(unsigned int &num_rows, unsigned int &num_cols) const
Get the rows and cols of the depth image that are considered by the visual odometry method...
 
unsigned int cam_mode
Resolution of the images taken by the range camera. 
 
Eigen::MatrixXf du
Matrices that store the depth derivatives.