1 熟悉Linux
1. 如何在 Ubuntu 中安装软件(命令⾏界⾯)?它们通常被安装在什么地⽅?
apt-get install 包名
aptitude insatll 包名(包含依赖解决方案)
1.下载的软件存放位置
/var/cache/apt/archives
2.安装后软件默认位置
/usr/share
3.可执行文件位置
/usr/bin
4.配置文件位置
/etc
5.lib文件位置
/usr/lib
2. linux 的环境变量是什么?我如何定义新的环境变量?
linux的环境变量有永久生效和shell临时生效两种
设置永久生效的环境变量:
- 对所有用户生效
$ gedit /etc/profile
$ export 新增环境变量
- 对当前用户生效
$ gedit /home/用户/.bash.profile
$ export 新增环境变量
设置当前shell有效的环境变量:
直接在当前命令窗口下新增变量,窗口关闭后失效
$ export 新增环境变量
查看环境变量:
- 使用env查看所有环境变量
env - 使用echo命令查看单个环境变量
echo $PATH - 使用
set查看所有本地定义的环境变量,unset可以删除指定的环境变量 - 常用的环境变量
PATH——决定了shell将到哪些目录中寻找命令或程序
HISTSIZE——历史记录数
LOGNAME——当前用户的登录名
HOSTNAME——指主机的名称
SHELL——当前用户Shell类型
LANGUGE——语言相关的环境变量,多语言可以修改此环境变量
MAIL——当前用户的邮件存放目录
PS1——基本提示符,对于root用户是#,对于普通用户是$
4. linux 根⽬录下⾯的⽬录结构是什么样的?⾄少说出 3 个⽬录的⽤途。
根目录下面只有目录
/home:用户家目录
/boot:系统启动时用到的一些文件,如内核文件、grub引导
/etc:系统配置文件
/dev:系统设备文件
/bin:可执行二进制文件
…
5. 假设我要给 a.sh 加上可执⾏权限,该输⼊什么命令?
在不知道该档案原本的权限为何的情况下,chmod a+x filename,就可以让该程序拥有执行的权限了
6. 假设我要将 a.sh ⽂件的所有者改成 xiang:xiang,该输⼊什么命令?chown xiang:xiang a.sh
2 SLAM综述文献阅读
SLAM 会在哪些场合中⽤到?⾄少列举三个⽅向。
增强现实、移动机器人的自主导航、无人驾驶SLAM 中定位与建图是什么关系?为什么在定位的同时需要建图?
定位:机器人必须知道自己在环境中位置;
建图:机器人必须记录环境中特征的位置(如果知道自己的位置);
机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。SLAM 发展历史如何?我们可以将它划分成哪⼏个阶段?
声纳——激光雷达——深度相机——多传感器融合列举三篇在 SLAM 领域的经典⽂献。
Smith, R.C. and P. Cheeseman, On the Representation and Estimation of
Spatial Uncertainty. International Journal of Robotics Research,Se, S., D. Lowe and J. Little, Mobile robot localization and mapping
with uncertainty using scaleinvariant visual landmarks. The
international Journal of robotics Research, 2002. 21Mullane, J., et al., A RandomFiniteSet Approach to Bayesian SLAM.
IEEE Transactions on Robotics, 2011
3 CMAKE练习
完成了《cmake 实践》的阅读,了解了cmake工程的构建方法,静态库和动态库的安装调用。
4 ORB-SLAM2练习
在命令行中输入 git clone https://github.com/raulmur/ORB_SLAM2
ORB-SLAM2文件夹将会下载到当前路径
阅读CMakeLists.txt,回答以下问题:
- ORB-SLAM2 将编译出什么结果?有⼏个库⽂件和可执⾏⽂件? 6个,观察add_executable指令即可
- ORB-SLAM2 中的 include, src, Examples三个⽂件夹中都含有什么内容? 头文件,源文件,输出
- ORB-SLAM2 中的可执⾏⽂件链接到了哪些库?它们的名字是什么?观察target_link_libraries指令即可
5 运行ORB-SLAM2
git clone https://github.com/raulmur/ORB_SLAM2将ORB_SLAM2文件夹下载到本地,根据github页面的readme安装好依赖
将课程提供的myvideo.cpp、myvideo.yaml、myvideo.mp4放到Examples/myvideo文件夹下,注意修改myvideo.cpp中的文件路径
修改ORB_SLAM2文件夹下的CMakeLists.txt文件,在最后增加如下语句
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/myvideo)
add_executable(myvideo Examples/myvideo/myvideo.cpp)
target_link_libraries(myvideo ${PROJECT_NAME})
在ORB_SLAM2文件夹下打开终端
cd ORB_SLAM2
chmod +x build.sh
./build.sh
cd build
make
在Examples/myvideo文件夹下找到myvideo可执行程序,./myvideo执行
报错QObject::startTimer: Timers cannot be started from another thread
解决方法
https://blog.csdn.net/weixin_39608351/article/details/90202749

参考链接
https://blog.csdn.net/zzc1684/article/details/84710802