Go to the documentation of this file.
9 #include <Eigen/Geometry>
27 #endif // _CAMPARMS_H_
66 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
69 Eigen::Matrix<double,4,1>
trans;
70 Eigen::Quaternion<double>
qrot;
80 Eigen::Matrix<double,3,4>
w2n;
92 Eigen::Matrix<double,3,3>
Kcam;
111 Eigen::Matrix<double,3,4>
w2i;
117 { Eigen::Vector3d p1 =
w2i * p; pi = p1.head(2)/p1(2); }
135 void setDr(
bool local =
false);
165 const Eigen::Matrix<double,4,1> &trans,
166 const Eigen::Quaternion<double> &qrot);
172 const Eigen::Matrix<double,4,1> &trans,
173 const Eigen::Quaternion<double> &qrot);
179 Eigen::Quaternion<double> &qrot,
void setKcam(const fc::CamParams &cp)
Sets the Kcam and baseline matrices from frame_common::CamParams.
void setDr(bool local=false)
Set angle derivates.
void transformN2N(Eigen::Matrix< double, 4, 1 > &trans, Eigen::Quaternion< double > &qrot, Node &nd0, Node &nd1)
Eigen::Vector4d Point
Point holds 3D points using in world coordinates. Currently we just represent these as 4-vectors,...
Eigen::Quaternion< double > oldqrot
Previous quaternion rotation, saved for downdating within LM.
void normRot()
Normalize quaternion to unit. Problem with global derivatives near w=0, solved by a hack for now.
Eigen::Matrix< double, 3, 3 > dRdy
Eigen::Matrix< double, 3, 3 > Kcam
Projection to frame image coordinates. pre-multiply by the frame camera matrix.
double baseline
baseline for stereo
static Eigen::Matrix3d dRidz
static void initDr()
Sets up constant matrices for derivatives.
bool isFixed
For SBA, is this camera fixed or free?
void setDri()
Set local angle derivatives.
Eigen::Vector3d Keypoint
Keypoints - subpixel using floats. u,v are pixel coordinates, d is disparity (if stereo)
void project2im(Eigen::Vector2d &pi, const Point &p) const
Eigen::Matrix< double, 3, 4 > w2n
Resultant transform from world to node coordinates.
Eigen::Quaternion< double > qrot
Rotation of the node expressed as a Quaternion.
Eigen::Matrix< double, 4, 1 > oldtrans
Previous translation, saved for downdating within LM.
static Eigen::Matrix3d dRidx
Constant matrices for derivatives.
void projectMono(const Point &pt, Eigen::Vector3d &proj)
Project a 3D point into the image frame as a monocular point.
void transformW2F(Eigen::Matrix< double, 3, 4 > &m, const Eigen::Matrix< double, 4, 1 > &trans, const Eigen::Quaternion< double > &qrot)
void setTransform()
Sets the transform matrices of the node.
static Eigen::Matrix3d dRidy
void normRotLocal()
Normalize quaternion to unit, without w=0 considerations.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Matrix< double, 4, 1 > trans
Translation in homogeneous coordinates, last element is 1.0.
void transformF2W(Eigen::Matrix< double, 3, 4 > &m, const Eigen::Matrix< double, 4, 1 > &trans, const Eigen::Quaternion< double > &qrot)
void projectStereo(const Point &pt, Eigen::Vector3d &proj)
Project a 3D point into the image frame as a stereo point.
Eigen::Matrix< double, 3, 3 > dRdz
NODE holds graph nodes corresponding to frames, for use in sparse bundle adjustment....
Eigen::Matrix< double, 3, 3 > dRdx
Derivatives of the rotation matrix transpose wrt quaternion xyz, used for calculating Jacobian wrt po...
Eigen::Matrix< double, 3, 4 > w2i
The transform from world to image coordinates.