在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

自動駕駛汽車硬件與軟件詳細介紹

OaXG_jingzhengl ? 來源:未知 ? 作者:胡薇 ? 2018-06-05 16:27 ? 次閱讀

本文詳細介紹了自動駕駛汽車的硬件和軟件,以及所需要做的準備工作,每個研發者或者準備投身于無人駕駛領域的人都應該好好看一下。

全球有數不清的公司在忙著研發自動駕駛汽車,他們的產品也千奇百怪,不過基本思路和核心技術是類似的,本文詳細介紹了自動駕駛汽車的硬件和軟件,以及所需要做的準備工作,每個研發者或者準備投身于無人駕駛領域的人都應該好好看一下。

大家都知道智能車(Intelligent Vehicle)是一個集環境感知、規劃決策、多等級輔助駕駛等功能于一體的綜合系統,它集中運用了計算機、現代傳感、信息融合、通訊、人工智能及自動控制等技術,是典型的高新技術綜合體。

自動駕駛的關鍵技術依次可以分為環境感知、行為決策、路徑規劃和運動控制四大部分。

自動駕駛理論聽上去很簡單,四大關鍵技術,但到底如何實現的呢?Google 從 2009 年開始做自動駕駛,到現在已有 8 個年頭。8 個年頭的技術積累還無法將自動駕駛技術量產落地,可見自動駕駛技術并不簡單。自動駕駛是一個龐大而且復雜的工程,涉及的技術很多,而且太過細致。我從硬件和軟件兩方面談一談自動駕駛汽車所涉及的技術。

硬件

離開硬件談自動駕駛都是耍流氓。先看個圖,下圖基本包含了自動駕駛研究所需要的各種硬件。

然而,這么多傳感器并不一定會同時出現在一輛車上。某種傳感器存在與否,取決于這輛車需要完成什么樣的任務。如果只需要完成高速公路的自動駕駛,類似 Tesla 的 AutoPilot 功能,那根本不需要使用到激光傳感器;如果你需要完成城區路段的自動駕駛,沒有激光傳感器,僅靠視覺是很困難的。

自動駕駛系統工程師要以任務為導向,進行硬件的選擇和成本控制。有點類似于組裝一臺計算機,給我一份需求,我就給你出一份配置單。

汽車

既然要做自動駕駛,汽車當然是必不可少的東西。從上汽做自動駕駛的經驗來看,做開發時,能不選純汽油車就別選。一方面是整個自動駕駛系統所消耗的電量巨大,混動和純電動在這方面具有明顯優勢。另一方面是 發動機的底層控制算法相比于電機復雜太多,與其花大量時間在標定和調試底層上,不如直接選用電動車研究更高層的算法。

國內也有媒體專門就測試車輛的選擇做過調研。「為什么谷歌、蘋果不約而同的選擇了雷克薩斯RX450h(混動汽車)?」「科技公司測試自己的自動駕駛技術時,對于測試車的選擇又都有哪些講究?」等問題。他們得出的結論是「電」和「空間」對無人車改裝至關重要,其次從技術層面上對車的「熟悉程度」是另外一個因素,因為如果不和車企合作改裝,需要「Hack(侵入)」某些控制系統

控制器

在前期算法預研階段,推薦使用工控機(Industrial PC,IPC)作為最直接的控制器解決方案。因為工控機相比于嵌入式設備更穩定、可靠,社區支持及配套的軟件也更豐富。百度開源的 Apollo 推薦了一款包含 GPU 的工控機,型號為Nuvo-5095GC,如下圖。

Github ApolloAuto

當算法研究得較為成熟時,就可以將嵌入式系統作為控制器,比如 Audi 和 TTTech 共同研發的 zFAS,目前已經應用在最新款 Audi A8 上量產車上了。

CAN

工控機與汽車底盤的交互必須通過專門的語言——CAN。從底盤獲取當前車速及方向盤轉角等信息,需要解析底盤發到 CAN 總線上的數據;工控機通過傳感器的信息計算得到方向盤轉角以及期望車速后,也要通過 CAN 卡將消息轉碼成底盤可以識別的信號,底盤進而做出響應。

CAN 卡可以直接安裝在工控機中,然后通過外部接口與 CAN 總線相連。Apollo 使用的 CAN 卡,型號為 ESD CAN-PCIe/402,如下圖。

全球定位系統(GPS)+慣性測量單元(IMU)

人類開車,從 A 點到 B 點,需要知道 A 點到 B 點的地圖,以及自己當前所處的位置,這樣才能知道行駛到下一個路口是右轉還是直行。

無人駕駛系統也一樣,依靠 GPS + IMU 就可以知道自己在哪(經緯度),在朝哪個方向開(航向),當然 IMU 還能提供諸如橫擺角速度、角加速度等更豐富的信息,這些信息有助于自動駕駛汽車的定位和決策控制。

Apollo 的 GPS 型號為NovAtel GPS-703-GGG-HV,IMU 型號為NovAtel SPAN-IGM-A1。

感知傳感器

相信大家對車載傳感器都耳熟能詳了。感知傳感器分為很多種,包括視覺傳感器、激光傳感器、雷達傳感器等。視覺傳感器就是攝像頭,攝像頭分為單目視覺,雙目(立體)視覺。比較知名的視覺傳感器提供商有以色列的Mobileye,加拿大的PointGrey,德國的Pike等。

激光傳感器分為單線,多線一直到 64 線。每多一線,成本上漲 1 萬 RMB,當然相應的檢測效果也更好。比較知名的激光傳感器提供商有美國的 Velodyne 和 Quanergy,德國的 Ibeo 等,國內有速騰聚創。

雷達傳感器是車廠 Tier1 的強項,因為雷達傳感器已經在汽車上得到了廣泛使用。知名的供應商當然 是博世、德爾福、電裝等。

硬件部分總結

組裝一套可以完成某項功能的自動駕駛系統需要及其豐富的經驗,并且要對各傳感器的性能邊界及控制器計算能力了如指掌。優秀的系統工程師能在滿足功能的要求下將成本控制在最低,使其量產、落地的可能性更大。

軟件

軟件包含四層:感知、融合、決策、控制。

各個層級之間都需要編寫代碼,去實現信息的轉化,更細化的分類如下。

先分享某創業公司公開的一份 PPT。

實現一個智能駕駛系統,會有幾個層級:

感知層 → 融合層 → 規劃層 → 控制層

更具體一點為:

傳感器層 → 驅動層 → 信息融合層 → 決策規劃層 → 底層控制層

各個層級之間都需要編寫代碼,去實現信息的轉化。

最基本的層級有以下幾類:采集及預處理、坐標轉換、信息融合。

采集

傳感器跟我們的 PC 或者嵌入式模塊通信時,會有不同的傳輸方式。

比如我們采集來自攝像機的圖像信息,有的是通過千兆網卡實現的通信,也有的是直接通過視頻線進行通信的。再比如某些毫米波雷達是通過 CAN 總線給下游發送信息的,因此我們必須編寫解析 CAN 信息的代碼。

不同的傳輸介質,需要使用不同的協議去解析這些信息,這就是上文提到的「驅動層」。 通俗地講就是把傳感器采集到的信息全部拿到,并且編碼成團隊可以使用的數據。

預處理

傳感器的信息拿到后會發現不是所有信息都是有用的。

傳感器層將數據以一幀一幀、固定頻率發送給下游,但下游是無法拿每一幀的數據去進行決策或者融合的。為什么?

因為傳感器的狀態不是 100% 有效的,如果僅根據某一幀的信號去判定前方是否有障礙物(有可能是傳感器誤檢了),對下游決策來說是極不負責任的。因此上游需要對信息做預處理,以保證車輛前方的障礙物在時間維度上是一直存在的,而不是一閃而過。

這里就會使用到智能駕駛領域經常使用到的一個算法——卡爾曼濾波。

坐標轉換

坐標轉換在智能駕駛領域十分重要。

傳感器是安裝在不同地方的,比如毫米波(上圖中紫色區域)是布置在車輛前方的;當車輛前方有一個障礙物,距離這個毫米波雷達有 50 米,那么我們就認為這個障礙物距離汽車有 50 米嗎?

不是的!因為決策控制層做車輛運動規劃時,是在車體坐標系下完成的(車體坐標系一般以后軸中心為 O 點),因此毫米波雷達檢測到的 50 米,轉換到自車坐標系下,還需要加上傳感器到后軸的距離。

最終所有傳感器的信息,都是需要轉移到自車坐標系下的,這樣所有傳感器信息才能統一,供規劃決策使用。

同理,攝像機一般安裝在擋風玻璃下面,拿到的數據也是基于攝像機坐標系的,給下游的數據,同樣需要轉換到自車坐標系下。

自車坐標系:拿出你的右手,以大拇指 → 食指 → 中指 的順序開始念 X、Y、Z。然后把手握成如下形狀:

把三個軸的交點(食指根部)放在汽車后軸中心,Z 軸指向車頂,X 軸指向車輛前進方向。

各個團隊可能定義的坐標系方向不一致,只要開發團隊內部統一即可。

信息融合

信息融合是指把相同屬性的信息進行多合一操作。

比如攝像機檢測到了車輛正前方有一個障礙物,毫米波也檢測到車輛前方有一個障礙物,激光雷達也檢測到前方有一個障礙物,而實際上前方只有一個障礙物,所以我們要做的是把多傳感器下這輛車的信息進行一次融合,以此告訴下游,前面有一輛車,而不是三輛車。

決策規劃

這一層次主要設計的是拿到融合數據后,如何正確做規劃。規劃包含縱向控制和橫向控制:縱向控制即速度控制,表現為什么時候加速,什么時候制動;橫向控制即行為控制,表現為 什么時候換道,什么時候超車等。

個人對這一塊不是很了解,不敢妄作評論。

軟件長什么樣子?

自動駕駛系統中的部分軟件看起來和下面類似。

軟件的名字反映了該軟件的實際作用:

app_driver_camera:攝像機驅動

app_driver_hdmap:高精度地圖驅動

app_driver_ins:慣導驅動

app_driver_lidar:激光傳感器驅動

app_driver_mwr:毫米波傳感器驅動

app_fusion_freespace:自由行駛區域融合

app_fusion_lane:車道線融合

app_fusion_obstacle:障礙物融合

app_planning&decision:規劃決策

然而實際上攻城獅們會編寫一些其他軟件用于自己的調試工作,比如記錄數據和回放數據的工具。

還有用于傳感器信息顯示的可視化程序,類似下圖的效果。

掌握了軟件的思路,那么我們來看你都要做哪些準備。

準備

操作系統安裝

既然是做軟件,首先得有個操作系統。常見的操作系統 Windows/Linux/Mac...(打...的操作系統我也沒用過),考慮到社區支持、開發效率,推薦使用 Linux 作為無人駕駛研究的操作系統。

大部分做無人駕駛的團隊都用的 Linux,跟著大趨勢走,可以省很多事。

Linux 又分為很多版本,最常用且普及率很高的當屬 Ubuntu 系列。雖然 Ubuntu 已更新至 17.04,但從穩定性上,推薦安裝 14.04 版本。

推薦用一塊單獨的 SSD 安裝 Linux,或者使用虛擬機安裝,最不推薦裝雙系統(不太穩定)奉上 Linux Ubuntu 14.04 安裝包 + 虛擬機安裝方法。(鏈接:http://pan.baidu.com/s/1jIJNIPg密碼:147y。)

Linux 基本指令

作為 Linux 的核心——命令行操作不僅對開發大有幫助,而且是裝 X 利器。另一個好處是使用指令apt-get install,可以快捷地完成很多軟件的安裝,不用像 Windows 那樣,在網上四處尋覓適配的安裝包。Linux 的指令很多,而且比較雜,使用起來需要多學,多用。

開發環境安裝

開發環境會涉及很多實際使用的庫,不同的程序員處理相同的問題,可能使用不同的庫。下面通過安裝我在工作和學習中經常使用到的庫,拋磚引玉,將開發者「引進門」。

搭建環境所需安裝包:

(鏈接:http://pan.baidu.com/s/1sllta5v密碼:eyc8)

附:開發環境介紹

集成開發環境 IDE

前面安裝了一款開源的 IDE qt,目前 qt 在 Linux 中的地位,就和 Visual Studio 在 Windows 中的地位一樣。除非是不使用 IDE 開發的高玩,大部分在 Linux 下做開發的團隊還是會選擇用 qt 開發的。

qt 的主要作用是做交互式的界面,比如在界面中顯示當前傳感器采集到的各種信息。界面交互會明顯加快開發者調試程序和標定參數的過程。

Tips:

熟悉 qt 可以網上找教程,我更推薦系統地學習,比如買一本 Qt 的書。

買書或者去圖書館借書,注意看寫書的日期,越新越好,太老的書,相應的版本也很舊。

OpenCV

OpenCV 是一個非常強大的庫,其中封裝了大量的可應用于無人駕駛研究的函數,包括各種濾波器算法、特征點提取、矩陣運算、投影坐標轉換、機器學習算法等。

當然最重要的是,它在計算機視覺領域的影響力,相機標定,目標檢測、識別、跟蹤的接口使用起來十分方便。使用 OpenCV 庫完全可以做出這張圖展現的效果。

Tips:

請至少購買版本為 2.4 以上的教程學習 OpenCV,但目前市面上買得到的 OpenCV 中文教程都講的太淺,甚至連經典的 Kalman Filter 都不介紹。我推薦直接學習英文版的 Learning OpenCV3。

奉上電子版,講解很詳細,每次打印一章閱讀,循序漸進。

(鏈接:http://pan.baidu.com/s/1dE5eom9 密碼:n2dn)

libQGLViewer

libQGLViewer 是大名鼎鼎的 OpenGL 適配 qt 的一個庫,編程接口及方法與 OpenGL 大同小異,我們經常在各大無人駕駛公司宣傳畫上看到的環境感知信息的顯示,就完全可以用 QGL 做出來。

Tips:

學習 libQGLViewer 不需要購買任何教材,官網及壓縮包內的 example 就是最好的老師,按照官網的tutorial,把每個例子實現一遍,就基本入門了。

官網鏈接:libQGLViewer Home Page

Boost

Boost 庫是有著「C++準標準庫」之稱。這個庫里面有大量的「輪子」,對于 C++ 開發者來說,方便直接調用,避免重造「輪子」。

Tips:

Boost 是基于標準 C++ 開發,其構造用盡精巧手法,不要貿然費時研讀,找一份和 Boost 庫相關的(電子或紙質)書,把目錄讀一遍,大致知道里面有哪些功能即可,需要時就某一個點,花時間做研究。

QCustomplot

除了上面提到的 libQGLViewer 外,還可以通過平面圖的形式顯示車載傳感器的信息。鑒于 qt 內部只提供了基本的直線、圓等繪圖工具,使用起來并不是很方便,因此 QCustomplot 誕生了。簡單地調用 API,然后把想要顯示的數據作為參數輸入進去,就可以繪制出下面這些很棒的圖形。而且可以很方便地拖動和縮放。

下面是我在實際開發過程中,使用 QCustomplot 顯示的部分傳感器信息。

Tips:

官網提供了該庫的源碼下載,你只需要在你的工程中導入 .cpp 和 .h 文件即可。跟著官網提供的 tutorials 學習,可以快速上手。對照著 example 中的例程寫代碼,可以快速把自己的數據變成可視化圖像。

LCM(Lightweight Communications and Marshalling)

團隊開發軟件必然存在程序(多進程)的通信問題,多進程通信的方式很多,也各有優缺點,使用起來就見仁見智了。2014 年 12 月 MIT 公布了他們在美國 DARPA 機器人挑戰賽中使用到的信號傳輸機制 LCM,出處:MIT releases LCM driver for MultiSense SL。

LCM 含多種語言如 java,c++ 等專門針對實時系統在高帶寬和低的延遲的情況下進行消息發送和數據封送處理。它提供了一個發布/訂閱消息模型、自動封裝/解封代碼生成工具含多種編程語言版本。這個模式和 ROS 現在節點間的通信方式很類似。

Tips:

LCM 兩個進程間通信的 demo 官網上有源代碼,按照官網上的 tutorial 就能快速建立屬于你自己的 LCM 通信機制。

官方網站:LCM Projcect

Git & Github

Git 是團隊開發不可缺少的版本控制工具,大家在寫論文時肯定每天一個版本,如果沒有特別標注每個版本改了些什么時間久了就會忘記。寫代碼更是如此。

使用 Git 可以極大地提高多人開發的效率,而且版本管理規范,代碼追溯起來十分方便。

Github 在軟件開發領域如雷貫耳,需要某些代碼時,直接上去搜索即可。

Tips:

目前世面上介紹 Git 的書,讓人看起來十分吃力,而且對細枝末節的東西介紹地太過深入,讓人無法快速上手。

于是我要強烈推薦 Git 入門的教程:廖雪峰的 Git 教程,淺顯易懂,而且還配合圖文+視頻,簡直良心。

以上基本介紹完了,掌握好這些東西,你就變成無人駕駛領域的老司機了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2560

    文章

    52143

    瀏覽量

    761307
  • 控制器
    +關注

    關注

    113

    文章

    16820

    瀏覽量

    182119
  • 自動駕駛汽車

    關注

    4

    文章

    379

    瀏覽量

    41124

原文標題:自動駕駛汽車硬件與軟件技術介紹

文章出處:【微信號:jingzhenglizixun,微信公眾號:機器人博覽】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    谷歌的自動駕駛汽車是醬紫實現的嗎?

    看到新聞報道說谷歌自動駕駛汽車已經行駛近30萬公里了,非常的強大~~上次參加了重慶新能源汽車峰會,對會上富士通半導體宣講的一款全景視頻汽車實時監控技術平臺似乎看到了
    發表于 06-14 16:15

    汽車自動駕駛技術

    請問各位老鳥我是新手汽車自動駕駛技術是怎么回事,是用什么板子開發的需要應用哪些技術和知識。提問題提得不是很好請各位見諒
    發表于 04-14 20:44

    自動駕駛真的會來嗎?

    自動駕駛和背后技術有了更廣泛地討論、更深刻地認知;另一方面則是讓不少風投看到了機會,認為傳感器芯片為代表的硬件研發,以及計算機視覺為支撐的軟件技術,將會迎來更大的關注度。特斯拉的autopilot
    發表于 07-21 09:00

    [科普] 谷歌自動駕駛汽車發展簡史,都來了解下吧!

    為文章正文:  谷歌自動駕駛汽車發展簡史  谷歌2009年啟動了自動駕駛汽車項目,項目領導人是被稱作無人駕駛
    發表于 10-25 11:08

    自動駕駛的到來

      傳統汽車廠商更趨向于通過技術的不斷積累,場景的不斷豐富,逐步從輔助駕駛過渡到半自動駕駛,進而在將來最終實現無人駕駛;某些高科技公司則希望通過各種外部傳感器實時采集海量數據,處理器經
    發表于 06-08 15:25

    3天造出自動駕駛汽車的百度Apollo,背后竟有50多個后臺

    主要對外開放的是封閉場地循跡自動駕駛能力,在云端服務方面,會發布開放平臺和智能車載系統DuerOS;軟件平臺則開放了自定位、控制、HMI等多項技術;在硬件開放層次,對外開放了自動駕駛
    發表于 07-07 18:28

    AI/自動駕駛領域的巔峰會議—國際AI自動駕駛高峰論壇

    已經滲透到了社會生活的方方面面。人工智能在自動駕駛領域將對整個汽車出行領域產生顛覆性變革。汽車的人工智能技術和數據后端的最新突破使自動駕駛成為可能。深度學習、高級數字助理和動態電子視野
    發表于 09-13 13:59

    如何讓自動駕駛更加安全?

    ,即從一開始就研發徹徹底底的自動駕駛汽車,例如谷歌、百度等打造的無人駕駛汽車,它們更像是“四個輪子的電腦”。目前也出現了多家主流車企和互聯網企業跨界融合,把人工智能和
    發表于 05-13 00:26

    自動駕駛汽車的處理能力怎么樣?

    作在未來20 - 30年中,自動駕駛汽車(AV)將改變我們的駕駛習慣、運輸行業并更廣泛地影響社會。 我們不僅能夠將汽車召喚到我們的家門口并在使用后將其送走,
    發表于 08-07 07:13

    聯網安全接受度成自動駕駛的關鍵

    隨著時代的演進與汽車工業技術、機器視覺系統、人工智能和傳感器相關技術上不斷創新與進步,無人自動駕駛汽車已不是一件遙不可及的夢想,Google與國際車廠相繼針對自動駕駛技術致力研究開發,
    發表于 08-26 06:45

    如何保證自動駕駛的安全?

    自動駕駛技術為人們勾勒出了一副美好的未來出行的畫面:坐上沒有方向盤的汽車,一覺睡到公司門口;甚至我們可能不再擁有一輛汽車,需要出門時共享自動駕駛汽車
    發表于 10-22 07:45

    邊緣計算在自動駕駛汽車的應用

    有時更快的數據處理是一種奢侈——有時它生死攸關。例如,自動駕駛汽車本質上是一臺裝有輪子的高性能計算機,它通過大量的傳感器來收集數據。為了使得這些車輛能夠安全可靠地運行,它們需要立即對周圍的環境做出
    發表于 07-12 08:07

    自動駕駛技術的實現

    k隨著汽車電子的日益復雜化以及汽車電子電氣架構(EEA)的升級,人們對于聯網智能汽車的需求也在逐步上升,大量先進技術往汽車上應用,如高級駕駛
    發表于 09-03 08:31

    自動駕駛線控底盤VCU功能介紹

    滿足自動駕駛遠程遙控的線控底盤整車控制器VCU1 自動駕駛線控底盤VCU功能介紹滿足自動駕駛及遙控駕駛的線控底盤整車控制器VCU作為新能源及
    發表于 09-07 06:30

    詳細說明多項自動駕駛底層軟件技術

    過程就涉及多項自動駕駛底層軟件技術,如內存動態分配、芯片運算能力、芯片實時監控策略。本文將針對這三方面內容進行詳細說明。  功能安全攔路虎:內存分配與訪問  在汽車電子系統的
    發表于 11-09 16:09
    主站蜘蛛池模板: 日本欧美一区二区三区不卡视频 | 一级做a爱过程免费视 | 综合激情六月 | 68日本xxxxxxxxx xx | 亚洲情a成黄在线观看动 | www.久操| 婷婷色人阁| 丁香婷婷亚洲六月综合色 | 在线看3344免费视频 | 色就是色欧美色图 | 国模私拍视频在线 | 夜夜骑狠狠干 | 亚洲最大的黄色网址 | 五月婷婷丁香色 | 亚洲精品美女久久久 | 天堂影院jav成人天堂免费观看 | 天天操电影 | 国产情侣出租屋露脸实拍 | 成人男女啪啪免费观看网站 | 三级在线观看国产 | 欧美xxx69| 欧美潘金莲一级风流片a级 欧美片欧美日韩国产综合片 | 久久怡红院 | 国产在线视频欧美亚综合 | 国产伦子系列视频6 | 人人看人人做 | 日本不卡视频 | 欧美性色欧美a在线播放 | 婷婷午夜影院 | 老师叫我下面含着精子去上课 | 九九热精品在线观看 | 伊人成人在线观看 | 老色网站 | 91天天干 | 欧美精品久久天天躁 | 国产色婷婷精品免费视频 | 国产一卡2卡3卡四卡精品网站 | 亚洲人成在线精品不卡网 | 日日日干干干 | 色域综合 | 欧美婷婷六月丁香综合色 |