“0公式系列”之DWA算法----Dynamic Window Approach

DWA算法能干什么?

对于机器人局部路径规划的算法有很多,DWA算法(中文叫动态窗口法)是其中之一,理解起来简单些。它能根据代价地图以及当前的位姿和速度,在当前点和目标点之间给一个合理的速度。

DWA算法的实现

主要是在速度(v,w)空间中采样多种速度,模拟每组速度的预期轨迹,然后给每个轨迹打分,最后选取最合适的速度组,并让机器人按照该速度前进。 详细代码见ROS官网给出的方案

下面开始我的通俗解释这个算法

 重点在于选择速度方案,DWA算法让机器人按照哪种速度方案(v,w)去前进,取决于这几个条件。

1、可采纳速度。当我们选择速度方案(v,w)的时候,是以当前的速度为基础进行选择的。比如,我现在的速度v是10m/s,那么我的速度方案,v就是在10m/s上下附近进行选择,你不可能下一时刻就是50m/s了吧,所以就不用考虑那么多的速度了。

2、优先走无障碍的路径。但是我们怎么知道,它会不会撞向障碍呢。很简单,就是模拟这个机器人以某一组不变的速度(v,w)前进,这样就会拟合出许多组轨迹,只需要检查出这几组轨迹离各自最近的障碍物的距离就行了。有一种特殊的情况,就是无法避免碰到障碍,就在可行区域找一个点,让这个点尽量离原始目标点进就行。

3、优先以快的速度前进。这个也不难理解,谁也不希望自己的机器人像个乌龟一样。

 

 最后我们会得到一组最优的速度方案(v,w),然后发布给cmd_vel就行了。

猜你喜欢

转载自blog.csdn.net/qq_34754836/article/details/85621366
今日推荐