最近百度終于把很久之前就宣稱要開源的自動駕駛平臺開源了,叫apollo榨了。我也借這個機(jī)會學(xué)習(xí)一波煎谍,看看百度是怎么做的。
一龙屉、下載源碼
首先呐粘,進(jìn)入apollo的官網(wǎng),這里有對apollo的介紹
接著转捕,進(jìn)入apollo的github作岖,有個apollo,這就是我們主要需要關(guān)注的項(xiàng)目了五芝。
然后
git clone https://github.com/ApolloAuto/apollo
由于硬件要求痘儡,安裝和使用apollo平臺的方法在github的頁面上都有詳細(xì)說明,我在這里就不細(xì)說了枢步。
需要指出的是沉删,目前百度使用docker來部署apollo的運(yùn)行環(huán)境渐尿,因此準(zhǔn)備環(huán)境的時(shí)候你會發(fā)現(xiàn)有個步驟會從dockerhub下載docker容器。
如果想要脫離對docker的依賴矾瑰,可以自己查看dockerfile里面的步驟砖茸,也許我會寫一篇文章來說明,不過肯定是很久以后了殴穴。凉夯。。
二采幌、源碼結(jié)構(gòu)
這里我們先來看一下源碼的結(jié)構(gòu)
docker文件夾放的是和docker容器有關(guān)的文件
docs文件夾放的是說明文檔
modules放的是apollo中各個模塊的源代碼劲够,也是之后我們將要詳細(xì)說明的部分
scripts放的是一些百度寫的部署和運(yùn)行apollo的腳本
third_party存放了第三方的依賴庫
tools文件夾和其他文件都是和apollo構(gòu)建有關(guān)的配置文件
進(jìn)入modules文件夾
可以看到每個模塊都分得很清楚,而且模塊的功能通過文件夾的名稱也能很直觀的看懂植榕。
canbus代表從CAN獲取數(shù)據(jù)或?qū)⒖刂浦噶顐鹘oCAN的模塊
common表示不同的模塊都有可能用到的功能再沧,比如日志,比如工廠模式的實(shí)現(xiàn)
control就是控制車輛的部分
decision就是決策的部分
dreamview是webUI顯示的一部分
hmi以web UI的方式提供了當(dāng)前車的狀態(tài)
其他文件夾的內(nèi)容還沒看尊残,今天就先寫這么多吧