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(v,w)表示当前轨迹上和障碍物的差距。velocity(v w)用来评价当前轨迹速度的大小。
三个部分在归一化后进行相加。
demo:
- EGIN DWA(robotPose,robotG

本文详细介绍了DWA(Dynamic Window Approach)局部规划器的算法分析,包括运动模型建立、速度采样和评价函数三个关键部分。DWA用于确保机器人在遇到障碍时能及时停止,通过评估速度对机器人与目标角度差距、与障碍物距离的影响,找到最优速度组合。在归一化后,这三个因素相加得到成本,用于指导机器人的轨迹规划。
最低0.47元/天 解锁文章
9631

被折叠的 条评论
为什么被折叠?



