除了我上次说的launch文件没有写,还有SLAM的源码没有分析,除了这些,我先给大家写下SLAM编译的过程,但是X3本身的内存太小了,我一开始按照电脑配置写的j8(相当于火力全开的意思),但是根本不行。
先安装一下编译的工具 找个目录:
没必要照抄,自己随便设置
安装pangolin j2好一些 只要我慢慢的,就死不了 看起来不是那么死 突然发现X3有点热(编译很无聊的,尤其这种慢的): 想起来盒子里面有一个散热器 很大的哦 在盖以前,我们看看盖子上面有啥?这个微距当然就是使用我们的小微距镜头 就是这个样子的了,我再也不用使用放大镜了(好像这东西就是个放大镜) 一个OK,继续编译 记得回到我们的libs文件夹下面执行我接下来给的命令:
g2o是一个非线性数值图优化的库: 这个是它大大的名字 还有可爱的Logo 抱歉,哭错坟了 妈的,吓死我了,我以为要死 趁着胆战心惊的编译,这里讲讲SLAM的知识。SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以图优化为代表的非线性优化方法。 滤波方法尤其是EKF方法,在SLAM发展很长的一段历史中一直占据主导地位。 优点:在当时计算资源受限、待估计量比较简单的情况下,EKF为代表的滤波方法比较有效,经常用在激光SLAM中。 缺点:它的一个大缺点就是存储量和状态量是平方增长关系,因为存储的是协方差矩阵,因此不适合大型场景。而现在基于视觉的SLAM方案,路标点(特征点)数据很大,滤波方法根本吃不消,所以此时滤波的方法效率非常低。 在视觉SLAM中,虽然包含大量特征点和相机位姿,但其实BA(Bundle Adjustment)是稀疏的,稀疏的就好办了,就可以加速了. 图优化里的图就是数据结构里的图,一个图由若干个顶点(vertex),以及连接这些顶点的边(edge)组成. 比如一个机器人在房屋里移动,它在某个时刻 t 的位姿(pose)就是一个顶点,这个也是待优化的变量。而位姿之间的关系就构成了一个边,比如时刻 t 和时刻 t+1 之间的相对位姿变换矩阵就是边,边通常表示误差项。 在SLAM里,图优化一般分解为两个任务: 1、构建图。机器人位姿作为顶点,位姿间关系作为边。 2、优化图。调整机器人的位姿(顶点)来尽量满足边的约束,使得误差最小。 好怕好怕 成功崩溃哦,这里改j1了,这篇文章快到12点了都没有编译完: 这个是j1编译的,我不知道能不能过 大家晚安,我再守着电脑看看编译情况。
|
|