![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ORB-SLAM
文章平均质量分 86
slam让我头疼
这个作者很懒,什么都没留下…
展开
-
SVO、vinsmono、 OKVIS系统比较
平移量和视线的夹角。原创 2023-03-24 15:06:04 · 785 阅读 · 0 评论 -
ORB-SLAM optimizer
很有针对性的相关参考链接:https://blog.csdn.net/hzwwpgmwy/article/details/79884070学会去看模板参数顶点一般就是位姿、路标点位置边的话就是1、一般找投影2、找两帧间的相对变换sim3作为边class EdgeSE3ProjectXYZ: public BaseBinaryEdge<2, Vector2d, VertexSBAPointXYZ, VertexSE3Expmap>//投影边的模板参数,第一个连的顶点是三维点..原创 2020-11-02 22:15:59 · 242 阅读 · 0 评论 -
ORB-SLAM C++
1、vector的reserve 、resizevector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下:reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。resize是改变容器的大小,且在创建对象,因此,调用这个函数之后,就可以引用容器内的对.原创 2020-11-02 22:05:10 · 269 阅读 · 0 评论 -
ORB-SLAM使用到的小细节
1、从两个关键帧的位姿计算它们之间的基本矩阵,根据对极约束剔除一些质量不高的点,x2‘Fx1=0,理论上x2特征点在Fx1构成的极线上,因为存在误差值,变成计算点到直线的距离bool ORBmatcher::CheckDistEpipolarLine(const cv::KeyPoint &kp1,const cv::KeyPoint &kp2,const cv::Mat &F12,const KeyFrame* pKF2){ // Epipolar line i原创 2020-11-02 21:35:02 · 626 阅读 · 0 评论 -
ORB三个线程的理解
1、Tracking线程总结(跟踪某一帧找到位姿、然后更新找到局部地图中尽可能多的mappoint,提高BA优化精度)1.1根据恒速运动模型初始化当前帧位姿)1、相机位姿跟踪(跟踪帧),trackwithmotionmodel(跟踪上一帧):假设当前帧和上一帧的位姿差 、上一帧和上上帧的位姿差相等,从而根据上一帧位姿和位姿差确定当前帧的初始位姿T2=T21*T1,上一帧的mappoints和当前帧的特征点进行匹配,然后仅对当前帧的位姿优化,提高位姿的精度;(上一帧中包含了MapPoints,对这些Map原创 2020-11-02 21:27:58 · 1950 阅读 · 0 评论