博客轉載自:https://blog.csdn.net/weixin_42005898/article/details/98478759
DWA作為ROS內的局部路徑規划算法,里面有許多參數需要配置,整理說明各個參數具體代表的意義
DWAPlannerROS: # Robot Configuration Parameters - Kobuki 機器人配置參數,這里為Kobuki底座 max_vel_x: 0.5 # 0.55 #x方向最大線速度絕對值,單位:米/秒 min_vel_x: 0.0 #x方向最小線速度絕對值,單位:米/秒。如果為負值表示可以后退. max_vel_y: 0.0 # diff drive robot #y方向最大線速度絕對值,單位:米/秒。turtlebot為差分驅動機器人,所以為0 min_vel_y: 0.0 # diff drive robot #y方向最小線速度絕對值,單位:米/秒。turtlebot為差分驅動機器人,所以為0 max_trans_vel: 0.5 # choose slightly less than the base's capability #機器人最大平移速度的絕對值,單位為 m/s min_trans_vel: 0.1 # this is the min trans velocity when there is negligible rotational velocity #機器人最小平移速度的絕對值,單位為 m/s trans_stopped_vel: 0.1 #機器人被認屬於“停止”狀態時的平移速度。如果機器人的速度低於該值,則認為機器人已停止。單位為 m/s # Warning! # do not set min_trans_vel to 0.0 otherwise dwa will always think translational velocities # are non-negligible and small in place rotational velocities will be created. #注意不要將min_trans_vel設置為0,否則DWA認為平移速度不可忽略,將創建較小的旋轉速度。 max_rot_vel: 5.0 # choose slightly less than the base's capability #機器人的最大旋轉角速度的絕對值,單位為 rad/s min_rot_vel: 0.4 # this is the min angular velocity when there is negligible translational velocity #機器人的最小旋轉角速度的絕對值,單位為 rad/s rot_stopped_vel: 0.4 #機器人被認屬於“停止”狀態時的旋轉速度。單位為 rad/s acc_lim_x: 1.0 # maximum is theoretically 2.0, but we 機器人在x方向的極限加速度,單位為 meters/sec^2 acc_lim_theta: 2.0 機器人的極限旋轉加速度,單位為 rad/sec^2 acc_lim_y: 0.0 # diff drive robot 機器人在y方向的極限加速度,對於差分機器人來說當然是0 # Goal Tolerance Parameters 目標距離公差參數 yaw_goal_tolerance: 0.3 # 0.05 #到達目標點時,控制器在偏航/旋轉時的弧度容差(tolerance)。即:到達目標點時偏行角允許的誤差,單位弧度 xy_goal_tolerance: 0.15 # 0.10 #到到目標點時,控制器在x和y方向上的容差(tolerence)(米)。即:到達目標點時,在xy平面內與目標點的距離誤差 latch_xy_goal_tolerance: false # 設置為true時表示:如果到達容錯距離內,機器人就會原地旋轉;即使轉動是會跑出容錯距離外。 #注:這三個參數的設置及影響討論請參考《ROS導航功能調優指南》 # Forward Simulation Parameters 前向模擬參數 sim_time: 1.0 # 1.7 #前向模擬軌跡的時間,單位為s(seconds) vx_samples: 6 # 3 #x方向速度空間的采樣點數. vy_samples: 1 # diff drive robot, there is only one sample #y方向速度空間采樣點數.。Tutulebot為差分驅動機器人,所以y方向永遠只有1個值(0.0) vtheta_samples: 20 # 20 #旋轉方向的速度空間采樣點數. #注:參數的設置及影響討論請參考《ROS導航功能調優指南》 # Trajectory Scoring Parameters 軌跡評分參數 path_distance_bias: 64.0 # 32.0 - weighting for how much it should stick to the global path plan #控制器與給定路徑接近程度的權重 goal_distance_bias: 24.0 # 24.0 - weighting for how much it should attempt to reach its goal #控制器與局部目標點的接近程度的權重,也用於速度控制 occdist_scale: 0.5 # 0.01 - weighting for how much the controller should avoid obstacles # 控制器躲避障礙物的程度 forward_point_distance: 0.325 # 0.325 - how far along to place an additional scoring point #以機器人為中心,額外放置一個計分點的距離 stop_time_buffer: 0.2 # 0.2 - amount of time a robot must stop in before colliding for a valid traj. #機器人在碰撞發生前必須擁有的最少時間量。該時間內所采用的軌跡仍視為有效。即:為防止碰撞,機器人必須提前停止的時間長度 scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint #開始縮放機器人足跡時的速度的絕對值,單位為m/s。 #在進行對軌跡各個點計算footprintCost之前,會先計算縮放因子。如果當前平移速度小於scaling_speed,則縮放因子為1.0, #否則,縮放因子為(vmag - scaling_speed) / (max_trans_vel - scaling_speed) * max_scaling_factor + 1.0。 #然后,該縮放因子會被用於計算軌跡中各個點的footprintCost。 # 參考:https://www.cnblogs.com/sakabatou/p/8297479.html #亦可簡單理解為:啟動機器人底盤的速度.(Ref.: https://www.corvin.cn/858.html) max_scaling_factor: 0.2 # 0.2 - how much to scale the robot's footprint when at speed. #最大縮放因子。max_scaling_factor為上式的值的大小。 # Oscillation Prevention Parameters 振盪預防參數 oscillation_reset_dist: 0.05 # 0.05 - how far to travel before resetting oscillation flags #機器人必須運動多少米遠后才能復位震盪標記(機器人運動多遠距離才會重置振盪標記) # Global Plan Parameters #prune_plan: false #機器人前進是否清除身后1m外的軌跡. # Debugging 調試參數 publish_traj_pc : true #將規划的軌跡在RVIZ上進行可視化 publish_cost_grid_pc: true #將代價值進行可視化顯示 #是否發布規划器在規划路徑時的代價網格.如果設置為true,那么就會在~/cost_cloud話題上發布sensor_msgs/PointCloud2類型消息. global_frame_id: odom #全局參考坐標系為odom # Differential-drive robot configuration - necessary? 差分機器人配置參數 # holonomic_robot: false #是否為全向機器人。 值為false時為差分機器人; 為true時表示全向機器人
創客智造:ROS與navigation教程-dwa_local_planner(DWA)