2021@SDUSC
2021年11月17日星期三——2021年11月19日星期五
一、背景简介:
经过上一周对于代码的阅读,我发现自己在这几个开源库函数和cpp常用的代码技巧方面还存在着问题,对于前置的知识也不甚了解。因此我决定暂停一下阅读的进度,专门结合这些开源函数和代码技巧进行补习。也能趁机提升一下自己的cpp编程水平。
本着实用的原则,学习的范围先暂定在前面三次学习中的代码,库函数包括Eigen和open cv两块。学习的顺序由新到旧,逐步回顾。
二、代码分析及问题解答:
1、initial_alignment
-
主要涉及到的是Eigen库 计算线性代数 在分析这里的代码时,关于计算的部分已经研究过了,这里就不再重复了,包含矩阵的转置、ldlt分解计算、块操作等等。
-
在头文件中出现的odomCur是
nav_msgs::Odometry odomCur;,是视觉里程计的信息,里面的pose,linear指的分别是:位姿信息,线速度信息;
而twist指的则是一种消息类型,包含了linear线速度信息和angular角速度信息。
如截取:
odometry_channel[10] = odomCur.twist.twist.linear.z;
odometry_channel[11] = odomCur.pose.covariance[1];
- Eigen::Quaterniond,是Eigen中四元数的初始化,包含这样的三种方式
Eigen::Quaterniond q1(w, x, y, z);// 第一种方式
Eigen::Quaterniond q2(Vector4d(x, y, z, w));// 第二种方式
Eigen::Quaterniond q2(Matrix3d(R));// 第三种方式

本文详细分析ROS 3DSLAM项目中涉及的视觉部分代码,包括Eigen库的initial_alignment、OpenCV的solve_5pts等,探讨了Eigen和OpenCV在矩阵运算上的应用,并解释了为什么在不同场景下选择不同的库。此外,还讨论了C++11的新特性、SVD分解以及在阅读cpp代码时遇到的问题与解答。
:视觉部分学习 第四节 代码补习&spm=1001.2101.3001.5002&articleId=121438678&d=1&t=3&u=7ac495f8c5a24ad49e679f063bd6fb87)
2976

被折叠的 条评论
为什么被折叠?



