1. 程式人生 > >local_planner比較 學習筆記(一)

local_planner比較 學習筆記(一)

簡介

1、eband_local_planner

  •       eband_local_planner實現了base_local_planner的外掛。它在SE2流形上實現了彈性帶方法。
  •       此ROS move_base本地規劃器的原始實現僅支援全向(完整)機器人。
  •       修改了當前版本以與差分驅動器一起使用。將differential_drive設定為false以啟用橫向/完整運動,但該模式已經過很長時間的測試,應該被認為是實驗性的。
  •      在到達目標位置和目標之前計算速度時,差動驅動機器人可以處於三種動作之一:

         步驟1:機器人在目標位置的橫向公差(xy_goal_tolerance)內,則在適當位置旋轉以達到目標方向。

        步驟2:機器人在目標位置的橫向公差之外,則必須朝向目標移動。給定機器人的方向以及彈性帶中下一個點的方向,機器人首先計算這兩個位置之間的差異。如果該差值小於引數rotation_threshold_multiplier,則機器人執行線性和角速度分量以朝向頻帶中的下一個點弧。一旦機器人靠近目標位置,使得到目標的x和y距離小於0.6 * xy_goal_tolerance,然後進入步驟1.這裡選擇0.6,因為機器人在開始之前接近目標而不是公差要求最後一個轉彎,因為最後一個轉彎可能會導致機器人稍微偏離位置。

        步驟3:如果在前一步驟中計算的差值大於引數rotation_threshold_multiplier,則機器人就位,直到差值變小,並且機器人可以執行動作2。

2、asr_ftc_local_planner

優點:

  • 行駛速度快:機器人儘可能地達到最大速度
  • 引數少:僅設定11個引數
  • 很少“抽搐”現象:機器人總試圖以最大速度不斷開車
  • 對於較小房間:機器人密切關注全域性計劃,沒有迴圈(如dwa_local_planner)。因此它可以在小房間內無碰撞地行駛。
  • 用全域性規劃驅動障礙:保證找到解決障礙的方法。
  • 處理時間短。

缺點:

  • 僅適用於圓形機器人。
  • 只有差動驅動機器人。
  • 僅向前驅動(而不是向後)。

3、 dwa_local_planner

dwa_local_planner包提供了一個控制器,用於驅動在所述平面上的移動基座。該控制器用於將路徑規劃器連線到機器人。使用地圖,規劃器為機器人建立從一個起點到目標位置的運動軌跡。在此過程中,計劃員至少在機器人周圍建立一個值函式,表示為網格圖。該值函式編碼遍歷網格單元的成本。控制器的工作是使用此值函式來確定要傳送給機器人的dx,dy,dtheta速度。

動態視窗方法(DWA)演算法的基本思想如下:

  1. 在機器人的控制空間(dx,dy,dtheta)中進行離散取樣
  2. 對於每個取樣速度,從機器人的當前狀態執行正向模擬,以預測如果取樣速度在某個(短)時間段內應用會發生什麼。
  3. 評估(得分)由前向模擬產生的每個軌跡,使用包含以下特徵的度量:接近障礙物,接近目標,接近全域性路徑和速度。丟棄非法軌跡(與障礙物碰撞的軌跡)。
  4. 選擇得分最高的軌跡並將相關的速度傳送到移動基地。
  5. 沖洗並重復。

4、teb_local_planner

teb_local_planner包實現了2D導航堆疊的base_local_planner的外掛。稱為定時彈性帶的基礎方法在軌道執行時間,與障礙物的分離以及在執行時遵守動力學約束的情況下,區域性優化機器人的軌跡。

該軟體包實現了一個線上優化的本地軌跡規劃器,用於導航和控制移動機器人,作為ROS 導航包的外掛。由全域性規劃器生成的初始軌跡在執行時期間進行優化,最小化軌跡執行時間(時間最優目標), 與障礙物分離並符合動力學約束,例如滿足最大速度和加速度。

當前的實施符合非完整機器人(差動驅動和類似汽車的機器人)的運動學。自Kinetic以來,包括對完整機器人的支援。

通過求解稀疏的標量化多目標優化問題,可以有效地獲得最優軌跡。使用者可以為優化問題提供權重,以便在目標衝突的情況下指定行為。