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_);
137 OptionalJacobian<6, 6> Harg = {},
138 OptionalJacobian<6, 1> Ht = {})
const;
164 Vector6 Adjoint(
const Vector6& xi_b,
165 OptionalJacobian<6, 6> H_this = {},
166 OptionalJacobian<6, 6> H_xib = {})
const;
169 Vector6 AdjointTranspose(
const Vector6&
x,
170 OptionalJacobian<6, 6> H_this = {},
171 OptionalJacobian<6, 6> H_x = {})
const;
188 static Matrix6 adjointMap(
const Vector6&
xi);
193 static Vector6
adjoint(
const Vector6&
xi,
const Vector6&
y,
194 OptionalJacobian<6, 6> Hxi = {},
195 OptionalJacobian<6, 6> H_y = {});
204 static Vector6 adjointTranspose(
const Vector6&
xi,
const Vector6&
y,
206 OptionalJacobian<6, 6> H_y = {});
209 static Matrix6 ExpmapDerivative(
const Vector6&
xi);
229 static Matrix3 ComputeQforExpmapDerivative(
230 const Vector6&
xi,
double nearZeroThreshold = 1
e-5);
241 static Matrix4 Hat(
const Vector6&
xi);
244 static Vector6 Vee(
const Matrix4&
X);
280 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
294 const Rot3&
rotation(OptionalJacobian<3, 6> Hself = {})
const;
323 OptionalJacobian<6, 6> HaTb = {})
const;
330 OptionalJacobian<6, 6> HwTb = {})
const;
338 OptionalJacobian<1, 3> Hpoint = {})
const;
345 double range(
const Pose3&
pose, OptionalJacobian<1, 6> Hself = {},
346 OptionalJacobian<1, 6> Hpose = {})
const;
353 Unit3 bearing(
const Point3&
point, OptionalJacobian<2, 6> Hself = {},
354 OptionalJacobian<2, 3> Hpoint = {})
const;
362 Unit3 bearing(
const Pose3&
pose, OptionalJacobian<2, 6> Hself = {},
363 OptionalJacobian<2, 6> Hpose = {})
const;
393 OptionalJacobian<6, 6> Hy = {})
const;
396 Vector vec(OptionalJacobian<16, 6>
H = {})
const;
406 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
407 static inline LieAlgebra wedge(
double wx,
double wy,
double wz,
double vx,
409 double vy,
double vz) {
410 return Hat((TangentVector() << wx, wy, wz,
vx,
vy, vz).finished());
416 #if GTSAM_ENABLE_BOOST_SERIALIZATION
418 friend class boost::serialization::access;
419 template<
class Archive>
420 void serialize(Archive & ar,
const unsigned int ) {
421 ar & BOOST_SERIALIZATION_NVP(R_);
422 ar & BOOST_SERIALIZATION_NVP(t_);
427 #ifdef GTSAM_USE_QUATERNIONS
435 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
464 template <
typename T>