20 #include <gtsam/config.h>
73 R_(
T(0, 0),
T(0, 1),
T(0, 2),
T(1, 0),
T(1, 1),
T(1, 2),
T(2, 0),
T(2, 1),
74 T(2, 2)), t_(
T(0, 3),
T(1, 3),
T(2, 3)) {
80 OptionalJacobian<6, 3> Ht = {});
83 static Pose3 FromPose2(
const Pose2&
p, OptionalJacobian<6,3>
H = {});
100 void print(
const std::string&
s =
"")
const;
119 return Pose3(R_ *
T.R_, t_ + R_ *
T.t_);
146 static Vector6 Logmap(
const Pose3&
pose, OptionalJacobian<6, 6> Hpose = {});
152 Matrix6 AdjointMap()
const;
160 Vector6 Adjoint(
const Vector6& xi_b,
161 OptionalJacobian<6, 6> H_this = {},
162 OptionalJacobian<6, 6> H_xib = {})
const;
165 Vector6 AdjointTranspose(
const Vector6&
x,
166 OptionalJacobian<6, 6> H_this = {},
167 OptionalJacobian<6, 6> H_x = {})
const;
184 static Matrix6 adjointMap(
const Vector6&
xi);
189 static Vector6
adjoint(
const Vector6&
xi,
const Vector6&
y,
190 OptionalJacobian<6, 6> Hxi = {},
191 OptionalJacobian<6, 6> H_y = {});
200 static Vector6 adjointTranspose(
const Vector6&
xi,
const Vector6&
y,
202 OptionalJacobian<6, 6> H_y = {});
205 static Matrix6 ExpmapDerivative(
const Vector6&
xi);
208 static Matrix6 LogmapDerivative(
const Pose3&
xi);
226 static Matrix3 ComputeQforExpmapDerivative(
227 const Vector6&
xi,
double nearZeroThreshold = 1
e-5);
243 double nearZeroThreshold = 1
e-5);
256 return (
Matrix(4, 4) << 0., -wz, wy,
vx, wz, 0., -wx,
vy, -wy, wx, 0., vz, 0., 0., 0., 0.).finished();
271 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
293 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
307 const Rot3&
rotation(OptionalJacobian<3, 6> Hself = {})
const;
336 OptionalJacobian<6, 6> HaTb = {})
const;
343 OptionalJacobian<6, 6> HwTb = {})
const;
351 OptionalJacobian<1, 3> Hpoint = {})
const;
358 double range(
const Pose3&
pose, OptionalJacobian<1, 6> Hself = {},
359 OptionalJacobian<1, 6> Hpose = {})
const;
366 Unit3 bearing(
const Point3&
point, OptionalJacobian<2, 6> Hself = {},
367 OptionalJacobian<2, 3> Hpoint = {})
const;
375 Unit3 bearing(
const Pose3&
pose, OptionalJacobian<2, 6> Hself = {},
376 OptionalJacobian<2, 6> Hpose = {})
const;
406 OptionalJacobian<6, 6> Hy = {})
const;
413 #if GTSAM_ENABLE_BOOST_SERIALIZATION
415 friend class boost::serialization::access;
416 template<
class Archive>
417 void serialize(Archive & ar,
const unsigned int ) {
418 ar & BOOST_SERIALIZATION_NVP(R_);
419 ar & BOOST_SERIALIZATION_NVP(t_);
424 #ifdef GTSAM_USE_QUATERNIONS
464 template <
typename T>