std问题
- 用作回环的时候应该做检验
trick - 关于全局描述子:
- 建图期间多走几圈不同路径多从不同角度采集描述子,同时提高匹配阈值
- 关键帧的处理:
- 用于回环检测的帧取的稀疏一些,彼此之间不太相同,又能涵盖整个环境。
- 把"相近"的回环聚成一类,使算法不要反复地检测同一类的回环。
- 相似评分的处理:当前帧与之前某关键帧的相似度超过当前帧与上一个关键帧的三倍,就可能存在回环。
- 检测之后的验证(候选帧是如何筛选的?):
- 时间上的一致性检测:一段时间内一直检测的回环才当做是回环(n,n+1,n+2……帧都和关键帧像,才当做是回环)—>这样是要每个周期(不仅仅是关键帧)都要检测回环?这样计算成本是不是就增高了?还是说如果检测出回环就连续检测
- 空间上的一致性检测:把回环上的两帧进行特征匹配,估计相机运动。把运动放到Pose Graph中,检查与之前估计是否有很大出入。—>怎么操作?
思考:
不是所有的边界点都是可靠的
按照现在的策略,提取的边界点一般是平面上的突出部分,这样的话,比如桌子上的水杯杂物什么的会被优先提取,然而这种东西其实是很容易发生变动的……
所以什么样的特征点才是稳定可靠的呢?比如桌子的角?这与桌子上的杯子有什么区别呢?桌子的角是可以连成边的 就是边界点是非孤立的 这个在代码中是否有体现呢?
Tips
点到平面的投影
已知法向量(单位向量)与平面一点求平面方程Ax+By+Cz+D = 0
1. A B C为法向量
2. 根据已知一点求得 D = -(Ax+By+Cz)已知平面外一点坐标(x1,y1,z1),又法向量为单位相邻,则d