這就是Apollo 5 規劃

2021-10-09 03:18:13 字數 1558 閱讀 2593

這個問題怎麼解答呢,為什麼要規劃,就好像開車的時候要知道怎麼才能去到目的地,這是駕駛過程中所必須要進行的行為。無人車也是如此

apollo通過搜尋來查詢路線,但它使用了更智慧型的搜尋演算法。在進行智慧型搜尋演算法以前,我們需要將地圖資料重新格式化為「圖形」的資料結構。該圖形由「節點」(node)和「邊緣」(edge)組成。節點代表路段,邊緣代表這些路段之間的連線。

a*迪科斯徹演算法

vfh…

這裡介紹a*演算法。

從初始節點開始,我們需要確定8個相鄰節點中,哪個是最有希望的候選節點。對於每個候選節點,我們考慮兩件事情。首先,我們計算從開始節點到候選節點的成本。然後,我們估計從候選節點前往目的地的成本。計算前往候選節點的成本很容易,因為它已經與我們相鄰。計算從候選節點到目的地的成本很困難。但是,通過簡單計算從候選節點到目的地的距離,我們通常可以做出很好的估計。

我們用變數g和h表示每個成本。g值為開始節點前往候選節點的成本,h值為候選節點前往目的地的估計成本或啟發式成本。根據我們的具體情況,我們可以自定義成本估算方式。例如,交通堵塞會增加前往目的地的成本,所以交通繁忙的路徑具有更高的成本。對於每個候選節點,我們通過新增g值和h值來計算總和,即f值。最佳候選節點是f值最小的節點。每當我們抵達新節點時,我們通過重複此過程來選擇下乙個候選節點,而且總是選擇我們尚未訪問過且具有最小f值的節點。這就是a* 演算法,它建立了一條穩定前往目的地的路徑。

軌跡生成的目標是生成一系列路徑點所定義的軌跡。我們為每個路徑點分配了乙個時間戳和速度。由於移動的障礙物可能會暫時阻擋部分路段,軌跡中的每個路徑點都有時間戳。我們可以將時間戳與**模組的輸出相結合,以確保我們計畫通過時,軌跡上的每個路徑點均未被占用。

frenet座標系描述了汽車相對於道路的位置。在frenet框架中,s代表沿道路的距離,也被稱為縱座標。d表示與縱向線的位移,也被稱為橫座標。在道路的每個點上,橫軸和縱軸都是垂直的。縱座標表示道路中的行駛距離,橫座標表示汽車偏離中心線的距離。

路徑-速度解耦規劃將軌跡規劃分為兩步:路徑規劃、速度規劃。首先在路徑規劃步驟中生成候選曲線,這是車輛可行駛的路徑。使用成本函式對每條路徑進行評估,該函式包含平滑度、安全性、與車道中心的偏離以及開發者想要考慮的其他任何因素。然後按成本對路徑進行排名並選擇成本最低的路徑。

下一步是確定沿這條路線行進的速度。我們稱作「速度曲線」。我們可以使用優化功能為路徑選擇受到各種限制的良好速度曲線。通過將路徑和速度曲線相結合可構建車輛行駛軌跡。

s就是距離,t就是時間,st 圖上的曲線是對車輛運動的描述。由於速度是位置變化的速率,所以可以通過檢視曲線的斜率從 st 圖上推斷速度。斜坡越陡則表示在更短的時間段內有更大的移動,對應更快的速度

優化就是把規劃的曲線變得平滑,使其更具可實現性。為了將離散解決方案轉換為平滑軌跡,可使用「二次規劃」技術(quadratic programming)。二次規劃將平滑的非線性曲線與這些分段式線性段擬合。

lattice 規劃具有兩個步驟即先分別建立 st 和 sl 軌跡,然後將它們合併為生成縱向和橫向二維軌跡。先將初始車輛狀態投射到 st 座標系和 sl 座標系中,通過對預選模式中的多個候選最終狀態進行取樣。來選擇最終車輛狀態。對於每個候選最終狀態構建了一組軌跡將車輛從其初始狀態轉換為最終狀態,使用成本函式對這些軌跡進行評估並選擇成本最低的軌跡。

這就是「愛情」,這就是「婚姻!」

有一天,柏拉圖問老師蘇格拉底什麼是愛情?老師就讓他先到到麥田裡去,摘一棵全麥田裡最大最金黃的麥穗來,期間只能摘一次,並且只可向前走,不能回頭。柏拉圖於是按照老師說的去做了。結果他兩手空空的走出了田地。老師問他為什麼摘不到?他說 因為只能摘一次,又不能走回頭路,期間即使見到最大最金黃的,因為不知前面是...

這就是男人 (續)

調教好男人標準之一 成熟穩重。的確,成熟的男人勇於承擔責任,雖然有些過錯並非是他們造成的,過於計較是男人最不能原諒的錯誤,正好,女人們,平時撒嬌就有這個藉口了。好男人即使知道錯的並不是他,可他也會拿出男子的紳士風度讓你感覺你找到了安全的港灣。他會讓你體會到小女人的幸福,疼著你,寵著你。永遠讓你感覺生...

這就是差距啊。。。

這段時間應一位同學的請求,做了個吃豆子遊戲。關於吃豆子遊戲應該說是很簡單了吧?儘管如此,我總是發現我做的遊戲為什麼就是不如先前那個叫clanlib中的吃豆子遊戲例子來得流暢。不爽啊 除了繪畫的api不相同以及不一樣之外,演算法基本上都是一樣的啊。就連人物的移動速度都調節成一樣了,雖然對於任務來說是關...