DWA所有参数

速度

  • min_vel_theta 设置一个相对较小的值就可以了,一般0.1、0.2都可以,默认0.4会导致最小速度过大,无法准确到达目标点。
  • max_trans_vel: 0.25   平移速度最大值绝对值,默认0.55
  • min_trans_vel: 0.1 默认0.1,一个较小的最小平移速度是必须的,它会影响低速行驶的状态,尤其是到达目标点时,最小速度过大会导致越过目标点,始终无法到达,可以在0-0.1之间寻找合适的大小。
  • max_vel_x: 0.25   x方向最大速度的绝对值
  • min_vel_x 注意是否要有负值,也就是是否允许倒车,实际中过高的倒车速度是应当避免的。 如果后方没有传感器就应该禁止倒车。 机器人在180度左右的转向,且两侧障碍物状况类似时,会出现左右摆动无法选择方向的问题,应该是受全局路径影响了,偶然情况下我设置了0.05的后退速度,发现每次转弯会先往后退一点,然后转向也变得很好了
  • max_vel_y: 0.0   y方向最大速度的绝对值.
  • min_vel_y: 0.0   y方向最小速度的绝对值.
  • max_rot_vel: 0.25   最大旋转速度的绝对值.
  • min_rot_vel: 0.1   最小旋转速度的绝对值.

  • acc_lim_x: 0.1   x方向的加速度绝对值,单位m/sec^2 ,默认2.5

  • acc_lim_y: 0.0   y方向的加速度绝对值,该值只有全向移动的机器人才需配置.
  • acc_lim_th: 0.1   旋转加速度的绝对值.单位是radians/sec^2

注意加速度不能太小,否则导航时会特别慢,看上去是机器人扭来扭去地走向记录点。

Goal Tolerance Parameters

  • yaw_goal_tolerance: 0.2   到达目标点时偏行角允许的误差,单位弧度.
  • xy_goal_tolerance: 0.22   到达目标点时,在xy方向与目标点的距离误差.
  • latch_xy_goal_tolerance: false   若设置为true,如果到达容错距离内,机器人就会原地旋转,即使转动会跑出容错距离外.

前向仿真参数

  • sim_time: 1.7   给定轨迹上的点之间的间隔尺寸,单位为 meters (double, default: 1.7)

  • sim_granularity: 0.025    (double, default: 0.025)

  • vx_samples: 3   样本数 (integer, default: 3)

  • vy_samples: 10   (integer, default: 10)

  • vth_samples: 20   角速度的样本数 (integer, default: 20)

  • controller_frequency: 20.0   调用该控制器的频率 (double, default: 20.0)

Trajectory Scoring Parameters 路径评分参数

  • path_distance_bias: 32.0   控制器靠近给定路径的权重 (double, default: 32.0)

  • goal_distance_bias: 24.0    控制器尝试达到其本地目标and控制着速度的权重。(double, default: 24.0)

  • occdist_scale: 0.01   控制器尝试避免障碍物的权重 (double, default: 0.01)

  • forward_point_distance: 0.325   从机器人中心点到另一个得分点的距离 (double, default: 0.325)

  • stop_time_buffer: 0.2   机器人在碰撞前必须停止的时间 (double, default: 0.2)

  • scaling_speed: 0.25   缩放机器人足迹的速度的绝对值,单位为m/s (double, default: 0.25)

  • max_scaling_factor: 0.2   缩放机器人足迹的最大因子 (double, default: 0.2)

  • publish_cost_grid: false    (bool, default: false) 是否发布规划器在规划路径时使用的代价网格(cost grid). 如果设置为true,那么就会在~/cost_cloud话题上发布sensor_msgs/PointCloud2类型消息. Each point cloud represents the cost grid and has a field for each individual scoring function component as well as the overall cost for each cell, taking the scoring parameters into account.

衡量每次导航轨迹的公式如下:

1
2
3
4
cost =
path_distance_bias * (distance to path from the endpoint of the trajectory in meters)
+ goal_distance_bias * (distance to local goal from the endpoint of the trajectory in meters)
+ occdist_scale * (maximum obstacle cost along the trajectory in obstacle cost (0-254) )

Oscillation Prevention Parameters

  • oscillation_reset_dist: 0.05   机器人必须运动多少米远后才能复位震荡标记 (double, default: 0.05)

Debugging

  • publish_traj_pc : true   将规划的轨迹在RVIZ上进行可视化
  • prune_plan: false    机器人前进时,是否清除身后1m外的轨迹.默认是true
  • publish_cost_grid_pc: true   将代价值进行可视化显示 (bool, default: false),是否发布规划器在规划路径时的代价网格.如果设置为true,那么就会在~/cost_cloud话题上发布sensor_msgs/PointCloud2类型消息