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); }
122 { w2i = Kcam * w2n; }
126 Eigen::Matrix<double,3,3> dRdx, dRdy,
dRdz;
129 static Eigen::Matrix3d dRidx, dRidy,
dRidz;
132 static void initDr();
135 void setDr(
bool local =
false);
150 void projectMono(
const Point& pt, Eigen::Vector3d& proj);
153 void projectStereo(
const Point& pt, Eigen::Vector3d& proj);
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.
Eigen::Matrix< double, 3, 4 > w2i
The transform from world to image coordinates.
Eigen::Matrix< double, 3, 3 > Kcam
Projection to frame image coordinates. pre-multiply by the frame camera matrix.
Eigen::Quaternion< double > oldqrot
Previous quaternion rotation, saved for downdating within LM.
void transformW2F(Eigen::Matrix< double, 3, 4 > &m, const Eigen::Matrix< double, 4, 1 > &trans, const Eigen::Quaternion< double > &qrot)
bool isFixed
For SBA, is this camera fixed or free?
void transformF2W(Eigen::Matrix< double, 3, 4 > &m, const Eigen::Matrix< double, 4, 1 > &trans, const Eigen::Quaternion< double > &qrot)
Eigen::Matrix< double, 4, 1 > oldtrans
Previous translation, saved for downdating within LM.
double baseline
baseline for stereo
NODE holds graph nodes corresponding to frames, for use in sparse bundle adjustment. Each node has a 6DOF pose, encoded as a translation vector and rotation unit quaternion (Eigen classes). These represent the pose of the node in the world frame.
static Eigen::Matrix3d dRidz
Eigen::Matrix< double, 3, 4 > w2n
Resultant transform from world to node coordinates.
void transformN2N(Eigen::Matrix< double, 4, 1 > &trans, Eigen::Quaternion< double > &qrot, Node &nd0, Node &nd1)
Eigen::Quaternion< double > qrot
Rotation of the node expressed as a Quaternion.
Eigen::Vector3d Keypoint
Keypoints - subpixel using floats. u,v are pixel coordinates, d is disparity (if stereo) ...
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Matrix< double, 4, 1 > trans
Translation in homogeneous coordinates, last element is 1.0.
Eigen::Vector4d Point
Point holds 3D points using in world coordinates. Currently we just represent these as 4-vectors...
Eigen::Matrix< double, 3, 3 > dRdz
void project2im(Eigen::Vector2d &pi, const Point &p) const