视觉SLAM十四讲笔记 -- 第二讲

第二讲:课后题

1.阅读文献[1]和[14],你能看懂其中的内容吗?

  • 文献1A survey of monocular simultaneous localization and mapping 可以从百度学术上自行下载
    本文献是一篇SLAM的综述,首先从AR(Augmented reality 增强现实)切入,讲了SLAM的重要性以及视觉SLAM可以带来的好处,然后以此展开总体的概括了SLAM的发展情况,也分析和介绍了各不同SLAM的性能区别,对各个特性进行了对比和分析,最后总体讲了现有SLAM技术的不足以及对SLAM日后发展的憧憬。
    感兴趣的同学可以参考这个博客:https://blog.csdn.net/zhuquan945/article/details/79712506

  • 文献14Graph-based SLAM: A Survey
    又是一篇关于视觉SLAM的文献综述。本文从帧间配准、环形闭合检测以及优化技术 3 个主要方面对基于图优化的同时定位与地图创建进行综述.对每一个方面,阐述其关键技术,介绍最新研究进展,并探讨相关难点问题及解决思路.最后,对基于图优化的同时定位与地图创建的发展作出展望。

2.*阅读SLAM的综述文献,例如[9,15-18]等。这些文献中关于SLAM 的看法与本书有何异同?

文献9:Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age


文献15:Visual Simultaneous Localization and Mapping: A Survey
感兴趣的同学可以参考这个博客:https://blog.csdn.net/shyjhyp11/article/details/104375922


文献16:Topological simultaneous localization and mapping: a survey
这个论文下载不了…


文献17:Kalman Filter for Robot Vision: A Survey


文献18:Recent advances in simultaneous localization and map-building using computer vision


具体有啥区别,暂时还每有看到,等有空了把所有论文都看了,再回来补充。

3.g++命令有哪些参数? 怎么填写参数可以更改生成的程序文件名?

1、默认
命令: g++ test.cpp 功能:生成默认为a.exe的文件。

2、命名 -o 命令: g++ test.cpp -o test 功能:生成test.exe的文件。

3、调试 -g 命令: g++ qaq.cpp -o qdq -g 功能:生成用于gdb调试的文件qdq.dSYM。

4、警告 -W -w 命令:g++ qaq.cpp -o qaq -W 功能:显示所有的警告信息 命令:g++ qaq.cpp -o qaq
-w 功能:禁止显示所有警告信息

5、优化 -O{num} 命令:g++ qaq.cpp -o qaq -O2
功能:主要有O1,O2,O3,Os,分别优化大小,功能,功能,大小。

6、标准 -std={version} 命令:g++ qaq.cpp -o qaq -O2 -std=c++11 注意:c++
是小写字母c。 功能:使用标准c++11来编译程序

应用实例: (1)g++ stoi.cpp -o stoi -std=c++11 使用标准c++11来编译程序, 将stoi.cpp
编译为名为stoi的可执行文件。 注意:c++ 是小写字母c。

7、Win系统栈 -Wl,–stack={size} 命令:g++ 1.cpp -o 1 -Wl,–stack=16777216
功能:把调用栈的大小指定为16MB。
具体的可以参考这个文章:https://blog.csdn.net/boyaaboy/article/details/106805188


输入以下命令可以更改生成的程序文件名 : g++ -o hello.exe hello.c

4.使用build文件夹来编译你的cmake工程,然后在 KDevelop中试试

实验已做

5.刻意在代码中添加一些语法错误,看看编译会生成什么样的信息。你能看懂g++的错误信息吗?

实验已做,不过c++的报错信息不是很友好,至少没有JAVA或者Python好

6.如果忘了把库链接到可执行程序上,编译会报错吗?报什么样的错?

注释掉CMakeLists.txt中的 target_link_libraries(useHello hello_shared)
会在build useHello的时候,报找不到 printHello()的引用
在这里插入图片描述

7.*阅读《cmake 实践》,了解cmake的其他语法。

在晚上搜索到一个在线版本,感兴趣的同学可以参考下:https://www.kancloud.cn/itfanr/cmake-practice/82981
也可以参考有网友写的笔记:https://blog.csdn.net/qq_30567891/article/details/81697780

8.*完善Hello SLAM 小程序,把它做成一个小程序库,安装到本地硬盘中。然后,新建一个工程,使用find package找这个库并调用。

ok

9.* 阅读其他 cmake教学材料,例如https://github.com/TheErk/CMake-tutorial。

ok

10.找到KDevelop的官方网站,看看它还有哪些特性。你都用上了吗?

  1. 语言支持,包括C/C++,Qt QML and JavaScript,Python,PHP
  2. 版本控制:支持 Git,Bazaar,Subversion,CVS,Mercurial (hg)*,Perforce (since 5.1)
  3. 支持多种构建系统:CMake,QMake,Custom Makefiles (partially),Generic build system (no automatic include path detection)
  4. 代码快速导航,代码高亮表示,开发文档集成
  5. 用户自定义样式

11.如果在第1讲学习了Vim,那么请试试 KDevelop 的 Vim 编辑功能。

这个不会啊,咋用vim功能啊 。。。。