劃從零搭建:行為決策、運動規(guī)劃與工程避坑指南)
簡介自動駕駛決策規(guī)劃是自動駕駛系統(tǒng)中的核心環(huán)節(jié)。這份PDF講義面向自動駕駛初學者、高校相關專業(yè)學生及剛入門的工程師清晰梳理預測、決策與規(guī)劃的整體架構幫助讀者快速建立知識框架。資源包內(nèi)僅含1個PDF文件容量約7.3MB下載后即可閱讀截至目前已有136人學習/下載該資料適合作為自學入門或課程預習材料。內(nèi)容涵蓋自動駕駛的定義、級別與分類、系統(tǒng)組成并梳理了從DARPA挑戰(zhàn)賽到Waymo、百度Apollo等標志性發(fā)展歷程重點剖析預測決策規(guī)劃模塊的重要性與所需的課程基礎技能同時附有相關參考文獻。整份講義結構緊湊、要點突出能幫助讀者在較短時間內(nèi)了解自動駕駛決策規(guī)劃的研究背景與核心命題。1. 自動駕駛決策規(guī)劃先想清楚“下一步做什么”再談怎么開新手最容易把決策規(guī)劃誤解成“給車找一條路”實際上它回答的是兩個遞進問題在當前路口、當前車流、當前信號下這輛車應該做什么以及具體怎么走。前者是行為決策后者是運動規(guī)劃。一套能上路的決策規(guī)劃系統(tǒng)必須在幾百毫秒內(nèi)完成從場景理解到軌跡輸出的整個鏈路而且要保證這個輸出是可解釋、可審查、可回退的。這個模塊決定了乘客是覺得“這車像個老司機”還是“這車像個剛拿駕照的愣頭青”。本文面向想從零搭建或接手維護決策規(guī)劃模塊的工程師講清楚這套東西的內(nèi)部結構、最小可復現(xiàn)的落地路徑以及那些只在實車和復雜場景里才會暴露的坑。2. 決策規(guī)劃在自動駕駛鏈路里的位置上游吃什么、下游交什么2.1 與感知、預測、控制的邊界誰為誰服務自動駕駛軟件棧里感知負責回答“周圍有什么”預測負責回答“這些東西接下來會怎么動”決策規(guī)劃負責回答“我們接下來做什么、怎么動”控制負責把規(guī)劃出來的軌跡真正執(zhí)行到轉向和加減速上。四個模塊的接口關系很明確感知輸出目標列表和車道線預測輸出每個目標未來數(shù)秒的軌跡概率決策規(guī)劃接收這些信息后生成一條滿足動力學約束、交規(guī)和舒適性要求的軌跡下發(fā)給控制模塊跟蹤。這里有一個常見誤用很多人把預測并進決策規(guī)劃里做理由是“我根據(jù)當前距離直接決定跟車還是剎車就行了”。這在低速園區(qū)場景能糊弄過去一上城市快速路就翻車。原因在于決策規(guī)劃需要的是未來時域上的交互判斷而不是當前時刻的瞬時距離。旁車道車輛未來2秒會不會切入、前車剎車燈亮起后會不會急停這些判斷如果全部堆進決策模塊規(guī)則會迅速膨脹到無法維護。所以常見做法是保持預測作為獨立輸入源決策規(guī)劃只消費預測結果自己專注在行為選擇和軌跡生成上。從數(shù)據(jù)流上看決策規(guī)劃的輸入至少包含四類高精地圖或等效的路線信息、本車狀態(tài)位置、速度、航向、加速度、障礙物預測軌跡、交通規(guī)則信息信號燈、標志、路權。輸出只有一類一條帶時間戳的軌跡通常是未來6到8秒內(nèi)、每隔0.1秒一個路徑點每個點包含位置、速度、加速度和航向角。2.2 行為決策與運動規(guī)劃的分工一個管“做什么”一個管“怎么做”把決策規(guī)劃拆成兩層是我見過的所有工程化方案里最穩(wěn)的做法。行為決策層接收場景抽象結果輸出一個離散的行為指令比如“當前車道跟車”“向左換道”“路口停車等待”“減速讓行”。運動規(guī)劃層接收這個指令輸出一條具體軌跡。拆開的核心原因是復雜度隔離行為決策要處理的是交規(guī)、路權、禮讓規(guī)則這種偏離散的邏輯而運動規(guī)劃要處理的是曲線、約束、優(yōu)化這種偏連續(xù)的計算兩者混在一起任何一方的改動都會牽連另一方。兩層之間的接口需要精心設計。我一般把行為決策的輸出定義為一個結構化的意圖元組包含三部分目標參考線比如左換道的目標車道中心線、行為類型跟車/巡航/停車/換道/繞障、約束條件最大速度限制、允許的橫向偏移范圍、最短完成時間。運動規(guī)劃拿到這個意圖元組后在參考線附近做軌跡采樣或優(yōu)化求解而不是直接從頭生成任意軌跡。這樣行為決策負責“選對”運動規(guī)劃負責“做穩(wěn)”。這里有一個值得反復強調(diào)的原則行為決策寧可保守運動規(guī)劃不可魯莽。因為行為決策錯了后果是走錯路或者過度等待最多是效率損失運動規(guī)劃錯了直接表現(xiàn)為碰撞或劇烈車身姿態(tài)變化。所以在系統(tǒng)設計上運動規(guī)劃必須有獨立于行為決策的安全兜底比如實時計算緊急制動軌跡的能力防止上游邏輯出錯時無路可走。表兩類方法的選型傾向維度規(guī)則式狀態(tài)機/決策樹學習式模仿學習/強化學習可解釋性高每條邏輯能回溯低黑匣子特征明顯開發(fā)周期快適合快速跑通慢需要數(shù)據(jù)閉環(huán)和訓練設施長尾覆蓋靠堆規(guī)則易膨脹靠數(shù)據(jù)理論上覆蓋更廣安全認證更容易通過審查需要額外做形式化驗證適用階段量產(chǎn)前的原型和早期落地數(shù)據(jù)量積累后的體驗優(yōu)化3. 搭建最小決策規(guī)劃框架狀態(tài)機、采樣與代價評估3.1 場景抽象把感知輸出變成決策能用的結構化輸入在寫任何決策邏輯之前先要做場景抽象這是新手最容易跳過的環(huán)節(jié)。感知輸出的原始數(shù)據(jù)是目標列表、車道線點集、紅綠燈狀態(tài)直接拿這些東西寫規(guī)則會寫成一團亂麻。我一般把這個抽象層定義為場景快照Scene Snapshot在一個統(tǒng)一的數(shù)據(jù)結構里把決策需要用到的要素全部整理好本車所在車道、左右相鄰車道是否可通行、前方最近障礙物的距離和速度、本車道限速、當前信號燈狀態(tài)、路線規(guī)劃給出的下一段路徑方向。場景快照里最關鍵的是把障礙物映射到車道坐標系下。注意這里我強調(diào)的是車道坐標系而不是車輛坐標系。車體坐標系適合做控制不適合做決策因為決策要回答的是“我在車道上的哪個位置、和前車差多少”這在車道坐標系下直接就是一個縱向距離值。常見做法是把全局笛卡爾坐標投影到參考線上得到每個目標的縱向距離s和橫向偏移l這個(s,l)表示一旦建立跟車、換道、路口判斷全部變成了基于s和l的比較運算邏輯瞬間清晰。場景抽象還有一個重要作用隔離感知噪聲。原始感知目標的尺寸、速度時常抖動直接用于決策會導致行為頻繁跳變。我在場景快照里會對目標做時間濾波比如對前車距離做一階低通濾波對目標存在的置信度設置閾值置信度不足的目標只做威懾性減速不觸發(fā)換道等激進決策。3.2 行為決策狀態(tài)機用最少的狀態(tài)覆蓋最多的場景狀態(tài)機是行為決策層最常見的工程實現(xiàn)沒有之一。核心思想是把駕駛行為建模成有限個狀態(tài)比如巡航、跟車、換道、停車等待、通過路口狀態(tài)之間通過遷移條件切換。它的優(yōu)勢是確定性強、可調(diào)試、符合人類對駕駛邏輯的認知。下面是一個典型的狀態(tài)機骨架from enum import Enum from dataclasses import dataclass class BehaviorState(Enum): CRUISE 巡航 FOLLOW 跟車 LANE_CHANGE 換道 STOP_WAIT 停車等待 EMERGENCY_STOP 緊急停車 dataclass class SceneSnapshot: ego_speed: float # 本車速度 m/s lead_distance: float # 前車縱向距離 m lead_speed: float # 前車速度 m/s is_left_lane_free: bool is_right_lane_free: bool has_stop_signal: bool time_to_decision: float # 用于防止狀態(tài)頻繁切換的駐留計時 class BehaviorDecision: def __init__(self): self.state BehaviorState.CRUISE self.state_hold_time 0.0 # 當前狀態(tài)已持續(xù)時間 def decide(self, snap: SceneSnapshot, dt: float) - BehaviorState: # 緊急停車優(yōu)先級最高不參與正常狀態(tài)遷移 if snap.lead_distance 2.0: return self._enter_state(BehaviorState.EMERGENCY_STOP, dt) # 根據(jù)前方車輛距離和速度判斷是否從巡航切入跟車 if self.state BehaviorState.CRUISE: if snap.lead_distance 30.0 and snap.lead_speed snap.ego_speed: return self._enter_state(BehaviorState.FOLLOW, dt) elif self.state BehaviorState.FOLLOW: # 跟車狀態(tài)加了駐留條件前車距離拉大到40米以上才退出 if snap.lead_distance 40.0 and snap.lead_speed snap.ego_speed: return self._enter_state(BehaviorState.CRUISE, dt) # 換道、路口的處理邏輯按同樣的模式擴展 return self.state def _enter_state(self, new_state: BehaviorState, dt: float): if new_state ! self.state: self.state_hold_time 0.0 else: self.state_hold_time dt self.state new_state return self.state這段代碼的邏輯要點全在“駐留時間”state_hold_time這個變量上。自動駕駛里有個非常典型的失控場景叫決策震蕩車在“跟車”和“巡航”之間以幾赫茲的頻率來回切換表現(xiàn)就是乘客感覺到車輛一直在輕微地一竄一竄。引入駐留時間后狀態(tài)切換必須滿足最低持續(xù)時間這個時間我一般設置在0.5到1.5秒之間具體取值取決于上游感知的抖動程度。感知噪聲大就把駐留時間設長一些代價是決策反應變慢感知穩(wěn)定就設短一些保證車輛對動態(tài)場景響應及時。另一個要點是緊急停車狀態(tài)獨立于正常狀態(tài)機之外且優(yōu)先級最高。這樣設計是為了防止正常狀態(tài)遷移邏輯在極端場景下產(chǎn)生“死鎖”——比如前車急停時狀態(tài)機還在糾結是否符合換道條件而緊急停車已經(jīng)直接接管。工程上這叫降級路徑優(yōu)先是決策模塊的安全底線。3.3 運動規(guī)劃采樣生成候選軌跡并打分行為決策給出了意圖運動規(guī)劃要把意圖變成軌跡。最常見且對新手最友好的方法是采樣法在Frenet坐標系下生成一批候選軌跡然后用代價函數(shù)逐一評價選代價最低的作為輸出。Frenet坐標系在這里的優(yōu)勢是縱向運動速度控制和橫向運動車道內(nèi)偏移可以解耦計算生成軌跡的語義非常清晰。import numpy as np def generate_candidates(s0, s_dot0, l0, l_dot0, l_ddot0, dt0.1, horizon6.0, lateral_samples5): 生成橫向偏移采樣對應的候選軌跡族 candidates [] # 橫向目標偏移l_target從-2.0到2.0米覆蓋相鄰車道范圍 for l_target in np.linspace(-2.0, 2.0, lateral_samples): # 用五次多項式擬合橫向運動保證初始位置/速度/加速度連續(xù) l_traj np.poly1d(np.polyfit( [0, horizon], [l0, l_target], deg2 # 簡化示例工程上會用五次多項式約束邊界狀態(tài) )) # 縱向采用梯形速度規(guī)劃目標速度從當前速度向限速過渡 s_dot_target min(s_dot0 2.0, 16.0) # 最大加速度2m/s^2, 限速16m/s s_traj np.zeros(int(horizon / dt) 1) for i, t in enumerate(np.arange(0, horizon dt, dt)): s_traj[i] s0 s_dot0 * t 0.5 * 2.0 * t * t candidates.append((s_traj, l_traj, l_target)) return candidates def evaluate_candidates(candidates, obstacles): best_cost float(inf) best_traj None for s_traj, l_traj, l_target in candidates: cost 0.0 # 代價1偏離參考線太多橫向偏移代價 cost abs(l_target) * 1.5 # 代價2與障礙物的縱向距離越近代價越高 for obs in obstacles: if obs[s] s_traj[-1] and abs(obs[l] - l_target) 1.5: cost 10.0 / max(obs[s] - s_traj[0], 0.1) # 代價3速度越低代價越高鼓勵順暢通行 cost (16.0 - s_traj[-1] / horizon) * 0.2 if cost best_cost: best_cost cost best_traj (s_traj, l_traj) return best_traj, best_cost這個示例里的代價函數(shù)故意做得簡單但三個代價項代表了運動規(guī)劃中最核心的權衡維度橫向偏差代價懲罰“亂并線”障礙物距離代價懲罰“貼臉走”速度代價懲罰“龜速”。實際工程里的代價函數(shù)會擴展到十幾個量級比如加加速度舒適性、換道完成時間效率、與預測軌跡的交匯概率風險但整體框架都是這個采樣加打分的樣子。參數(shù)調(diào)整上最值得認真調(diào)的是橫向采樣間隔和軌跡時長。橫向采樣間隔決定車輛在車道內(nèi)的“細膩程度”間隔太大比如1米以上會漏掉最優(yōu)偏移間隔太小比如0.1米會導致相鄰候選軌跡差異極小代價函數(shù)對噪聲極其敏感軌跡輸出會抖。我常用的起始值是0.5米。軌跡時長則決定了規(guī)劃的前瞻性6秒在城市道路夠用上了高速建議加到8秒以上太低會導致車輛對遠距離風險毫無意識太高則計算量翻倍且遠期軌跡在動態(tài)場景里基本沒用。3.4 軌跡選擇的安全校驗代價最低不等于安全采樣打分之后還差最后一道工序——安全校驗。代價最低的軌跡只是在“相對好”里面排第一不代表它物理上安全。這一步要做三件事第一檢查軌跡上的每個點是否超出道路邊界超出就剔除第二檢查軌跡與控制能力是否匹配比如某個時刻要求的方向盤轉角超出車輛物理極限說明這條軌跡執(zhí)行不了第三也是最容易遺漏的檢查候選軌跡與障礙物預測軌跡是否存在時空交集。時空交集檢查是第四維度的檢查——不止看空間上是否經(jīng)過同一個位置還要看時間上是否同時到達。兩車經(jīng)過同一路口位置但時間錯開2秒物理上是安全的只有空間和時間都重疊才算碰撞風險。我在做這項檢查時會把障礙物的預測軌跡也展開成未來數(shù)秒的路徑點序列然后逐幀對比本車候選軌跡和障礙物軌跡的位置差位置差同時小于縱向閾值和橫向閾值的幀標記為風險幀。只要存在風險幀該候選軌跡直接否決不參與代價排序。4. 在仿真環(huán)境里跑通閉環(huán)模塊接口與評測指標4.1 最小閉環(huán)的模塊連接順序有了決策、規(guī)劃模塊后下一步是把它們接到一個仿真閉環(huán)里跑通。閉環(huán)的意思是感知輸入仿真環(huán)境給的→ 預測 → 決策 → 規(guī)劃 → 控制 → 車輛模型狀態(tài)更新 → 再回到感知輸入形成一個循環(huán)。很多新手在這里犯的錯誤是只做開環(huán)測試——把一段錄好的感知數(shù)據(jù)喂給決策規(guī)劃看輸出軌跡是否合理然后就說“系統(tǒng)跑通了”。開環(huán)測試只能驗證邏輯正確性完全驗證不了時間延遲、執(zhí)行偏差和交互行為這三類閉環(huán)才能暴露的問題。我建議的最小閉環(huán)包含四個文件或模塊仿真接口從仿真器讀取本車狀態(tài)和障礙物信息、決策規(guī)劃節(jié)點消費接口數(shù)據(jù)產(chǎn)出軌跡、控制器追蹤軌跡輸出油門剎車轉向、車輛模型仿真器內(nèi)置或自建簡易自行車模型。模塊之間用統(tǒng)一的消息結構傳遞數(shù)據(jù)決策規(guī)劃節(jié)點不關心上游是仿真器還是實車傳感器只認固定的消息類型。接口先行這是讓決策規(guī)劃模塊之后能平滑遷移到實車的前提。4.2 仿真配置的典型參數(shù)與場景清單仿真器選擇不重要重要的是場景配置必須覆蓋決策模塊的核心邊界。我一般會建一個最小場景集包含五類前車急剎測試跟車狀態(tài)切換和緊急停車、旁車切入測試換道決策的時機、路口無保護左轉測試路權判斷和停車等待、行人橫穿測試減速讓行、前車低速蠕動測試換道超車的收益判斷。這五個場景跑通了決策規(guī)劃主流程基本就站住了。表最小閉環(huán)仿真配置建議參數(shù)項建議取值說明仿真步長10-20 ms控制周期一般比決策周期快5到10倍決策周期100 ms與下游控制解耦防止高頻率決策引發(fā)震蕩軌跡時長6-8 s城市道路取6秒高速場景取8秒軌跡點間隔0.1 s太疏則控制插值誤差大太密則計算量大駐留時間0.5-1.5 s感知噪聲大取上限場景簡單取下限安全距離閾值2.0-3.0 m低于這個距離強制觸發(fā)緊急停車4.3 評估決策規(guī)劃質(zhì)量的量化指標閉環(huán)跑起來之后要回答“這套系統(tǒng)到底行不行”不能光靠肉眼在可視化界面里看方向盤抖不抖。我一直在用的評估指標分成三層。安全層看最小TTC碰撞時間和最小縱向距離這兩個指標低于閾值直接判定失敗沒有討價還價空間。舒適層看加速度變化率加加速度城市道路工況下超過4 m/s3乘客就會明顯不適。效率層看平均車速和完成特定路段的耗時用來衡量決策是否過于保守。這三個層次的指標必須分開評價不能合成一個綜合分。合成分會掩蓋問題的本質(zhì)比如某段路平均車速很高但中間有一次急剎把乘客嚇得不輕綜合分可能顯示良好實際體驗卻很糟糕。正確做法是每次仿真運行后把三個指標分別打點畫趨勢安全指標一票否決舒適和效率指標做調(diào)參依據(jù)。5. 決策規(guī)劃避坑指南五個高頻翻車現(xiàn)場與解決路徑5.1 決策震蕩車輛在路口和車流中反復猶豫現(xiàn)象是車輛在無保護左轉路口出現(xiàn)“走一步、停一步、再走一步、再?!钡娜湫谢蛘咴谕欢温飞项l繁變換目標車道乘客明顯感到車輛在“糾結”。原因在于行為決策層對連續(xù)時間上的場景變化過度敏感上一幀判“可以通過”下一幀感知到側方來車速度快立即切成“等待”再過一幀對方減速又切回“通過”。解決有三個關鍵點。第一給每個狀態(tài)遷移加上駐留時間這個前面代碼里已經(jīng)實現(xiàn)。第二引入決策歷史緩沖記錄過去1秒內(nèi)的決策序列只有連續(xù)3幀以上判定同一個行為才真正切換狀態(tài)。第三針對路口這種高復雜度場景設置獨立的決策狀態(tài)——進入路口區(qū)域后鎖定“通過”或“等待”直到完全離開路口再恢復常規(guī)狀態(tài)機從機制上杜絕中途反悔。5.2 規(guī)劃軌跡“看起來平滑、執(zhí)行起來發(fā)飄”現(xiàn)象是可視化界面上軌跡曲線非常平滑但實車或高精度車輛模型執(zhí)行時方向盤頻繁修正車身出現(xiàn)輕微的左右搖擺。原因是采樣法生成的軌跡在空間上平滑但相鄰兩個決策周期的軌跡時間序列沒有連續(xù)性約束。上一幀規(guī)劃的末點和新一幀規(guī)劃的起點之間存在加速度跳變控制器在切換追蹤目標時會產(chǎn)生抖動。解決問題的手段叫軌跡延續(xù)性約束。具體做法是每次規(guī)劃時把上一幀輸出軌跡的后半段作為新一幀采樣的一個必選候選并且新軌跡的前三個點必須與上一幀軌跡的末端嚴格一致包括位置、速度和加速度。付出代價是動態(tài)場景下的響應會慢半拍換來的是執(zhí)行端極其明顯的穩(wěn)定收益。我傾向于把這個約束做成可配置項在換道這類主動行為中暫時放寬在跟車巡航中嚴格執(zhí)行。5.3 預測與規(guī)劃不同步時間戳錯位引發(fā)的“幽靈剎車”現(xiàn)象是車輛在高速巡航時突然無征兆地深踩剎車但周圍看起來什么都沒有。排查后發(fā)現(xiàn)是預測模塊輸出的障礙物軌跡帶的不是當前時間戳而是上游感知模塊的緩存時間戳。決策規(guī)劃拿到的未來軌跡其實是幾百毫秒之前預測的結果前車早就不在那個位置了系統(tǒng)卻在為一個“幽靈位置”計算碰撞風險。解決方式是數(shù)據(jù)老化檢查。在決策規(guī)劃的消息入口處強制檢查每條輸入的時間戳與當前系統(tǒng)時間之差超過200毫秒的場景目標直接標記為“陳舊數(shù)據(jù)”不參與碰撞判斷只參與威懾性減速。同時預測模塊輸出的未來軌跡必須帶完整的相對時間軸比如當前時刻為該預測軌跡的0秒決策規(guī)劃按時間軸對齊取點而不是假設軌跡第一個點就是“當前”點。5.4 換道決策不關心后方來車軌跡合理但場景致命現(xiàn)象是換道軌跡本身非常標準——曲率連續(xù)、橫向偏移順滑、目標點選得很正但執(zhí)行過程中后方車輛高速逼近本車在匯入瞬間幾乎被追尾。原因是運動規(guī)劃層只對前向和側向障礙物做了代價評估后向障礙物完全漏掉了而行為決策層只判斷了“目標車道是否空閑”沒有判斷“目標車道后方的車輛是否允許我插入”。解決要在兩個層面同時補。行為決策層檢查目標車道時不僅要看有沒有車還要計算后方來車的TTC和相對速度差只有相對速度差和距離同時滿足條件才發(fā)起換道。運動規(guī)劃層在生成換道軌跡時把目標車道后方的預測軌跡納入代價評估如果換道過程中與后方車輛的距離持續(xù)縮小直接提高該候選軌跡的代價直到否決。5.5 參數(shù)失控規(guī)則和閾值像打補丁一樣越堆越多現(xiàn)象是隨著測試場景增加代碼里出現(xiàn)了大量孤立的閾值數(shù)字——某個路口的等待時間是“3秒”另一條路的變道提前量是“0.8秒”同一類場景的判定條件在不同文件里各寫一份。到后期沒有人敢改任何參數(shù)因為不知道改了這個會不會破壞那個場景。這是決策規(guī)劃項目里最隱蔽的技術債。解決方式是參數(shù)治理從第一天做起。所有場景相關的閾值必須放入一個集中配置結構按“場景類型-參數(shù)名-單位-默認值-來源說明”五個字段管理來源說明里必須寫清楚這個參數(shù)是為哪個場景、什么現(xiàn)象引入的。同時建立回歸測試集每改一個參數(shù)就跑一遍全部仿真場景輸出指標對比表自動標記退化項。這樣參數(shù)從“玄學”變成“可歸因的工程決策”。6. 進階用數(shù)據(jù)回放和離線評測提升決策質(zhì)量而不是繼續(xù)堆規(guī)則把仿真跑通、坑踩過一遍之后決策規(guī)劃能力提升的瓶頸往往不在算法本身而在驗證手段。實車路測成本高、周期長純仿真場景又和真實路況有差距我這兩年最常用的進階方法是數(shù)據(jù)回放把真實路測或實車采集的傳感器數(shù)據(jù)、障礙物列表和本車狀態(tài)完整記錄下來再離線把決策規(guī)劃模塊接上去跑一遍輸出新的決策軌跡和評估指標。這么做有三個好處完全復現(xiàn)當時的場景沒有安全風險可以反復調(diào)試參數(shù)觀看效果變化能夠量化評估“如果當時換了決策邏輯車輛會怎么開”這個反事實問題。數(shù)據(jù)回放做久了自然會發(fā)現(xiàn)規(guī)則式?jīng)Q策的短板集中在高度交互場景——兩車同時爭搶一個路口、行人和車輛互相試探這類場景的“正確答案”是模糊的規(guī)則寫死反而顯得機械。這時候可以考慮引入學習式方法作為補充常見切入路徑是先用人類駕駛數(shù)據(jù)做模仿學習讓模型學習“老司機在交互場景下怎么選擇行為”然后用規(guī)則式系統(tǒng)做安全兜底學習模塊輸出只在規(guī)則系統(tǒng)判定為“模糊場景”時才生效。注意這個過程中要克制住“用學習式完全替換規(guī)則式”的沖動以目前業(yè)界實踐看兩者共存才是工程上最可靠的狀態(tài)。我個人的習慣是每次測試新決策邏輯前先把對應場景的數(shù)據(jù)回放包保存好改一個參數(shù)跑一次回歸把所有發(fā)生過“后悔藥時刻”的場景都記錄在案慢慢就積累成了團隊自己的決策驗證基準。這套基準比任何論文里的公開數(shù)據(jù)集都更能反映你們真實面對的問題也更能說服團隊在決策規(guī)劃上持續(xù)投入。希望幫到你。本文還有配套的精品資源點擊獲取