AI系列之自動(dòng)駕駛(二):你需要知道的三層控制系統(tǒng)
自動(dòng)駕駛是控制工程學(xué)與人工智能學(xué)交叉的一個(gè)學(xué)科。如何使控制工程學(xué)與人工智能協(xié)調(diào)運(yùn)行呢,以下筆者將從三個(gè)層級(jí)進(jìn)行闡述:底層控制系統(tǒng)、中層控制系統(tǒng)和上層控制系統(tǒng)。
機(jī)器人學(xué)家漢斯·莫拉維克曾經(jīng)就機(jī)器執(zhí)行簡(jiǎn)單的自動(dòng)化任務(wù),進(jìn)行過精辟的總結(jié):
想讓計(jì)算機(jī)在高階智力測(cè)驗(yàn)方面達(dá)到,甚至超越成人的水平是相對(duì)簡(jiǎn)單的。可是,如果想要讓他達(dá)到,哪怕是一歲小孩對(duì)世界那樣的感知能力、無意識(shí)的直覺和趨利避害的生物天性,卻是極為困難的,甚至是不可能的,是為“莫拉維克悖論”。
自上個(gè)世紀(jì)五十年代提出人工智能的概念以來,起起伏伏,潮起潮落,符號(hào)主義、專家系統(tǒng)、深度學(xué)習(xí)等理論先后登場(chǎng),都是為了一個(gè)目的:創(chuàng)造出一個(gè)可以像人一樣思考、像人一樣行動(dòng)、像人一樣感知、理性的行動(dòng)和決策的系統(tǒng)。
千方百計(jì)運(yùn)用各種理念和手段,只為達(dá)成一種類人的智能體,這在某種程度上說是一種“上帝造物”行為。
直到今天,我們很容易可以讓機(jī)器代替人類完成90%的,甚至99%的決策和行動(dòng)。可恰恰那不到百分之一的區(qū)間,像一片極難跨過的禁區(qū)一樣橫亙?cè)谖覀兠媲啊_@是人工智能的鴻溝,也是自動(dòng)駕駛的愿景能否落地的根本。
AI的三個(gè)階段中,可執(zhí)行快速計(jì)算和記憶存儲(chǔ)的計(jì)算智能階段已然邁過,基于深度學(xué)習(xí)的感知智能階段我們尚在努力。但可以執(zhí)行想象、情感等人類獨(dú)有能力的認(rèn)知智能還沒有有效的實(shí)現(xiàn)途徑,當(dāng)然這要基于各項(xiàng)相關(guān)基礎(chǔ)學(xué)科的研究成果,或許真有實(shí)現(xiàn)的一天也未可知。
自動(dòng)駕駛能否實(shí)現(xiàn)L5級(jí)的無人境界,某種程度完全取決于:人工智能對(duì)于剩下1%的研究和應(yīng)用程度。
相信現(xiàn)存的技術(shù)瓶頸遲早會(huì)得到解決,但我們已知的任何操作系統(tǒng)都無法保證完全的可靠性。相反,操作系統(tǒng)出錯(cuò)的概率某種程度是無可避免的,現(xiàn)存最精密的操作系統(tǒng)也會(huì)頻繁出問題。而且,越是龐大的系統(tǒng)越是難以預(yù)測(cè)會(huì)出現(xiàn)的問題,那種動(dòng)輒數(shù)百萬行甚至上千萬行代碼的電腦操作系統(tǒng)就是明證。
軟件操作系統(tǒng)還要協(xié)調(diào)管理龐雜的硬件組件系統(tǒng),硬件的任何不穩(wěn)定性甚至?xí)聪蛴绊戃浖倪M(jìn)程,如此犬牙交錯(cuò)的連接關(guān)系,想要不出任何問題,難如登天。
行文至此,那就意味著:無人駕駛?cè)绻胍黄七@一切,達(dá)到實(shí)現(xiàn)100%的完美(即不會(huì)出現(xiàn)任何碰撞、事故和失誤)是極為困難,甚至不可能的。如果要不允許操作系統(tǒng)存在出錯(cuò)的概率,且必須基于此才能取得合法地位,那么,無人駕駛的愿景可能永遠(yuǎn)都是空中樓閣。
那么,亟待解決的問題就來了:無人駕駛的特殊性在于,電腦系統(tǒng)的故障可能對(duì)我們的生活和工作帶來一定的困擾,而無人駕駛汽車一旦發(fā)生故障,卻很可能會(huì)發(fā)生無可挽回的事故。
那么,究竟將無人駕駛的故障發(fā)生時(shí)間,或者法定的容錯(cuò)率設(shè)定在何種域值內(nèi),才是合理的,或者說是可以被接受的。
安全行駛時(shí)間是一個(gè)很好的衡量指標(biāo)。
但是,如果一輛自動(dòng)駕駛汽車的安全使用時(shí)長(zhǎng)是人類安全操作時(shí)長(zhǎng)的數(shù)倍或者數(shù)十倍呢?
后面立文再做討論,沒摟住,扯遠(yuǎn)了,現(xiàn)在我們轉(zhuǎn)向本文的宗旨:對(duì)于自動(dòng)駕駛汽車的控制系統(tǒng)的討論。
自動(dòng)駕駛:一個(gè)控制工程學(xué)和人工智能的交叉學(xué)科。
控制工程學(xué)主要解決汽車機(jī)械零部件的協(xié)調(diào)運(yùn)行和復(fù)雜系統(tǒng)的控制管理,通過信息的輸入和輸出與環(huán)境進(jìn)行交互反饋;人工智能則為自動(dòng)駕駛系統(tǒng)提供保證其完美運(yùn)行的智能決策體系。
二者如何協(xié)調(diào)運(yùn)行,我們從三個(gè)層級(jí)進(jìn)行闡述:
一、底層控制系統(tǒng)
我們可以將涉及汽車底層機(jī)械元件的操控行為,或硬件反饋控制系統(tǒng)——例如:剎車、加速和汽車轉(zhuǎn)向,都?xì)w為底層控制系統(tǒng)。
底層控制的核心任務(wù)是:保證各項(xiàng)硬件系統(tǒng)穩(wěn)定的運(yùn)行在計(jì)算好的最佳設(shè)定值上;保證各項(xiàng)子系統(tǒng)的運(yùn)行維持在最優(yōu)的區(qū)間范圍;規(guī)避可能性風(fēng)險(xiǎn),精準(zhǔn)調(diào)控至最佳路徑。
其背后是一套均衡理論:通過調(diào)動(dòng)汽車的所有控制系統(tǒng),將汽車的行駛狀態(tài)始終控制在某種平穩(wěn)的均衡狀態(tài)。
當(dāng)然,這背后依賴的是龐大的傳感器數(shù)據(jù)反饋、計(jì)算力和反饋控制系統(tǒng)。例如:當(dāng)車速過低時(shí),增加汽油注入來提高車速;當(dāng)車速過快時(shí),減少汽油注入,將實(shí)際車速降至預(yù)定安全值。簡(jiǎn)單來說,就像一套自動(dòng)穩(wěn)定器一樣。
底層控制系統(tǒng)涉及的算法種類繁多,但其核心都是:確保某個(gè)部件系統(tǒng)甚至整個(gè)系統(tǒng)的流暢運(yùn)行。
隨著傳感器接收到的數(shù)據(jù)量越來越大,機(jī)器學(xué)習(xí)技術(shù)將會(huì)發(fā)揮更大的作用。
想要完美的操控機(jī)器達(dá)到預(yù)定目標(biāo),需要工程師們的不懈努力。
這里,我們簡(jiǎn)單舉一個(gè)具有代表性的例子:“滯后時(shí)間”概念。
自動(dòng)駕駛系統(tǒng)本身就需要有非常靈敏,且即時(shí)的操控反饋系統(tǒng)。在執(zhí)行風(fēng)險(xiǎn)規(guī)避動(dòng)作,或者相關(guān)異常情況下,需要即時(shí)決策即時(shí)反饋。
如果汽車硬件系統(tǒng)在此過程中,出現(xiàn)較長(zhǎng)的時(shí)間延遲反饋,比如:在視野范圍內(nèi),突然出現(xiàn)需要規(guī)避的障礙物,決策系統(tǒng)雖然發(fā)出了規(guī)避指令,但是機(jī)械活動(dòng)卻耗費(fèi)了更多的時(shí)間。那么,就可能出現(xiàn)不可容忍的意外發(fā)生。
燃油發(fā)動(dòng)機(jī)注入燃料的過程,也同時(shí)伴隨著機(jī)械的、化學(xué)的活動(dòng)過程。從動(dòng)力的產(chǎn)生到傳導(dǎo),以及相關(guān)控制元件的聯(lián)動(dòng)都是需要時(shí)間的,這就產(chǎn)生了“滯后時(shí)間”。
“滯后時(shí)間”的存在就意味著:汽車的啟動(dòng)、加減速、轉(zhuǎn)向、剎車燈都難以進(jìn)行精準(zhǔn)的時(shí)間控制。
當(dāng)然,絕對(duì)的精準(zhǔn)控制是不可能的,但是,如何將“滯后時(shí)間”的負(fù)面效應(yīng)降到最小?如何將控制反饋系統(tǒng)的運(yùn)行時(shí)間竭力壓縮?卻是可以精益求精的方向。
一種解決方案是:引入預(yù)測(cè)算法、投入更加強(qiáng)大的計(jì)算力。
預(yù)測(cè)算法可以通過傳感器隨時(shí)回傳的環(huán)境數(shù)據(jù)流,監(jiān)控行車環(huán)境,提升情境識(shí)別的能力。并結(jié)合靜態(tài)地圖、周遭自然環(huán)境,精準(zhǔn)計(jì)算行車時(shí)點(diǎn)的燃料注入量,使得發(fā)動(dòng)機(jī)可以始終恒速運(yùn)行,提前對(duì)異常情況進(jìn)行控制準(zhǔn)備。
強(qiáng)大的計(jì)算力可以極大縮短數(shù)據(jù)處理時(shí)間,即時(shí)提供決策指令,并配合算法為恒速運(yùn)行和精準(zhǔn)計(jì)時(shí)提供更高的準(zhǔn)確度。
另外一種解決方案是:干脆舍棄燃油發(fā)動(dòng)機(jī)直接改用電動(dòng)式發(fā)動(dòng)機(jī)。只要為引擎配置好特定的電壓電位,引擎就始終能即時(shí)產(chǎn)生對(duì)應(yīng)程度的力矩,為行車提供動(dòng)力。
當(dāng)然這也是巨頭們紛紛將電動(dòng)式引擎配置在他們的原型車上的原因之一。
二、中層控制系統(tǒng)
中層控制系統(tǒng)主要依靠強(qiáng)大的算法和計(jì)算力來支撐其運(yùn)行,其工作原理包括四個(gè)模塊:
- 是一款可以針對(duì)汽車行車環(huán)境進(jìn)行三維數(shù)字建模并進(jìn)行即時(shí)、持續(xù)的更新的軟件工具,名曰“占據(jù)柵格”。
- 是一個(gè)深度學(xué)習(xí)軟件,用于標(biāo)記和識(shí)別汽車傳感器流入的原始數(shù)據(jù),并借助算法通過數(shù)據(jù)分析對(duì)汽車周遭的物體進(jìn)行識(shí)別分類。
- 是使用“不確定性錐”替代汽車環(huán)境物體,并進(jìn)行動(dòng)作預(yù)測(cè)。
- 即短期軌跡規(guī)劃器,負(fù)責(zé)引導(dǎo)汽車進(jìn)行障礙躲避,并保證汽車始終處于交通規(guī)則的范圍內(nèi)執(zhí)行行駛動(dòng)作。
首先,我們明確占據(jù)柵格就是一個(gè)三維空間模型,這個(gè)空間模型填充著兩種數(shù)據(jù):一種是內(nèi)置的高清地圖的靜態(tài)數(shù)據(jù);一種是來源于汽車傳感器源源不斷地環(huán)境數(shù)據(jù),并且根據(jù)行車進(jìn)程進(jìn)行即時(shí)更新。
環(huán)境數(shù)據(jù)通過第二個(gè)模塊的深度學(xué)習(xí)軟件,進(jìn)行物體識(shí)別,并可用特殊符號(hào)對(duì)物體進(jìn)行標(biāo)記。
至此,高清地圖數(shù)據(jù)將為“占據(jù)柵格”的三維數(shù)字空間填充道路圖像,并且根據(jù)汽車行駛路徑,進(jìn)行持續(xù)變換。由深度學(xué)習(xí)軟件識(shí)別的物體,也根據(jù)傳感器的探測(cè)數(shù)據(jù)分布在三維數(shù)字空間中的汽車周邊并進(jìn)行實(shí)時(shí)更新。一個(gè)模擬現(xiàn)實(shí)的空間環(huán)境就產(chǎn)生了。
到了這一步,還是遠(yuǎn)遠(yuǎn)不夠的,系統(tǒng)僅僅能夠知道:“汽車處于地圖的什么位置?”“哪些地方分布著哪些物體?”
但是,汽車要想安全的行駛,還需要知道:“這些物體即將要行駛的軌跡?!焙汀叭绾我?guī)劃路徑避開這些移動(dòng)或靜止的物體?”,以達(dá)到安全行駛的目標(biāo)。
這個(gè)時(shí)候具備物體軌跡預(yù)測(cè)能力的“不確定性錐”就登場(chǎng)了——它可以預(yù)測(cè)汽車附近物體的位置、可能的軌跡方向和移動(dòng)速度。
一旦第二模塊的深度學(xué)習(xí)軟件識(shí)別標(biāo)記了一個(gè)物體,占據(jù)柵格就會(huì)顯示它的存在,不確定性錐就會(huì)預(yù)測(cè)該物體下一步的移動(dòng)方向。
不確定性錐為自動(dòng)駕駛系統(tǒng)提供了一定的場(chǎng)景理解能力,可以像人一樣在瞬間完成對(duì)于周邊環(huán)境的感知以及預(yù)測(cè)判斷,為第四模塊的行車路徑規(guī)劃提供了有力的決策依據(jù)。
那不確定性錐是如何工作的呢?
在占據(jù)柵格中每個(gè)物體的周圍畫出一個(gè)小圓圈,稱為“當(dāng)前活動(dòng)區(qū)域”。然后根據(jù)未來十秒鐘后,物體所有可能到達(dá)的位置再畫一個(gè)大圓圈,稱為“未來活動(dòng)圈”。最后用線將小圈和大圈連起來就得到了“不確定性錐”。
所以,快速移動(dòng)的物體,錐體的形狀相對(duì)較大,難以預(yù)測(cè)的物體,錐體形狀也會(huì)增大,例如:搖擺不定的自行車、四處游蕩的小狗和踢球的孩子。
相反,容易預(yù)測(cè)的——比如:靜態(tài)物體,因?yàn)椴惶赡軙?huì)移動(dòng),所以錐體形狀較小。
當(dāng)然錐體也會(huì)根據(jù)特殊情況進(jìn)行預(yù)測(cè)處理,比如:死胡同、轉(zhuǎn)彎角這種雖然是靜態(tài)物體,但是可能存在風(fēng)險(xiǎn)的地方,錐體形狀也會(huì)增大。所以,通過對(duì)錐體大小的判斷,系統(tǒng)就可以識(shí)別周邊物體的活動(dòng)軌跡和范圍。
我們利用這種具備軌跡預(yù)測(cè)功能的“不確定性錐”代替物體,這樣,自動(dòng)駕駛系統(tǒng)就得到了占據(jù)柵格中,各個(gè)物體的移動(dòng)軌跡范圍和方向,為安全的路徑規(guī)劃提供了依據(jù)。
當(dāng)前三個(gè)模塊都完成了之后,第四個(gè)模塊短期軌跡規(guī)劃器就登場(chǎng)了。當(dāng)汽車附近的物體都被標(biāo)記成大小不一的不確定性錐的時(shí)候,軌跡規(guī)劃器就可以調(diào)用精密的算法,算出最佳的行駛路線,減少事故發(fā)生的可能性。
三、上層控制系統(tǒng)
上層控制系統(tǒng)負(fù)責(zé)汽車整個(gè)行駛過程中的路徑規(guī)劃和導(dǎo)航工作,而這兩者功能實(shí)現(xiàn)的基礎(chǔ)就是“搜索算法”。
搜索算法需要憑借強(qiáng)大的計(jì)算力,去在一個(gè)問題的眾多的解決方案中,尋找出一條最佳解決解決方案。
因?yàn)樵诖诉^程中,搜索算法需要對(duì)所有的解決方案進(jìn)行評(píng)估,由此該算法會(huì)占用大量的系統(tǒng)資源,所以充足的計(jì)算能力是該算法高效運(yùn)行的必要條件。
應(yīng)用到自動(dòng)駕駛系統(tǒng)中就是:憑借搜索算法將起始地與目的地之間所有可能的備選路徑,依次羅列并自動(dòng)進(jìn)行優(yōu)劣的等級(jí)排序,從而在眾多備選路徑中找出最佳行駛路線。
而搜索算法中應(yīng)用最廣的可能就是A*算法,該算法通過在搜索中加入代價(jià)函數(shù)檢索路徑占用的成本,與到達(dá)目標(biāo)位置需要付出的樂觀預(yù)計(jì)成本相結(jié)合,得出最終所要付出的代價(jià)。
應(yīng)用到自動(dòng)駕駛系統(tǒng)中,只需要研發(fā)人員調(diào)整A*算法中的代價(jià)函數(shù),就可以評(píng)估眾多的駕駛行為各自需要付出的成本代價(jià)。該算法省去了搜索過程中的大量重復(fù)計(jì)算行為,實(shí)現(xiàn)對(duì)最短路線的精準(zhǔn)定位。
總結(jié)
“莫拉維克悖論”解釋了:為什么自動(dòng)駕駛汽車到目前為止還沒有大規(guī)模的落地應(yīng)用?
關(guān)鍵技術(shù)的突破商待時(shí)日,按照目前的形式來看不會(huì)很遠(yuǎn)。
本文也是筆者自己的學(xué)習(xí)筆記,分享出來,與大家一起討論,共同進(jìn)步。
本文由 @江天一隅 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
那么,中層控制系統(tǒng)相比來說更加重要,對(duì)吧?
總結(jié)一下,底層控制系統(tǒng)負(fù)責(zé)控制車輛按照預(yù)期行駛,中層控制系統(tǒng)負(fù)責(zé)了解周遭環(huán)境及運(yùn)行軌跡,并對(duì)短距離路線進(jìn)行規(guī)劃,上層控制系統(tǒng)則需要站在自動(dòng)駕駛的角度考慮出發(fā)地到目的地間哪條線路是最合適的。
是這樣嗎?