艾 炎 唐艷玲 潘佳佳 李鴻銓
(廣東輕工職業(yè)技術(shù)學(xué)院信息技術(shù)學(xué)院,廣東 廣州 510300)
本系統(tǒng)采用Jetson Nano作為ROS主控。NVIDIA在2019年NVIDIA GPU技術(shù)大會(GTC)上發(fā)布的Jetson Nano開發(fā)套件,是一款售價99美元的計算機,現(xiàn)在可供嵌入式設(shè)計人員、研究人員和DIY制造商使用,在緊湊、易用的平臺上提供現(xiàn)代AI的強大功能。Jetson Nano采用四核64位ARM CPU和128核集成NVIDIA GPU,可提供472 GFLOPS的計算性能。它還包括4GB LPDDR4存儲器,采用高效、低功耗封裝,具有5W / 10W功率模式和5V DC輸入。英偉達公司推出的基于Ubuntu 18.04的Jetson Nano提供了完整的桌面Linux環(huán)境,具有加速圖形,支持NVIDIA CUDA Toolkit 10.0,以及cuDNN 7.3和TensorRT等庫,還能在本機安裝流行的功能開源機器學(xué)習(xí)(ML)框架以及計算機視覺和機器人開發(fā)的框架。
該系統(tǒng)采用Jetson Nano作為運行ROS的主控設(shè)備,運行Ubuntu系統(tǒng),作為運行各種算法及神經(jīng)網(wǎng)絡(luò)的主要平臺,傳感及驅(qū)動控制主控采用基于ARM CORTEXM4的STM32F4芯片,采集激光雷達的電云傳感數(shù)據(jù)及MPU6050小車姿態(tài)傳感數(shù)據(jù),并通過恩智浦A4590電機驅(qū)動來驅(qū)動減速電機,并通過編碼器實時傳回電機轉(zhuǎn)動參數(shù),以此來完成速度測定及定位,系統(tǒng)總體設(shè)計框圖見圖1。
圖1 系統(tǒng)總體設(shè)計框圖
本項目采用的A*算法是一種廣泛用于實驗及工程中的路徑規(guī)劃及遍歷算法,具有優(yōu)秀的性能及準(zhǔn)確度。因為借助啟發(fā)函數(shù)的引導(dǎo),A*算法具有更好的性能。接下來我們詳細(xì)地講解 A*算法尋路的過程。
AB
圖2
假設(shè)我們從A格穿過藍(lán)色的障礙去到B點(圖2)。首先注意到,路徑區(qū)域被我們分割成了網(wǎng)格。通過上面的方法,簡化路徑區(qū)域,是尋路的開始。該方法把路徑區(qū)域轉(zhuǎn)化成了二維數(shù)組。
2.1.1 開始搜索
正如上面處理網(wǎng)格的方法,一旦路徑區(qū)域被轉(zhuǎn)化為容易處理的節(jié)點,接下來就是引導(dǎo)一次找到最近路徑的搜索。在 A*路徑規(guī)劃算法中,通過從方格A開始,計算相鄰方格,向外延伸直到找到目標(biāo)。如圖3中,灰色方格是起始中心。所有的相鄰方格現(xiàn)在都在開啟列表中。每個方格都有一個藍(lán)色指針反指他們的父方格,即開始方格。
圖3 A點的路徑搜索示意圖
2.1.2 路徑評分
規(guī)劃路徑中經(jīng)過某方格的關(guān)鍵是如下方程(1):
F=G+H
(1)
G是從起點,沿產(chǎn)生的路徑,移動到指定方格的移動路徑數(shù)。
H是從某個方格移動到終點 B 的預(yù)估移動路徑數(shù)。
上面的方法被稱為啟發(fā)式的,我們沒辦法事先知道路徑的長度,因為路徑上可能存在多種障礙,如上路徑是反復(fù)遍歷開啟列表并選擇最小F值的方格來形成的。
H值可以用不同的方法估算,這里使用曼哈頓方法,是對剩余距離估算,而非實際值。
2.1.3 繼續(xù)搜索
為了繼續(xù),從開啟列表中選擇F值最小的方格。接下來,對選中方格如下處理:
(a)將該方格從開啟列表中刪除,添加到關(guān)閉列表。
(b)檢查全部相鄰方格。跳過已經(jīng)添加在關(guān)閉列表或者障礙,如果其不在開啟列表中,將其添加進開啟列表。將選中的方格作為新的父節(jié)點。
(c)如某相鄰方格已經(jīng)在開啟列表里了,檢查該條路徑是否更好。
重復(fù)上面的3個過程,直到目標(biāo)格被添加進開啟列表。
該算法通過在ROS系統(tǒng)中實現(xiàn)來完成諸多應(yīng)用中的路徑規(guī)劃,比如自動耕地車、AGV小車的路徑規(guī)劃都能夠很好解決。本項目也根據(jù)實際應(yīng)用做了相關(guān)的改進,比如在自動農(nóng)用車的項目上,根據(jù)路徑相對規(guī)則做了路徑簡化的處理,讓處理的路徑相對比小。