當前位置: 華文星空 > 汽車

讀書筆記:【機器人SLAM導航核心技術與實戰】導讀

2022-03-25汽車

剛拿到這本書,準備入坑SLAM,這裏算是給自己學習過程做個記錄筆記方便以後回看,有寫的不對的地方請各位大佬批評指正。

以我自己的學習習慣,拿到一本書最先會看它的綱領性的東西,一般是前後封面關鍵性描述、序言、前言、專家評語等。下面就依次對這些做一個記錄,如有侵權請聯系我刪除。

1.先看看專家對這本書的一些評價:

相比傳統的理論書籍,本書更加側重於形而下的實踐部份。書中詳細介紹了一些典型的激光與視覺SLAM的實作,並進行了原始碼解讀。除此之外,書中還介紹了如何在已有地圖上進行導航規劃。本書內容詳細、充實,可以作為SLAM領域研發人員、學生的良好參考材料。

—— 高翔,博士,智行者科技定位與地圖組總監

隨著自動駕駛、機器人、AR和VR技術的發展,SLAM變得越來越重要。SLAM是一項軟硬件結合,涉及多個學科理論並註重實踐的技術。本書從多個維度,利用大量圖片和表格,由淺入深地講述了機器人SLAM導航的核心技術,並且給出了大量的實操例子。本書無論對於初學者還是業內人士都是一本相當有價值的好書。

——侯曉輝,亮風台首席架構師

這是一本涵蓋從機器人自主導航相關硬件到機器人作業系統、從SLAM基本原理到經典SLAM開源框架實作的百科全書式著作,匯集了當前機器人SLAM導航所需要的基礎理論,並結合硬件(如慣性器件、視覺傳感器等)對SLAM導航的工程實踐進行了全面和深入的論述,是一本內容豐富、知識全面、受眾廣泛的大部頭作品,推薦閱讀。

—— 吳中紅,海軍工程大學講師,【ROS機器人開發:實用案例分析】(原書第1版與第2版)譯者

移動機器人的技術知識架構十分零散,而且各領域方法日新月異,常人要想系統地學習,或從中甄選出一套實用可靠的演算法來構建真正的機器人十分困難。本書就像一門優秀的移動機器人技術101課程,作者憑借多年優秀的實操和創業經驗,從多領域的知識中抽絲剝繭,為讀者整理出核心且必要的編程、環境及演算法知識的同時,與時俱進地介紹了電腦視覺、概率論、強化學習等前沿科技成果在SLAM中的套用。不得不說,本書適合每一位該領域的從業者或研究生放在手邊作為實用快捷的參考書。

——王斯煜,香港大學機器人專業博士生

2.然後就是看作者本人對這本書的總結:

互聯網和人工智能技術可以看成是對人類大腦的進一步延展,而機器人技術則可以看成是對人類軀體的進一步延展。如果人工智能技術僅僅停留在虛擬的網絡和數據之中,那麽其挖掘並利用新知識的能力將很難擴充套件開來。可以說,機器人是人工智能技術套用能力的有效延展,而能自主移動的機器人更是極大地拓展了人工智能技術的套用範圍。SLAM導航技術正是當下實作機器人自主移動的熱門研究領域,也是本書內容的核心所在。

為什麽寫這本書

幫助機器人實作完全自主化的每一種底層技術無疑將成為「機器人時代」的基礎設施,其中的自主移動技術在當下備受矚目,其實質就是解決從地點A到地點B的問題。這個問題看似簡單,實則非常復雜。當向機器人下達移動到地點B的命令後,機器人不免會問出三個頗具哲學性的問題,即「我在哪」「我將到何處去」和「我該如何去」。經過近幾十年來的研究,業界形成了一套有效解決機器人自主移動的方案,即 SLAM導航方案

目前以SLAM導航技術為支撐的自主流動應用已經十分廣泛,涵蓋航天、軍事、特種作業、工業生產、智慧交通、消費娛樂等眾多領域。典型套用包括火星探測車、軍事機器人、特種作業機器人、農業領域機器人、自動駕駛汽車、終端物流配送機器人、機器人智慧養老、機器人餐廳、家庭服務機器人等。

雖然SLAM導航技術在許多方面取得了突破,但其仍處於發展階段且尚未真正落地。這就需要有更多的人參與到這個龐大且深奧的專案中來,以加快技術突破和產品落地的速度。而機器人是多專業知識交叉的學科,通常涉及傳感器、驅動程式、多機通訊、機械結構、演算法等眾多領域。這就導致各個領域的研究、開發人員都在自己熟悉的領域內「閉門造車」,缺乏領域之間的必要交流與實踐。軟件層面的開發者由於缺乏對機器人傳感器、機器人主機和機器人底盤的系統性認識,因此往往會在涉及軟硬件深度最佳化方面的問題時束手無策。而硬件層面的開發者由於缺乏軟件方面的必備基礎,因此經常會在理解軟件層需求時出現偏差。由於缺乏相關的數學理論體系,因此ROS及硬件相關領域的開發人員大多只能充當「調參俠」,很難對SLAM導航方面的演算法提出實質性的改善建議。缺乏工程思維和實踐經驗,SLAM演算法或導航演算法方面的研究人員則很難將研究成果真正落地。

可以說,機器人SLAM導航是一個軟硬件相結合、理論加實戰的浩大工程性問題 。而目前各領域之間還存在很大的交流屏障,這無疑成了機器人SLAM導航技術突破與落地的突出痛點。我由此萌生了寫一本兼具理論性和實踐性的系統化圖書的想法,希望透過這樣一本書將機器人SLAM導航中的軟件技術、硬件技術、數學理論、工程落地等一系列問題打通。

歷經兩年多的艱苦創作,這本書終於要完稿了。最開始寫這本書的時候,想法其實比較簡單。當時自以為對機器人SLAM導航技術很了解,因而有著強烈的欲望想將自己所理解的知識和經驗分享給更多有需要的人,為機器人SLAM導航技術的普及與產品落地貢獻一份力量。但隨著寫作的逐步深入,我發現以前的很多理解存在不少偏差和局限,所以這倒逼著自己不斷去學習更深層的知識,不斷進行自我認知革新。直到寫完最後一章回頭望時,我發現自己已經超越從前的自己很多很多了。希望大家也能以這樣的心態去學習本書,不斷進行自我革新,等你學完整本書再回首時一定能發現一個全新的自己。

本書特色

本書的第一大亮點是 對SLAM理論體系做了深入淺出的分析 。本書先對SLAM理論做了總結性討論,這作為SLAM討論的開篇章節有利於讀者快速理清學習思路;而更深層的SLAM理論知識則放在後續具體SLAM系統中詳細展開討論,結合例項進行講解,這樣的好處是能大大降低深奧理論知識的理解難度。

本書的第二大亮點是 將SLAM與導航兩大研究領域有機地串接起來 。目前很多資料只側重於討論SLAM問題,而很少談及導航問題。其實對自主移動機器人來說,SLAM技術只相當於給機器人提供了一條腿,而另一條腿則是導航技術。由於本書前幾章對機器人硬件、系統、SLAM理論及具體演算法實作做了大量鋪墊,這就為SLAM與導航相結合內容的討論提供了土壤。

本書的第三大亮點是 對機器學習所涉及的理論基礎進行了全面介紹 ,特別是對與SLAM前沿方向密切相關的深度學習及與自主導航前沿方向密切相關的強化學習進行了深入對比分析。深度學習和強化學習理論知識的講解為本書學習者後續的持續研究提供了廣闊的想象空間,為機器人實作強人工智能提供了技術路線的參考。

讀者物件

本書適合的讀者範圍極為廣泛,主要包括:

  • 從事自主移動機器人或者無人駕駛方面工作的開發人員;
  • 智能機器人方面的市場調研人員、產品經理等;
  • 想要轉型到機器人演算法崗位的開發者;
  • SLAM導航領域的本科生或研究生;
  • 從事機械設計、機器人底盤研發、AGV演算法升級等方面工作的開發人員;
  • 對SLAM導航感興趣的愛好者。
  • 如何閱讀本書

    本書分為四篇,共13章。

    編程基礎篇(第1~3章)。本篇帶領大家了解ROS的核心概念、大型C++工程的程式碼組織方式以及影像處理方面的基礎知識,為後續學習打好必要的編程基礎。

    硬件基礎篇(第4~6章)。本篇透過對機器人傳感器、機器人主機和機器人底盤的討論,讓缺少硬件基礎的開發者對機器人的硬件有一個系統的認識並更好地理解軟件與硬件之間的協同關系。機器人傳感器相當於機器人的眼耳口鼻,機器人主機相當於機器人的大腦,而機器人底盤則相當於整合傳感器和主機的軀幹。

    SLAM篇(第7~10章)。本篇首先總結式地介紹整個SLAM的理論知識體系,接著以各個具體的SLAM系統實作為例進一步介紹SLAM演算法的程式碼框架及核心演算法的實作細節。

    自主導航篇(第11~13章)。本篇首先給出整個自主導航的理論體系知識的總結,接著以各個具體的自主導航系統實作為例進一步介紹自主導航演算法的程式碼框架以及核心演算法的細節實作,最後以一個真實機器人為例介紹套用SLAM導航技術進行開發的完整流程。學完本書的全部內容後,相信大家能夠繼續進行SLAM導航技術的獨立研究和開發。

    勘誤與支持

    由於本人水平有限,因此書中難免會出現一些錯誤或者表述不嚴謹的地方,懇請讀者朋友批評指正,你可以發郵件到我的郵箱([email protected])或者添加我的個人微訊號(xiaohugege277)來與我聯系。另外,我還為本書制作了配套的課件文件和教學影片,大家可以關註我的知乎賬號(@小虎哥哥愛學習)獲取最新課件文件,或者關註我的bilibili賬號(@小虎哥哥愛學習)獲取最新教學影片。大家還可以前往GitHub倉庫(https:// github.com/xiihoo/Books _Robot_SLAM_Navigation )下載本書相關實驗程式碼以及課後習題答案。同時大家也可以加入QQ技術交流群(728661815)參與本書的話題討論,或者前往網站(http://www. xiihoo.com )獲取機器人SLAM導航方面的更多相關資料。

    致謝

    感謝機械工業出版社華章公司的高婧雅編輯在寫作方面給予我的細心指導;感謝清華大學的高翔博士為本書作序;感謝亮風台首席架構師侯曉輝、海軍工程大學吳中紅老師、香港大學博士生王斯煜對本書進行審閱並給予高度評價;感謝廣大網友在本書寫作過程中提供的眾多寶貴建議;感謝在本書寫作過程中給予我極大鼓勵與關懷的親朋好友。

    最後,希望這本書能陪伴大家走過一段難忘的學習之旅,並收獲一份珍貴的成長經歷。星辰大海,如你所見,如你所願。

    3.最後就是根據我本人的情況制定學習計劃:

    透過專家大佬們的評語,以及作者本人對全書內容的總結,我自己梳理了一個大致的知識結構,如下圖所示。

    以我自己的基礎情況來看,我覺得先從SLAM篇中第7章SLAM中的數學基礎開始看比較適合,然後照著第8、9、10章把開源的SLAM程式碼先一個個跑一遍。然後回頭去補習編程基礎篇和硬件基礎篇的內容,這樣就可以再回頭重新把第8、9、10章中開源的SLAM程式碼在實際機器人上用真實傳感器數據跑一遍。最後開始搞自主導航篇的內容,爭取最終自己能搭一台能自主導航避障的機器人小車。加油,我能行!!!

    接下來就是按照這個學習計劃逐步去落實,一邊徒手推導公式,一邊光腳敲程式碼。萬事大吉,開搞!!!

    參考文獻

    [1] 張虎,機器人SLAM導航核心技術與實戰[M]. 機械工業出版社,2022.