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 = {});
82 static Pose3 FromPose2(
const Pose2&
p, OptionalJacobian<6,3>
H = {});
99 void print(
const std::string&
s =
"")
const;
118 return Pose3(R_ *
T.R_, t_ + R_ *
T.t_);
145 static Vector6 Logmap(
const Pose3&
pose, OptionalJacobian<6, 6> Hpose = {});
159 Vector6 Adjoint(
const Vector6& xi_b,
160 OptionalJacobian<6, 6> H_this = {},
161 OptionalJacobian<6, 6> H_xib = {})
const;
164 Vector6 AdjointTranspose(
const Vector6&
x,
165 OptionalJacobian<6, 6> H_this = {},
166 OptionalJacobian<6, 6> H_x = {})
const;
183 static Matrix6 adjointMap(
const Vector6&
xi);
188 static Vector6
adjoint(
const Vector6&
xi,
const Vector6&
y,
189 OptionalJacobian<6, 6> Hxi = {},
190 OptionalJacobian<6, 6> H_y = {});
199 static Vector6 adjointTranspose(
const Vector6&
xi,
const Vector6&
y,
201 OptionalJacobian<6, 6> H_y = {});
204 static Matrix6 ExpmapDerivative(
const Vector6&
xi);
224 static Matrix3 ComputeQforExpmapDerivative(
225 const Vector6&
xi,
double nearZeroThreshold = 1
e-5);
238 return (
Matrix(4, 4) << 0., -wz, wy,
vx, wz, 0., -wx,
vy, -wy, wx, 0., vz, 0., 0., 0., 0.).finished();
253 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
275 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
289 const Rot3&
rotation(OptionalJacobian<3, 6> Hself = {})
const;
318 OptionalJacobian<6, 6> HaTb = {})
const;
325 OptionalJacobian<6, 6> HwTb = {})
const;
333 OptionalJacobian<1, 3> Hpoint = {})
const;
340 double range(
const Pose3&
pose, OptionalJacobian<1, 6> Hself = {},
341 OptionalJacobian<1, 6> Hpose = {})
const;
348 Unit3 bearing(
const Point3&
point, OptionalJacobian<2, 6> Hself = {},
349 OptionalJacobian<2, 3> Hpoint = {})
const;
357 Unit3 bearing(
const Pose3&
pose, OptionalJacobian<2, 6> Hself = {},
358 OptionalJacobian<2, 6> Hpose = {})
const;
388 OptionalJacobian<6, 6> Hy = {})
const;
395 #if GTSAM_ENABLE_BOOST_SERIALIZATION
397 friend class boost::serialization::access;
398 template<
class Archive>
399 void serialize(Archive & ar,
const unsigned int ) {
400 ar & BOOST_SERIALIZATION_NVP(R_);
401 ar & BOOST_SERIALIZATION_NVP(t_);
406 #ifdef GTSAM_USE_QUATERNIONS
446 template <
typename T>