documentation for Pose2

release/4.3a0
Alex Cunningham 2011-11-06 17:22:09 +00:00
parent b0afd2644b
commit 929d5259c9
1 changed files with 45 additions and 38 deletions

View File

@ -79,7 +79,9 @@ public:
*this = Expmap(v);
}
// Testable requirements
/// @name Testable
/// @{
/** print with optional string */
void print(const std::string& s = "") const;
@ -87,30 +89,19 @@ public:
/** assert equality up to a tolerance */
bool equals(const Pose2& pose, double tol = 1e-9) const;
// Manifold requirements
/// @}
/// @name Group
/// @{
/** dimension of the variable - used to autodetect sizes */
inline static size_t Dim() { return dimension; }
/// identity for group operation
inline static Pose2 identity() {
return Pose2();
}
/** return DOF, dimensionality of tangent space = 3 */
inline size_t dim() const { return dimension; }
/** Apply tangent space update to an object */
Pose2 retract(const Vector& v) const;
/** @return local coordinates of p2 centered at *this */
Vector localCoordinates(const Pose2& p2) const;
// Group Requirements
/** inverse transformation with derivatives */
/// inverse transformation with derivatives
Pose2 inverse(boost::optional<Matrix&> H1=boost::none) const;
/**
* compose this transformation onto another (first *this and then p2)
* With optional derivatives
*/
/// compose this transformation onto another (first *this and then p2)
Pose2 compose(const Pose2& p2,
boost::optional<Matrix&> H1 = boost::none,
boost::optional<Matrix&> H2 = boost::none) const;
@ -120,11 +111,43 @@ public:
return boost::shared_ptr<Pose2>(new Pose2(compose(p2)));
}
/** compose syntactic sugar */
/// compose syntactic sugar
inline Pose2 operator*(const Pose2& p2) const {
return Pose2(r_*p2.r(), t_ + r_*p2.t());
}
/// @}
/// @name Manifold
/// @{
/// Dimensionality of tangent space = 3 DOF - used to autodetect sizes
inline static size_t Dim() { return dimension; }
/// Dimensionality of tangent space = 3 DOF
inline size_t dim() const { return dimension; }
/// Retraction from R^3 to Pose2 manifold neighborhood around current pose
Pose2 retract(const Vector& v) const;
/// Local 3D coordinates of Pose2 manifold neighborhood around current pose
Vector localCoordinates(const Pose2& p2) const;
/// @}
/// @name Lie Group
/// @{
/// Exponential map from Lie algebra se(2) to SE(2)
static Pose2 Expmap(const Vector& xi);
/// Exponential map from SE(2) to Lie algebra se(2)
static Vector Logmap(const Pose2& p);
/// @}
/** return transformation matrix */
Matrix matrix() const;
/**
* Return relative pose between p1 and p2, in p1 coordinate frame
*/
@ -137,22 +160,6 @@ public:
return boost::shared_ptr<Pose2>(new Pose2(between(p2)));
}
/** identity */
inline static Pose2 identity() {
return Pose2();
}
// Lie Group requirements
/** Exponential map using canonical coordinates */
static Pose2 Expmap(const Vector& xi);
/** Log map returning local coordinates */
static Vector Logmap(const Pose2& p);
/** return transformation matrix */
Matrix matrix() const;
/**
* Return point coordinates in pose coordinate frame
*/