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);
212 static Matrix6 LogmapDerivative(
const Vector6&
xi);
232 static Matrix4 Hat(
const Vector6&
xi);
235 static Vector6 Vee(
const Matrix4&
X);
271 {}, OptionalJacobian<3, 3> Hpoint = {})
const;
285 const Rot3&
rotation(OptionalJacobian<3, 6> Hself = {})
const;
314 OptionalJacobian<6, 6> HaTb = {})
const;
321 OptionalJacobian<6, 6> HwTb = {})
const;
329 OptionalJacobian<1, 3> Hpoint = {})
const;
336 double range(
const Pose3&
pose, OptionalJacobian<1, 6> Hself = {},
337 OptionalJacobian<1, 6> Hpose = {})
const;
344 Unit3 bearing(
const Point3&
point, OptionalJacobian<2, 6> Hself = {},
345 OptionalJacobian<2, 3> Hpoint = {})
const;
353 Unit3 bearing(
const Pose3&
pose, OptionalJacobian<2, 6> Hself = {},
354 OptionalJacobian<2, 6> Hpose = {})
const;
384 OptionalJacobian<6, 6> Hy = {})
const;
387 Vector vec(OptionalJacobian<16, 6>
H = {})
const;
397 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
398 static inline LieAlgebra wedge(
double wx,
double wy,
double wz,
double vx,
400 double vy,
double vz) {
401 return Hat((TangentVector() << wx, wy, wz,
vx,
vy, vz).finished());
407 #if GTSAM_ENABLE_BOOST_SERIALIZATION
409 friend class boost::serialization::access;
410 template<
class Archive>
411 void serialize(Archive & ar,
const unsigned int ) {
412 ar & BOOST_SERIALIZATION_NVP(R_);
413 ar & BOOST_SERIALIZATION_NVP(t_);
418 #ifdef GTSAM_USE_QUATERNIONS
426 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V43
455 template <
typename T>