首頁 > TurtleBot3【2020通用教程】 > TurtleBot3使用課程-第二節b(北京智能佳)
2020
11-30

TurtleBot3使用課程-第二節b(北京智能佳)

目錄

1.導航 2

1.1 運行導航節點 3

1.1.1 [遠程PC]運行roscore 3

1.1.2 [turtlebot3 SBC]運行提出turtlebot3 3

1.1.3[遠程PC]運行導航文件 4

1.2設置機器人的初始姿勢 5

1.3導航目標設置 6

1.4導航調優指南 6

1.4.1成本圖參數 6

1.4.1.1 inflation_radius 6

1.4.1.2 cost_scaling_factor 7

1.4.2  AMCL參數 7

1.4.3 DWA參數 8

1.4.3.1 acc_lim_x,acc_lim_y,acc_lim_th 8

1.4.3.2 max_trans_vel,min_trans_vel 8

1.4.3.3 max_vel_x,min_vel_x,max_vel_y,min_vel_y 8

1.4.3.4 max_rot_vel,min_rot_vel 8

1.4.4 xy_goal_tolerance 8

1.4.5 yaw_goal_tolerance 9

1.4.6 sim_time 9

1.導航

成本圖計算對于成功導航至關重要。 基于描述機器人位置和方向、傳感器值、障礙物信息和SLAM獲得的地圖的姿態信息計算Costmap。 計算結果表示為面積

機器人碰撞,潛在碰撞,并自由移動。 機器人可以根據計算結果創建安全路徑。

有兩種類型的costmap:全局costmap,它計劃從機器人的開始位置到目的地的路徑,以及本地costmap,它計算一條安全的路徑來避免機器人周圍的障礙。 在ROS中,costmap可以表示為數值。 0是機器人可以自由移動的區域,隨著數值接近255,碰撞的概率增加。

0:無碰撞區

1~127:低碰撞概率區域128~252:高碰撞

概率區域253~254:碰撞區域

255:無障礙區域


http://wiki.ros.org/costmap_2d#Inflation

動態窗口方法(Dynamic Window Approach)是一種用于創建避免障礙的路徑的方法。

DWA利用平移速度(v)和轉速(ω)來預測和計算機器人可以移動的路徑,并將機器人在硬件上所能達到的最大速度設置為限值。全球規劃師創造了一條完整的路徑,機器人可以跟隨它到達目的地,dwa_local_planner創造了一條本地路徑,避免了很好地跟隨全球路徑的障礙。 婦女事務部按以下順序運作。

1.分別創建控制位置(DX、dy、dhteta。

2.模擬從其當前位置產生的每個樣本,以預測機器人的位置,如果樣本被應用在短時間內。

3.仿真結果轉化為分數。 考慮了障礙物距離、目的地距離、到全局計劃的距離和速度等因素,并將被物體擊中的樣本排除在結果計算之外。

4.得分最高的樣本被選中并交付給機器人。

5.重復步驟1~4。

1.1 運行導航節點

1.1.1 [遠程PC]運行roscore


1.1.2 [turtlebot3 SBC]運行提出turtlebot3



1.1.3 [遠程PC]運行導航文件


    

運行上述命令將啟動可視化工具Rviz。運行Rviz分別使用以下命令。

1.2設置機器人的初始姿勢

導航時最重要的是在地圖上顯示機器人的確切電流位置。 利用基于概率的粒子濾波器應用自適應蒙特卡羅定位算法(AMCL)預測turtlebot3的位置

從機器人編碼器、IMU和LDS等各種傳感器獲得的信息。 AMCL根據傳感器信息預測機器人可能存在的位置。 它通過算法參數值中設置的運動量來更新機器人每次運動的預測位置值,以減少誤差。

[遠程PC]如果運行機器人運行導航的地圖,并且機器人的LDS傳感器正常運行,則必須根據機器人使用該地圖的實際位置和方向來設置機器人在地圖上的位置 Rviz的按鈕??梢允褂迷摲椒ㄔO置初始位置 按鈕。 更精確的導航是可能的,因為LDS傳感器的值與地圖上顯示的障礙物的位置相匹配。 因此,您應該重復設置初始位置的步驟,以使其盡可能準確。 按照下面的步驟設置機器人位置。

1.點擊  在RViz的按鈕。

2.點擊地圖上機器人實際所在的點,按機器人所面對的方向拖動箭頭。

3.重復上述過程,直到掃描值和地圖在一定程度上重疊為止。

當初始姿態設置完成后,機器人使用綠色箭頭指定的位置和方向作為Pose來估計實際機器人的位置和方向。 綠色箭頭表示turtlebot3的概率位置。 LDS傳感器在地圖上顯示障礙物。 初始波斯必須與 按鈕,以便來自LDS傳感器的地圖和數據可以重疊。


在上圖中,機器人周圍廣泛顯示的一些綠色小箭頭是AMCL通過機器人的傳感器和指定機器人初始位置時的各種信息計算的機器人當前位置。 你看得出來

隨著機器人的移動,分布電流位置估計接近機器人。

注意:如果turtlebot3_teleop_keyboard節點在運行導航之前運行,則必須關閉該節點。 從turtlebot3_teleop_keyboard節點發布的cmd_vel數據可能與導航的cmd_vel數據發生碰撞,導致機器人不能正常移動。

1.3 導航目標設置

[遠程PC]如果地圖顯示在RViz中,并且機器人的初始位置設置正確,則可以指定機器人目的地的位置和方向。 點擊 RViz上單擊機器人可以移動的目的地,并拖動以指定機器人將面對的方向。

1.點擊 按鈕在RViz程序的頂部。

2.單擊機器人將在地圖上到達的目的地,并拖動機器人將面對的方向,以完成目標設置。當目標設置完成時,導航算法創建從機器人當前位置到目的地的路由,并給機器人一個跟隨路線的命令。 如果機器人在移動時,障礙物出現在路徑上,它會創建一條路徑來避免障礙物并移動。


如果無法創建到目的地的路由,則導航目標設置可能失敗。 如果你想在機器人走向目的地時停止它,你可以使用一種方法將機器人的當前位置重置到它的目的地。

1.4導航調優指南

1.4.1成本圖參數

1.4.1.1 inflation_radius

用于當機器人通過設置與地圖上障礙物的距離值來創建路徑時保持最小安全距離。 通過設置此值大于機器人半徑,可以避免與障礙物碰撞。



1.4.1.2 cost_scaling_factor

調整地圖上標記為障礙物的區域的成本值的權重的常數。

cost_scaling_factor使用負指數值創建參數因子,如下所示。 cost_scaling_factor值越大,計算成本值越小。

Value of costmap_2d :: INSCRIBED_INFLATED_OBSTACLE is defined as 254.

exp{-1.0*cost_scaling_factor*(distance_from_obstacle-inscribed_radius)}*(costmap_2d:INSCRIBED_INFLATED_OBSTACLE-1)


1.4.2  AMCL參數

1.4.2.1 1min_particles,max_particles

控制AMCL節點中使用的粒子數。 增加粒子的數量增加了精度,但由于計算量的增加,它也減慢了計算速度。

1.4.2.2 initial_pose_x,initial_pose_y,initial_pose_a

設置機器人的初始位置和方位。也可以手動設置機器人的鼻子和  Rviz的按鈕。

1.4.2.3 update_min_d,update_min_a

設置更新粒子濾波器所需的最小平移距離(m)和旋轉角(rad。 使用較小的值可以更頻繁地進行更新,但計算量也會增加。

1.4.3 DWA參數

以下參數用于DWA的計算,保存在

  文件和加載運行程序時,如果DWA參數沒有設置機器人硬件的適當值,機器人可能無法正常工作。

1.4.3.1 acc_lim_x,acc_lim_y,acc_lim_th

設置機器人加速度的極限在x,y,θ方向在m/s2和rad/s2.1.4.3.2 max_trans_vel,min_trans_vel


以m/s的絕對值顯示機器人的最大和最小平移速度。

1.4.3.3 max_vel_x,min_vel_x,max_vel_y,min_vel_y

設置最大值和最小值機器人可以在x,y方向以m/s移動。 由于turtlebot3不可能在y中平移,所以y的最大值和最小值設置為0。

1.4.3.4 max_rot_vel,min_rot_vel

設置機器人的最大轉速和最小轉速為rad/s

1.4.4 xy_goal_tolerance

設置機器人到達指定目的地時的x,y坐標中的距離誤差。

1.4.5 yaw_goal_tolerance

設置機器人到達指定目的地時機器人所面對的角度的誤差。

1.4.6 sim_time

設置機器人應該從機器人當前位置模擬預期路徑的多少秒。

  



































本文》有 0 條評論

留下一個回復