第一题 熟悉Linux
1、sudo apt-get install “需要安装的软件名” , 通常将软件安装在usr目录下
2、环境变量:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息;它分为永久生效和shell临时生效两种。
1)对所有用户生效的永久性变量(系统级):
这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。
设置方式: 用vim 或者gedit 打开/etc/profile 文件,然后添加我们想要的环境变量,用export指令添加环境变量。这个文件只有在root(超级用户)下才能修改。我们可以在etc目录下使用ls -l查看这个文件的用户及权限。以gedit为例:
$ gedit /etc/profile
$ export 新增环境变量
注:添加完成后新的环境变量不会立即生效,需要source /etc/profile 该文件才会生效。否则只能在下次重进此用户时才能生效。记住要在终端source一下。。。
2)对当前用户生效的永久性变量(用户级):
只针对当前用户,和上面的一样,只不过不需要在etc 下面进行添加,直接在.bash_profile文件最下面用export添加就好了。
这里 .bashrc和.bash_profile原则上来说设置此类环境变量时在这两个文件任意一个里面添加都是可以的。
~/.bash_profile是交互式login方式进入bash shell运行。
~/ .bashrc是交互式non-login方式进入bash shell运行。
二者设置大致相同。
.bash_profile文件只会在用户登录的时候读取一次;而.bashrc在每次打开终端进行一次新的会话时都会读取。
3)临时有效的环境变量(只对当前shell有效):
此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失,是临时的,可以直接使用export指令添加。
$ export 新增环境变量
3、/(root,根目录):
作用:开机,系统还原,系统修复
4、chmod +x a.sh
5、chown xiang:xiang a.sh
第二题 SLAM综述文献阅读
1、手持设备定位、自动驾驶汽车、扫地机器人、AR(增强现实)、VR(虚拟现实)、送餐机器人
2、定位:知道自身在环境中所处的位置;
建图:根据收集到的环境特征信息还原环境;(可根据自身定位信息建造地图)
机器人从某一个位置向另一个位置移动过程中,根据位姿估计和地图构建进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。准确的地图构建需要准确的位置信息,反之亦然,它们之间存在很强的耦合关系。
3、
1)第一阶段:定位和建图分开研究的阶段;
2)第二阶段:定位和建图在一起进行研究的阶段;
3)第三阶段:开始运用摄像头的阶段(之前由于计算机视觉的发展还不太到位,因此之前基本都是基于激光测距方法)
4)第四阶段:多元化的阶段(也就是目前阶段,考虑多传感器融合slam,视觉+激光+imu等等)
原文链接:https://blog.csdn.net/whut_chengjun/article/details/103069881
4、ORB-SLAM2、LSD-SLAM、SVO-SLAM、DSO、VINS-SLAM
第三题 CMake 练习
见https://mp.csdn.net/editor/html/114792144
第四题 理解 ORB-SLAM2 框架
1、略
2、
a、生成rgbd_tum、stereo_kitti、stereo_euroc、mono_tum、mono_kitti、mono_euroc这些可执行文件,有3个库文件,有6个可执行文件。
1) lib/libORB_SLAM2.so
2) Thirdparty/g2o/lib /libg2o.so
3) Thirdparty/DBoW2/lib/libDBoW2.so
b、include中有头文件,src中包含库文件,Examples中有源文件以及源文件编译产生的可执行文件
c、
(1)lib/libORB_SLAM2.so
注:上面这个库应该是CMakeLists.txt中的如下代码产生的动态(共享)库
(2)Thirdparty/g2o/lib /libg2o.so
(3)Thirdparty/DBoW2/lib/libDBoW2.so
第五题 使用摄像头或视频运行 ORB-SLAM2
1、之前已完成操作
2、
add_executable(Myvideo
Examples/Monocular/myvideo.cpp)
target_link_libraries(myvideo ${PROJECT_NAME})
add_executable(myslam
Examples/Monocular/myslam.cpp)
target_link_libraries(myslam ${PROJECT_NAME})
3、
将所要用到的文件程序都放在同一个文件夹内,在./myvideo或./myslam,即可运行得到如下运行结果。