gtsam 4.2
gtsam
Loading...
Searching...
No Matches
Pose3Upright.h
Go to the documentation of this file.
1
11
12#pragma once
13
14#include <gtsam_unstable/dllexport.h>
17
18namespace gtsam {
19
25class GTSAM_UNSTABLE_EXPORT Pose3Upright {
26public:
27 static const size_t dimension = 4;
28
29protected:
30
31 Pose2 T_;
32 double z_;
33
34public:
37
39 Pose3Upright() : z_(0.0) {}
40
42 Pose3Upright(const Pose3Upright& x) : T_(x.T_), z_(x.z_) {}
43 Pose3Upright(const Rot2& bearing, const Point3& t);
44 Pose3Upright(double x, double y, double z, double theta);
45 Pose3Upright(const Pose2& pose, double z);
46
48 Pose3Upright(const Pose3& fullpose);
49
53
55 void print(const std::string& s = "") const;
56
58 bool equals(const Pose3Upright& pose, double tol = 1e-9) const;
59
63
64 double x() const { return T_.x(); }
65 double y() const { return T_.y(); }
66 double z() const { return z_; }
67 double theta() const { return T_.theta(); }
68
69 Point2 translation2() const;
70 Point3 translation() const;
71 Rot2 rotation2() const;
72 Rot3 rotation() const;
73 Pose2 pose2() const;
74 Pose3 pose() const;
75
79
81 inline static size_t Dim() { return dimension; }
82
84 inline size_t dim() const { return dimension; }
85
88 Pose3Upright retract(const Vector& v) const;
89
91 Vector localCoordinates(const Pose3Upright& p2) const;
92
96
98 static Pose3Upright Identity() { return Pose3Upright(); }
99
101 Pose3Upright inverse(boost::optional<Matrix&> H1=boost::none) const;
102
104 Pose3Upright compose(const Pose3Upright& p2,
105 boost::optional<Matrix&> H1=boost::none,
106 boost::optional<Matrix&> H2=boost::none) const;
107
109 inline Pose3Upright operator*(const Pose3Upright& T) const { return compose(T); }
110
115 Pose3Upright between(const Pose3Upright& p2,
116 boost::optional<Matrix&> H1=boost::none,
117 boost::optional<Matrix&> H2=boost::none) const;
118
122
124 static Pose3Upright Expmap(const Vector& xi);
125
127 static Vector Logmap(const Pose3Upright& p);
128
130
131private:
132
133 // Serialization function
134 friend class boost::serialization::access;
135 template<class Archive>
136 void serialize(Archive & ar, const unsigned int /*version*/) {
137 ar & BOOST_SERIALIZATION_NVP(T_);
138 ar & BOOST_SERIALIZATION_NVP(z_);
139 }
140
141}; // \class Pose3Upright
142
143template<>
144struct traits<Pose3Upright> : public internal::Manifold<Pose3Upright> {};
145
146
147} // \namespace gtsam
3D Pose
2D Pose
Vector2 Point2
As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point2 to Vector2...
Definition Point2.h:27
Global functions in a separate testing namespace.
Definition chartTesting.h:28
std::string serialize(const T &input)
serializes to a string
Definition serialization.h:113
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:156
Vector3 Point3
As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point3 to Vector3...
Definition Point3.h:36
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition concepts.h:30
Both ManifoldTraits and Testable.
Definition Manifold.h:120
Template to create a binary predicate.
Definition Testable.h:111
A 2D pose (Point2,Rot2).
Definition Pose2.h:36
double y() const
get y
Definition Pose2.h:246
double x() const
get x
Definition Pose2.h:243
double theta() const
get theta
Definition Pose2.h:249
A 3D pose (R,t) : (Rot3,Point3).
Definition Pose3.h:37
Rotation matrix NOTE: the angle theta is in radians unless explicitly stated.
Definition Rot2.h:36
A 3D Pose with fixed pitch and roll.
Definition Pose3Upright.h:25
Pose3Upright compose(const Pose3Upright &p2, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const
compose this transformation onto another (first *this and then p2)
Definition Pose3Upright.cpp:93
size_t dim() const
Dimensionality of tangent space = 4 DOF.
Definition Pose3Upright.h:84
Pose3Upright(const Pose3Upright &x)
Copy constructor.
Definition Pose3Upright.h:42
Pose3Upright operator*(const Pose3Upright &T) const
compose syntactic sugar
Definition Pose3Upright.h:109
Pose3Upright()
Default constructor initializes at origin.
Definition Pose3Upright.h:39
static Pose3Upright Identity()
identity for group operation
Definition Pose3Upright.h:98
static size_t Dim()
Dimensionality of tangent space = 4 DOF - used to autodetect sizes.
Definition Pose3Upright.h:81