DWA算法分析
DWA Local Planner这部分是属于Local planner,在Navigation中有两个包:
dwa_local_planner
和base_local_planner
查看了dwa_local_planner
,发现其实际是调用的base_local_planner
中的函数,而base_local_planner
中包含了两种planner :DWA
或者Trajectory Rollout approach
。所以结论就是,只需要搞清楚base_local_planner
的执行就OK。
base_local_planner
package 实际是继承于BaseLocalPlanner
DWA算法实现分为四个部分
1.运动模型的建立
2.速度采样
3.评价函数
具体步骤如下
1.首先建立机器人的运动模型,退到出运动模型的航迹推演公式。
2.运动模型建立完毕后,接下来要进行速度采样。
采样速度的重点是要将机器人的速度限制在一定的范围内(v,w)
dist(vw)为机器人里障碍物最近的距离(并不是一开始就可以得到的,而是根据机器人遇到障碍物时这组速度可不可以停下来,如果可以停下来,那么这组数据就是可以接受的。如果停不下来,那就接受不了)
3.评价函数:
heading(v ,w)达到模拟轨迹末端时的朝向和目标之间的角度差距。dist