Jafar
|
File defining geometric operations with quaternions. More...
File defining geometric operations with quaternions.
Quaternions operate on vectors and other quaternions. Functions for Jacobian computations are also provided.
Definition in file quatTools.hpp.
Go to the source code of this file.
Namespaces | |
namespace | jafar |
Transport info from GDAL Datasets to Bands' internal data. | |
namespace | jafar::rtslam |
Namespace rtslam for real-time slam module. | |
namespace | jafar::rtslam::quaternion |
Namespace for quaternion algebra functions. | |
Functions | |
vec4 | jafar::rtslam::quaternion::identQ () |
Null rotation quaternion. | |
template<class VecQ > | |
vec4 | jafar::rtslam::quaternion::q2qc (const VecQ &q) |
Conjugate of quaternion. | |
template<class VecQ , class MatQC_q > | |
void | jafar::rtslam::quaternion::q2qc_by_dq (const VecQ &q, MatQC_q &QC_q) |
Jacobian of conjugated quaternion wrt input quaternion. | |
template<class VecQ , class VecQc , class MatQC_q > | |
void | jafar::rtslam::quaternion::q2qc (const VecQ &q, VecQc &qc, MatQC_q &QC_q) |
Conjugate of a quaternion, with Jacobians. | |
template<class VecQ > | |
mat33 | jafar::rtslam::quaternion::q2R (const VecQ &q) |
Rotation matrix from quaternion. | |
template<class MatR > | |
vec4 | jafar::rtslam::quaternion::R2q (const MatR &R) |
Quaternion from rotation matrix. | |
template<class VecQ > | |
mat33 | jafar::rtslam::quaternion::q2Rt (const VecQ &q) |
The transposed rotation matrix from a quaternion. | |
template<class VecQ , class Vec > | |
vec3 | jafar::rtslam::quaternion::rotate (const VecQ &q, const Vec &v) |
Rotate a vector from given quaternion. | |
template<class VecQ , class Vec , class MatVO_q > | |
void | jafar::rtslam::quaternion::rotate_by_dq (const VecQ &q, const Vec &v, MatVO_q &VO_q) |
Jacobian of vector rotation from quaternion, wrt quaternion. | |
template<class VecQ , class MatVO_v > | |
void | jafar::rtslam::quaternion::rotate_by_dv (const VecQ &q, MatVO_v &VO_v) |
Jacobian of vector rotation from quaternion, wrt vector. | |
template<class VecQ , class Vec , class VecO , class MatVO_q , class MatVO_v > | |
void | jafar::rtslam::quaternion::rotate (const VecQ &q, const Vec &v, VecO &vo, MatVO_q &VO_q, MatVO_v &VO_v) |
Rotate a vector from given quaternion, with all Jacobians. | |
template<class VecQ , class Vec > | |
vec3 | jafar::rtslam::quaternion::rotateInv (const VecQ &q, const Vec &v) |
Rotate inversely a vector from given quaternion. | |
template<class VecQ , class Vec , class MatVO_q > | |
void | jafar::rtslam::quaternion::rotateInv_by_dq (const VecQ &q, const Vec &v, MatVO_q &VO_q) |
Jacobian of inverse vector rotation from quaternion, wrt quaternion. | |
template<class VecQ , class MatVO_v > | |
void | jafar::rtslam::quaternion::rotateInv_by_dv (const VecQ &q, MatVO_v &VO_v) |
Jacobian of vector inverse rotation from quaternion, wrt vector. | |
template<class VecQ , class Vec , class VecO , class MatVO_q , class MatVO_v > | |
void | jafar::rtslam::quaternion::rotateInv (const VecQ &q, const Vec &v, VecO &vo, MatVO_q &VO_q, MatVO_v &VO_v) |
Rotate inversely a vector from given quaternion, with all Jacobians. | |
template<class VecQ1 , class VecQ2 > | |
vec4 | jafar::rtslam::quaternion::qProd (const VecQ1 &q1, const VecQ2 &q2) |
Quaternion product. | |
template<class VecQ2 , class MatQ_q1 > | |
void | jafar::rtslam::quaternion::qProd_by_dq1 (const VecQ2 &q2, MatQ_q1 &Q_q1) |
Jacobian of quaternion product wrt first quaternion, d(q1**q2)/dq1. | |
template<class VecQ1 , class MatQ_q2 > | |
void | jafar::rtslam::quaternion::qProd_by_dq2 (const VecQ1 &q1, MatQ_q2 &Q_q2) |
Jacobian of quaternion product wrt second quaternion, d(q1**q2)/dq2. | |
template<class VecQ1 , class VecQ2 , class VecQ , class MatQ_q1 , class MatQ_q2 > | |
void | jafar::rtslam::quaternion::qProd (const VecQ1 &q1, const VecQ2 &q2, VecQ &q, MatQ_q1 &Q_q1, MatQ_q2 &Q_q2) |
Quaternion product, with Jacobians. | |
template<class Vec > | |
vec4 | jafar::rtslam::quaternion::v2q (const Vec &v) |
Quaternion from rotation vector. | |
template<class Vec , class MatQ_v > | |
void | jafar::rtslam::quaternion::v2q_by_dv (const Vec &v, MatQ_v &Q_v) |
Jacobian of quaternion wrt rotation vector. | |
template<class Vec , class VecQ , class MatQ_v > | |
void | jafar::rtslam::quaternion::v2q (const Vec &v, VecQ &q, MatQ_v &Q_v) |
Rotation vector to quaternion conversion, with Jacobian. | |
template<class Vec > | |
vec4 | jafar::rtslam::quaternion::e2q (const Vec &e) |
Quaternion from Euler angles. | |
template<class Vec , class MatQ_e > | |
void | jafar::rtslam::quaternion::e2q_by_de (const Vec &e, MatQ_e &Q_e) |
Jacobian of quaternion wrt Euler angles. | |
template<class Vec , class VecQ , class MatQ_e > | |
void | jafar::rtslam::quaternion::e2q (const Vec &e, VecQ &q, MatQ_e &Q_e) |
Euler angles to quaternion conversion, with Jacobian. | |
template<class VecXE , class MatPE , class VecXQ , class MatPQ > | |
void | jafar::rtslam::quaternion::e2q (const VecXE &e, const MatPE &E, VecXQ &q, MatPQ &Q) |
Converts euler angles with its uncertainty to quaternion. | |
template<class VecE > | |
vec7 | jafar::rtslam::quaternion::e2q_frame (const VecE &e) |
template<class VecXE , class MatPE , class VecXQ , class MatPQ > | |
void | jafar::rtslam::quaternion::e2q_frame (const VecXE &e, const MatPE &E, VecXQ &q, MatPQ &Q) |
template<class VecQ > | |
vec3 | jafar::rtslam::quaternion::q2e (const VecQ &q) |
Quaternion to Euler angles conversion. | |
template<class VecQ , class VecE , class MatE_q > | |
void | jafar::rtslam::quaternion::q2e (const VecQ &q, VecE &e, MatE_q &E_q) |
Quaternion-to-Euler conversion, with Jacobian. | |
template<class VecXQ , class MatPQ , class VecXE , class MatPE > | |
void | jafar::rtslam::quaternion::q2e (const VecXQ &q, const MatPQ &Q, VecXE &e, MatPE &E) |
Converts a quaternion with its uncertainty to euler angles. | |
template<class VecQ > | |
vec6 | jafar::rtslam::quaternion::q2e_frame (const VecQ &q) |
template<class VecXQ , class MatPQ , class VecXE , class MatPE > | |
void | jafar::rtslam::quaternion::q2e_frame (const VecXQ &q, const MatPQ &Q, VecXE &e, MatPE &E) |
vec7 | jafar::rtslam::quaternion::originFrame () |
Origin frame. | |
vec4 | jafar::rtslam::quaternion::flu2rdfQuat () |
Quaternion defining the RDF frame from a FLU frame. | |
vec7 | jafar::rtslam::quaternion::flu2rdfFrame () |
A frame at the origin position and the orientation at [-90, 0, -90] deg. | |
template<class VecF , class Pnt > | |
vec3 | jafar::rtslam::quaternion::eucToFrame (const VecF &F, const Pnt &p) |
To-frame transformation for Euclidean points. | |
template<class VecF , class Pnt , class PntF , class MatPF_f , class MatPF_p > | |
void | jafar::rtslam::quaternion::eucToFrame (const VecF &F, const Pnt &p, PntF &pf, MatPF_f &PF_f, MatPF_p &PF_p, jblas::vec p_fej=jblas::vec(0)) |
To-frame transformation for Euclidean points, with Jacobians. | |
template<class VecF , class Vec > | |
vec3 | jafar::rtslam::quaternion::vecToFrame (const VecF &F, const Vec &v) |
To-frame transformation for vectors. | |
template<class VecF , class Vec , class Vecf , class MatVF_f , class MatVF_v > | |
void | jafar::rtslam::quaternion::vecToFrame (const VecF &F, const Vec &v, Vecf &vf, MatVF_f &VF_f, MatVF_v &VF_v) |
To-frame transformation for vectors, with Jacobians. | |
template<class VecF , class Pnt > | |
vec3 | jafar::rtslam::quaternion::eucFromFrame (const VecF &F, const Pnt &pf) |
From-frame transformation for Euclidean points. | |
template<class VecF , class PntF , class Pnt , class MatP_f , class MatP_pf > | |
void | jafar::rtslam::quaternion::eucFromFrame (const VecF &F, const PntF &pf, Pnt &p, MatP_f &P_f, MatP_pf &P_pf) |
From-frame transformation for Euclidean points, with Jacobians. | |
template<class VecF , class Vec > | |
vec3 | jafar::rtslam::quaternion::vecFromFrame (const VecF &F, const Vec &vf) |
From-frame transformation for vectors. | |
template<class VecF , class Vecf , class Vec , class MatV_f , class MatV_vf > | |
void | jafar::rtslam::quaternion::vecFromFrame (const VecF &F, const Vecf &vf, Vec &v, MatV_f &V_f, MatV_vf &V_vf) |
From-frame transformation for vectors, with Jacobians. | |
template<class VecG , class VecF > | |
jblas::vec7 | jafar::rtslam::quaternion::composeFrames (const VecG &G, const VecF &F) |
Compose frames. | |
template<class VecG , class VecL , class MatC_g > | |
void | jafar::rtslam::quaternion::composeFrames_by_dglobal (const VecG &G, const VecL &L, MatC_g &C_g) |
Jacobian of frame composition wrt global frame. | |
template<class VecG , class VecL , class MatC_l > | |
void | jafar::rtslam::quaternion::composeFrames_by_dlocal (const VecG &G, const VecL &L, MatC_l &C_l) |
Jacobian of frame composition wrt global frame. | |
template<class VecG , class VecL , class VecC , class MatC_g , class MatC_l > | |
void | jafar::rtslam::quaternion::composeFrames (const VecG &G, const VecL &L, VecC &C, MatC_g &C_g, MatC_l &C_l) |
Compose frames, give Jacobians. | |
template<class VecF > | |
jblas::vec7 | jafar::rtslam::quaternion::invertFrame (const VecF &F) |
Invert frame. | |
template<class VecF , class VecI , class MatI_f > | |
void | jafar::rtslam::quaternion::invertFrame (const VecF &F, VecI &I, MatI_f &I_f) |
Invert frame, with Jacobian. | |
template<class VecF1 , class VecF2 > | |
jblas::vec7 | jafar::rtslam::quaternion::frameIncrement (const VecF1 &F1, const VecF2 &F2) |
Frame increment. | |
template<class VecF1 , class VecF2 , class MatF_f1 > | |
void | jafar::rtslam::quaternion::frameIncrement_by_f1 (const VecF1 &F1, const VecF2 &F2, MatF_f1 &F_f1) |
Frame increment, first Jacobian. | |
template<class VecF1 , class VecF2 , class MatF_f2 > | |
void | jafar::rtslam::quaternion::frameIncrement_by_f2 (const VecF1 &F1, const VecF2 &F2, MatF_f2 &F_f2) |
Frame increment, second Jacobian. | |
template<class VecF1 , class VecF2 , class VecF , class MatF_f1 , class MatF_f2 > | |
void | jafar::rtslam::quaternion::frameIncrement (const VecF1 &F1, const VecF2 &F2, VecF &F, MatF_f1 &F_f1, MatF_f2 &F_f2) |
Frame increment, first Jacobian. | |
template<class Vec1 , class Vec2 , class VecL > | |
void | jafar::rtslam::quaternion::getZoomRotation (const Vec1 &sensorPose1, const Vec2 &sensorPose2, const VecL &landmarkPosition, double &zoom, double &rotation) |
get zoom and rotation of appearance between two points of view |
Generated on Wed Oct 15 2014 00:37:29 for Jafar by doxygen 1.7.6.1 |