28 #include <boost/optional.hpp>
41 typedef typename POSE::Translation Translation;
42 typedef typename POSE::Rotation Rotation;
45 static Rotation checkRotationMemberAccess(
const POSE& p) {
49 static Translation checkTranslationMemberAccess(
const POSE& p) {
50 return p.translation();
53 static std::pair<size_t, size_t> checkTranslationInterval() {
54 return POSE::translationInterval();
57 static std::pair<size_t, size_t> checkRotationInterval() {
58 return POSE::rotationInterval();
67 template<
class V1,
class V2>
70 static double checkRangeMeasurement(
const V1& x,
const V2& p) {
74 static double checkRangeMeasurementDerivatives(
const V1& x,
const V2& p) {
75 boost::optional<Matrix&> H1, H2;
76 return x.range(p, H1, H2);
92 #define GTSAM_CONCEPT_POSE_INST(T) template class gtsam::PoseConcept<T>;
93 #define GTSAM_CONCEPT_POSE_TYPE(T) typedef gtsam::PoseConcept<T> _gtsam_PoseConcept##T;
96 #define GTSAM_CONCEPT_RANGE_MEASUREMENT_INST(V1,V2) template class gtsam::RangeMeasurementConcept<V1,V2>;
97 #define GTSAM_CONCEPT_RANGE_MEASUREMENT_TYPE(V1,V2) typedef gtsam::RangeMeasurementConcept<V1,V2> _gtsam_RangeMeasurementConcept##V1##V2;
Range measurement concept Given a pair of Lie variables, there must exist a function to calculate ran...
Definition: concepts.h:68
Pose Concept A must contain a translation and a rotation, with each structure accessable directly and...
Definition: concepts.h:39
typedef and functions to augment Eigen's MatrixXd