汽車智能技術(shù)與應(yīng)用 課件 第10章 車載嵌入式操作系統(tǒng)應(yīng)用_第1頁(yè)
汽車智能技術(shù)與應(yīng)用 課件 第10章 車載嵌入式操作系統(tǒng)應(yīng)用_第2頁(yè)
汽車智能技術(shù)與應(yīng)用 課件 第10章 車載嵌入式操作系統(tǒng)應(yīng)用_第3頁(yè)
汽車智能技術(shù)與應(yīng)用 課件 第10章 車載嵌入式操作系統(tǒng)應(yīng)用_第4頁(yè)
汽車智能技術(shù)與應(yīng)用 課件 第10章 車載嵌入式操作系統(tǒng)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

汽車智能技術(shù)與應(yīng)用第十章 車載嵌入式操作系統(tǒng)應(yīng)用學(xué)習(xí)目標(biāo)能夠知道Linux操作系統(tǒng)在智能網(wǎng)聯(lián)汽車中的作用能夠知道Android框架與結(jié)構(gòu)原理能夠知道ROS操作系統(tǒng)技術(shù)架構(gòu)能夠知道Rviz

3D圖形可視化工具的應(yīng)用65110.1 Linux操作系統(tǒng)在智能網(wǎng)聯(lián)汽車中的應(yīng)用10.1.1

Linux內(nèi)核及驅(qū)動(dòng)Linux操作系統(tǒng)是首選的汽車開(kāi)源軟件平臺(tái),取代了封閉的操作系統(tǒng)。使用Linux作為操作系統(tǒng)不僅可以運(yùn)行汽車的音頻主機(jī)或信息娛樂(lè)中心,還可以運(yùn)行遠(yuǎn)程信息處理系統(tǒng)、儀表盤(pán)等。目前常用的Linux版本主要有Ubuntu、Red

Hat、CentOS、Debian、Fedora

Core、SuSE、Gentoo、Arch、Kali、Slackware等。510.1.1

Linux內(nèi)核及驅(qū)動(dòng)?請(qǐng)說(shuō)說(shuō)Linux系統(tǒng)的特點(diǎn)有哪些?610.1.1

Linux內(nèi)核及驅(qū)動(dòng)Linux是一種應(yīng)用廣泛的嵌入式操作系統(tǒng),嵌入式系統(tǒng)以應(yīng)用程序?yàn)橹行?,以?jì)算機(jī)技術(shù)為基礎(chǔ)。軟件和硬件可能或多或少需要,主要用于功能、可靠性、成本、體積、功耗等特殊計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)通常包括硬件和軟件。硬件包括嵌入式處理器、存儲(chǔ)器和各種外圍設(shè)備;軟件部分包括嵌入式操作系統(tǒng)和用戶應(yīng)用程序,Linux代碼是完全開(kāi)放的。710.1.1

Linux內(nèi)核及驅(qū)動(dòng)Linux內(nèi)核包括內(nèi)核抽象和對(duì)硬件資源的間接訪問(wèn),Linux以統(tǒng)一的方式支持多任務(wù),此方法對(duì)用戶進(jìn)程和每個(gè)進(jìn)程都是透明的。內(nèi)核同時(shí)運(yùn)行多個(gè)進(jìn)程,允許多個(gè)進(jìn)程公平合理地使用硬件資源。Linux作為一種實(shí)時(shí)操作系統(tǒng),具有高效的I/O管理能力,能夠處理和存儲(chǔ)控制系統(tǒng)所需的大量數(shù)據(jù)。810.1.2

Android框架Linux操作系統(tǒng)的結(jié)構(gòu)一般由四部分組成:Linux內(nèi)核、命令解釋器(Shell)、文件系統(tǒng)和應(yīng)用程序。Android操作系統(tǒng)和華為的鴻蒙操作系統(tǒng)都是基于Linux的環(huán)境架構(gòu)。Android是google2007年11月為移動(dòng)設(shè)備設(shè)計(jì)的軟件平臺(tái)。如圖10-2所示,Android系統(tǒng)自下而上分為四個(gè)層次:Linux內(nèi)核及驅(qū)動(dòng)與本地框架及Java運(yùn)行環(huán)境之間是內(nèi)核空間與用戶空間的分界線,本地框架及Java運(yùn)行環(huán)境與Java框架之間是本地代碼層和Java代碼層的接口,JAVA框架和本地框架之間通過(guò)JAVA

NativeInterface(JNI)機(jī)制實(shí)現(xiàn)數(shù)據(jù)交互,實(shí)現(xiàn)Java框架和Java應(yīng)用程序之間是Android的系統(tǒng)APl。9?Android系統(tǒng)架構(gòu)1010.1.2

Android框架Android內(nèi)核是介于硬件和上層應(yīng)用之間的一層,為上層應(yīng)用提供安全,內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧等服務(wù)。Android的核心系統(tǒng)除了標(biāo)準(zhǔn)的linux驅(qū)動(dòng)程序,Android系統(tǒng)還添加了BinderIPC驅(qū)動(dòng)程序、ashmem匿名共享內(nèi)存驅(qū)動(dòng)程序、輕量級(jí)日志驅(qū)動(dòng)程序,并在沒(méi)有內(nèi)存的情況下終止進(jìn)程驅(qū)動(dòng)程序。電源管理等驅(qū)動(dòng)程序?yàn)橄到y(tǒng)運(yùn)行提供基本支持。1110.1.2

Android框架1210.1.2

Android框架Android原生框架包括一些C/C++庫(kù),這些庫(kù)提供給Andrnid系統(tǒng)的不同組件,并通過(guò)JAVA框架為上層應(yīng)用程序開(kāi)發(fā)人員提供服務(wù)。請(qǐng)說(shuō)明主要包括哪些組件?1310.1.2

Android框架1410.1.2

Android框架JAVA框架提供了上層應(yīng)用開(kāi)發(fā)所需的功能,如androidview提供了一個(gè)基本的用戶界面框架,android

media提供了一些類型的媒體界面來(lái)管理各種音頻和視頻,用戶界面框架,Android

media提供了一些用于管理多個(gè)音頻和視頻的媒體接口,AndroidtelePhony提供了與電話子系統(tǒng)相關(guān)的api。在開(kāi)發(fā)上層應(yīng)用程序時(shí),它實(shí)際上是基于這個(gè)桁架的。每個(gè)應(yīng)用程序背后隱藏著JAVA框架提供的一系列服務(wù)和系統(tǒng),如視圖、內(nèi)容提供者、資源管理器、通知管理器、活動(dòng)管理器等。1510.1.2

Android框架Android系統(tǒng)架構(gòu)由5部分組成:Linux內(nèi)核、庫(kù)函數(shù)、Android運(yùn)行狀態(tài)、應(yīng)用程序框架和應(yīng)用程序。請(qǐng)分別說(shuō)明。1610.1.2

Android框架Android內(nèi)部進(jìn)程通信和安全主要是指在安裝第三方應(yīng)用程序時(shí)盡可能保證系統(tǒng)的穩(wěn)定性。底層的授權(quán)機(jī)制由Linux內(nèi)核和文件系統(tǒng)提供,基本上可以滿足其他基于Linux內(nèi)核的系統(tǒng)。由于Android設(shè)備是針對(duì)單個(gè)用戶的,因此具有多用戶服務(wù)的設(shè)備只能通過(guò)分配唯一標(biāo)識(shí)符來(lái)應(yīng)用。此外,Android是一個(gè)靜態(tài)安全許可系統(tǒng),在程序安裝過(guò)程中必須使用。1710.1.2

Android框架Android擴(kuò)展了汽車的整體結(jié)構(gòu),定制的Android平臺(tái)應(yīng)用于汽車功能模塊和支持組件的擴(kuò)展,其目的是提供一種安全機(jī)制,允許受信任的應(yīng)用程序訪問(wèn)汽車功能模塊(車輛制動(dòng)、轉(zhuǎn)向或電驅(qū)動(dòng)分配),而不可信任的程序被隔離并且不可以訪問(wèn)。應(yīng)用程序之間只能通過(guò)高安全可信機(jī)制下通過(guò)有限權(quán)限訪問(wèn)某些功能,例如,CAN總線。1866610.2 ROS操作系統(tǒng)在智能網(wǎng)聯(lián)汽車中的應(yīng)用2010.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)智能網(wǎng)聯(lián)汽車集成了車聯(lián)網(wǎng)技術(shù)和無(wú)人駕駛技術(shù)。無(wú)論是車聯(lián)網(wǎng)還是無(wú)人駕駛,都離不開(kāi)一個(gè)強(qiáng)大的開(kāi)發(fā)平臺(tái)和運(yùn)行平臺(tái)。機(jī)器人操作系統(tǒng)是一個(gè)功能強(qiáng)大、靈活的機(jī)器人編程框架和基于消息通信的分布式多進(jìn)程框架,有很多著名的開(kāi)源機(jī)器人功能庫(kù),如基于Quaternion的坐標(biāo)轉(zhuǎn)換、三維點(diǎn)云處理、定位算法、各種SLAM等。ROS系統(tǒng)的總體架構(gòu)分為三個(gè)方面。這三個(gè)方面分別是文件系統(tǒng)級(jí)、計(jì)算圖級(jí)和開(kāi)源社區(qū)級(jí)。2110.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)工作空間是一個(gè)包含函數(shù)包、可編輯源文件和編譯包的文件夾。當(dāng)希望同時(shí)編譯不同的函數(shù)包時(shí)提供幫助,并可以保存本地開(kāi)發(fā)包。用戶可以根據(jù)自己的需要?jiǎng)?chuàng)建多個(gè)工作空間,并在每個(gè)工作空間中為不同的目的開(kāi)發(fā)功能包。功能包是ROS中軟件組織的基本形式。功能包具有用于創(chuàng)建ROS程序的最小結(jié)構(gòu)和最小內(nèi)容。它可以包含ROS運(yùn)行的進(jìn)程(節(jié)點(diǎn))和配置文件。2210.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)2310.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)服務(wù)是ROS中進(jìn)程(節(jié)點(diǎn))之間的請(qǐng)求/響應(yīng)通信過(guò)程,服務(wù)類型是服務(wù)請(qǐng)求/響應(yīng)的數(shù)據(jù)結(jié)構(gòu)。服務(wù)類型的定義借用了消息類型的定義,區(qū)別在于,消息數(shù)據(jù)是ROS進(jìn)程(節(jié)點(diǎn))之間的多對(duì)多廣播通信過(guò)程中傳輸?shù)男畔?;服?wù)數(shù)據(jù)是ROS進(jìn)程(節(jié)點(diǎn))之間的點(diǎn)對(duì)點(diǎn)請(qǐng)求/響應(yīng)通信過(guò)程中傳輸?shù)男畔ⅰOS將創(chuàng)建一個(gè)連接所有進(jìn)程(節(jié)點(diǎn))的網(wǎng)絡(luò),任何進(jìn)程(節(jié)點(diǎn))都可以訪問(wèn)該網(wǎng)絡(luò),并通過(guò)網(wǎng)絡(luò)與其他進(jìn)程(節(jié)點(diǎn))交互以獲取其他進(jìn)程(節(jié)點(diǎn))發(fā)布的信息,并將自己的數(shù)據(jù)發(fā)布到網(wǎng)絡(luò),以及節(jié)點(diǎn)、主題、服務(wù),在這個(gè)計(jì)算圖網(wǎng)絡(luò)中,必須用唯一的名稱來(lái)標(biāo)識(shí)。2410.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)ROS系統(tǒng)功能框架如圖所示,左邊的節(jié)點(diǎn)可以從硬件驅(qū)動(dòng)程序讀取數(shù)據(jù)并將其打包成一條消息。ROS的底層識(shí)別消息的訂閱者并將消息數(shù)據(jù)分發(fā)給訂閱者節(jié)點(diǎn)。ROS節(jié)點(diǎn)通常是一個(gè)標(biāo)準(zhǔn)的C++程序,可以使用系統(tǒng)中安裝的其他軟件庫(kù)。同時(shí),ROS節(jié)點(diǎn)可以隱式地啟動(dòng)多個(gè)線程,當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)一個(gè)主題時(shí),它也由FIFO隊(duì)列管理,以解決實(shí)時(shí)同步問(wèn)題。?請(qǐng)說(shuō)明ROS操作系統(tǒng)的主要功能有哪些?2510.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)車輛常用的外部傳感器有其自身的特點(diǎn),如:1)

毫米波雷達(dá)能準(zhǔn)確探測(cè)前方車輛的距離和速度,對(duì)霧、煙、塵具有較強(qiáng)的穿透能力;2)

攝像機(jī)視覺(jué)系統(tǒng)可以獲取車道線的顏色、形狀、交通信號(hào)等目標(biāo)的詳細(xì)信息進(jìn)行詳細(xì)識(shí)別;3)

激光雷達(dá)利用點(diǎn)云建立周圍環(huán)境的三維模型,可以檢測(cè)到車輛、行人、樹(shù)木、路旁等細(xì)節(jié)。通過(guò)激光雷達(dá)或毫米波雷達(dá)與視覺(jué)傳感器的融合,不僅可以檢測(cè)到目標(biāo)物體,還具有目標(biāo)空間測(cè)距、目標(biāo)圖像識(shí)別等功能。同樣,GPS定位、視覺(jué)傳感器和激光雷達(dá)的融合可以實(shí)現(xiàn)車道保持所需的高精度定位,以及多個(gè)障礙物目標(biāo)的檢測(cè)。2610.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)在構(gòu)建典型的環(huán)境感知系統(tǒng)時(shí),常用的傳感器包括攝像機(jī)和激光雷達(dá)等傳感器,如:1)

Velodyne激光雷達(dá)獲取三維點(diǎn)云數(shù)據(jù),用于定位和地圖構(gòu)建,也用于測(cè)量車輛與周圍物體之間的距離;2)雖然Ibeo激光雷達(dá)傳感器的垂直分辨率低于Velodyne激光雷達(dá),但它可以生成遠(yuǎn)程三維點(diǎn)云數(shù)據(jù);3)Hokuyo激光雷達(dá)傳感器產(chǎn)生的短程二維激光掃描數(shù)據(jù),通常用于緊急停車,但不用于定位和地圖創(chuàng)建;4)

攝像機(jī)可用于目標(biāo)檢測(cè)。點(diǎn)灰色相機(jī)具有360°全方位視角覆蓋,而蚱蜢相機(jī)具有單一方向和較高的運(yùn)行幀率。前者可用于檢測(cè)運(yùn)動(dòng)目標(biāo),后者可用于識(shí)別紅綠燈;5)

Javad-RTK定位傳感器接收衛(wèi)星全球定位信息,經(jīng)常使用陀螺傳感器和里程表來(lái)修復(fù)定位信息。2710.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)無(wú)人駕駛系統(tǒng)首先包含多個(gè)傳感器,如長(zhǎng)距離和短程毫米波雷達(dá)、激光雷達(dá)、單目和雙目相機(jī)、超聲波、GPS定位、陀螺儀慣性導(dǎo)航等,每個(gè)傳感器采集不同頻率的數(shù)據(jù)并生成數(shù)據(jù)。該系統(tǒng)對(duì)傳感器數(shù)據(jù)處理具有很強(qiáng)的實(shí)時(shí)性要求,因此要求無(wú)人駕駛系統(tǒng)能夠?qū)@些數(shù)據(jù)進(jìn)行分布式、異步的實(shí)時(shí)處理。其次,基于這些傳感器數(shù)據(jù)的融合,無(wú)人駕駛系統(tǒng)進(jìn)行駕駛環(huán)境元素的感知和提取,并進(jìn)行導(dǎo)航和自動(dòng)駕駛決策。這就要求系統(tǒng)具有強(qiáng)大的計(jì)算能力,能夠集成高性能的算法,并且具有高度的可擴(kuò)展性。在ROS系統(tǒng)中,通過(guò)將系統(tǒng)抽象成節(jié)點(diǎn)和主題,其中節(jié)點(diǎn)用來(lái)表示單個(gè)組件模塊,主題用來(lái)保存輸入和輸出節(jié)點(diǎn)之間的數(shù)據(jù),形成了一個(gè)強(qiáng)大的抽象模型組件擴(kuò)展計(jì)算框架,可以方便人的駕駛系統(tǒng)的開(kāi)發(fā),滿足了擴(kuò)展的要求。2810.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)安裝ROS操作系統(tǒng)的程序可以直接在其官網(wǎng)上下載,操作系統(tǒng)的安裝方法在其官網(wǎng)有詳細(xì)的說(shuō)明。在安裝時(shí),首先將移動(dòng)智能網(wǎng)聯(lián)汽車平臺(tái)主控制器在三維空間發(fā)送的智能網(wǎng)聯(lián)汽車姿態(tài)、速度、里程和周圍環(huán)境的二維激光數(shù)據(jù)或三維點(diǎn)云信息同步定位并生成。然后規(guī)劃路徑并向智能網(wǎng)聯(lián)汽車發(fā)送運(yùn)動(dòng)命令,遠(yuǎn)程控制智能網(wǎng)聯(lián)汽車移動(dòng)。在桌面上安裝了ROS的完整版本之后,ROS系統(tǒng)框架建立并創(chuàng)建了一個(gè)連接所有進(jìn)程的網(wǎng)絡(luò),并安裝了大多數(shù)必需的功能包和庫(kù)。只需按照ROS開(kāi)源網(wǎng)絡(luò)社區(qū)獲得的共享資源修改自己的智能網(wǎng)聯(lián)汽車,創(chuàng)建新的節(jié)點(diǎn)和功能包就可以輕松完成智能網(wǎng)聯(lián)汽車軟件系統(tǒng)的開(kāi)發(fā)。因?yàn)閯?chuàng)建地圖、定位和路徑規(guī)劃需要大量的數(shù)據(jù)處理,所以首先要將服務(wù)器和智能網(wǎng)聯(lián)汽車主機(jī)控制器連接到同一個(gè)WIFI網(wǎng)絡(luò),然后建立節(jié)點(diǎn)管理器,并在服務(wù)器上創(chuàng)建鍵盤(pán)調(diào)試、SLAM和路徑規(guī)劃。在移動(dòng)智能網(wǎng)聯(lián)汽車主機(jī)控制器上創(chuàng)建節(jié)點(diǎn),如vision、lidar、里程、基本控制器等,然后在節(jié)點(diǎn)管理器中注冊(cè)所有節(jié)點(diǎn),由節(jié)點(diǎn)管理器統(tǒng)一管理,在同一網(wǎng)絡(luò)端到端的拓?fù)浣Y(jié)構(gòu)中進(jìn)行TCP/IP通信,實(shí)現(xiàn)不同主機(jī)節(jié)點(diǎn)間的有效通信,最后利用三維可視化工具RVIZ在服務(wù)器上實(shí)現(xiàn)SLAM和路徑規(guī)劃。2910.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)將無(wú)人駕駛系統(tǒng)環(huán)境感知功能與ROS的通用機(jī)制相結(jié)合,可以集成到現(xiàn)有的ROS系統(tǒng)框架中。其中,ROS的主要組成部分包括ROS

Master(ROS主機(jī))、ROS

Node(ROS節(jié)點(diǎn))和ROS

Service(ROS服務(wù))。1)

ROS

Master的主要功能是命名服務(wù),存儲(chǔ)啟動(dòng)所需的操作參數(shù)、消息發(fā)布的上下游節(jié)點(diǎn)的連接名和連接方式、現(xiàn)有ROS

Service的連接名,一般來(lái)說(shuō),在無(wú)人駕駛系統(tǒng)中只有一個(gè)Master。2)

ROS

Node通常是標(biāo)準(zhǔn)的C++程序,可以使用系統(tǒng)中的其他軟件庫(kù),也可以隱式啟動(dòng)多個(gè)線程來(lái)運(yùn)行主要功能和服務(wù)。ROS

Node是一個(gè)真正的執(zhí)行模塊,它處理接收到的消息并向下游節(jié)點(diǎn)發(fā)布新消息。環(huán)境感知的基本組成部分可以通過(guò)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)。3)

ROSService是一種特殊的ROS

Node,相當(dāng)于一個(gè)服務(wù)節(jié)點(diǎn),它接收請(qǐng)求并返回請(qǐng)求的結(jié)果。3010.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)節(jié)點(diǎn)向Master

Advertise(主播發(fā))或者Subscribe(訂閱)發(fā)布感興趣的Topic(主題)。當(dāng)創(chuàng)建連接時(shí),下游節(jié)點(diǎn)會(huì)向上游節(jié)點(diǎn)TCP

Server(TCP服務(wù)器)發(fā)布連接請(qǐng)求,連接創(chuàng)建后,上游節(jié)點(diǎn)的消息將通過(guò)連接發(fā)送到下游節(jié)點(diǎn)。智能網(wǎng)聯(lián)汽車ROS系統(tǒng)的節(jié)點(diǎn)結(jié)構(gòu)如圖10-6所示。3110.2.1

ROS操作系統(tǒng)技術(shù)架構(gòu)除了Master、Node、Service和傳遞的MeSSage(消息)主要組件外,ROS系統(tǒng)還提供以下常用組件:1)

RViz集成可視化工具。RViz查看器用于檢查任務(wù)的狀態(tài)。2)

為管理點(diǎn)云數(shù)據(jù)開(kāi)發(fā)了一個(gè)點(diǎn)云庫(kù),支持定位和地圖創(chuàng)建的許多算法包。3)

OpenCV是一個(gè)流行的計(jì)算機(jī)視覺(jué)圖像處理庫(kù)。它支持多種圖像處理算法來(lái)實(shí)現(xiàn)庫(kù)函數(shù)和api(例如圖像加載、轉(zhuǎn)換和渲染)。它有助于建立圖像處理程序框架和無(wú)人駕駛汽車環(huán)境。通過(guò)OpenCV和ROS-RViz的結(jié)合,感知可以被可視化。4)

CUDA是基于GPU的通用計(jì)算框架,因?yàn)榄h(huán)境感知中常用的復(fù)雜算法都是計(jì)算密集型和數(shù)據(jù)并行的,使用CUDA,GPU的執(zhí)行速度可以顯著提高。3210.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用無(wú)人駕駛系統(tǒng)是由駕駛環(huán)境感知、路徑規(guī)劃和車輛控制等多個(gè)技術(shù)組成的綜合系統(tǒng)。每種類型的組件都由一組算法組成,它通常是基于各種分布式程序框架構(gòu)建的組件之間的信息通信。無(wú)人駕駛汽車的總體功能結(jié)構(gòu)可分為感知層、任務(wù)規(guī)劃層、行為執(zhí)行層和運(yùn)動(dòng)規(guī)劃層。其中,環(huán)境感知層融合來(lái)自車載傳感器的數(shù)據(jù),為系統(tǒng)其他部分提供周邊環(huán)境的關(guān)鍵信息,如包括車輛姿態(tài)和速度等狀態(tài)信息的局部信息、道路形狀、停車區(qū)域和交叉口等道路信息、動(dòng)態(tài)障礙物等車輛周圍其他車輛、行人等信息,局部靜態(tài)障礙地圖,二維網(wǎng)格地圖,顯示真實(shí)環(huán)境中無(wú)障礙區(qū)域、危險(xiǎn)區(qū)域、無(wú)法通行區(qū)域、道路擁堵等信息估計(jì)。3310.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用每種類型的組件,如交通場(chǎng)景識(shí)別、路徑規(guī)劃和車輛控制,都包含一組算法。例如,交通場(chǎng)景識(shí)別需要定位、目標(biāo)檢測(cè)和目標(biāo)跟蹤算法。路徑規(guī)劃通常包括任務(wù)和運(yùn)動(dòng)規(guī)劃。車輛控制對(duì)應(yīng)于路徑跟蹤算法。算法的基本控制和數(shù)據(jù)流如圖10-8所示。圖中,幾個(gè)常用的傳感器通過(guò)各自的驅(qū)動(dòng)節(jié)點(diǎn)提供感知信息,包括來(lái)自圖像相機(jī)的圖像信息、毫米波雷達(dá)形成的掃描信息、激光雷達(dá)的點(diǎn)云信息、GPS系統(tǒng)提供的定位信息。通過(guò)訂閱該信息的各個(gè)處理節(jié)點(diǎn),形成掃描圖像、點(diǎn)云圖像等信息列表。3410.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用?ROS下各傳感器驅(qū)動(dòng)和環(huán)境感知信息融合框架3510.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用無(wú)人駕駛汽車對(duì)ROS系統(tǒng)的各個(gè)部分提出了高性能要求,只有滿足這些要求,才能在實(shí)際環(huán)境中實(shí)現(xiàn)一定速度的自動(dòng)駕駛。利用ROS構(gòu)建無(wú)人駕駛系統(tǒng),其可靠性是首先要考慮的特征。由于ROS框架下的主節(jié)點(diǎn)維護(hù)系統(tǒng)運(yùn)行所需的連接、參數(shù)和主題信息,如果ROS主節(jié)點(diǎn)關(guān)閉,整個(gè)系統(tǒng)將無(wú)法正常運(yùn)行。必須確保ROS主機(jī)不能因錯(cuò)誤而退出,從而導(dǎo)致系統(tǒng)崩潰。同樣,也要保證ROS節(jié)點(diǎn)不能錯(cuò)誤退出,造成系統(tǒng)某些功能的缺失,造成無(wú)人駕駛事故。請(qǐng)說(shuō)說(shuō)無(wú)人駕駛汽車對(duì)ROS系統(tǒng)性能要求有哪些?3610.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用當(dāng)系統(tǒng)運(yùn)行時(shí),如果ROS

Master出現(xiàn)錯(cuò)誤退出,會(huì)導(dǎo)致系統(tǒng)崩潰;如果其中一個(gè)ROS節(jié)點(diǎn)出現(xiàn)故障,會(huì)導(dǎo)致部分系統(tǒng)失去功能,任何一種情況都可能在無(wú)人環(huán)境中造成嚴(yán)重后果。所以,ROS重要節(jié)點(diǎn)需要熱備份,以便在停機(jī)期間隨時(shí)進(jìn)行切換。主節(jié)點(diǎn)維護(hù)系統(tǒng)操作所需的連接、參數(shù)和主題信息。如果ROS

Master出現(xiàn)故障,整個(gè)系統(tǒng)可能無(wú)法正常工作。如圖10-10所示,我們可以使用主從節(jié)點(diǎn)方法(類似于ZooKeeper)。同時(shí),隨時(shí)備份主節(jié)點(diǎn)的寫(xiě)入信息。主節(jié)點(diǎn)關(guān)閉后,將切換備份節(jié)點(diǎn),主節(jié)點(diǎn)與備份主節(jié)點(diǎn)完成信息初始化。3710.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用運(yùn)行節(jié)點(diǎn)實(shí)時(shí)監(jiān)控其運(yùn)行數(shù)據(jù),并在檢測(cè)到嚴(yán)重錯(cuò)誤信息時(shí)報(bào)警。從軟件體系結(jié)構(gòu)來(lái)看,實(shí)時(shí)監(jiān)控主要分為三個(gè)部分:ROS節(jié)點(diǎn)層的監(jiān)控?cái)?shù)據(jù)API,允許開(kāi)發(fā)者通過(guò)統(tǒng)一的API設(shè)置所需的統(tǒng)計(jì)信息和記錄;監(jiān)控服務(wù)器定期從各節(jié)點(diǎn)獲取監(jiān)控?cái)?shù)據(jù)(對(duì)于緊急情況,可由節(jié)點(diǎn)將報(bào)警信息推送到監(jiān)控服務(wù)器上);獲取監(jiān)控?cái)?shù)據(jù)后,監(jiān)控服務(wù)器對(duì)數(shù)據(jù)進(jìn)行集成、分析和記錄,檢測(cè)到異常信息后報(bào)警。當(dāng)節(jié)點(diǎn)關(guān)閉時(shí),需要通過(guò)重新啟動(dòng)機(jī)制還原節(jié)點(diǎn)。這種重啟可以是無(wú)狀態(tài)的,但有時(shí)它必須是有狀態(tài)的,所以狀態(tài)備份特別重要。節(jié)點(diǎn)停機(jī)檢測(cè)也非常重要。如果注意到節(jié)點(diǎn)停機(jī),則必須使用備份數(shù)據(jù)快速重新啟動(dòng)。3810.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用39由于無(wú)人駕駛系統(tǒng)模塊眾多,各模塊之間的信息交換非常頻繁,可以從以下三個(gè)方面提高系統(tǒng)的通信性能,將有助于提高整個(gè)系統(tǒng)的性能:1.使用共享內(nèi)存的方法將數(shù)據(jù)映射到內(nèi)存中,然后只傳遞數(shù)據(jù)的地址和大小信息,從而將數(shù)據(jù)傳輸延遲控制在20微秒以內(nèi),節(jié)省大量的CPU資源。2.在發(fā)送節(jié)點(diǎn)和每個(gè)接收節(jié)點(diǎn)之間實(shí)現(xiàn)點(diǎn)對(duì)多點(diǎn)的網(wǎng)絡(luò)連接。3.通過(guò)從存儲(chǔ)區(qū)域讀取或反序列化對(duì)象的狀態(tài)來(lái)重新創(chuàng)建該對(duì)象,使用輕量級(jí)序列化程序,將序列化延遲減少。10.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用LXC提供了輕量級(jí)的虛擬化來(lái)隔離進(jìn)程和資源,不需要提供指令解釋機(jī)制和其他復(fù)雜的功能,比如完全虛擬化,這相當(dāng)于C++中的命名空間。LXC有效地將單個(gè)操作系統(tǒng)管理的資源劃分為獨(dú)立的組,以更好地平衡獨(dú)立組之間沖突的資源使用需求。對(duì)于無(wú)人駕駛的場(chǎng)景,LXC最大的好處是它的低性能損失。除了資源限制外,LXC還提供沙盒支持,允許系統(tǒng)限制ROS節(jié)點(diǎn)進(jìn)程的權(quán)限。為了避免危險(xiǎn)的ROS節(jié)點(diǎn)進(jìn)程可能中斷其他ROS節(jié)點(diǎn)進(jìn)程的操作,沙盒技術(shù)可以限制潛在危險(xiǎn)的ROS節(jié)點(diǎn)訪問(wèn)磁盤(pán)、內(nèi)存和網(wǎng)絡(luò)資源。此外,為了防止節(jié)點(diǎn)內(nèi)的通信被劫持,可以對(duì)節(jié)點(diǎn)內(nèi)通信的輕量級(jí)加密解密機(jī)制,使黑客無(wú)法重放或更改通信內(nèi)容。4010.2.2

ROS操作系統(tǒng)在無(wú)人車輛上的應(yīng)用在無(wú)人駕駛場(chǎng)景中,ROS的管理機(jī)制使系統(tǒng)中的各個(gè)軟硬件模塊能夠有效的交互。位置控制模塊作為ROS節(jié)點(diǎn),可以得到智能網(wǎng)聯(lián)汽車左右輪需要移動(dòng)的線速度、角速度、位移等參數(shù),然后與編碼器進(jìn)行通信計(jì)算模塊測(cè)量的智能網(wǎng)聯(lián)汽車的線速度、角速度、左右輪位移等姿態(tài)參數(shù),得到智能網(wǎng)聯(lián)汽車運(yùn)動(dòng)的速度、方向等誤差。并通過(guò)PID算法控制精確確定左右輪電機(jī)的速度,使智能網(wǎng)聯(lián)汽車沿著路徑規(guī)劃的路徑行駛,通過(guò)紅外傳感器避開(kāi)障礙物,最后將智能網(wǎng)聯(lián)汽車的線速度、角速度、位移等姿態(tài)參數(shù)發(fā)送到里程節(jié)點(diǎn)。移動(dòng)智能網(wǎng)聯(lián)汽車軟硬件系統(tǒng)建成后,利用ROS分布式處理框架對(duì)智能網(wǎng)聯(lián)汽車的運(yùn)動(dòng)進(jìn)行遠(yuǎn)程控制是SLAM和路徑規(guī)劃的基礎(chǔ)。因此,有必要使用RVIZ等可視化工具對(duì)服務(wù)器上的移動(dòng)智能網(wǎng)聯(lián)汽車進(jìn)行遠(yuǎn)程控制。并接收智能網(wǎng)聯(lián)汽車的調(diào)試信息,測(cè)試SLAM和路徑規(guī)劃,驗(yàn)證智能網(wǎng)聯(lián)汽車程序設(shè)計(jì)是否符合要求。4110.2.3

Rviz

3D圖形可視化工具的應(yīng)用Rviz是ros系統(tǒng)附帶的三維圖形可視化工具。該工具可以將代碼構(gòu)建的機(jī)器人模型轉(zhuǎn)換為可視化的三維模型,方便ros程序的圖形化操作。例如,無(wú)需編程即可表示激光測(cè)距傳感器中傳感器到障礙物的距離,RealSense、Kinect或Xtion等三維距離傳感器的點(diǎn)云數(shù)據(jù),以及從攝像機(jī)獲取的圖像值。另外,交互標(biāo)記利用用戶指定的多邊形來(lái)支持各種形式的表示,可以表示從用戶節(jié)點(diǎn)接收命令和數(shù)據(jù)并相互相交的過(guò)程。無(wú)人駕駛汽車在本質(zhì)上是一種移動(dòng)式的機(jī)器人,在ROS中,機(jī)器人被描述為一個(gè)統(tǒng)一的機(jī)器人描述格式,可以表示為一個(gè)三維模型,每個(gè)模型可以根據(jù)自由度進(jìn)行移動(dòng)或驅(qū)動(dòng),因此可以用于仿真或控制。例如,可以顯示移動(dòng)機(jī)器人模型,同時(shí)可以接收來(lái)自激光距離傳感器的距離值并用于導(dǎo)航。此外,數(shù)據(jù)可以從各種傳感器獲取,并顯示為三維圖像。4210.2.3

Rviz

3D圖形可視化工具的應(yīng)用在安裝RViz時(shí),使用“ros[ros_DISTRO]desktop

full”命令,默認(rèn)情況下將自動(dòng)安裝。如果未安裝“desktopfull”或未安裝RViz,可以使用sudoaptgetinstallroskineticRViz命令進(jìn)行安裝。Rviz的操作界面主要分為左側(cè)顯示設(shè)置區(qū)、中間大顯示區(qū)和右側(cè)視角設(shè)置區(qū)。頂部是幾個(gè)與導(dǎo)航相關(guān)的工具。中間的黑色區(qū)域是三維可視化區(qū)域。左邊的顯示面板,底部是一些與ros狀態(tài)相關(guān)的數(shù)據(jù)的顯示。各種用戶加載選項(xiàng)的右側(cè)是全局選項(xiàng)和時(shí)間,可以通過(guò)左下角的“添加”按鈕添加新的顯示選項(xiàng)。4310.2.3

Rviz

3D圖形可視化工具的應(yīng)用在運(yùn)行時(shí)打開(kāi)linux終端并輸入:roscore。然后打開(kāi)linux終端并輸入:rosrun

rviz

rviz,打開(kāi)rviz界面。數(shù)據(jù)可視化的前提是將需要可視化的數(shù)據(jù)發(fā)布到相應(yīng)的消息類型中,然后使用相應(yīng)的插件訂閱rviz中的消息來(lái)實(shí)現(xiàn)顯示。添加插件以顯示數(shù)據(jù),單擊rviz界面左下方的“添加”按鈕,rviz將列出默認(rèn)支持的所有數(shù)據(jù)類型的顯示插件。添加完成后,rviz

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論