All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Private Member Functions | Private Attributes
ccny_rgbd::MotionEstimationICP Class Reference

Frame-to-frame ICP motion estimation. More...

#include <motion_estimation_icp.h>

Inheritance diagram for ccny_rgbd::MotionEstimationICP:
Inheritance graph
[legend]

List of all members.

Public Member Functions

int getModelSize () const
 Returns the number of points in the model built from the feature buffer.
bool getMotionEstimationImpl (RGBDFrame &frame, const tf::Transform &prediction, tf::Transform &motion)
 Main method for estimating the motion given an RGBD frame.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW MotionEstimationICP (const ros::NodeHandle &nh, const ros::NodeHandle &nh_private)
 Constructor from ROS noehandles.
virtual ~MotionEstimationICP ()
 Default destructor.

Private Member Functions

bool alignICPEuclidean (const Vector3fVector &data_means, tf::Transform &correction)
 Performs ICP alignment using the Euclidean distance for corresopndences.
void getCorrespEuclidean (const PointCloudFeature &data_cloud, IntVector &data_indices, IntVector &model_indices)
 Performs ICP alignment using the Euclidean distance for corresopndences.
bool getNNEuclidean (const PointFeature &data_point, int &eucl_nn_idx, double &eucl_dist_sq)
 Finds the nearest Euclidean neighbor.

Private Attributes

std::string base_frame_
 the moving frame (typically base_link or camera_link)
tf::Transform f2b_
 fixed frame to base (moving) frame
FeatureHistory feature_history_
 ring buffer of all the frames
std::string fixed_frame_
 the fixed frame (typically odom)
double max_corresp_dist_eucl_
 maximum Euclidean correspondce distance for ICP
double max_corresp_dist_eucl_sq_
 max squared correspondce distance, derived
int max_iterations_
 max ICP iterations
int min_correspondences_
 minimum correspondeces for ICP to continue
PointCloudFeature::Ptr model_ptr_
 the PointCloud which holds the aggregated history
ros::Publisher model_publisher_
 the ROS published for the model pointcloud
KdTree model_tree_
 kdtree of model_ptr_
bool publish_model_
 if true, the model will be published
double tf_epsilon_angular_
 angular convergence criteria for ICP
double tf_epsilon_linear_
 linear convergence criteria for ICP

Detailed Description

Frame-to-frame ICP motion estimation.

The motion is estimated by aligning the current features to the features from a number of previous frames.

Definition at line 43 of file motion_estimation_icp.h.


Constructor & Destructor Documentation

Constructor from ROS noehandles.

Parameters:
nhthe public nodehandle
nh_privatethe private notehandle

Definition at line 28 of file motion_estimation_icp.cpp.

Default destructor.

Definition at line 79 of file motion_estimation_icp.cpp.


Member Function Documentation

bool ccny_rgbd::MotionEstimationICP::alignICPEuclidean ( const Vector3fVector data_means,
tf::Transform correction 
) [private]

Performs ICP alignment using the Euclidean distance for corresopndences.

Parameters:
data_meansa vector of 3x1 matrices, repesenting the 3D positions of the features
correctionreference to the resulting transformation
Return values:
truethe motion estimation was successful
falsethe motion estimation failed

Definition at line 152 of file motion_estimation_icp.cpp.

void ccny_rgbd::MotionEstimationICP::getCorrespEuclidean ( const PointCloudFeature data_cloud,
IntVector data_indices,
IntVector model_indices 
) [private]

Performs ICP alignment using the Euclidean distance for corresopndences.

Parameters:
data_clouda pointcloud of the 3D positions of the features
data_indicesreference to a vector containting the resulting data indices
model_indicesreference to a vector containting the resulting model indices

Definition at line 208 of file motion_estimation_icp.cpp.

int ccny_rgbd::MotionEstimationICP::getModelSize ( ) const [inline, virtual]

Returns the number of points in the model built from the feature buffer.

Returns:
number of points in model

Reimplemented from ccny_rgbd::MotionEstimation.

Definition at line 75 of file motion_estimation_icp.h.

bool ccny_rgbd::MotionEstimationICP::getMotionEstimationImpl ( RGBDFrame frame,
const tf::Transform prediction,
tf::Transform motion 
) [virtual]

Main method for estimating the motion given an RGBD frame.

Parameters:
framethe current RGBD frame
predictionthe predicted motion (currently ignored)
motionthe (output) incremental motion, wrt the fixed frame
Return values:
truethe motion estimation was successful
falsethe motion estimation failed
Todo:
ignores prediction

Implements ccny_rgbd::MotionEstimation.

Definition at line 84 of file motion_estimation_icp.cpp.

bool ccny_rgbd::MotionEstimationICP::getNNEuclidean ( const PointFeature data_point,
int &  eucl_nn_idx,
double &  eucl_dist_sq 
) [private]

Finds the nearest Euclidean neighbor.

Parameters:
data_pointthe query 3D data point
eucl_nn_idxreference to the resulting nearest neigbor index in the model
eucl_dist_sqreference to the resulting squared distance
Return values:
truea neighbor was found
falsea neighbor was not found

Definition at line 230 of file motion_estimation_icp.cpp.


Member Data Documentation

the moving frame (typically base_link or camera_link)

Definition at line 86 of file motion_estimation_icp.h.

fixed frame to base (moving) frame

Definition at line 105 of file motion_estimation_icp.h.

ring buffer of all the frames

Definition at line 103 of file motion_estimation_icp.h.

the fixed frame (typically odom)

Definition at line 85 of file motion_estimation_icp.h.

maximum Euclidean correspondce distance for ICP

Definition at line 92 of file motion_estimation_icp.h.

max squared correspondce distance, derived

Definition at line 96 of file motion_estimation_icp.h.

max ICP iterations

Definition at line 88 of file motion_estimation_icp.h.

minimum correspondeces for ICP to continue

Definition at line 89 of file motion_estimation_icp.h.

the PointCloud which holds the aggregated history

Definition at line 100 of file motion_estimation_icp.h.

the ROS published for the model pointcloud

Definition at line 81 of file motion_estimation_icp.h.

kdtree of model_ptr_

Definition at line 101 of file motion_estimation_icp.h.

if true, the model will be published

Definition at line 94 of file motion_estimation_icp.h.

angular convergence criteria for ICP

Definition at line 91 of file motion_estimation_icp.h.

linear convergence criteria for ICP

Definition at line 90 of file motion_estimation_icp.h.


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


ccny_rgbd
Author(s): Ivan Dryanovski
autogenerated on Fri Apr 12 2013 20:38:48