Adding adjoint and adjoint transpose functions

release/4.3a0
Frank Dellaert 2018-12-31 14:48:22 -05:00
parent 302978a93d
commit eada1ee505
1 changed files with 16 additions and 0 deletions

View File

@ -132,6 +132,8 @@ public:
* Ad_pose is 3*3 matrix that when applied to twist xi \f$ [T_x,T_y,\theta] \f$, returns Ad_pose(xi) * Ad_pose is 3*3 matrix that when applied to twist xi \f$ [T_x,T_y,\theta] \f$, returns Ad_pose(xi)
*/ */
Matrix3 AdjointMap() const; Matrix3 AdjointMap() const;
/// Apply AdjointMap to twist xi
inline Vector3 Adjoint(const Vector3& xi) const { inline Vector3 Adjoint(const Vector3& xi) const {
return AdjointMap()*xi; return AdjointMap()*xi;
} }
@ -141,6 +143,20 @@ public:
*/ */
static Matrix3 adjointMap(const Vector3& v); static Matrix3 adjointMap(const Vector3& v);
/**
* Action of the adjointMap on a Lie-algebra vector y, with optional derivatives
*/
Vector3 adjoint(const Vector3& xi, const Vector3& y) {
return adjointMap(xi) * y;
}
/**
* The dual version of adjoint action, acting on the dual space of the Lie-algebra vector space.
*/
Vector3 adjointTranspose(const Vector3& xi, const Vector3& y) {
return adjointMap(xi).transpose() * y;
}
/** /**
* wedge for SE(2): * wedge for SE(2):
* @param xi 3-dim twist (v,omega) where * @param xi 3-dim twist (v,omega) where