從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的內容

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