硬件:autolabor底盤車,rplidar1,autolabor輪子裏程計,華碩A550筆記本電腦;
軟件:Linux系統,ubuntu16.04,ros機器人操作系統,小車/rplidar1啟動軟件,move_base功能包;
DWA:
DWA算法基本思路如下:
1.在機器人控制空間進行速度離散采樣(dx,dy,dtheta)
2.對每壹個采樣速度執行前向模擬,看看使用該采樣速度移動壹小段段時間後會發生什麽
3.評價前向模擬中每個軌跡,評價準則如: 靠近障礙物,靠近目標,貼近全局路徑和速度;丟棄非法軌跡(如哪些靠近障礙物的軌跡)
4.挑出得分最高的軌跡並發送相應速度給移動底座
5.重復上面步驟.
參數調試:
有很多ROS參數可以用來配置dwa_local_planner::DWAPlannerROS的行為。 這些參數被分成了幾組:: robot configuration, goal tolerance, forward simulation, trajectory scoring, oscillation prevention, and global plan.
acc_lim_x:x方向的加速度絕對值
acc_lim_y:y方向的加速度絕對值,該值只有全向移動的機器人才需配置.
acc_lim_th:旋轉加速度的絕對值.
max_trans_vel:平移速度最大值絕對值
min_trans_vel:平移速度最小值的絕對值
max_vel_x:x方向最大速度的絕對值
min_vel_x:x方向最小值絕對值,如果為負值表示可以後退.
max_vel_y:y方向最大速度的絕對值.
min_vel_y:y方向最小速度的絕對值.
max_rot_vel:最大旋轉速度的絕對值.
min_rot_vel:最小旋轉速度的絕對值.
yaw_goal_tolerance:到達目標點時偏行角允許的誤差,單位弧度.
xy_goal_tolerance:到達目標點時,在xy平面內與目標點的距離誤差.
latch_xy_goal_tolerance:設置為true,如果到達容錯距離內,機器人就會原地旋轉,即使轉動是會跑出容錯距離外.
sim_time:向前仿真軌跡的時間.
sim_granularity:步長,軌跡上采樣點之間的距離,軌跡上點的密集程度.
vx_samples:x方向速度空間的采樣點數.
vy_samples:y方向速度空間采樣點數.
vth_samples:旋轉方向的速度空間采樣點數.
controller_frequency:發送給底盤控制移動指令的頻率.
path_distance_bias:定義控制器與給定路徑接近程度的權重.
goal_distance_bias:定義控制器與局部目標點的接近程度的權重.
occdist_scale:定義控制器躲避障礙物的程度.
stop_time_buffer:為防止碰撞,機器人必須提前停止的時間長度.
scaling_speed:啟動機器人底盤的速度.
max_scaling_factor:最大縮放參數.
publish_cost_grid:是否發布規劃器在規劃路徑時的代價網格.如果設置為true,那麽就會在~/cost_cloud話題上發布sensor_msgs/PointCloud2類型消息.
oscillation_reset_dist:機器人運動多遠距離才會重置振蕩標記.
prune_plan:機器人前進是是否清除身後1m外的軌跡.
DWA參數:
Forward Simulation Parameters中:
1.vth_samples 20? (默認值) ----小車停在障礙物附近壹直處在尋找路徑的狀態
2.vth_samples 0-10? ---小車遇到障礙物過不去,會有明顯的後退重新規劃路徑的現象