Apollo进阶课程㉚丨Apollo ROS背景介绍
原文鏈接:進階課程?丨Apollo ROS背景介紹
ROS是機器人學(xué)習(xí)和無人車學(xué)習(xí)最好Linux平臺軟件,資源豐厚。無人車的規(guī)劃、控制算法通常運行在Linux系統(tǒng)上,各個模塊通常使用ROS進行連接。
上周阿波君為大家詳細(xì)介紹了「進階課程?Apollo控制技術(shù)詳解——控制器的類型」。
主要介紹控制器的類型,大致分為三類,分別是開環(huán)控制、前饋環(huán)控制和后饋環(huán)控制。其中詳細(xì)地講解了前饋環(huán)控制器的分類以及控制策略,控制策略主要介紹了三種,分別是Optimal Control(優(yōu)化控制)、 Adaptive Control(自適應(yīng)控制)、Robust Control(魯棒性控制)等。
本周阿波君將繼續(xù)與大家分享Apollo ROS介紹——背景的相關(guān)課程。下面,我們一起進入進階課程第30期。
目錄
1.引入ROS的背景介紹
2.選擇ROS的原因
1.引入ROS的背景介紹
?????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ?????????????????????????自動駕駛系統(tǒng)組成
如上圖所示:自動駕駛系統(tǒng)包括障礙物檢測、行為決策、路徑規(guī)劃等一系列復(fù)雜的工程模塊,同時還要支持激光雷達(dá)、相機、GPS等一系列傳感器的實時數(shù)據(jù)收集和實時處理。如何將這些功能模塊相互獨立又相互交互集成一起,構(gòu)建成一個穩(wěn)定的自動駕駛系統(tǒng)是一個巨大的挑戰(zhàn),也是自動駕駛計算框架所承載的基本功能。
首先自動駕駛系統(tǒng)還處在一個快速發(fā)展的階段,算法和整體方案還在持續(xù)迭代優(yōu)化。使用框架開發(fā),可以將更多的精力放在算法模塊的迭代上。開發(fā)者不需要關(guān)心具體配置管理、部署運行、底層通信等功能。
其次是感知、定位、決策控制等模塊各自承載了一部分獨立功能,相互之間有一定的數(shù)據(jù)依賴。框架能夠在開發(fā)階段減少各個模塊之間的耦合,在運行階段可以將各個模塊串聯(lián)起來。
最后是自動駕駛涉及大量的圖像點云處理算法,對于可視化和調(diào)試工具有很大的需求。比如調(diào)試過程中,障礙物檢測需要看Detection的那個框準(zhǔn)不準(zhǔn);路徑規(guī)劃需要看自動駕駛算法規(guī)劃的路徑是否符合當(dāng)前的一些決策行為;定位也需要看車輛當(dāng)前是否在準(zhǔn)確的車道內(nèi)。
2.選擇ROS的原因
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????ROS的基本框架
上圖是一個ROS的基本框架,自動駕駛底層通信框架選擇ROS,主要有三個方面的原因:
ROS是一個比較強大、靈活的機器人編程框架。從軟件架構(gòu)的層面來說,它是一個基于消息傳遞的分布式多進程框架,很早就被機器人行業(yè)廣泛使用。很多著名的機器人開發(fā)框架,如基于四元數(shù)的坐標(biāo)轉(zhuǎn)換、3D點預(yù)處理驅(qū)動、定位算法、SLAM等都是基于ROS開發(fā)的開源的現(xiàn)成方案。
ROS基于消息機制,開發(fā)者可以根據(jù)功能把軟件拆分成獨立的子模塊,子模塊通過不斷的組合能夠建立起比較復(fù)雜的系統(tǒng)來完成復(fù)雜的功能。
ROS是學(xué)術(shù)界廣泛使用的一個框架,對實驗各種新算法提供了一些支持。
基于以上三點,我們在初期選擇ROS作為自動駕駛底層框架,用于快速驗證頂層算法和技術(shù)方案。
總結(jié)
以上是生活随笔為你收集整理的Apollo进阶课程㉚丨Apollo ROS背景介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实打实1英寸大底!小米12S Ultra
- 下一篇: 图解算法学习笔记(一): 算法简介