深入解析Apollo的換道策略及其實際應用
1.介紹
1.1. 換道的功能
#簡單地說, 換道的作用就是從待選地參考線中選擇其中一個參考線, 供Planning 後續模組進行使用.
需要說明的是,Apollo所開源的換道代碼已經經過了大量的刪減,僅保留了一個簡單的框架。許多功能,如主動換道、被動換道(由於障礙物產生)、較為完整的狀態機、換道窗口和Gap的選擇等等都缺失了。本技術文章只展示現有框架上的內容。關於其他換道功能的內容,請期待後續的文章
1.2. 換道狀態機
Apollo 目前的換道狀態機如下:
對狀態機有一下幾點值得注意:
- 這裡的IN_CHANGE_LANE同時包含了換道執行和換道準備兩個階段. 正常情況下應該加以區分. Apollo 採取的是先切換參考線後執行換道動作的方法, 也有友商會採用先執行換道動作在切換參考線的方法(好處是切換參考線的那一幀, 自車的橫向距離接近於0).
- 當前程式碼中並沒有體現出什麼時候會換道失敗. 同樣有理由相信是由於刪除相關代碼導致的.
- 完整的換道狀態應該至少包含: 換道準備, 換道執行, 換道保持, 換道取消, 換道完成等狀態.
#2. 程式碼解析
#2.1. 整體流程
相關程式碼所在路徑: modules/planning/tasks/deciders/lane_change_decider/http://lane_change_decider.cc
- 處理
reference_line_info
為空的例外情況. - 如果配置了強制換道
reckless_change_lane
為true
, 則直接更新Reference Line. - 取得上一幀的換道狀態
prev_status
, 剛進入程式時, 可能prev_status
沒有狀態資訊(!prev_status-> has_status()
), 此時直接認為處於換道完成狀態. - 如果
reference_line_info
的數量為1(即has_change_lane
為false
), 說明自車處在巡跡狀態, 自車目前所在的車道擁有唯一的車道線, 周圍沒有可變車道, 所以直接更新換道狀態即可. - 切換換道的狀態機
- 上一幀處在換道狀態
ChangeLaneStatus::IN_CHANGE_LANE
#: 如果上一幀自車所在的Lane 和這一幀所在的Lane相同, 說明自車還在往目標車道上走. 反之如果上一幀自車所在的Lane 和這一幀所在的Lane 不同, 說明自車已經在目標車道上了, 切換已經完成. - 上一幀處在換道失敗狀態
ChangeLaneStatus::CHANGE_LANE_FAILED
: 如果換道失敗, 則凍結狀態一段時間, 然後切換到正在換道狀態, 為下一次換道做準備. - 上一幀處在換道完成狀態
ChangeLaneStatus::CHANGE_LANE_FINISHED
: 換道成功後同樣凍結一段時間, 然後切換到正在換道狀態, 為下一次換道做準備.這裡凍結時間是為了避免頻繁換道.
2.2. 安全檢查
IsClearToChangeLane
判斷換道是否安全.
- 本安全判斷方法不考慮虛擬障礙物(Virtual Obstacles)和靜態障礙物(Static Obstacles).
- 計算動態障礙物在Reference Line 上面的投影.投影的幾何意義如下圖所示:
- 如果自車正在換道
IsChangeLanePath
, 利用上面計算的投影關係來忽略目標參考線的車道之外的障礙物. - 判斷障礙物的行駛方向是否和自車相同
same_direction
. 根據障礙物與自車的行駛方向的關係和速度關係分別計算前向安全距離與後向安全距離. - 如果自車與障礙物之間的距離大於上面計算的安全距離, 則認為可以安全換道的.
HysteresisFilter
是一種Open Close 邏輯, 目的是增加安全判斷結果的穩定性(上一幀判斷結果認為是安全的, 那麼這一幀就更傾向於給出是安全的判斷,反之亦然).
2.3. 更新Reference Line
需要重寫的內容是:LaneChangeDecider::PrioritizeChangeLane
- #輸入:
<span> </span>is_prioritize_change_lane
. 如果is_prioritize_change_lane
為true
, 則找自車要切換的目標參考線.反之如果is_prioritize_change_lane
為false
, 則找自車目前位置所在的Lane 所在的參考線. -
#reference_line_info->splice(reference_line_info->
##reference_line_info->splice(reference_line_info->##reference_line_info->splice(reference_line_info->
##reference_line_info->splice(reference_line_info->##reference_line_info->splice(reference_line_info->
##reference_line_info->splice(reference_line_info->##reference_line_info->splice(reference_line_info->##reference_line_info->splice(reference_line_info-) begin(),*reference_line_info, iter);將步驟1 找到的
iter 所指向的參考線放在鍊錶的最前面. 由於Planning 後續模組所使用的都是 - reference_line_info( ).front(), 所以鍊錶的最前面就表示當訊框就是使用的參考線.
splice
的使用詳細說明請見C 基礎.
#輸出:
ReferenceLineInfo
鍊錶.###################原文連結:https://mp.weixin.qq.com /s/IQkBV8iadaU4Qy70F3Xs3Q###以上是深入解析Apollo的換道策略及其實際應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

寫在前面&筆者的個人理解三維Gaussiansplatting(3DGS)是近年來在顯式輻射場和電腦圖形學領域出現的一種變革性技術。這種創新方法的特點是使用了數百萬個3D高斯,這與神經輻射場(NeRF)方法有很大的不同,後者主要使用隱式的基於座標的模型將空間座標映射到像素值。 3DGS憑藉其明確的場景表示和可微分的渲染演算法,不僅保證了即時渲染能力,而且引入了前所未有的控制和場景編輯水平。這將3DGS定位為下一代3D重建和表示的潛在遊戲規則改變者。為此我們首次系統性地概述了3DGS領域的最新發展與關

昨天面試被問到了是否做過長尾相關的問題,所以就想著簡單總結一下。自動駕駛長尾問題是指自動駕駛汽車中的邊緣情況,即發生機率較低的可能場景。感知的長尾問題是目前限制單車智慧自動駕駛車輛運行設計域的主要原因之一。自動駕駛的底層架構和大部分技術問題已經解決,剩下的5%的長尾問題,逐漸成了限制自動駕駛發展的關鍵。這些問題包括各種零碎的場景、極端的情況和無法預測的人類行為。自動駕駛中的邊緣場景"長尾"是指自動駕駛汽車(AV)中的邊緣情況,邊緣情況是發生機率較低的可能場景。這些罕見的事件

0.寫在前面&&個人理解自動駕駛系統依賴先進的感知、決策和控制技術,透過使用各種感測器(如相機、光達、雷達等)來感知周圍環境,並利用演算法和模型進行即時分析和決策。這使得車輛能夠識別道路標誌、檢測和追蹤其他車輛、預測行人行為等,從而安全地操作和適應複雜的交通環境。這項技術目前引起了廣泛的關注,並認為是未來交通領域的重要發展領域之一。但是,讓自動駕駛變得困難的是弄清楚如何讓汽車了解周圍發生的事情。這需要自動駕駛系統中的三維物體偵測演算法可以準確地感知和描述周圍環境中的物體,包括它們的位置、

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显著提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显著降低了使用AI

原文標題:SIMPL:ASimpleandEfficientMulti-agentMotionPredictionBaselineforAutonomousDriving論文連結:https://arxiv.org/pdf/2402.02519.pdf程式碼連結:https://github.com/HKUST-Aerial-Robotics/SIMPLobotics單位論文想法:本文提出了一種用於自動駕駛車輛的簡單且有效率的運動預測基線(SIMPL)。與傳統的以代理為中心(agent-cent

這篇論文探討了在自動駕駛中,從不同視角(如透視圖和鳥瞰圖)準確檢測物體的問題,特別是如何有效地從透視圖(PV)到鳥瞰圖(BEV)空間轉換特徵,這一轉換是透過視覺轉換(VT)模組實施的。現有的方法大致分為兩種策略:2D到3D和3D到2D轉換。 2D到3D的方法透過預測深度機率來提升密集的2D特徵,但深度預測的固有不確定性,尤其是在遠處區域,可能會引入不準確性。而3D到2D的方法通常使用3D查詢來採樣2D特徵,並透過Transformer學習3D和2D特徵之間對應關係的注意力權重,這增加了計算和部署的

目標偵測在自動駕駛系統當中是一個比較成熟的問題,其中行人偵測是最早得以部署演算法之一。在多數論文當中已經進行了非常全面的研究。然而,利用魚眼相機進行環視的距離感知相對來說研究較少。由於徑向畸變大,標準的邊界框表示在魚眼相機當中很難實施。為了緩解上述描述,我們探索了擴展邊界框、橢圓、通用多邊形設計為極座標/角度表示,並定義一個實例分割mIOU度量來分析這些表示。所提出的具有多邊形形狀的模型fisheyeDetNet優於其他模型,並同時在用於自動駕駛的Valeo魚眼相機資料集上實現了49.5%的mAP

軌跡預測在自動駕駛中承擔著重要的角色,自動駕駛軌跡預測是指透過分析車輛行駛過程中的各種數據,預測車輛未來的行駛軌跡。作為自動駕駛的核心模組,軌跡預測的品質對於下游的規劃控制至關重要。軌跡預測任務技術堆疊豐富,需熟悉自動駕駛動/靜態感知、高精地圖、車道線、神經網路架構(CNN&GNN&Transformer)技能等,入門難度很高!許多粉絲期望能夠盡快上手軌跡預測,少踩坑,今天就為大家盤點下軌跡預測常見的一些問題和入門學習方法!入門相關知識1.預習的論文有沒有切入順序? A:先看survey,p
