移动机器人DWA算法参数调整注意问题

DWAPlannerROS:

# Robot Configurtion Parameters - Kobuki
  max_vel_x: 0.30 # 0.25    0.20 # x方向最大速度绝对值
  min_vel_x: 0.10 # -0.20        # x方向最小值绝对值 负值表示可以后退

  max_vel_y: 0.30 # 0.20
  min_vel_y: -0.00 #-0.20 -0.1

  max_vel_trans: 0.50  # 平移速度最大值绝对值 0.50
  min_vel_trans: 0.15  


  max_vel_theta: 1.0 # 1.6  # 旋转角速度绝对值
  min_vel_theta: -1.0 # 0.6
  
  acc_lim_x: 0.8 # 2.5  # x方向加速度绝对值
  acc_lim_theta: 0.6
  acc_lim_y: 1.0   # 在当前参数下决定是否可以规划路径

  # max_trans_vel: 1.0

  xy_goal_tolerance: 0.1 # 0.1  # 到达目标点时的距离允许误差
  yaw_goal_tolerance: 0.1 # 0.2   # 到达目标点时的距离允许误差
  latch_xy_goal_tolerance: false  # true: 到达容错距离内,机器人会原地旋转

# Forward Simulation Parameters
  sim_time: 2.0  # 2.0 
  vx_samples: 18      # x方向速度空间的采样点数
  vy_samples: 18 
  vth_samples: 20
  sim_granularity: 0.05
  controller_frequency: 10.0  # 向底盘发送移动控制指令的频率

# Trajectory Scoring Parameters
  path_distance_bias: 15   # 24   # 定义控制器与给定路经接近程度的权重
  goal_distance_bias: 5.0    # 12  # 定义控制器与局部目标点的接近程度的权重
  occdist_scale: 0.3  # 0.3     # 定义控制器躲避障碍物的程度
  forward_point_distance: 0.325 # 
  stop_time_buffer: 0.2  # 为防止碰撞机器人提前停止的时间缓冲区
  scaling_speed: 0.5     # 0.25  # 启动机器人底盘的速度
  max_scaling_factor: 0.2  # 最大缩放参数

# Oscillation Prevention Parameters
  oscillation_reset_dist: 0.05  # 机器人移动多远距离会重置震荡标记

# Debugging
  publish_traj_pc : true
  publish_cost_grid_pc: true

# Differential-drive robot configuration - necessary?
  holonomic_robot: true

1.在当前参数下acc_lim_y的大小决定了机器人是否可以前进,如果min_vel_y过大,那么acc_lim_y需要设置的小一些才可以启动

!!!但是拐弯处无法正常拐弯,会卡死在膨胀地图中!!!

经观察发现,可能是旋转角速度和旋转角加速度过小,导致转弯不及时

2.尝试增大max_vel_theta 和 acc_lim_theta 

到max_vel_theta  = 3.0, acc_lim_theta  = 2.0 发现可以正常过弯略微减小最好应该在2.8和1.8

!!!关于旋转角速度 补充说明 如果增大acc_lim_x,说明车直线行驶速度会增加,应再次增大对应旋转速度max_vel_theta 和 acc_lim_theta 以达到让车在高直线速度的情况下拐弯更为及时!!!

!!!当前直线移动速度过慢尝试提高acc_lim_x!!!

3.当前occdist_scale 数值为0.3 拐弯时与障碍物距离过近 ,增大数值到0.8,发现拐弯时与障碍物距离增大,方法可行

4.三者速度相辅相成,可以自行更改,体验更深刻

DWAPlannerROS:

# Robot Configurtion Parameters - Kobuki
  max_vel_x: 0.30 # 0.30    0.20 # x方向最大速度绝对值
  min_vel_x: -0.10 # 0.10        # x方向最小值绝对值 负值表示可以后退

  max_vel_y: 0.30 # 0.30
  min_vel_y: -0.00 #-0.00 

  max_vel_trans: 0.50  # 平移速度最大值绝对值 0.50
  min_vel_trans: 0.15  


  max_vel_theta: 3.20 # 3.35  # 旋转角速度绝对值
  min_vel_theta: -1.0 # -1.0
  
  acc_lim_x: 2.5 # 2.5  # x方向加速度绝对值
  acc_lim_theta: 2.53 # 2.30
  acc_lim_y: 1.0   # 在当前参数下决定是否可以规划路径

  # max_trans_vel: 1.0

  xy_goal_tolerance: 0.1 # 0.1  # 到达目标点时的距离允许误差
  yaw_goal_tolerance: 0.1 # 0.2   # 到达目标点时的距离允许误差
  latch_xy_goal_tolerance: false  # true: 到达容错距离内,机器人会原地旋转

# Forward Simulation Parameters
  sim_time: 2.0  # 2.0 
  vx_samples: 18      # x方向速度空间的采样点数
  vy_samples: 18 
  vth_samples: 20
  sim_granularity: 0.05
  controller_frequency: 10.0  # 向底盘发送移动控制指令的频率

# Trajectory Scoring Parameters
  path_distance_bias: 15   # 15.0   # 定义控制器与给定路经接近程度的权重
  goal_distance_bias: 5.0    # 5.0  # 定义控制器与局部目标点的接近程度的权重
  occdist_scale: 0.8  # 0.3     # 定义控制器躲避障碍物的程度 数值越大拐弯与障碍物距离越大
  forward_point_distance: 0.325 # 
  stop_time_buffer: 0.2  # 为防止碰撞机器人提前停止的时间缓冲区
  scaling_speed: 0.5     # 0.25  # 启动机器人底盘的速度
  max_scaling_factor: 0.2  # 最大缩放参数

# Oscillation Prevention Parameters
  oscillation_reset_dist: 0.05  # 机器人移动多远距离会重置震荡标记

# Debugging
  publish_traj_pc : true
  publish_cost_grid_pc: true

# Differential-drive robot configuration - necessary?
  holonomic_robot: true

1.max_vel_theta 的数值不影响转弯移动速度 无法重新返回

2.将min_vel_x改为负值后机器人拐弯出现延迟,且转弯半径缩小,在此基础上缩小min_vel_y查看情况

有改进但改进效果不明显

3.针对转弯时移动速度过慢,增大acc_lim_theta值到3.20 观察转弯速度明显提高,原地转圈速度明显提高,但转弯时与障碍物距离过近,尝试增大occdist_scale到1.2, 第一次增大还是小了再次增大到1.6

4.增大occdist_scale影响不大,增大acc_lim_x影响也不大,尝试调小acc_lim_theta到3.35

5.最终还原回第二次代码,在第二次代码基础上增大acc_lim_theta到2.53

DWAPlannerROS:

# Robot Configurtion Parameters - Kobuki
  max_vel_x: 0.30 # 0.30    0.20 # x方向最大速度绝对值
  min_vel_x: -0.30 # 0.10        # x方向最小值绝对值 负值表示可以后退

  max_vel_y: 0.30 # 0.30
  min_vel_y: -0.00 #-0.00 

  max_vel_trans: 0.50  # 平移速度最大值绝对值 0.50
  min_vel_trans: 0.01  


  max_vel_theta: 3.2 # 3.35  # 旋转角速度绝对值
  min_vel_theta: -1.0 # -1.0
  
  acc_lim_x: 2.5 # 2.5  # x方向加速度绝对值
  acc_lim_theta: 2.53    # 2.53 # [2.30, 2.55]
  acc_lim_y: 1.0   # 在当前参数下决定是否可以规划路径

  # max_trans_vel: 1.0

  xy_goal_tolerance: 0.1 # 0.1  # 到达目标点时的距离允许误差
  yaw_goal_tolerance: 0.1 # 0.2   # 到达目标点时的距离允许误差
  latch_xy_goal_tolerance: false  # true: 到达容错距离内,机器人会原地旋转

# Forward Simulation Parameters
  sim_time: 2.0  # 2.0 
  vx_samples: 18      # x方向速度空间的采样点数
  vy_samples: 18 
  vth_samples: 20
  sim_granularity: 0.05
  controller_frequency: 10.0  # 向底盘发送移动控制指令的频率

# Trajectory Scoring Parameters
  path_distance_bias: 15   # 15.0   # 定义控制器与给定路经接近程度的权重
  goal_distance_bias: 5.0    # 5.0  # 定义控制器与局部目标点的接近程度的权重
  occdist_scale: 0.8  # 0.3     # 定义控制器躲避障碍物的程度 数值越大拐弯与障碍物距离越大
  forward_point_distance: 0.325 # 
  stop_time_buffer: 0.2  # 为防止碰撞机器人提前停止的时间缓冲区
  scaling_speed: 0.5     # 0.25  # 启动机器人底盘的速度
  max_scaling_factor: 0.2  # 最大缩放参数

# Oscillation Prevention Parameters
  oscillation_reset_dist: 0.05  # 机器人移动多远距离会重置震荡标记

# Debugging
  publish_traj_pc : true
  publish_cost_grid_pc: true

# Differential-drive robot configuration - necessary?
  holonomic_robot: true

  • 3
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐凤年_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值