前言:想要寫出一篇引人入勝的文章?我們特意為您整理了激光雷達下的自動駕駛方案設(shè)計范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:針對在封閉環(huán)境內(nèi)智能車如何實現(xiàn)自動駕駛問題,本文通過算法與理論的分析以及在仿真環(huán)境中進行運動規(guī)劃的驗證,進而得到了一套低成本、簡單易操控的自動駕駛引導(dǎo)方案。經(jīng)實驗結(jié)果證明,基于ROS平臺設(shè)計的智能車,在地圖構(gòu)建(SLAM)、定位、路徑規(guī)劃方面具有較好的穩(wěn)定性、實時性、快速性與準確性。
關(guān)鍵詞:自動駕駛;ROS;仿真
1自動駕駛的整體設(shè)計方案
這套針對封閉環(huán)境中既定路徑下車輛自動駕駛的控制方案是基于ROS操作平臺實現(xiàn)的,ROS提供了大量的工具組合用來進行功能的配置、啟動、自檢、調(diào)試以及可視化。在ROS平臺中使用Gmapping算法針對激光雷達和IMU位姿傳感器檢測和采集的信息對周圍環(huán)境進行二維柵格地圖構(gòu)建(SLAM)、采用AMCL算法來實現(xiàn)車輛在地圖中的準確定位、最后通過A*算法進行全局的路徑規(guī)劃。在路徑規(guī)劃中針對道路中臨時出現(xiàn)的障礙通過TEB算法進行判別并進行局部的路徑規(guī)劃以實現(xiàn)對其合理避讓。整套方案在結(jié)構(gòu)上具有適應(yīng)性廣泛、開發(fā)成本低的特點,在不降低效率的前提下實現(xiàn)了對于自動駕駛的功能。
2基于Gmapping建圖功能的設(shè)計
SLAM全稱為SimultaneousLocalizationandMapping,及定位的同時完成建圖。本節(jié)從Gmapping算法功能包開始,結(jié)合重要參數(shù)信息展開介紹SLAM建圖功能。Gmapping運行的理論基礎(chǔ)為通過從激光雷達和里程計分別獲取數(shù)組觀測向量信息和里程計測量信息,經(jīng)過TF轉(zhuǎn)換,輸出地圖信息和位姿估計。
3定位以及導(dǎo)航算法功能介紹
AMCL全稱為自適應(yīng)蒙特卡洛定位,是在傳統(tǒng)MCL定位算法基礎(chǔ)上,添加KLD采樣實現(xiàn)功能改進。針對已有的地圖,使用粒子濾波器跟蹤機器人位置姿態(tài)。AMCL算法解決了機器人綁架問題,有效防止迭代過程中重要信息粒子的缺失,并極大程度地提高了運算效率。
4全局路徑規(guī)劃
全局路徑規(guī)劃代價地圖包含地圖層和膨脹層。并基于A*算法配置、設(shè)計全局路徑規(guī)劃器,通過全局代價題圖獲取單元格代價信息,通過計算尋找起點與終點之間最小代價路徑。本節(jié)將具體介紹A*算法的基本原理以及實現(xiàn)過程。A*算法第一部是將區(qū)域作方格化簡化操作,將二維區(qū)域地圖簡化為2維數(shù)組的形式,數(shù)組的每個元素對應(yīng)一個方格,便于計算操作。在簡化搜索區(qū)域完成后,需標注起始點、終點和障礙的位置信息。準備工作完成后,將起始點放入開放列表中,對其周圍的八個方格,計算F值,F(xiàn)值由G值和H值相加所得。G值對應(yīng)從起始點移動到指定方格的移動代價,H值為指定方格移動到終點的估算成本。尋找F值最小的方格放入開放列表中,將該方格作為新的起始點,重復(fù)上述操作,直到起始點周圍方格中包含終點,則此時成功找到合適路徑。
5局部路徑規(guī)劃
局部路徑規(guī)劃代價地圖包含障礙地圖層和膨脹層。該功能用于小車行進過程中,對地圖中未記錄的障礙信息,能夠及時改變路徑避開障礙。局部路徑規(guī)劃器是基于TEB算法實現(xiàn)的。TEB算法核心圍繞位姿和記錄時間序列展開。位姿及為機器人在地圖中的位置、姿態(tài)信息記錄不同時間段的位姿信息,經(jīng)過整合形成位姿序列。時間序列則由相鄰位姿狀態(tài)變化所經(jīng)歷的時間∆t整合而成。將位姿序列和時間序列進行合并,以全局路徑允許的最大路徑作為約束條件,通過加權(quán)目標優(yōu)化獲取最優(yōu)的路徑點。
6智能車在Gazebo中的仿真
實現(xiàn)基于ROS操作系統(tǒng)的智能車仿真,需要一個穩(wěn)定且功能強大的仿真的環(huán)境。ROS官方專門提供了Gazebo物理仿真軟件。Gazebo仿真環(huán)境可以實現(xiàn)機器人在三維環(huán)境中完成復(fù)雜動作。Gazebo不僅提供各種可二次開發(fā)的數(shù)據(jù)庫,還可以與ROS系統(tǒng)中的其他平臺進行通訊,不僅提高了開發(fā)人員的工作效率也為ROS平臺的開發(fā)提供了更多的可能性。仿真具體過程的流程如下:
6.1車模與運動控制器的建立
在ROS操作系統(tǒng)里面,一個完整的機器人仿真模型由一系列的link和joint組成,斑紋采用acrox描述文件來構(gòu)建車模的link(部件)與joint(連接件)的基本屬性。Link設(shè)置模型的各個部件的特性與名稱,link的三個屬性分別為,conllision,inertial分別與外觀,碰撞屬性和慣性特性相對應(yīng)。Joint則是連接兩個link的關(guān)節(jié),將parentlink與childlink進行連接,由于parentlink與childlink的運動關(guān)系不同,使得不同join之間的連接類型不同,下表為仿真模型用到的主要joint類型參數(shù)。控制器的配置在很大程度上決定了車模的屬性。智能車模型的運動控制器配置過程:1)在配置模型屬性的過程中,模型的各部分joint已經(jīng)添加了gazebo的標簽并且添加了相應(yīng)的控制器插件,接下來通過一個yaml文件,聲明仿真需要的controller以及相對應(yīng)的參數(shù),并通過joint_state_controller來每個關(guān)節(jié)的實時狀態(tài)。2)生成啟動文件,在文件目錄下加載需要加載的controller
6.2建圖:
首先,打開gazebo和rviz的launch啟動文件,此時將加載仿真車模及其仿真環(huán)境,以及啟動gampping的功能文件。接著gazebo結(jié)點會自動訂閱車模坐標控制信息、里程計坐標信息、激光雷達坐標信息,結(jié)合AMCL算法實現(xiàn)小車自定位,為建圖做好準備。然后,通過采用設(shè)計好的控制工具包提供的滑塊控制車模在環(huán)境中運動(如圖2所示),通過rviz可以觀察車模運動過程中地圖的掃描情況。在車模運動過程中,gampping算法將車模的坐標控制信息、里程計坐標信息、激光雷達坐標信息進行處理運算實現(xiàn)二維地圖的構(gòu)建。完成建圖工作后使用map_server命令行工具將掃描好的地圖進行保存。
6.3導(dǎo)航:
首先,開啟gazebo和rviz的仿真環(huán)境,在gazebo仿真環(huán)境中增設(shè)障礙物錐桶,以模擬真實環(huán)境中的路況變化。Rviz能夠加載顯示出新建好的二維柵格地圖。其次,分別開啟全局路徑規(guī)劃、局部路徑規(guī)劃、AMCL定位的功能文件,自動引導(dǎo)啟動與定位和導(dǎo)航相關(guān)的多個節(jié)點。通過在rviz上使用2D-navgoal指定目標點的位姿矢量,之后move_base節(jié)點自動訂閱車模坐標信息進行定位,并由此計算出最佳路徑,由控制器發(fā)送指令控制車模沿路徑方向移動至終點。
7仿真結(jié)果的分析
經(jīng)過測試本實驗設(shè)計的智能車可以在仿真環(huán)境中完成SLAM導(dǎo)航,Gmapping建立柵格地圖,躲避障礙物等功能,實現(xiàn)了Gzaebo在仿真環(huán)境中的研究。為了測試智能車在仿真環(huán)境中的性能。通過激光雷達建立柵格地圖與環(huán)境模型進行對比,驗證實驗結(jié)果的準確性。將柵格地圖與環(huán)境模型進行比較,可知智能車在環(huán)境建圖測試中表現(xiàn)良好,擁有著較為精準的導(dǎo)航與建圖功能。圖4為測試結(jié)果。
8結(jié)論
基于該方案設(shè)計的自主駕駛方案,經(jīng)過基于ROS平臺的Gezabo仿真實驗,得到了準確度較高的柵格地圖,經(jīng)與仿真環(huán)境中的賽道進行對比,證實了該方案在校園清潔、醫(yī)院消毒、封閉環(huán)境中的自動駕駛與路徑規(guī)劃等應(yīng)用場景的可行性。
參考文獻:
[1]恩里克費爾南德斯.ROS機器人程序設(shè)計[M].機械工業(yè)出版社.2016.
[2]李鑫.基于激光雷達的同時定位與建圖方法研究[D].長沙.
[3]高翔,張濤.視覺SLAM十四講:從理論到實踐[M].北京:電子工業(yè)出版社,2017.
作者:王建彬 張軒望 譚卓 侯明 單位:北京信息科技大學(xué)