Eigen/Geometry模块学习
Eigen的主要模块有Core,Geometry,LU,Clolesky,Householder,SVD,QR,Eigenvalues,Sparse
#include<Eigen/Dense> //包括所有非Sparse模块
#include<Eigen/Sparese> //该模块主要关于与稀疏矩阵相关的内容
#include<Eigen/Eigen> //包括Eigen库的所有模块
一些非矩阵类型,可以按照矩阵的形式运算
#include<Eigen/Core>
#include<Eigen/Geometry> //SLAM中常用的变换、缩放、平移、旋转(包括四元数、轴角等),都需要用到Geometry模块
Eigen::Matrix3d rotation_matrix = Eigen::Matrix3d::Identity();
//定义并初始化为单位矩阵
Eigen::AngleAxisd rotation_vector(M_PI/4,Eigen::Vector3d(0,0,1));
//定义并初始化轴角
rotation_matrix=rotation_vector.toRotationMatrix();
//将轴角转化为旋转矩阵
Eigen::Vector3d v(1,2,3);
Eigen::Vector3d after_rotation=rotation_vector*v;
//使用轴角进行坐标变换
Eigen::Isometry3d T=Eigen::Isometry3d::Identity();
//定义一个4*4的欧氏变换矩阵,并初始化为单位阵
T.rotate(rotation_vector);//T.ratate(rotation_matrix)