一、DWA概念
DWA(动态窗口法)属于局部路径规划方法,为ROS中主要采用的方法。其原理主要是在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个评价函数对这些轨迹打分,最优的轨迹对应的速度被选择出来发送给机器人。
动态窗口:依据移动机器人的加减速性能限定速度采用空间在一个可行的动态范围内。
二、DWA的算法步骤
1.建立机器人运动模型
2.产生轨迹(利用动态窗口缩小需要搜索的动作空间)
3.评价轨迹
4.选出最优轨迹和速度,控制机器人运动
三、具体实现
1.机器人运动模型
在动态窗口算法中,要模拟机器人的轨迹,需要知道机器人的运动模型。它采用的是假设两轮移动机器人的轨迹是一段一段的圆弧或者直线(旋转速度为0时),一对(Vt,Wt)就代表一个圆弧轨迹。具体推导如下:
模型一
a.非全向移动机器人(只能前进和旋转)
计算机器人的移动轨迹时,假设相邻时刻机器人的轨迹为直线,该时刻机器人自身坐标系与世界坐标系的夹角为Θ,即机器人在该时刻的位移可以简单换算成在世界坐标系的位移。
计算如下:
某一段时间内的轨迹累加求和:
b.全向移动机器人(有y轴速度)
原理相同,假设相邻时刻机器人运动轨迹为直线,与世界坐标系夹角为Θ,则将该时刻内机器人的x轴为y轴方向位移依次分解到世界坐标系再累加即可。
计算如下:
模型二
模型一假设机器人在相邻时间段内的位移近似为直线,这是不准确的,所以模型二采用圆弧来代替。
a.非全向移动机器人
b.全向移动机器人
2.产生轨迹
动态窗口的大小受电机的线加速度、角加速度、障碍物等因素影响。
1.计算动态窗口
a.移动机器人受自身最大速度最小速度的限制
b. 移动机器人受电机性能的影响:由于电机力矩有限,存在最大的加減速限制,因此移动机器人軌迹前向模拟的周期sim_period内,
存在一个动态窗口,在该窗口内的速度是机器人能够实际达到的速度:
c.基于移动机器人安全的考虑:为了能够在碰到障碍物前停下来, 因此在最大减速度条件下, 速度有一个范围:
2.预测轨迹
在满足约束条件的情况下,进行速度采样(v,w),可以得到相应的轨迹:
3.评价函数(选出最优轨迹和速度)
在速度空间(v,w)中采样,根据运动学模型推测对应的轨迹,接下来引入评价函数,对轨迹进行打分,选取最优的轨迹。
一般来说,评价函数如下:
其中,
- heading(v,w)为方位角评价函数:评价机器人在当前的设定的速度下,轨迹末端朝向与目标点之间的角度差距;
- dist(v,w) 主要的意义为机器人处于预测轨迹末端点位置时与地图上最近障碍物的距离,对于靠近障碍物的采样点进行惩罚,
确保机器人的避障能力,降低机器人与障碍物发生碰撞的概率;
- velocity(v,w)为当前机器人的线速度,为了促进机器人快速到达目标;δ、α、β、γ 为权重。当然,可以对评价函数进行优化,添加更多的评价函数指标。
heading(v,w)
- 平滑处理
参考文章:
(82条消息) 机器人局部避障的动态窗口法(dynamic window approach)_dwa算法_白巧克力亦唯心的博客-CSDN博客
(82条消息) DWA算法分析_MARK&的博客-CSDN博客
标签:轨迹,窗口,机器人,移动机器人,window,DWA,速度,approach From: https://www.cnblogs.com/DongdongAa/p/17167338.html