Eigen库学习笔记,矩阵运算,欧拉角四元数转换

在学习SLAM时,一定会需要Eigen库,它是一个高层次的C ++开源库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。为了更有效的阅读代码,更深刻的理解程序逻辑,对Eigen库进行专项学习和训练。根据大佬们的博客教程进行学习,并记录一些重点。

1 编译环境

VMware 16虚拟机安装Ubuntu 20.04

Ubuntu 20.04安装Eigen库

使用Visual Studion Code作为编译IDE

注意:

  • Ubuntu系统需要cmake和gcc,正常情况下,学习了解到这个程度,Ubuntu系统上的包基本全了,可以输入一下命令,查看cmake和gcc是否安装,以及安装版本。
cmake --versioin
gcc -v

2 创建CMake工程

1、在想要存放代码的文件夹位置,新建一个空文件夹

2、建立VS Code对文件夹的管理

打开VS Code,文件—>打开文件夹—>选择刚才新建的文件夹

3、创建源文件和CMakeLists.txt文件

查看—>命令面板(快捷键Ctrl+Shift+P)—>搜索并运行 CMake: Quick Start 命令—>选择高版本编译器GCC 9.4—>输入一个英文工程名(对应CMakeLists.txt中project名字)—>回车确认—>选择创建执行文件(Executable)。

生成的主代码文件和CMakeLists.txt文件如图所示,main.cpp名称可以更改,和CMakeLists.txt里的相应位置对应即可。

Eigen库学习笔记,矩阵运算,欧拉角四元数转换_第1张图片

 4、点击图中右上方编译图标,对模板代码进行编译,软件下方切换到“终端”,若出现老传统语句“Hello, world!”就说明编译器没问题,并且成功创建工程,可以开始Eigen库编程练习了!Eigen库学习笔记,矩阵运算,欧拉角四元数转换_第2张图片

注意:

  • 如果成功编译了,就不要乱七八糟的改配置文件,赶紧开始主要工作,进行编程练习。

3 Eigen头文件使用

Eigen库学习笔记,矩阵运算,欧拉角四元数转换_第3张图片

注意:

  • 通常添加#include 就够了,注意eigen3

4 Eigen库使用及练习

可以根据以下博客的代码敲一遍,并且思考用法,学着变通。

Eigen库学习教程(全)_hongge_smile的博客-CSDN博客_eigen教程

注意:

  1. 注重向量和矩阵的初始化,即命名和初始赋值。
  2. 复习数组和矩阵的基本运算
  3. 复习矩阵转置,共轭,共轭转置
  4. 矩阵的基础运算,求和,平均值,求迹,求范数等
  5. 几何模块(Geometry)很重要,用来表达空间的旋转、平移等变换,包括欧拉角,旋转矩阵,变换矩阵,四元数等

5 四元数和欧拉角转换代码

注意:

  • 以下代码中,欧拉角转换四元数后,还可以转换回来原欧拉角。
  • 但是,四元数转换欧拉角后,不能转换回原来的四元数。
#include 
#include 
 
using namespace std;
using namespace Eigen;
 
int main() {

    
    //欧拉角转换四元数,还可以转换回来欧拉角
    Vector3d eulerangle(5,5,5);                                                //初始化欧拉角
    Quaterniond Quaternion(0,1,1,1);                                           //初始化四元数
    cout << "eulerangle  :" << eulerangle.transpose() <

输出结果:

eulerangle  :5 5 5
Quaterniond :0 0 0 1
toquaternion : 
0.0971733  0.671063 0.0971733 -0.728553
toeuler: 
5 5 5

你可能感兴趣的:(C++,学习,矩阵,人工智能)