视觉SLAM十四讲——第三讲笔记

1.旋转矩阵是一个行列式为1的正交矩阵——SO(n); 用来描述相机的旋转
2.变换矩阵,为了方便描述多次变换,把旋转和平移写在一个矩阵里,使整个关系变为线性关系。——特殊欧式群(special Euclidean group)SE(3).
3.Eigen的使用:

Eigen::Matrixmatrix_23; //前三个参数:数据类型,行,列

//Eigen::Vector3d实质上是Eigen::Matrix; Matrix3d、MatrixXd等等;

//注意矩阵的维度和类型 Eigen::Matrixresult=matrix_23.cast()*v_3d; //cast->强制类型转换

matrix_33 = Eigen::Matrix3d::Random(); // 随机数矩阵 cout << matrix_33 << endl << endl; cout << matrix_33.transpose() << endl; // 转置 cout << matrix_33.sum() << endl; // 各元素和 cout << matrix_33.trace() << endl; // 迹 cout << 10*matrix_33 << endl; // 数乘 cout << matrix_33.inverse() << endl; // 逆 cout << matrix_33.determinant() << endl; // 行列式

clock_t time_stt = clock(); // 计时

// 通常用矩阵分解来求逆,例如QR分解 x = matrix_NN.colPivHouseholderQr().solve(v_Nd);

4.欧拉角中比较常见的一种“偏航-俯仰-滚转”(yaw-pitch-roll); ZYX——>万向锁问题
5.四元数:紧凑没有奇异性
6.Eigen/Geometry
旋转矩阵:Matrix3d; Matrix3f
旋转向量:AngleAxisd
precision() 返回当前的浮点数精度值
可以将旋转矩阵直接转换成欧拉角:
Eigen::Vector3d euler_angles = rotation_matrix.eulerAngles ( 2,1,0 ); // ZYX顺序,即roll pitch yaw顺序

【视觉SLAM十四讲——第三讲笔记】可以直接把旋转向量和旋转矩阵赋值给四元数:
Eigen::Quaterniond q = Eigen::Quaterniond ( rotation_vector );





    推荐阅读