20 #include <gtsam/config.h>
72 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),
73 T(2, 2)), t_(
T(0, 3),
T(1, 3),
T(2, 3)) {
79 OptionalJacobian<6, 3> Ht = {});
96 void print(
const std::string&
s =
"")
const;
115 return Pose3(R_ *
T.R_, t_ + R_ *
T.t_);
142 static Vector6 Logmap(
const Pose3&
pose, OptionalJacobian<6, 6> Hpose = {});
148 Matrix6 AdjointMap()
const;
156 Vector6 Adjoint(
const Vector6& xi_b,
157 OptionalJacobian<6, 6> H_this = {},
158 OptionalJacobian<6, 6> H_xib = {})
const;
161 Vector6 AdjointTranspose(
const Vector6&
x,
162 OptionalJacobian<6, 6> H_this = {},
163 OptionalJacobian<6, 6> H_x = {})
const;
180 static Matrix6 adjointMap(
const Vector6&
xi);
185 static Vector6
adjoint(
const Vector6&
xi,
const Vector6&
y,
186 OptionalJacobian<6, 6> Hxi = {},
187 OptionalJacobian<6, 6> H_y = {});
196 static Vector6 adjointTranspose(
const Vector6&
xi,
const Vector6&
y,
198 OptionalJacobian<6, 6> H_y = {});
201 static Matrix6 ExpmapDerivative(
const Vector6&
xi);
204 static Matrix6 LogmapDerivative(
const Pose3&
xi);
222 static Matrix3 ComputeQforExpmapDerivative(
223 const Vector6&
xi,
double nearZeroThreshold = 1
e-5);
239 double nearZeroThreshold = 1
e-5);
252 return (
Matrix(4, 4) << 0., -wz, wy,
vx, wz, 0., -wx,
vy, -wy, wx, 0., vz, 0., 0., 0., 0.).finished();
267 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
289 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
303 const Rot3&
rotation(OptionalJacobian<3, 6> Hself = {})
const;
332 OptionalJacobian<6, 6> HaTb = {})
const;
339 OptionalJacobian<6, 6> HwTb = {})
const;
347 OptionalJacobian<1, 3> Hpoint = {})
const;
354 double range(
const Pose3&
pose, OptionalJacobian<1, 6> Hself = {},
355 OptionalJacobian<1, 6> Hpose = {})
const;
362 Unit3 bearing(
const Point3&
point, OptionalJacobian<2, 6> Hself = {},
363 OptionalJacobian<2, 3> Hpoint = {})
const;
371 Unit3 bearing(
const Pose3&
pose, OptionalJacobian<2, 6> Hself = {},
372 OptionalJacobian<2, 6> Hpose = {})
const;
402 OptionalJacobian<6, 6> Hy = {})
const;
409 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION
411 friend class boost::serialization::access;
412 template<
class Archive>
413 void serialize(Archive & ar,
const unsigned int ) {
414 ar & BOOST_SERIALIZATION_NVP(R_);
415 ar & BOOST_SERIALIZATION_NVP(t_);
420 #ifdef GTSAM_USE_QUATERNIONS
460 template <
typename T>