视觉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顺序

可以直接把旋转向量和旋转矩阵赋值给四元数:

Eigen::Quaterniond q = Eigen::Quaterniond ( rotation_vector );




你可能感兴趣的:(视觉SLAM十四讲——第三讲笔记)