从0开始(二)

SLAM

Simultaneous Localization and Mapping

SLAM是指当某种移动设备(如机器人、无人机、手机等)从一个未知环境里的未知地点出发,在运动过程中通过传感器(如激光雷达、摄像头等)观测定位自身位置、姿态、运动轨迹,再根据自身位置进行增量式的地图构建,从而达到同时定位和地图构建的目的。

SFM(structure from motion)是一种和SLAM非常类似的算法,关于SFM和SLAM的异同,下面说法错误的是?

 

A. SFM和SLAM基本讨论的是同一问题,不过SFM最早来自计算机视觉领域,而SLAM则是来自于机器人领域。SFM的structure对应SLAM的mapping,SFM的camera pose对应SLAM的location。(对)

 

B. SFM一般是离线处理,而SLAM更强调实时性,一般在线处理。(对)

 

C. SFM处理的图片一般没有要求,可以是不同时间不同相机拍摄的同一个场景,而SLAM一般要求是同一相机拍摄的序列图像或连续视频。(对)

 

D. 目前SFM主要是要完成3D reconstuction,而SLAM主要是要完成localization。(错)

 

E. SFM通常使用摄像机作为传感器,而SLAM在传感器选择方面,除了摄像机,通常还包括惯导、激光雷达等传感器。(对)

 

F. 如果想要快速对自由女神像进行3D重建,在没有特殊硬件的情况下,最好的方式是选择SLAM。(错)

学习C++新特性的必要性?

1、可以大幅度提高编程效率,切瓜更6

C++新特性增加了很多非常高效的关键字和语法,比如std::swap,C++11之前的swap执行了三次内存拷贝操作,这种不必要的内存操作会影响效率。而C++11之后的swap引入了右值引用和数据移动的概念,使用内存移管代替了不必要的内存拷贝,大大提高了效率。

2、省心省力,减少脱发

举个栗子。C++11之前如果我们要定义并初始化一个新变量,必须得知道其类型并定义,这在很多时候是非常繁琐的,比如迭代器的使用,而C++11之后引入了自动类型推导,一个auto解决一切,不需要关心类型,编译器会帮你自动推导出类型。

3、能看懂别人的代码,不被新时代抛弃

由于上述的优点,很多开源代码都是使用C++新特性,工作学习中大家也都使用新特性,如果你根本不了解这些新特性,估计很难看懂别人的代码,时代的战车会轰隆隆把你抛弃。

下面就跟着学几招新特性,学习C++的路也是漫长的。

仔细想一想。。。。

关键字auto的用法

这个我之前见过。。。好吧,学无止境。

躲不掉的Lambda。。。。

学无止境。。。。

课后题,我觉得我得先去看看书才行。。。

正确的输出结果:

这个代码,我回头补上,当然肯定CMakelist.txt的内容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章