30 #include <Eigen/StdVector> 38 typedef Eigen::Matrix<double, 6, 6> Matrix6d;
39 typedef Eigen::Matrix<double, 6, 1> Vector6d;
40 typedef Eigen::Matrix<uint8_t, 3, 1> Vector3uint8;
44 typedef Eigen::Matrix<double, 6, 6, Eigen::DontAlign> Matrix6d_u;
45 typedef Eigen::Matrix<double, 4, 4, Eigen::DontAlign> Matrix4d_u;
75 const Eigen::MatrixXd &A,
76 const Eigen::VectorXd &b,
77 bool prefer_sparse =
false,
78 bool check_symmetric =
false,
79 bool check_det =
false,
80 bool check_psd =
false);
86 const Eigen::Matrix6d &JTJ,
const Eigen::Vector6d &JTr);
91 std::tuple<bool, std::vector<Eigen::Matrix4d, Matrix4d_allocator>>
93 const Eigen::VectorXd &JTr);
100 template <
typename MatType,
typename VecType>
102 std::function<
void(
int, VecType &,
double &,
double &)> f,
104 bool verbose =
true);
111 template <
typename MatType,
typename VecType>
115 std::vector<VecType, Eigen::aligned_allocator<VecType>> &,
116 std::vector<double> &,
117 std::vector<double> &)> f,
119 bool verbose =
true);
129 Eigen::Vector3d
ColorToDouble(uint8_t r, uint8_t g, uint8_t b);
130 Eigen::Vector3d
ColorToDouble(
const Eigen::Vector3uint8 &rgb);
133 template <
typename IdxType>
135 const std::vector<IdxType> &indices);
138 template <
typename IdxType>
140 const std::vector<Eigen::Vector3d> &
points,
141 const std::vector<IdxType> &indices);
Eigen::Matrix3d RotationMatrixZ(double radians)
Definition: Eigen.cpp:279
Eigen::aligned_allocator< Eigen::Vector2d > Vector2d_allocator
Definition: Eigen.h:55
std::tuple< MatType, VecType, double > ComputeJTJandJTr(std::function< void(int, VecType &, double &, double &)> f, int iteration_num, bool verbose)
Definition: Eigen.cpp:165
std::tuple< Eigen::Vector3d, Eigen::Matrix3d > ComputeMeanAndCovariance(const std::vector< Eigen::Vector3d > &points, const std::vector< IdxType > &indices)
Function to compute the mean and covariance matrix of a set of points.
Definition: Eigen.cpp:335
Eigen::Vector3uint8 ColorToUint8(const Eigen::Vector3d &color)
Definition: Eigen.cpp:286
std::tuple< bool, Eigen::Matrix4d > SolveJacobianSystemAndObtainExtrinsicMatrix(const Eigen::Matrix6d &JTJ, const Eigen::Vector6d &JTr)
Definition: Eigen.cpp:122
Eigen::aligned_allocator< Eigen::Vector4d > Vector4d_allocator
Definition: Eigen.h:58
Eigen::aligned_allocator< Eigen::Matrix6d > Matrix6d_allocator
Definition: Eigen.h:54
Eigen::Matrix4d TransformVector6dToMatrix4d(const Eigen::Vector6d &input)
Definition: Eigen.cpp:93
Eigen::aligned_allocator< Eigen::Vector4i > Vector4i_allocator
Definition: Eigen.h:57
std::tuple< bool, std::vector< Eigen::Matrix4d, Matrix4d_allocator > > SolveJacobianSystemAndObtainExtrinsicMatrixArray(const Eigen::MatrixXd &JTJ, const Eigen::VectorXd &JTr)
Definition: Eigen.cpp:136
math::float4 color
Definition: LineSetBuffers.cpp:64
Eigen::Matrix3d RotationMatrixX(double radians)
Definition: Eigen.cpp:265
Eigen::Vector6d TransformMatrix4dToVector6d(const Eigen::Matrix4d &input)
Definition: Eigen.cpp:105
std::tuple< bool, Eigen::VectorXd > SolveLinearSystemPSD(const Eigen::MatrixXd &A, const Eigen::VectorXd &b, bool prefer_sparse, bool check_symmetric, bool check_det, bool check_psd)
Function to solve Ax=b.
Definition: Eigen.cpp:38
Eigen::aligned_allocator< Eigen::Vector6d > Vector6d_allocator
Definition: Eigen.h:59
int points
Definition: FilePCD.cpp:73
Definition: PinholeCameraIntrinsic.cpp:35
Eigen::Matrix3d RotationMatrixY(double radians)
Definition: Eigen.cpp:272
Eigen::aligned_allocator< Eigen::Matrix4d > Matrix4d_allocator
Definition: Eigen.h:53
Eigen::Vector3d ColorToDouble(uint8_t r, uint8_t g, uint8_t b)
Color conversion from uint8_t 0-255 to double [0,1].
Definition: Eigen.cpp:295
Eigen::aligned_allocator< Eigen::Vector3uint8 > Vector3uint8_allocator
Definition: Eigen.h:56
Eigen::Matrix3d ComputeCovariance(const std::vector< Eigen::Vector3d > &points, const std::vector< IdxType > &indices)
Function to compute the covariance matrix of a set of points.
Definition: Eigen.cpp:304