Ubuntu下 VsCode 的 SLAM 14 讲 (ch3)
三维空间刚体运动
1 Eigen库的应用
1.1 矩阵的基本运算
下面记录一下基本流程
为了成功实现《十四讲》中的“useEigen”这段代码,需要对上述配置文件进行“因地制宜”的修改。
step1 修改后的c_cpp_properties.json为:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/",
"/usr/local/include/",
"/usr/include/eigen3/"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
这步修改的目的是解决“找不到<Eigen/Core>文件”的问题,如:fatal error: Eigen/Core: No such file or directory
。
step2 建立CMakeLists.txt, 修改为:
cmake_minimum_required(VERSION 2.8)
project(useEigen3)
project(vscode_cmake)
set(CMAKE_CXX_FLAGS "-O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
set(CMAKE_BUILD_TYPE "DEBUG")
set(SRC_LIST useEigen3.cpp)
include_directories("/usr/include/eigen3")
add_executable(useEigen3 useEigen3.cpp)
add_executable(result ${
SRC_LIST})
其中,useEigen3 useEigen3.cpp
是自己取的文件名,需要修改,add_executable(result ${SRC_LIST})
是解决“找不到result文件”的问题。
step3 创建主函数文件“useEigen3”
#include <iostream>
using namespace std;
#include <ctime>// 计时
#include <Eigen/Core>// Eigen 核心部分
// 稠密矩阵的代数运算(逆,特征值等)
#include <Eigen/Dense>
using namespace Eigen;
#define MATRIX_SIZE 50
/****************************
* 本程序演示了 Eigen 基本类型的使用
****************************/
int main(int argc, char **argv) {
// Eigen 中所有向量和矩阵都是Eigen::Matrix,它是一个模板类。它的前三个参数为:数据类型,行,列
Matrix<float, 2, 3> matrix_23; // 声明一个2