39 #ifndef INCLUDE_OKVIS_TRANSFORMATION_HPP_
40 #define INCLUDE_OKVIS_TRANSFORMATION_HPP_
45 #include <Eigen/Geometry>
52 namespace kinematics {
57 double sinc(
double x);
62 Eigen::Quaterniond
deltaQ(
const Eigen::Vector3d& dAlpha);
65 Eigen::Matrix3d
rightJacobian(
const Eigen::Vector3d & PhiVec);
79 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
95 Transformation(
const Eigen::Vector3d & r_AB,
const Eigen::Quaterniond& q_AB);
107 template<
typename Derived_coeffs>
113 template<
typename Derived_coeffs>
120 Eigen::Matrix4d
T()
const;
123 const Eigen::Matrix3d &
C()
const;
126 const Eigen::Map<Eigen::Vector3d> &
r()
const;
129 const Eigen::Map<Eigen::Quaterniond> &
q()
const;
132 Eigen::Matrix<double, 3, 4>
T3x4()
const;
135 const Eigen::Matrix<double, 7, 1> &
coeffs()
const
158 void setRandom(
double translationMaxMeters,
double rotationMaxRadians);
162 void set(
const Eigen::Matrix4d & T_AB);
167 void set(
const Eigen::Vector3d & r_AB,
const Eigen::Quaternion<double>& q_AB);
176 Transformation
inverse()
const;
181 Transformation
operator*(
const Transformation & rhs)
const;
186 Eigen::Vector3d
operator*(
const Eigen::Vector3d & rhs)
const;
190 Eigen::Vector4d
operator*(
const Eigen::Vector4d & rhs)
const;
194 Transformation&
operator=(
const Transformation & rhs);
200 template<
typename Derived_delta>
201 bool oplus(
const Eigen::MatrixBase<Derived_delta> & delta);
208 template<
typename Derived_delta,
typename Derived_jacobian>
209 bool oplus(
const Eigen::MatrixBase<Derived_delta> & delta,
210 const Eigen::MatrixBase<Derived_jacobian> & jacobian);
215 template<
typename Derived_jacobian>
217 const Eigen::MatrixBase<Derived_jacobian> & jacobian)
const;
223 template<
typename Derived_jacobian>
224 bool liftJacobian(
const Eigen::MatrixBase<Derived_jacobian> & jacobian)
const;
230 Eigen::Map<Eigen::Vector3d>
r_;
231 Eigen::Map<Eigen::Quaterniond>
q_;
__inline__ double sinc(double x)
Implements sin(x)/x for all x in R.
Definition: Transformation.hpp:45
__inline__ Eigen::Matrix3d rightJacobian(const Eigen::Vector3d &PhiVec)
Right Jacobian, see Forster et al. RSS 2015 eqn. (8)
Definition: Transformation.hpp:69
File with some helper functions related to matrix/vector operations.
__inline__ Eigen::Quaterniond deltaQ(const Eigen::Vector3d &dAlpha)
Implements the exponential map for quaternions.
Definition: Transformation.hpp:59