SLAM学习笔记3

三维空间刚体运动,笔记内容有向量内积,向量外积,欧氏变换,旋转向量,欧拉角,旋转矩阵,四元数以及它们的转换关系,代码是Eigen库的基本使用。
笔记1.jpg
笔记2.jpg

代码如下:
#include 
#include 
#include 
#include 
#include 
#include  
using namespace std;
#define MATRIX_SIZE 50

int main(int argc, char** argv)
{
    ///Eigen 基本操作
    Eigen::Matrix matrix_23 ;
    Eigen::Vector3d v_3d; //实质是Eigen::Matrix
    matrix_23 << 1,2,3,4,5,6; //赋值操作
    v_3d << 3,2,1;
    Eigen::Matrix result = matrix_23.cast() * v_3d;
    cout<< result < eigen_solver (matrix_33.transpose() * matrix_33);//实对称矩阵
    cout<< "Eigen values = "<< eigen_solver.eigenvalues() << endl; //特征值
    cout<< "Eigen vectors = "<< eigen_solver.eigenvectors() << endl; //特征向量
    
    //解方程,对比求逆和矩阵分解的速度
    
    Eigen::Matrix matrix_NN;
    matrix_NN = Eigen::MatrixXd::Random(MATRIX_SIZE,MATRIX_SIZE);
    Eigen::Matrix < double ,MATRIX_SIZE,1> v_Nd;
    v_Nd = Eigen::MatrixXd::Random(MATRIX_SIZE,1);
    //求逆
    clock_t time_stt = clock();
    Eigen::Matrix x = matrix_NN.inverse() * v_Nd;
    cout<< " inverse time use is :"<< 1000*(clock()-time_stt)/(double)CLOCKS_PER_SEC << "ms" <

你可能感兴趣的:(SLAM学习笔记3)