天天看點

apollo代碼學習1

 接觸到百度無人駕駛開源代碼apollo是導師推薦學習的,在摸索了一個多月後,終于有了一些眉目,對于一個大學并非學習計算機的我來說,學習過程中補充了很多基礎知識,包括程式設計語言C++,以及軟體設計方法的種種思想。

 因網上對apollo代碼解析的部落格很少,我個人對apollo了解又多少有些偏頗,是以将自己學習過程中的心得體會寫出來,希望大家一起學習交流,并能夠對其中的錯誤進行指正,我也會虛心讨教。

 今天,我将圍繞apollo代碼進行簡單的歸納。(主要從整個工程角度分析)

 可以說,對于我一個小白來說,接觸到apollo直接懵了,它所使用的工具真是不少,主要包括google的很多開發工具以及ros,具體列舉如下,倘若讀者對其中某些還未了解,我也會推薦相關學習網站或者相關部落格進行學習。

 1. ros(機器人作業系統,現在科研和實用都很常用的工具,官網:http://wiki.ros.org/ROS/Tutorials)

 2. bazel (google的編譯工具,相當于cmake一樣的工具,建議從官網學習:https://docs.bazel.build/versions/master/install.html)

 3. protobuf (google的一種結構化資料存儲格式,推薦部落格:https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html)

 看了代碼你會發現上面三個工具用到的最多,幾乎搭建了apollo軟體架構,而除此之外還用到很多很實用的小工具比如:glog, gflags,signal以及各個子產品單獨用到的庫工具等等。最後再羅嗦一句:其實我個人覺得最重要的還是 c++基礎,這些小工具現學現用就OK了!

 好了,今天羅嗦了很多,獻上一張apollo架構結構圖給大家。今天也沒啥幹貨,下一次開始解析子產品代碼!

apollo代碼學習1