1 base_local planner_params yaml 下面列舉了導航包下config/目錄下的 base_local_planner_params. yaml參數以及設定的值, 機器人在這樣的設定下運行得至關好網絡
- controller_ frequency:3.0每多少秒咱們須要更新一次路徑規劃?把這個值設得過高會使性能不足的CPU過載。對於一臺普通的計算機來講,設定爲3到5就能夠運行得至關不錯
- max_vel_x:0.3—機器人的最大線速度,單位是米/秒。對於室內機器人來講0.5就已經很快了,因此保守地選擇設爲0.3。
- min vel x:0.05—機器人的最小線速度
- max rotation vel:1.0—機器人的最大旋轉速度,單位是弧度/秒。不要把這個值設得過高,否則機器人會錯過它的目標方向
- min_in_place_vel_theta:0.5—機器人的最小原地旋轉速度,單位是弧度/秒
- escape_vel:-0.1—機器人逃離時的速度,單位是米/秒。請注意這個值必須設爲負數,這樣機器人才能反向
- mx:2.5—在x方向上的最大線加速度
- acc_lim_x:2.5-在x方向上的最大線加速度
- acc_lim_y:0.0—在y方向上的最大線加速度。對於差速驅動(非完整驅動)機器人咱們設爲0,這樣機器人就只能在x方向上線性運動(和旋轉)了
- acc_lim_theta:3.2—最大角加速度。
- holonomic_robot:false一除非你有一個全方向驅動機器人,不然一概設爲alse
- yaw.goal_tolerane:0.1—至多距離目標方向的偏差(單位爲弧度)是多少?把這個值設得過小的話可能會致使機器人在目標附近倒
- xy_goal_tolerance:0.1—至多距離目標位置的偏差(單位爲米)是多少?若是把值設得過小,你的機器人可能會不斷地在目標位置附近做調整。注意:不要把最大偏差設定得比地圖的分辨率還小(下一部分會講到),不然機器人會永不停息地在目標附近徘徊但水遠到不了目標位置。
- pdist_scale:0.8—全局路徑規劃和到達目的位置之間的權重。這個參數比gist-seae大時,機器人更傾向於考慮全局路徑規劃
- gdist_scale:0.4—到達目的位置和全局路徑規劃之間的權重。這個參數比 pdist_scale大時,機器人會更考慮到達目標位置,而無論這段路在全局路徑規劃中是不是必須的
- occdist_seale:0.1—避開障礙物的權重
- sim_time:規劃時須要考慮將來多長時間(單位爲秒)呢?這個參數和下一個參數(dwa)一塊兒極大地影響機器人往目標移動的路徑
- dwa:true在模擬將來的軌跡時是否用動態窗口方法( Dynamie Window Approach)
2 costmap_common_params. yaml框架
這個文件中只有兩個參數是須要你馬上爲你的機器人調整的dom
- robot radius:0.165—對一個圓形的機器人來講,這是機器人的半徑,單位是米;對一個非圓形的機器人來講,你能夠用接下來講到的 footprint參數。這裏用到的值是 Turtle的原始數據。
- footprint:[[x0,y0],[xl,yl],x2,y2],[x3,y3],ect]—在列表中的每個座標代表機器人的邊上的一點,機器人的中心設爲[0,0]。測量單位是米。這在機器人周長上的點要不按照順時針排列,要不按照逆時針排列。
- inflation_radius:0.3—地圖上的障礙物的半徑,單位爲米。若是你的機器人不能很好地經過窄門或其餘狹窄的地方,則稍微減少這個值。相反的,若是機器人不斷地撞到東西,則嘗試增大這個值。
3 global_costmap_params. yaml性能
這個文件中有一些參數,你須要根據機器人CPU的計算能力和你的工做站與機器人之間的狀況來實驗獲得。orm
- global frame:/mp—對於全局代價地圖,咱們用map框架來做爲 global框架
- robot base frame:/ /base_ footprint一這個一般不是/he-ink就是/ ase_footprint對於Turtle Bot應設爲/ base_footprint
- update_frequency:1.0—根據傳感器數據,全局地圖更新的頻率,單位爲赫茲。這個數值越大,你的計算機的CPU負擔會越重。特別對於全局地圖,一般會設定一個相對較小、在1.0到5.0之間的值。
- publish_frequency:0—對於靜態的全局地圖來講,不須要不斷髮布。
- statie_map:true—這個參數和下一個參數一般會設爲相反的值。全局地圖一般是靜態的,所以咱們一般會把這個參數設爲true
- rolling window:true當咱們把這個參數設爲 false時,全局地圖不會在機器人移動的時候更新。
- transform_ tolerance. 指定在tf樹中框架之間的轉換的最大延時,單位爲秒。對於典型的工做站和機器人之間的無線網絡來講,與1.0秒同一級別的均可以工做得很好
4 local_costmap_params yamlio
有幾個本地代價地圖的參數須要考慮一下
- global_ frame:/odom對於本地代價地圖來講,咱們使用 odometry框架來做爲 global框架
- robot_ base frame:/ base_footprint這個一般不是/ base link就是/ base_ footprint對於TurtleBot應設爲/ base_footprint
- update_frequency:3.0—根據傳感器數據,本地地圖更新的頻率,單位爲次/秒。對於很慢的計算機,你可能須要減少這個值。
- publish_ frequency:1.0—咱們想更新已經發布出去的本地地圖,因此咱們會把這個值設爲非零。一秒一次應該足夠了,除非你的機器人要移動得更快
- static_map: false—這個參數和下一個參數一般會設爲相反的值。當本地地圖須要根據傳感器數據動態更新的時候,咱們一般會把這個參數設爲 false
- rolling-window:true—下面的幾個參數定義了本地地圖更新用的滑動窗口
- width:6.0—滑動地圖的x維長度是多少米
- height:6.0-----滑動地圖的y維長度是多少米
- resolution:0.01—滑動地圖的分辨率,單位爲米。這個參數應該與YAML文件設置的地圖分辨率匹配
- ransform tolerance:1.0—指定在tf樹框架之間的轉換,或可能會暫時停止的地圖繪製過程當中二者的最大延時,單位爲秒。在一臺速度較快、直連到機器人的計算機上,把這個值設定爲1.0就能很好地工做了。可是在經過無線網絡鏈接的較慢計算機上,這個延 時容忍參數須要增大。