iLab Neuromorphic Robotics Toolkit
0.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
TransformationEstimationSVD.H
Go to the documentation of this file.
1
/*! @file
2
@author Shane Grant
3
@copyright GNU Public License (GPL v3)
4
@section License
5
@verbatim
6
// ////////////////////////////////////////////////////////////////////////
7
// The iLab Neuromorphic Robotics Toolkit (NRT) //
8
// Copyright 2010-2012 by the University of Southern California (USC) //
9
// and the iLab at USC. //
10
// //
11
// iLab - University of Southern California //
12
// Hedco Neurociences Building, Room HNB-10 //
13
// Los Angeles, Ca 90089-2520 - USA //
14
// //
15
// See http://ilab.usc.edu for information about this project. //
16
// ////////////////////////////////////////////////////////////////////////
17
// This file is part of The iLab Neuromorphic Robotics Toolkit. //
18
// //
19
// The iLab Neuromorphic Robotics Toolkit is free software: you can //
20
// redistribute it and/or modify it under the terms of the GNU General //
21
// Public License as published by the Free Software Foundation, either //
22
// version 3 of the License, or (at your option) any later version. //
23
// //
24
// The iLab Neuromorphic Robotics Toolkit is distributed in the hope //
25
// that it will be useful, but WITHOUT ANY WARRANTY; without even the //
26
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
27
// PURPOSE. See the GNU General Public License for more details. //
28
// //
29
// You should have received a copy of the GNU General Public License //
30
// along with The iLab Neuromorphic Robotics Toolkit. If not, see //
31
// <http://www.gnu.org/licenses/>. //
32
// ////////////////////////////////////////////////////////////////////////
33
@endverbatim */
34
35
#ifdef NRT_HAVE_CLOUD
36
#ifndef NRT_POINTCLOUD2_REGISTRATION_TRANSFORMATION_TRANSFORMATIONESTIMATIONSVD_H_
37
#define NRT_POINTCLOUD2_REGISTRATION_TRANSFORMATION_TRANSFORMATIONESTIMATIONSVD_H_
38
39
#include <
nrt/PointCloud2/Registration/Transformation/TransformationEstimationBase.H
>
40
41
namespace
nrt
42
{
43
//! Estimates a rigid transform using singular value decomposition
44
class
TransformationEstimationSVD
:
public
TransformationEstimationBase
45
{
46
typedef
PointCloud2::AffineTransform
AffineTransform;
47
48
public
:
49
//! Estimates a rigid transformation between a source and target cloud
50
/*! @param source The source point cloud
51
@param target The target point cloud
52
@return The 4x4 rotation matrix that performs the transform */
53
AffineTransform
estimateTransform
(
PointCloud2
const
source,
54
PointCloud2
const
target );
55
56
//! Estimates a rigid transformation between a source and target cloud
57
/*! @param source The source point cloud
58
@param target The target point cloud
59
@param correspondences The correspondences between two clouds
60
@return The 4x4 rotation matrix that performs the transform */
61
AffineTransform
estimateTransform
(
PointCloud2
const
source,
62
PointCloud2
const
target,
63
Correspondences
const
correspondences );
64
65
//! Gets the minimum required number of correspondences to estimate a transform
66
inline
size_t
minimumNumCorrespondences
()
const
{
return
3; }
67
68
protected
:
69
//! Does the actual estimation
70
/*! Use either ref or r value ref here since we want this to work
71
with the virtual functions in the iterators */
72
AffineTransform
estimate
(
PointCloud2::ConstIterator<>
&& sourceBegin,
73
PointCloud2::ConstIterator<>
&& targetBegin,
74
const
size_t
srcSize );
75
};
76
}
// namespace nrt
77
78
#endif // NRT_POINTCLOUD2_REGISTRATION_TRANSFORMATION_TRANSFORMATIONESTIMATIONSVD_H_
79
#endif // NRT_HAVE_CLOUD
include
nrt
PointCloud2
Registration
Transformation
TransformationEstimationSVD.H
Generated on Tue Jul 15 2014 17:09:38 for iLab Neuromorphic Robotics Toolkit by
1.8.4