2#include "GraphOptimization/Headers/DLLInfo.h"
3#include "OrbSLAM/Headers/MapPoint.h"
4#include "OrbSLAM/Headers/Frame.h"
7#include <Eigen/SparseCore>
111 void mlpnp_gn(Eigen::VectorX<g_type>& x,
113 const Buffer<Eigen::MatrixX<g_type>>& nullspaces,
114 const Eigen::SparseMatrix<g_type> Kll,
117 void mlpnp_residuals_and_jacs(
118 const Eigen::VectorX<g_type>& x,
120 const Buffer<Eigen::MatrixX<g_type>>& nullspaces,
121 Eigen::VectorX<g_type>& r,
122 Eigen::MatrixX<g_type>& fjac,
127 const Eigen::Vector3<g_type>& nullspace_r,
128 const Eigen::Vector3<g_type>& nullspace_s,
131 Eigen::MatrixX<g_type>& jacs);
141 Eigen::Matrix3<g_type> rodrigues2rot(
const Eigen::Vector3<g_type>& omega);
149 Eigen::Vector3<g_type> rot2rodrigues(
const Eigen::Matrix3<g_type>& R);
173 Eigen::Matrix4f mTcwi;
181 Eigen::Matrix4f mBestTcw;
184 Eigen::Matrix4f mRefinedTcw;
186 uint04 mnRefinedInliers = 0;
198 uint04 mRansacMinInliers = 0;
204 float mRansacEpsilon = 0.0f;
The equivelent of std::vector but with a bit more control.
Represents a single image frame with extracted features and pose information.
Abstract interface for geometric camera models (pinhole, fisheye, etc.).
MLPnPsolver(const Frame &F, const Buffer< MapPoint * > &vpMapPointMatches)
Constructs the solver from a frame and map point matches.
Eigen::Matrix2< g_type > cov2_mat_t
A 2-matrix containing the 2D covariance information of a bearing Buffer.
Eigen::Vector3< g_type > point_t
A 3-vector describing a point in 3D-space.
Buffer< point_t > points_t
An array of 3D-points.
Eigen::Matrix< g_type, 3, 4 > transformation_t
A 3x4 transformation matrix containing rotation and translation as follows: .
Eigen::Vector3< g_type > rodrigues_t
A 3-vector containing the rodrigues parameters of a rotation matrix.
Eigen::Vector3< g_type > bearingVector_t
A 3-vector of unit length used to describe landmark observations/bearings in camera frames (always ex...
Eigen::Vector4< g_type > point4_t
A homogeneous 3-vector describing a point in 3D-space.
Buffer< cov3_mat_t > cov3_mats_t
An array of 3D covariance matrices.
void SetRansacParameters(g_type probability=0.99, uint04 minInliers=8, uint04 maxIterations=300, uint04 minSet=6, float epsilon=0.4, float th2=5.991f)
Sets RANSAC parameters.
Eigen::Matrix3< g_type > rotation_t
A rotation matrix.
Eigen::Vector3< g_type > translation_t
A 3-vector describing a translation/camera position.
Buffer< point4_t > points4_t
An array of homogeneous 3D-points.
Eigen::Matrix3< g_type > cov3_mat_t
A 3-matrix containing the 3D covariance information of a bearing Buffer.
bool iterate(uint04 nIterations, bool &bNoMore, Buffer< bool > &vbInliers, uint04 &nInliers, Eigen::Matrix4f &Tout)
Runs RANSAC iterations to estimate the camera pose.
Buffer< bearingVector_t > bearingVectors_t
An array of bearing-vectors.
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...