控制科學與工程:隨手筆記(5)--Eigen、vscode配置

在這裏插入圖片描述

Eigen庫中的變量類型及函數

變量 功能
Eigen::Matrix3d 旋轉矩陣3X3,元素爲double類型(此處也可以爲:f,i,c)(可以直接輸出)
Eigen::Matrix<float,2,3> 定義2X3矩陣,元素爲float類型(Eigen中所有的向量和矩陣的底層都是如此定義)
Eigen::Vector3d 定義三維列向量,等價於Eigen::Matrix<double,3,1>
Eigen::SelfAdjointEigenSolver< Eigen::Matrix3d > A(B) 矩陣B的相似對角化
Eigen::Matrix<float,Eigen::Dynamic,Eigen::Dynamic> 定義動態矩陣,運行時確定矩陣大小,相對耗時
Eigen::MatrixXd 定義動態矩陣
Eigen::Isometry3d 歐式變換矩陣4X4
Eigen::AngleAxisd rotation_vector(M_PI/4,Eigen::Vector3d(0,0,1)) 旋轉向量3X1,沿Z軸旋轉課45°
Eigen::Quaterniond 四元數(4X1)
Eigen::Quaterniond(rotation_vector/rotation_matrix) 四元數的初始化
q*v 利用四元數法旋轉一個向量v,實際上數學爲qvq^(-1)
Eigen::Affine3d 仿射變換4X4
Eigen::Projective3d 射影變化4X4
函數 功能
Eigen::Matrix3d::Identity() 單位矩陣,其他矩陣類中亦有此操作
Eigen::Matrix3d::Zero() 零矩陣,其他矩陣類中亦有此操作
Eigen::Matrix3d::Random() 隨機矩陣,其他矩陣類中亦有此操作
Eigen::MatrixXd::Random(matrix_sizea,matrix_sizeb) 隨機矩陣
transpose() 轉置
sum() 各元素和
trace()
inverse()
determinant() 行列式
A.eigenvalues() 特徵值(SelfAdjointEigenSolver類中成員函數)
A.eigenvectors() 特徵向量(SelfAdjointEigenSolver類中成員函數)
eulerAngles(2,1,0) 轉換爲ZYX歐拉角,0–X,1–Y,2–Z
rotate(rotation_vector) 按照rotation_vector進行旋轉
pretranslate(translate_vector) 按照translate_vector進行平移
colPivHouseholderQr() QR分解
solve(右側向量) 解非齊次方程組
matrix()或者toRotationMatrix() AngleAxisd類中成員函數,將選擇向量轉換爲旋轉矩陣
coeffs() 其順序爲(x,y,z,w),w爲實部,前3個爲虛部

注意:

(1)在Eigen裏不能夠混合兩種不同類型的矩陣進行運算,如float和double類型,需要強制類型轉換,eg:.cast(),不可以直接前綴強制轉換
(2)Matrix3d、vector3d之類的變量都是類,默認double數據類型,內嵌許多成員
(3)Matrix3d、vector3d之類的大寫字母開頭的均是類,Matrix、SelfAdjointEigenSolver是模板類

vscode基本配置:https://blog.csdn.net/weixin_43374723/article/details/84064644
Eigen庫使用方法:https://www.jianshu.com/p/931dff3b1b21

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章