视觉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 );
推荐阅读
- 别墅庭院设计,不同的别墅庭院设计也给人视觉上完全不一样的!
- 我与我的小区(十四)
- 遇见第三十四天
- 《癸酉金石二十四节气之“清明”》
- 推酷《Guru|推酷《Guru Weekly》第十四期
- 二十四节气灸“白露灸”
- 《教育心理学》读书笔记十四---学校班级管理的现状分析与策略研究
- 《青春在硬盘里灼烧》第十四章:名利猛贪无有足
- Ruth之第二十四天复盘
- 进阶任务十四