Classes | |
class | CNetworkOfPoses |
A network of links constraining the relative pose of pairs of nodes, indentified by their numeric IDs (of type size_t). More... | |
class | CPoint |
A virtual base class to represent a point in 2D or 3D. More... | |
class | CPoint2D |
A class used to store a 2D point. More... | |
class | CPoint2DPDF |
Declares a class that represents a Probability Distribution function (PDF) of a 2D point (x,y). More... | |
class | CPoint2DPDFGaussian |
A gaussian distribution for 2D points. More... | |
class | CPoint3D |
A class used to store a 3D point. More... | |
class | CPointPDF |
Declares a class that represents a Probability Distribution function (PDF) of a 3D point (x,y,z). More... | |
class | CPointPDFGaussian |
A gaussian distribution for 3D points. More... | |
class | TSimple3DPoint |
Data within each particle. More... | |
class | CPointPDFParticles |
A probability distribution of a 2D/3D point, represented as a set of random samples (particles). More... | |
class | CPointPDFSOG |
Declares a class that represents a Probability Density function (PDF) of a 3D point ![]() | |
class | CPose |
A virtual base class to represent a pose in 2D or 3D. More... | |
class | CPose2D |
A class used to store a 2D pose. More... | |
class | CPose2DGridTemplate |
This is a template class for storing a 3D (2D+heading) grid containing any kind of data. More... | |
class | CPose3D |
A class used to store a 3D pose. More... | |
class | CPose3DInterpolator |
A trajectory in time and in 6D (CPose3D) that interpolates using splines the intervals between a set of given time-referenced poses. More... | |
class | CPose3DPDF |
Declares a class that represents a Probability Density Function (PDF) of a 3D pose (6D actually). More... | |
class | CPose3DPDFGaussian |
Declares a class that represents a Probability Density function (PDF) of a 3D pose ![]() | |
class | CPose3DPDFParticles |
Declares a class that represents a Probability Density function (PDF) of a 3D pose This class implements that PDF using a set of m_particles (for using particle filter methods), where M weighted m_particles represent the PDF. More... | |
class | CPose3DPDFSOG |
Declares a class that represents a Probability Density function (PDF) of a 3D(6D) pose ![]() | |
class | CPoseOrPoint |
The base class for 2D points, 3D points, 2D poses and 3D poses. More... | |
class | CPosePDF |
Declares a class that represents a probability density function (pdf) of a 2D pose (x,y,phi). More... | |
class | CPosePDFGaussian |
Declares a class that represents a Probability Density function (PDF) of a 2D pose ![]() | |
class | CPosePDFGrid |
Declares a class that represents a Probability Distribution function (PDF) of a 2D pose (x,y,phi). More... | |
class | CPosePDFParticles |
Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x,y,phi), using a set of weighted samples. More... | |
class | CPosePDFSOG |
Declares a class that represents a Probability Density function (PDF) of a 2D pose ![]() | |
class | CPoseRandomSampler |
An efficient generator of random samples drawn from a given 2D (CPosePDF) or 3D (CPose3DPDF) pose probability density function (pdf). More... | |
class | CPoses2DSequence |
This class stores a sequence of relative, incremental 2D poses. More... | |
class | CPoses3DSequence |
This class stores a sequence of relative, incremental 3D poses. More... | |
Typedefs | |
typedef CNetworkOfPoses < CPosePDFGaussian > | CNetworkOfPoses2D |
The specialization of CNetworkOfPoses for poses of type CPosePDFGaussian. | |
typedef CNetworkOfPoses < CPose3DPDFGaussian > | CNetworkOfPoses3D |
The specialization of CNetworkOfPoses for poses of type CPose3DPDFGaussian. | |
typedef std::pair < mrpt::system::TTimeStamp, mrpt::poses::CPose3D > | TTimePosePair |
typedef CProbabilityParticle < CPose3D > | CPose3DParticle |
A type definition for m_particles containing a 3D pose. | |
Functions | |
template<class CPOSE > | |
double MRPTDLLIMPEXP | optimizePoseGraph_levmarq (const CNetworkOfPoses< CPOSE > &pose_graph, std::map< size_t, CPOSE > &optimal_poses, const size_t max_iterations=100, const size_t origin_pose=static_cast< size_t >(-1)) |
An algorithm for optimizing a network of 2D or 3D pose links based on Levenberg-Marquardt error minimization. | |
template<class CPOSE > | |
double MRPTDLLIMPEXP | optimizePoseGraph_stogradesc (const CNetworkOfPoses< CPOSE > &pose_graph, std::map< size_t, CPOSE > &optimal_poses, const size_t max_iterations=100, const size_t origin_pose=static_cast< size_t >(-1)) |
An algorithm for optimizing a network of 2D or 3D pose links based on stochastic gradient descent. | |
std::ostream MRPTDLLIMPEXP & | operator<< (std::ostream &o, const CPoint2D &p) |
Textual output stream function. | |
bool MRPTDLLIMPEXP | operator< (const CPoint2D &a, const CPoint2D &b) |
Used by STL algorithms. | |
bool MRPTDLLIMPEXP | operator== (const CPoint2D &p1, const CPoint2D &p2) |
bool MRPTDLLIMPEXP | operator!= (const CPoint2D &p1, const CPoint2D &p2) |
std::ostream MRPTDLLIMPEXP & | operator<< (std::ostream &o, const CPoint3D &p) |
bool MRPTDLLIMPEXP | operator== (const CPoint3D &p1, const CPoint3D &p2) |
bool MRPTDLLIMPEXP | operator!= (const CPoint3D &p1, const CPoint3D &p2) |
std::ostream MRPTDLLIMPEXP & | operator<< (std::ostream &o, const CPose2D &p) |
CPose2D MRPTDLLIMPEXP | operator- (const CPose2D &p) |
Unary - operator: return the inverse pose "-p" (Note that is NOT the same than a pose with negative x y phi). | |
bool MRPTDLLIMPEXP | operator== (const CPose2D &p1, const CPose2D &p2) |
bool MRPTDLLIMPEXP | operator!= (const CPose2D &p1, const CPose2D &p2) |
std::ostream MRPTDLLIMPEXP & | operator<< (std::ostream &o, const CPose3D &p) |
CPose3D MRPTDLLIMPEXP | operator- (const CPose3D &p) |
Unary - operator: return the inverse pose "-p" (Note that is NOT the same than a pose with negative x y z yaw pitch roll). | |
bool MRPTDLLIMPEXP | operator== (const CPose3D &p1, const CPose3D &p2) |
bool MRPTDLLIMPEXP | operator!= (const CPose3D &p1, const CPose3D &p2) |
CPose3DPDFGaussian MRPTDLLIMPEXP | operator+ (const CPose3DPDFGaussian &x, const CPose3DPDFGaussian &u) |
Pose composition for two 3D pose Gaussians (see formulas on the top of this page). | |
std::ostream MRPTDLLIMPEXP & | operator<< (std::ostream &out, const CPose3DPDFGaussian &obj) |
Dumps the mean and covariance matrix to a text stream. | |
bool MRPTDLLIMPEXP | operator== (const CPose3DPDFGaussian &p1, const CPose3DPDFGaussian &p2) |
std::ostream & | operator<< (std::ostream &out, const CPosePDFGaussian &obj) |
Dumps the mean and covariance matrix to a text stream. | |
poses::CPosePDFGaussian | operator+ (const mrpt::poses::CPose2D &A, const mrpt::poses::CPosePDFGaussian &B) |
Returns the Gaussian distribution of ![]() ![]() | |
bool MRPTDLLIMPEXP | operator== (const CPosePDFGaussian &p1, const CPosePDFGaussian &p2) |
Variables | |
class MRPTDLLIMPEXP | CPose2D |
class MRPTDLLIMPEXP | CPose3D |
class MRPTDLLIMPEXP | CPoint2D |
class MRPTDLLIMPEXP | CPoint3D |
The specialization of CNetworkOfPoses for poses of type CPosePDFGaussian.
Definition at line 58 of file constrained_pose_network.h.
The specialization of CNetworkOfPoses for poses of type CPose3DPDFGaussian.
Definition at line 59 of file constrained_pose_network.h.
A type definition for m_particles containing a 3D pose.
Definition at line 54 of file CPose3DPDFParticles.h.
typedef std::pair<mrpt::system::TTimeStamp, mrpt::poses::CPose3D> mrpt::poses::TTimePosePair |
Definition at line 42 of file CPose3DInterpolator.h.
bool MRPTDLLIMPEXP mrpt::poses::operator!= | ( | const CPose3D & | p1, | |
const CPose3D & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator!= | ( | const CPose2D & | p1, | |
const CPose2D & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator!= | ( | const CPoint3D & | p1, | |
const CPoint3D & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator!= | ( | const CPoint2D & | p1, | |
const CPoint2D & | p2 | |||
) |
poses::CPosePDFGaussian mrpt::poses::operator+ | ( | const mrpt::poses::CPose2D & | A, | |
const mrpt::poses::CPosePDFGaussian & | B | |||
) |
Returns the Gaussian distribution of , for
.
CPose3DPDFGaussian MRPTDLLIMPEXP mrpt::poses::operator+ | ( | const CPose3DPDFGaussian & | x, | |
const CPose3DPDFGaussian & | u | |||
) |
Pose composition for two 3D pose Gaussians (see formulas on the top of this page).
CPose3D MRPTDLLIMPEXP mrpt::poses::operator- | ( | const CPose3D & | p | ) |
Unary - operator: return the inverse pose "-p" (Note that is NOT the same than a pose with negative x y z yaw pitch roll).
CPose2D MRPTDLLIMPEXP mrpt::poses::operator- | ( | const CPose2D & | p | ) |
Unary - operator: return the inverse pose "-p" (Note that is NOT the same than a pose with negative x y phi).
bool MRPTDLLIMPEXP mrpt::poses::operator< | ( | const CPoint2D & | a, | |
const CPoint2D & | b | |||
) |
Used by STL algorithms.
std::ostream& mrpt::poses::operator<< | ( | std::ostream & | out, | |
const CPosePDFGaussian & | obj | |||
) |
Dumps the mean and covariance matrix to a text stream.
std::ostream MRPTDLLIMPEXP& mrpt::poses::operator<< | ( | std::ostream & | out, | |
const CPose3DPDFGaussian & | obj | |||
) |
Dumps the mean and covariance matrix to a text stream.
std::ostream MRPTDLLIMPEXP& mrpt::poses::operator<< | ( | std::ostream & | o, | |
const CPose3D & | p | |||
) |
std::ostream MRPTDLLIMPEXP& mrpt::poses::operator<< | ( | std::ostream & | o, | |
const CPose2D & | p | |||
) |
std::ostream MRPTDLLIMPEXP& mrpt::poses::operator<< | ( | std::ostream & | o, | |
const CPoint3D & | p | |||
) |
std::ostream MRPTDLLIMPEXP& mrpt::poses::operator<< | ( | std::ostream & | o, | |
const CPoint2D & | p | |||
) |
Textual output stream function.
bool MRPTDLLIMPEXP mrpt::poses::operator== | ( | const CPosePDFGaussian & | p1, | |
const CPosePDFGaussian & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator== | ( | const CPose3DPDFGaussian & | p1, | |
const CPose3DPDFGaussian & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator== | ( | const CPose3D & | p1, | |
const CPose3D & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator== | ( | const CPose2D & | p1, | |
const CPose2D & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator== | ( | const CPoint3D & | p1, | |
const CPoint3D & | p2 | |||
) |
bool MRPTDLLIMPEXP mrpt::poses::operator== | ( | const CPoint2D & | p1, | |
const CPoint2D & | p2 | |||
) |
double MRPTDLLIMPEXP mrpt::poses::optimizePoseGraph_levmarq | ( | const CNetworkOfPoses< CPOSE > & | pose_graph, | |
std::map< size_t, CPOSE > & | optimal_poses, | |||
const size_t | max_iterations = 100 , |
|||
const size_t | origin_pose = static_cast< size_t >(-1) | |||
) | [inline] |
An algorithm for optimizing a network of 2D or 3D pose links based on Levenberg-Marquardt error minimization.
It is computed the list of optimal, consistent global coordinates for each node in the graph. Relative poses are represented by Gaussians with a mean and a covariance, which is also taken into account in the optimization.
The algorithm can be seen as an extension to the work of Lu & Milios
pose_graph | [IN] The graph of pose constraints. It can be of either type CNetworkOfPoses2D or CNetworkOfPoses3D. | |
optimal_poses | [OUT] The consistent, global coordinates of all the pose nodes in the graph. | |
origin_pose | [IN] Due to the degrees of freedom, one arbitrary pose is set to the origin (0,0,0). This parameter defines the pose ID of the pose to be taken as the origin, and the default value (ID:-1) will select the reference pose in the first link in pose_graph. | |
max_iterations | [IN] The maximum number of iterations. If it is set to 0, the global poses computed as initial values from Dijkstra will be returned. |
double MRPTDLLIMPEXP mrpt::poses::optimizePoseGraph_stogradesc | ( | const CNetworkOfPoses< CPOSE > & | pose_graph, | |
std::map< size_t, CPOSE > & | optimal_poses, | |||
const size_t | max_iterations = 100 , |
|||
const size_t | origin_pose = static_cast< size_t >(-1) | |||
) | [inline] |
An algorithm for optimizing a network of 2D or 3D pose links based on stochastic gradient descent.
It is computed the list of optimal, consistent global coordinates for each node in the graph. Relative poses are represented by Gaussians with a mean and a covariance, which is also taken into account in the optimization.
This class is a C++ implementation of the work proposed in the paper:
pose_graph | [IN] The graph of pose constraints. It can be of either type CNetworkOfPoses2D or CNetworkOfPoses3D. | |
optimal_poses | [OUT] The consistent, global coordinates of all the pose nodes in the graph. | |
origin_pose | [IN] Due to the degrees of freedom, one arbitrary pose is set to the origin (0,0,0). This parameter defines the pose ID of the pose to be taken as the origin, and the default value (ID:-1) will select the reference pose in the first link in pose_graph. | |
max_iterations | [IN] The maximum number of iterations. If it is set to 0, the global poses computed as initial values from Dijkstra will be returned. |
class MRPTDLLIMPEXP mrpt::poses::CPoint2D |
class MRPTDLLIMPEXP mrpt::poses::CPoint3D |
class MRPTDLLIMPEXP mrpt::poses::CPose2D |
class MRPTDLLIMPEXP mrpt::poses::CPose3D |
Definition at line 40 of file CMatrix.h.
Referenced by mrpt::slam::CMetricMap::computeObservationLikelihood(), mrpt::slam::CObservationOdometry::getSensorPose(), mrpt::slam::CObservationBatteryState::getSensorPose(), mrpt::opengl::CAngularObservationMesh::FTrace2D< T >::operator()(), and mrpt::opengl::CAngularObservationMesh::FTrace1D< T >::operator()().
Page generated by Doxygen 1.5.7.1 for MRPT 0.7.1 SVN: at Mon Aug 17 23:02:22 EDT 2009 |