摘 要:在無人駕駛領(lǐng)域,運動規(guī)劃是亟待解決的關(guān)鍵問題之一。無人車的運動規(guī)劃包括路徑規(guī)劃和路徑跟蹤控制兩部分。目前常用的路徑規(guī)劃方法和路徑跟蹤控制方法多依據(jù)人為制定的規(guī)則和策略,缺乏靈活性。針對此問題使用DQN算法,規(guī)劃得到車輛的路徑點,根據(jù)規(guī)劃得到的路徑點,使用轉(zhuǎn)向神經(jīng)網(wǎng)絡(luò)(SNN)控制車輛在相鄰路徑點之間進行轉(zhuǎn)向運動,完成對轉(zhuǎn)向關(guān)系路徑點的跟蹤,從而使車輛自主進行路徑點規(guī)劃和路徑點跟蹤。仿真結(jié)果表明,無人車沿規(guī)劃得到的由路徑點組成的全局路徑行進可避開障礙物到達終點,使用轉(zhuǎn)向神經(jīng)網(wǎng)絡(luò)可控制車輛完成在相鄰路徑點之間的轉(zhuǎn)向,調(diào)整車輛的航向角,從而完成對規(guī)劃得到的路徑點的跟蹤。由此可知,該研究能有效提高車輛的移動效率。
關(guān)鍵詞:運動規(guī)劃;路徑點規(guī)劃;路徑跟蹤控制;DQN;SNN;無人車
中圖分類號:TP273 文獻標識碼:A 文章編號:2095-1302(2025)02-00-05
0 引 言
無人駕駛汽車(簡稱無人車)技術(shù)是利用傳感器、計算機控制車輛自主運動的新興技術(shù)[1-2]。近年來,隨著人工智能的崛起,無人車技術(shù)迅速發(fā)展。運動規(guī)劃作為無人車技術(shù)的核心技術(shù)之一,受到眾多研究者的關(guān)注。運動規(guī)劃[3]要完成兩項任務(wù):路徑規(guī)劃和跟蹤控制。
路徑規(guī)劃即通過規(guī)劃得到一條從起點到終點的安全、高效的路徑[4]。目前常用的路徑規(guī)劃方法主要包括:A*算法[5-6]、動態(tài)窗口算法[7-8]、人工勢場法[9-10]和隨機搜索算法[11]等。
跟蹤控制即根據(jù)規(guī)劃得到的路徑,設(shè)計控制量驅(qū)動車輛沿路徑運動。路徑跟蹤控制方法可以分為PID控制、LQR (Linear Quadratic Regulator)控制[12]、MPC(Model Predictive Control)控制。PID控制使用PID控制器控制車輛運動,文獻[13]使用模糊推理設(shè)計參數(shù)值自適應(yīng)PID控制器來控制車輛跟蹤路徑。LQR控制使用LQR控制器將非線性控制系統(tǒng)簡化為線性控制系統(tǒng),設(shè)計最優(yōu)控制器,使系統(tǒng)沿著預(yù)定義的期望軌跡運動,以最小化狀態(tài)偏差和控制輸入成本。MPC控制通過預(yù)測系統(tǒng)未來狀態(tài),迭代優(yōu)化控制輸入序列,并選擇當前最優(yōu)輸入,使系統(tǒng)沿著期望軌跡運動。文獻[14]將MPC與模糊控制相結(jié)合,使用MPC實現(xiàn)路徑跟蹤,借助模糊控制器提高跟蹤精度。
上述路徑規(guī)劃方法和跟蹤控制方法都是根據(jù)人工制定規(guī)則和策略來實現(xiàn)的,依賴于預(yù)定義的規(guī)則和參數(shù),對于變化的環(huán)境可能缺乏適應(yīng)性,無法靈活地根據(jù)環(huán)境狀態(tài)信息調(diào)整策略,策略較為固定。本文使用神經(jīng)網(wǎng)絡(luò)進行路徑點規(guī)劃,使無人車具備學(xué)習(xí)能力,經(jīng)過學(xué)習(xí)之后,車輛在某個路徑點可以根據(jù)環(huán)境狀態(tài)尋找到下一合理的路徑點。此外,控制車輛實現(xiàn)對規(guī)劃所得路徑點的跟蹤,重點針對相鄰兩個路徑點之間需要轉(zhuǎn)向的情況,在從當前路徑點移動到下一路徑點的過程中,使用轉(zhuǎn)向神經(jīng)網(wǎng)絡(luò)將當前路徑點處航向角調(diào)整到下一路徑點處所需的航向角,提高車輛移動效率。
1 運動規(guī)劃算法
1.1 路徑點規(guī)劃
規(guī)劃路徑點即車輛在當前點處尋找下一步的目標點,直到到達終點。每一步規(guī)劃所得路徑點需避開障礙物所在位置,以保證車輛運動的安全性。這一系列路徑點組成了車輛的全局路徑。
本文采用深度Q網(wǎng)絡(luò)(Deep Q Network, DQN)[15]在位置點L(t)尋找下一路徑點L(t+1)。DQN使無人車不斷與環(huán)境進行交互獲得獎勵信息,根據(jù)獎勵信息進行學(xué)習(xí),無需任何先驗知識,最終學(xué)習(xí)到最優(yōu)策略,并按照最優(yōu)策略執(zhí)行。DQN算法使用主網(wǎng)絡(luò)輸入狀態(tài)S(t)得到動作空間中各動作的值Q(S(t), a(t)),根據(jù)動作值使用ε貪婪策略從動作空間中選擇執(zhí)行一個動作a(t),從而得到下一狀態(tài)S(t+1)和獎勵R(t),將S(t)、a(t)、S(t+1)和R(t)作為一組樣本存放到回放記憶池中,從回放記憶池中隨機抽取樣本,使用目標值網(wǎng)絡(luò)協(xié)同R(t)得到更新目標值,根據(jù)更新目標值得到損失函數(shù),再使用損失函數(shù)更新主網(wǎng)絡(luò)。
主網(wǎng)絡(luò)輸入狀態(tài)S(t)由車輛當前位置L(t)、障礙物位置以及終點位置所組成。本文未設(shè)計動作空間,但為無人車設(shè)計了可選路徑點空間,它包含當前位置點L(t)的上、下、左、右4個點,每次使用神經(jīng)網(wǎng)絡(luò)選擇一個點作為下一路徑點L(t+1)。獎勵R(t)根據(jù)所選下一路徑點與障礙物、目標點的關(guān)系得到,R(t)如式(1)所示:
(1)
在本文中,使用V(S(t), L(t+1))代替Q(S(t), a(t))用來評估當前狀態(tài)S(t)下選擇的下一路徑點的優(yōu)劣程度。
DQN訓(xùn)練過程如圖1所示。
在訓(xùn)練完成之后,可使用訓(xùn)練得到的主網(wǎng)絡(luò)規(guī)劃得到車輛從起點到終點的路徑點,路徑點規(guī)劃流程如圖2所示。如果主網(wǎng)絡(luò)的實際應(yīng)用環(huán)境相較于訓(xùn)練環(huán)境障礙物的分布情況發(fā)生變化,在規(guī)劃路徑點時可能會碰上新出現(xiàn)的障礙物。為避免碰撞的發(fā)生,在規(guī)劃路徑點時增加避障流程,避免選擇障礙物所在位置為路徑點。
1.2 路徑點跟蹤控制
在規(guī)劃得到路徑點之后,需要控制相鄰兩個路徑點之間的運動。路徑跟蹤控制需要根據(jù)相鄰的3個路徑點L(t)、L(t+1)、L(t+2)進行判斷,主要分為以下兩種情況:
(1)若L(t)、L(t+1)、L(t+2)在同一條直線上,車輛從L(t)到L(t+1)的過程中無需轉(zhuǎn)向,按恒定速度、恒定航向角沿直線運動即可。相鄰路徑點直線關(guān)系如圖3所示。
(2)若L(t)、L(t+1)、L(t+2)不在同一條直線上,根據(jù)本文采用的阿克曼轉(zhuǎn)向模型,車輛無法實現(xiàn)原地轉(zhuǎn)向,即車輛不能在到達L(t+1)后,在L(t+1)原地將航向角調(diào)整到指向L(t+2)的方向。因此,車輛要在從L(t)到L(t+1)的過程中完成轉(zhuǎn)向,在到達L(t+1)時航向角就已經(jīng)調(diào)整為指向L(t+2)的方向,也就是說在從L(t)到L(t+1)的過程中,車輛要從L(t)處的狀態(tài)s(t)調(diào)整成L(t+1)處的狀態(tài)s(t+1),狀態(tài)s(t)如式(2)所示:
(2)
式中:px(t)、py(t)、ψ(t)分別表示t時刻車輛的橫縱坐標以及航向角。相鄰路徑點轉(zhuǎn)向關(guān)系如圖4所示。
1.2.1 車輛運動學(xué)模型
圖5是車輛運動學(xué)模型。
將四輪車簡化為兩輪單車模型。圖5中,A為車輛前輪的中心點,B為車輛后輪的中心點,C是車輛的質(zhì)心;lr是B點到C點的距離,lf是A點到C點的距離,lr+lf=l為車輛的軸距;δf和δr分別為車輛前輪轉(zhuǎn)角和后輪轉(zhuǎn)角;車輛的速度為v,其與車輛縱軸的夾角為β;ψ為車輛的航向角,描述了車輛的前進方向。在ΔOCA和ΔOBC中,由正弦定理可得:
(3)
(4)
(5)
(6)
(7)
1.2.2 局部轉(zhuǎn)向路徑跟蹤
由于在轉(zhuǎn)彎時設(shè)定為恒定低速轉(zhuǎn)彎,即v不變,所以車輛的控制量為前輪轉(zhuǎn)角δf。使用SNN在每一步選擇車輛的前輪轉(zhuǎn)角,以及在每一步輸入當前位置與目標點之間的位置差向量,通過神經(jīng)網(wǎng)絡(luò)得到各前輪轉(zhuǎn)角的動作值,根據(jù)動作值選擇前輪轉(zhuǎn)角,控制車輛的每一步運動。SNN如圖6所示。
圖6中p(t)表示在局部轉(zhuǎn)向過程中車輛當前位置與目標點之間的位置差向量。由于車輛在轉(zhuǎn)向過程中連續(xù)兩個位置的坐標相近,如果直接將兩個位置與目標點之間的坐標差輸入神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)可能無法區(qū)分,因此采用位置差向量增加區(qū)分度。t時刻位置差向量p(t)的計算方法如下:將t時刻車輛橫坐標與目標點橫坐標之間的坐標差xg-xt轉(zhuǎn)化到一個10×M的矩陣中,該矩陣的行依次對應(yīng)“0~9”共10個數(shù)字,列對應(yīng)xg-xt值的各數(shù)位,若xg-xt的第m(m的取值范圍為
[1, M])位數(shù)字為n,則矩陣的第m列第n+1行所對應(yīng)元素為1,該列的其余元素為0;將橫縱坐標差分別轉(zhuǎn)換為一個矩陣,再將橫縱坐標差對應(yīng)的矩陣分別按列展開后拼接成一個列向量,即為位置差向量p(t)。
V(δf1), V(δf2), ..., V(δf21)表示車輛前輪轉(zhuǎn)角的動作值,本文設(shè)置21個前輪轉(zhuǎn)角動作,前輪轉(zhuǎn)角范圍為[-30°,30°],相鄰兩個動作之間相差3°。
在SNN訓(xùn)練時,每一步輸入位置差向量p(t),輸出各前輪轉(zhuǎn)角的動作值,根據(jù)動作值選擇前輪轉(zhuǎn)角執(zhí)行操作,執(zhí)行操作后車輛到達下一位置,將下一位置的狀態(tài)與局部轉(zhuǎn)向目標點狀態(tài)比較,得到所選前輪轉(zhuǎn)角的獎勵R(t),使用R(t)更新SNN。其中,局部轉(zhuǎn)向目標點狀態(tài)如式(8)所示:
(8)
式中:px(g)、py(g)、ψ(g)分別表示局部轉(zhuǎn)向目標點的橫縱坐標及航向角。R(t)的計算如式(9)所示:
(9)
SNN的訓(xùn)練流程如圖7所示。
在SNN訓(xùn)練完成之后,車輛使用訓(xùn)練后的SNN跟蹤轉(zhuǎn)向路徑點,完成局部轉(zhuǎn)向運動,局部轉(zhuǎn)向路徑跟蹤控制流程如圖8所示。
將上述路徑點規(guī)劃與路徑點跟蹤控制結(jié)合得到車輛運動規(guī)劃的全流程,完成車輛從起點至終點的完整運動流程,車輛運動規(guī)劃全流程如圖9所示。在完成轉(zhuǎn)向路徑跟蹤之后,存在一定的誤差,圖9中的L'(t+1)就是跟蹤局部轉(zhuǎn)向路徑完成后所得到的與L(t+1)誤差很小的點。
2 仿真與結(jié)果分析
為驗證算法效果,通過MATLAB進行仿真,并根據(jù)結(jié)果做出分析。
2.1 路徑點規(guī)劃仿真結(jié)果
圖10為按照路徑點規(guī)劃方法所得的路徑點,其中,車輛的行駛區(qū)域面積為30×30,空心圈和大實心圓分別表示位于(5,5)的全局起點和位于(25,25)的全局終點,空心方塊和實心方塊分別表示訓(xùn)練環(huán)境中的原始障礙物和實際路徑點規(guī)劃環(huán)境中的新障礙物,小圓圈是規(guī)劃所得的一系列路徑點,將各路徑點相連就得到了一條從起點到終點的全局路徑。從圖10中可以看出:規(guī)劃所得的各路徑點可以避開各障礙物并能順利到達任務(wù)終點。
2.2 局部轉(zhuǎn)向路徑跟蹤仿真結(jié)果
針對圖10的全局路徑中存在轉(zhuǎn)彎的情況,在路徑跟蹤過程中需控制車輛在到達拐點前將航向角調(diào)整為朝向下一路徑點,使車輛完成狀態(tài)調(diào)整。以完成狀態(tài)從(2,2,π/2)調(diào)整為(2,3,0)為例,局部轉(zhuǎn)向路徑跟蹤如圖11所示。
圖11中,空心圈代表車輛,實心圓代表目標點,黑色曲線是得到的轉(zhuǎn)向運動軌跡。從圖11中可以看出:車輛的航向角ψ從π/2調(diào)整到了0,雖然調(diào)整存在位置誤差,但后續(xù)車輛可以從該誤差點繼續(xù)規(guī)劃路徑點,完成從起點到終點的路徑點規(guī)劃以及路徑點跟蹤。
2.3 車輛運動規(guī)劃全流程仿真結(jié)果
將路徑點規(guī)劃與路徑點跟蹤相結(jié)合,車輛從起點至終點的全局運動軌跡示例如圖12所示,圖12中元素的意義與圖10中的相同。從圖12中可以看出:在規(guī)劃得到路徑點的基礎(chǔ)上,針對規(guī)劃所得的相鄰兩個路徑點之間需要轉(zhuǎn)向的情況,車輛在從當前路徑點前往下一路徑點的過程中就已經(jīng)將航向角調(diào)整為所需的角度,避免出現(xiàn)車輛在到達下一路徑點之后,在下一路徑點處再調(diào)整航向角的情況,提高了車輛移動效率,然后在下一路徑點重復(fù)上述過程,直到到達任務(wù)終點,使車輛按照平滑連續(xù)的路徑行駛。
表1統(tǒng)計了5次仿真車輛最終到達終點的橫縱坐標誤差。由表1可知,橫坐標誤差的平均值為0.103 33,縱坐標誤差的平均值為0.019 784,位置誤差為0.105 21,認為車輛到達了目標點。
3 結(jié) 語
本文研究了無人車的運動規(guī)劃問題,提出了一種使用SNN控制車輛實現(xiàn)轉(zhuǎn)向路徑跟蹤的方法,使車輛跟蹤路徑點的同時完成航向角調(diào)整。本文使用DQN規(guī)劃得到路徑點,基于規(guī)劃得到的路徑點,判斷當前路徑點到下一路徑點的情況:對于兩路徑點之間無需轉(zhuǎn)向的情況,車輛沿直線運動到下一路徑點;對于兩路徑點之間需轉(zhuǎn)向的情況,使用SNN控制車輛運動。仿真結(jié)果表明,DQN規(guī)劃得到的路徑點所組成的全局路徑可以到達終點,使用SNN可以實現(xiàn)在從當前路徑點前往下一路徑點的過程中,將航向角調(diào)整為所需角度的目標,避免出現(xiàn)車輛在到達下一路徑點之后,在下一路徑點處再調(diào)整航向角的情況,實現(xiàn)車輛運動過程的平滑連續(xù),提高車輛移動效率。
參考文獻
[1]王鵬,雷誠.自動駕駛汽車對城市發(fā)展的影響及規(guī)劃應(yīng)對[J].規(guī)劃師,2019,35(8):79-84.
[2] CHEN W, MA M, YE Y, et al. IoT service based on jointcloud blockchain: the case study of smart traveling [C]// 2018 IEEE Symposium on Service-Oriented System Engineering. Bamberg, Germany: IEEE, 2018: 216-221.
[3]郭丙華.非完整移動機器人運動規(guī)劃研究[D].廣州:華南理工大學(xué),2003.
[4]馮酉南.某無人駕駛車輛路徑規(guī)劃算法設(shè)計與實驗研究[D].長春:吉林大學(xué),2019.
[5] ZHANG Z, WANG S, ZHOU J. A-star algorithm for expanding the number of search directions in path planning [C]// 2021 2nd International Seminar on Artificial Intelligence, Networking and Information Technology. Shanghai, China: IEEE, 2021: 208-211.
[6]王中玉,曾國輝,黃勃,等.改進A*算法的機器人全局最優(yōu)路徑規(guī)劃[J].計算機應(yīng)用,2019,39(9):2517-2522.
[7]徐保來,管貽生,蘇澤榮,等.改進動態(tài)窗口法的阿克曼移動機器人局部路徑規(guī)劃器[J].機電工程技術(shù),2016,45(9):21-26.
[8]槐創(chuàng)鋒,郭龍,賈雪艷,等.改進A*算法與動態(tài)窗口法的機器人動態(tài)路徑規(guī)劃[J].計算機工程與應(yīng)用,2021,57(8):244-248.
[9] KHABIT O. Real-time obstacle avoidance for manipulators and mobile robots [C]// 1985 IEEE International Conference on Robotics and Automation. Saint Louis, MO, USA: IEEE, 1985: 500-505.
[10]楊凱,龍佳,馬雪燕,等.移動機器人改進人工勢場的路徑規(guī)劃方法研究[J].現(xiàn)代電子技術(shù),2020,43(7):141-145.
[11]朱紅秀,鄭權(quán),杜闖,等.改進RRT算法用于電磁驅(qū)動機器魚路徑規(guī)劃[J].火力與指揮控制,2020,45(10):100-105.
[12]吳晟博,曹理想.無人駕駛車輛軌跡跟蹤控制研究[J].汽車實用技術(shù),2020(1):51-53.
[13]龔毅.一種無人駕駛車輛路徑跟蹤控制方式研究[D].南京:南京理工大學(xué),2014.
[14]石振新,馮劍波,王衍學(xué).基于MPC和模糊控制的智能汽車路徑追蹤研究[J].車輛與動力技術(shù),2022(2):7-11.
[15] MNIH V, KAVUKCUOGLU K, SILVER D, et al. Playing atari with deep reinforcement learning [EB/OL]. (2013-12-19). https://doi.org/10.48550/arXiv.1312.5602.
作者簡介:王 陽(1985—),男,博士,講師,研究方向為移動機器人主動嗅覺、機場地面保障設(shè)備、自動駕駛車輛。
張 沖(1994—),男,在讀碩士研究生,研究方向為自動駕駛車輛。
張一宸(1985—),男,碩士,研究方向為機場地面保障設(shè)備。
曲振東(2000—),男,在讀碩士研究生,研究方向為自動駕駛車輛。
桂成一(2000—),男,在讀碩士研究生,研究方向為自動駕駛車輛。
姬雨初(1986—),男,博士,講師,研究方向為物聯(lián)網(wǎng)、無線通信、機場地面保障設(shè)備、自動駕駛車輛。
收稿日期:2024-01-12 修回日期:2024-02-27
基金項目:中國民航大學(xué)中央高?;究蒲袠I(yè)務(wù)費項目(3122019 045)