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.
More...
Public Member Functions |
void | normRot () |
| Normalize quaternion to unit. Problem with global derivatives near w=0, solved by a hack for now.
|
void | normRotLocal () |
| Normalize quaternion to unit, without w=0 considerations.
|
void | project2im (Eigen::Vector2d &pi, const Point &p) const |
void | projectMono (const Point &pt, Eigen::Vector3d &proj) |
| Project a 3D point into the image frame as a monocular point.
|
void | projectStereo (const Point &pt, Eigen::Vector3d &proj) |
| Project a 3D point into the image frame as a stereo point.
|
void | setDr (bool local=false) |
| Set angle derivates.
|
void | setDri () |
| Set local angle derivatives.
|
void | setKcam (const fc::CamParams &cp) |
| Sets the Kcam and baseline matrices from frame_common::CamParams.
|
void | setProjection () |
void | setTransform () |
| Sets the transform matrices of the node.
|
Static Public Member Functions |
static void | initDr () |
| Sets up constant matrices for derivatives.
|
Public Attributes |
double | baseline |
| baseline for stereo
|
Eigen::Matrix< double, 3, 3 > | dRdx |
| Derivatives of the rotation matrix transpose wrt quaternion xyz, used for calculating Jacobian wrt pose of a projection.
|
Eigen::Matrix< double, 3, 3 > | dRdy |
Eigen::Matrix< double, 3, 3 > | dRdz |
bool | isFixed |
| For SBA, is this camera fixed or free?
|
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.
|
Eigen::Matrix< double, 4, 1 > | oldtrans |
| Previous translation, saved for downdating within LM.
|
Eigen::Quaternion< double > | qrot |
| Rotation of the node expressed as a Quaternion.
|
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Eigen::Matrix< double, 4, 1 > | trans |
| Translation in homogeneous coordinates, last element is 1.0.
|
Eigen::Matrix< double, 3, 4 > | w2i |
| The transform from world to image coordinates.
|
Eigen::Matrix< double, 3, 4 > | w2n |
| Resultant transform from world to node coordinates.
|
Static Public Attributes |
static Eigen::Matrix3d | dRidx |
| Constant matrices for derivatives.
|
static Eigen::Matrix3d | dRidy |
static Eigen::Matrix3d | dRidz |
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.
The pose generates a 3x4 homogenous transform, taking a point in world coordinates into the node coordinates.
Additionally a 3x4 homogenous transform is composed from the pose transform and a projection transform to the frame image coordinates.
Projections from points to features are in a list. There should also be a reverse index from features to projections and points, so that matched features can tie in to points.
Definition at line 63 of file node.h.