// see doc/math.lyx, SE(2) section Pose2 Pose2::compose(const Pose2& p2, boost::optional<Matrix&> H1, boost::optional<Matrix&> H2) const { // TODO: inline and reuse? if(H1) *H1 = p2.inverse().AdjointMap(); if(H2) *H2 = I3; return (*this)*p2; }
/* ************************************************************************* */ Pose2 Pose2betweenDefault(const Pose2& r1, const Pose2& r2) { return r1.inverse() * r2; }