**標頭檔案包含:
#include #include using namespace eigen;
旋轉向量 角1+軸3 『angleaxisd』
旋轉矩陣 3 * 3 『matrix3d』
尤拉角 3 * 1 『vector3d』
四元數 4 * 1 『quaterniond』
歐式變換矩陣、仿射矩陣、射影矩陣 4 * 4 『 isometry3d、affine3d、projective3d』
//旋轉向量->矩陣形式
.matrix()
//旋轉向量->旋轉矩陣
.torotationmatrix()
//旋轉矩陣->尤拉角
.eulerangles(2, 1, 0); // zyx順序,即yaw-pitch-roll順序
//歐式變換矩陣建立
t.rotate(rotation_vector); // 按照rotation_vector旋轉向量進行旋轉
t.pretranslate(vector3d(1, 3, 4)); // 把平移向量設成(1,3,4)
//四元數建立
quaterniond q = quaterniond(rotation_vector); //按照旋轉向量進行建立
q.coeffs().transpose() // 請注意coeffs的順序是(x,y,z,w),w為實部,前三者為虛部
// 使用四元數旋轉乙個向量,使用過載的乘法即可
v_rotated = q * v; // 注意數學上是q*v*q^
// 用常規向量乘法表示,則應該如下計算
cout << "should be equal to " << (q * quaterniond(0, 1, 0, 0) * q.inverse()).coeffs().transpose() << endl;
#include #include using namespace std;
#include #include using namespace eigen;
// 本程式演示了 eigen 幾何模組的使用方法
int main(int argc, char **ar**)
cout << "(1,0,0) after rotation = " << v_rotated.transpose() << endl;
// 用常規向量乘法表示,則應該如下計算
cout << "should be equal to " << (q * quaterniond(0, 1, 0, 0) * q.inverse()).coeffs().transpose() << endl;
return 0;
}
視覺SLAM(一) 視覺SLAM框架
主要參考書目是高翔博士的 視覺slam十四講 中間會記錄一些個人實踐經驗和思考。slam伴隨著機器視覺發展和機械人導航已經相對成熟,形成了合理高效的基本框架。主要包含 感測器資料 前端視覺里程計 後端優化 回環檢測 建圖。採集根據不同應用場景和需求進行選擇,主要有如下幾種感測器 也就是單獨乙個攝像機...
Eigen 幾何變換
筆記 題目 已知旋轉矩陣定義是沿著z軸旋轉45 請按照該定義初始化旋轉向量 旋轉矩陣 四元數 尤拉角。請程式設計實現 1 以上四種表達方式的相互轉換關係並輸出 2 假設平移向量為 1,2,3 請輸出旋轉矩陣和該平移矩陣構成的歐式變換矩陣,並根據歐式變換矩陣提取旋轉向量及平移向量 本程式學習目標 1 ...
視覺slam第三講筆記 矩陣運算Eigen庫
內積 a b a ba b外積 a b a b a times b hat a b a b a b,其中 a hat a a 為a aa的反對稱矩陣表示 a b 0 a3a2 a30 a1 a 2a10 b a times b begin 0 a a a 0 a a a 0 endb a b 0a3...