博客專欄

EEPW首頁 > 博客 > 聊聊這兩年學(xué)習(xí)slam啃過的書!

聊聊這兩年學(xué)習(xí)slam啃過的書!

發(fā)布人:計算機(jī)視覺工坊 時間:2020-11-04 來源:工程師 發(fā)布文章

入坑2年多,零七零八買了7、8本書,正好最近研一的新師弟讓我來推薦幾本,那么,獨樂樂不如眾樂樂,我就來巴拉巴拉一下我買的這些書吧。

以下測評,僅代表個人觀點,與書的作者無關(guān)(狗頭保命)

1、【C++ Primer Plus】

9.png

嗯~這個灰?;页:竦腸++書是我買的第一本書,也是我所有書里除了java最厚的一本(java買了就沒看),But,這本巨厚的c++我竟然翻完了?。。‘?dāng)年,年輕的我以為,看完這本書,我就可以橫掃slam了,哦,我還是太年輕。

言歸正傳,這本書我覺得是每一個學(xué)C++的人都可先入手的一本基礎(chǔ)類書籍,講的雖然沒有特別深,但很全面,比較容易懂。可以在2-3月內(nèi)大致了解C++的主要構(gòu)造,而且里面包括了可實現(xiàn)的代碼,講解的也比較詳細(xì)。有C語言基礎(chǔ)的學(xué)生和沒有C語言基礎(chǔ)的同學(xué)都建議入手。

【食用指南】這本書很厚,不需要每一節(jié)都必看,也不需要每一節(jié)都一次性全部看懂。學(xué)過C語言的童鞋:可以跳過Ch1~Ch7,直接看函數(shù)重載和對象部分。沒有學(xué)過C語言的童鞋,就得從第一章開始看了,但也不需要很慢,這部分很基礎(chǔ),大概一個多星期就可以看完。重點推薦Ch10~13,這部分是C++的重頭戲,可以多看幾遍,加深印象,至于Ch14~18章,可以在需要的時候再看。C++只是一個工具,不需要每一個地方你都一清二楚,這本書可以在后續(xù)學(xué)習(xí)中反復(fù)查看??傊?,建議入手。

【推薦指數(shù)】★★★★★

2、【視覺SLAM十四講(第一版)】

8.png

這個是我入手的第二本書,研一上學(xué)期就買了。當(dāng)年年輕的我問師兄:師兄,怎么學(xué)習(xí)SLAM?師兄說:看完這本書,你就會了。如今,我的師弟問我,師姐,怎么學(xué)習(xí)SLAM?我也會笑著來一句,看完這本書,你就會了。

當(dāng)然以上是個段子。不過SLAM十四講的基礎(chǔ)性地位是不可撼動的,第一版講的很詳細(xì),有很多用不到,但是又很難理解的知識點。但是一本很好的書,很適合入門級別,里面的每一章都會有相應(yīng)的代碼,而且網(wǎng)上對于這些代碼的解讀也很多,通過這本書可以基本了解SLAM的結(jié)構(gòu)。師弟說很多地方看不懂,看了2遍,還是不懂。我想著這可能是很多剛?cè)腴T的小白的難處,我來大致講解一下

【食用指南】整個SLAM系統(tǒng)分為前端和后端,對于第一版來說,第九講之前都介紹的是前端,我覺得是碩士研究生,短時間內(nèi)沒有想要讀博的,可以只看1-8章,重點看6-7-8章節(jié),這三章是前端的關(guān)鍵。一二三章是基礎(chǔ),就不多說。第四章開始,就不美好了,李代數(shù)是什么玩意?尤其是第一版中還加入了李代數(shù)求導(dǎo)和擾動模型,當(dāng)年的我看的也是一頭霧水(可能我的頭發(fā)就是看這章看沒的,請高博還我頭發(fā))。其實這部分大家只要學(xué)會推到李代數(shù)和李群之間的轉(zhuǎn)換關(guān)系就可以了,擾動模型什么的,可以留給你的博士師兄們研究,后面的推導(dǎo)用的也不多,可以等需要的時候再詳細(xì)看。第五章也不用說,沒什么難點。第六章又來了,第六章、第七章、第八章感覺都是在講一個東西,那么在講什么呢?其實第六章和前五章一樣,仍然是一個工具,非線性優(yōu)化,相當(dāng)于最小二乘法,這只是一種優(yōu)化手段和方式,不需要執(zhí)著于用在哪里,其實在后面的工程中可以發(fā)現(xiàn),只要是用到最小二乘優(yōu)化算法的地方,都會出現(xiàn)非線性優(yōu)化。至于第七章第八章,其實就是在求解非線性優(yōu)化中所用到的初值。前八章看起來也沒那么難,是不是?后端部分,等前端掌握了,再看,也不遲,或者說你在看論文的時候,需要補(bǔ)充后端的知識,再來看后端的知識點也可以。

【推薦指數(shù)】★★★★★

3、【視覺SLAM十四講(第二版)】

7.png

是的,我前兩天又買了第二版,其實第一版我已經(jīng)看了很多遍了,那么為什么買第二版呢?首先,我覺得我研究SLAM,還是個博士,書架上不擺個2、3本專業(yè)書感覺不太好,大多數(shù)情況下還是要裝個B的。其次,插圖好看,翻開書就有4頁的彩色插圖,感覺很高端的樣子,老夫還是有少女心的。第三,當(dāng)然這肯定不是最重要的地方,老板報銷。于是乎,我就開開心心買了第二版。

那么第二版和第一版的區(qū)別在于什么呢?整體上分為了三部分:預(yù)備知識、數(shù)學(xué)基礎(chǔ)、實踐應(yīng)用。預(yù)備知識對應(yīng)第一版的第一講,數(shù)學(xué)基礎(chǔ)部分包括了第一版的第二講至第六講,其他的全是實踐應(yīng)用。具體來看,第二版增加了代碼實驗部分,例如3.7節(jié),第一版就是可視化演示,用了一頁多就講完了,第二版分為了兩小節(jié),顯示運(yùn)動軌跡和顯示相機(jī)位姿,用了4頁紙詳細(xì)講了可視化的代碼使用。而且在4.4節(jié)增添了評估軌跡誤差的代碼,第五講增添了3D視覺的實踐代碼…從內(nèi)容上講,刪減了部分內(nèi)容,比如因子圖??傮w來看,第一版理論性更強(qiáng)一些,第二版實踐性更強(qiáng)一些,如果是新入門的孩子,還是推薦第二版的,更好的通過代碼理解理論,避免了理論與代碼對不上的情況。

【食用指南】章節(jié)結(jié)構(gòu)上和第一版的推薦相同,建議大家多動手,多看代碼,不過不要糾結(jié)于每一句為什么這樣寫,前幾次看的時候可以先大致了解這一部分的代碼講的是什么,如果給你一個新的代碼,類似的代碼,你能不能大致看出來是哪部分的代碼?

【推薦指數(shù)】★★★★★

4、【ROS機(jī)器人開發(fā)實踐】

6.png

剛開始看到這本書的時候,我很喜歡這個封面,沒仔細(xì)看,我以為是兩個機(jī)器人手拉手,中間放著個東西,我覺得我也是一個手拉手的機(jī)器人,買了才知道,哦,我是中間那只狗。這本書是看著網(wǎng)上推薦買的,是一個ROS系統(tǒng)化的書,如果實驗室有ROS小車的同學(xué)可以買來看看,我覺得博士可以入手一下,比較系統(tǒng)化,但碩士的話,網(wǎng)上有零散的ROS知識,我覺得也足夠你們完成畢業(yè)設(shè)計和小論文了。這本書比較全面,SLAM和機(jī)械臂方向都有,還有一些仿真模型的介紹,但書籍的缺點在這上面都體現(xiàn)了:全面但深度不夠。所以說如果你只是學(xué)習(xí)如何使用,我覺得網(wǎng)上的知識足夠了,沒必要再投資一下。不過還是推薦博士們購買的,比較系統(tǒng)化的介紹了整個構(gòu)架,可以閱讀一波。

【食用指南】如果是SLAM方向的,我覺得8、10、11這幾章可以PASS了,都是機(jī)械臂,機(jī)器學(xué)習(xí)方向的,第二章和第三章比較基礎(chǔ),詳細(xì)講解了節(jié)點、消息、話題、服務(wù)等,可以仔細(xì)閱讀一下,4.1節(jié)的launch文件是重點,但書中的內(nèi)容不夠深,沒有將的很詳細(xì),大家可以去ROS官網(wǎng)或CSDN上找找補(bǔ)充資料,掌握好launch的寫法,第五章機(jī)器人平臺搭建和第七章機(jī)器視覺,實驗室準(zhǔn)備配置小車的同學(xué)可以看看,主要講了ROS搭配相機(jī)和激光雷達(dá)以及標(biāo)定。后續(xù)章節(jié)我還是推薦需要再看,不需要就不用看。

【推薦指數(shù)】★★★☆

5、【STL源碼剖析】

5.png

這本書吧,一言難盡。。。這是我在看源碼的時候買的,在看代碼過程中,我發(fā)現(xiàn)C++ primer看完了,怎么代碼還是看不懂,感覺看了本假書。頭禿,然后我去網(wǎng)上看資料,說是代碼中使用了STL寫法,要看這本書,于是乎,斥巨資買了(自己的腰包)。我以為,它像C++ Primer一樣淺顯易懂,然而,我還是太年輕。代碼注釋較少,是分塊化的代碼,沒有整體可運(yùn)行的,代碼結(jié)構(gòu)我不喜歡,總之,這本書我看不下去。當(dāng)然,我并不會把這歸為書不好,一定是我修煉的等級太低,還沒有體會到這書的內(nèi)涵,我準(zhǔn)備再修煉一段時間再學(xué)習(xí)。但是,這書的好處也有,很多源碼中使用了map容器、vector容器以及l(fā)ist容器等,都會在源碼中用到,在閱讀源碼的過程中,我會翻看這些章節(jié),可以有效補(bǔ)充容器相關(guān)的知識點。

【食用指南】用到時再按需求詳細(xì)閱讀

【推薦指數(shù)】★★

6、【Effective C++】

4.png

哦,又是一本語言類的書,是的,看了這么多,我的C++技術(shù)并沒有得到顯著提升,我常安慰自己,我還沒開竅,等開竅了,就起飛了。這本書也是我在看代碼期間買的,我覺得這本書還是不錯的,算是C++ Primer的補(bǔ)充,有些Primer中沒有細(xì)化的知識點這本書都講了,而且會進(jìn)行強(qiáng)調(diào),我覺得可以和Primer一起看,不算很難懂,也不是很容易,屬于中等水平。

【食用指南】不需要特地留出大片時間看,可以在日常看代碼過程中,每天看幾頁,后期有需要強(qiáng)化的部分再回過頭多看幾遍,可細(xì)嚼慢咽。

【推薦指數(shù)】★★★

7、【計算機(jī)視覺中的多視圖幾何】

3.jpg

這本書我沒買,這是我圖書館借的一本,我還借的是第一版,沒有在當(dāng)當(dāng)上找到它的封面圖,就自己拍了一張,略有些破舊,請大家不要介意。這本書網(wǎng)傳都很好,很適合SLAM科研人,是我打開方式不對還是我太菜了,這書怎么看的下去嘛!?。≈R點太多了,很詳細(xì),超級詳細(xì),有一種這書是百科全書的感覺,里面有講射影變換、單視圖幾何、兩視圖幾何、三視圖幾何以及N視圖幾何,這么說吧,只要是圖像變換相關(guān)的內(nèi)容,都可以在這書上找到。我之前看論文講到三焦點張量,網(wǎng)上查了半天,沒懂,后來發(fā)現(xiàn)這書里講的很詳細(xì),也很容易懂。這書還是不錯的。至于為什么沒有買第二版,有兩個原因,一是書架上放不下了,圖書館可以借,感覺沒有買的必要;第二個原因是,第二版書有點貴,我怕老板不報銷,當(dāng)然了,這肯定不是主要原因??傊矣X得如果想要持續(xù)在SLAM領(lǐng)域進(jìn)行研究的,可以入手一本,有些時候這些小知識點可能會增加對文章的理解。但對于新入門的就不太建議了,有點摸不著頭腦的感覺。

【食用指南】可以先閱讀目錄,對于本書大致有哪些內(nèi)容有個了解,然后按需使用,論文中遇到需要補(bǔ)充的知識點再進(jìn)行查閱,不建議從頭到尾通讀。

【推薦指數(shù)】★★

8、【概率機(jī)器人】

2.png

這本書是新入手的,上周才買的,購買原因有二,一是網(wǎng)上推薦的,我覺得可以買來顯擺顯擺;二是老板報銷,當(dāng)然了,這肯定不是主要原因。整本書分為了四個部分,基礎(chǔ)知識,定位,地圖構(gòu)建,規(guī)劃與控制。第一部分主要講了濾波,KF、EKF、UKF、貝葉斯等都講到了,濾波部分以理論為主,沒有代碼,但是又基本的算法流程圖,整體看來比較偏概率論,看著有點頭痛。定位部分主要講了馬爾可夫定位和柵格定位,這部分的圖很可愛,有一個小小的機(jī)器人,長得有點像小蘿卜,依然沒有代碼支持,看著有點暈。第三部分介紹了SLAM,有EKF-SLAM、GraphSLAM、FastSLAM等,我看了EKF-SLAM部分,有點難懂,當(dāng)然,這和我概率論沒學(xué)好有很大關(guān)系。最后一部分規(guī)劃與控制,講的是馬爾可夫決策,具體什么我不懂,感覺很高端的樣子,但后期我應(yīng)該還會仔細(xì)閱讀的??偟膩碚f,這本書,不適合新手,比較理論,有點難理解,沒有代碼支撐,比較適合想要提升自己算法水平的同學(xué)。

【食用指南】難嚼,得慢慢嚼

【推薦指數(shù)】★

9、【機(jī)器人學(xué)中的狀態(tài)估計】

1.png

這也是我最近新買的一本書,買它的原因和上本書一樣---都是為了學(xué)習(xí)。這本書相比概率機(jī)器人來說更偏SLAM一些,總體分為三部分,狀態(tài)估計機(jī)理,三維空間運(yùn)動機(jī)理,應(yīng)用。也是比較理論化的一本書,沒有代碼支撐。第一部分主要講了線性的狀態(tài)估計和非線性的狀態(tài)估計,第二部分主要講了幾何學(xué)基礎(chǔ)知識和李群,第三講講了位姿估計,BA等知識點??傮w來看,要比概率機(jī)器人更好懂一些,兩本書都是偏理論的,但狀態(tài)估計從排版、內(nèi)容上來說要比概率機(jī)器人更容易接受一些。同樣,這本書推薦想在算法上有一些提升的同學(xué),如果碩士沒有想要以后從事這方面工作的,我覺得可以不用為難自己了,畢竟,理論看著也頭疼,而且這本書還沒有插圖,通篇公式與文字。

【食用指南】偶爾可以拿來為難為難自己

【推薦指數(shù)】★☆

【寫在最后的話】

由于網(wǎng)絡(luò)上的信息很多,知識也很全面,很多人開始放棄紙質(zhì)書,直接從網(wǎng)絡(luò)上開始入門,我覺得這樣會使得你的知識沒有層次,不能很完整的搭建你的系統(tǒng)框架,學(xué)姐還是建議入手基本基礎(chǔ)的書,仔細(xì)耐心閱讀,建立自己對這個領(lǐng)域的框架理解,然后再通過論文逐點細(xì)看。其他一些工具書也可以按需入手,作為對自己知識點盲區(qū)的補(bǔ)充。這次的SLAM書籍分享就這些了,如果有其他想要咨詢的問題或者想要我測評的書籍,歡迎留言。  

本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉