局部规划算法:DWA算法原理

文章目录

*
一、算法概述
二、算法原理

+ 1、运动学模型
+ 2、速度采样
+ 3、目标函数
三、应用场景
四、ros功能包

一、算法概述

DWA算法(dynamic window approach)是移动机器人在运动模型下推算(v,w)对应的轨迹,确定速度采样空间或者说是动态窗口(三种限制);在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,通过一个评价函数对这些轨迹打分,选取最优的轨迹来驱动机器人运动。

二、算法原理

1、运动学模型

(1)非全向运动:只能前进和旋转(相邻时刻码盘采样,近似直线v*detaT)

局部规划算法:DWA算法原理

(2) 全向运动:考虑x方向运动、y方向运动和旋转。将y轴移动距离投影世界坐标系上。

局部规划算法:DWA算法原理

; 2、速度采样

(1)自身 最大速度最小速度的限制

局部规划算法:DWA算法原理
(2)受电机性能的影响:由于电机力矩有限,存在 最大的加減速限制, 移动机器人轨迹前向模拟的周期内,存在一个动态窗口,该窗口内是机器人能够实际达到的速度(ps: 为啥叫动态窗口)
局部规划算法:DWA算法原理
(3)安全的考虑:为了能在碰到障碍物前停下, 在最大减速度条件下,速度有一个范围。
局部规划算法:DWA算法原理

3、目标函数

一般考虑三种约束,可根据实际进行设计复杂的目标函数:

目标函数 = w1 方位角函数(轨迹终点朝向与目标点之间的角度差距) + w2 障碍物函数(轨迹终点位置时与地图上最近障碍物的距离) + w3* 线速度函数(鼓励快速到达终点)

三、应用场景

计算复杂度低: 只考虑安全的轨迹,每次采样的时间较短,可以实时避障,但避障效果一般
应用模型: 适用于两轮差分和全向移动模型、不能用在阿克曼模型。
缺点:
(1)前瞻性不足: 只模拟并评价了下一步,如在机器人前段遇见”C”字形障碍时,不能很好的避障
(2)非全局最优路径: 每次都选择下一步的最佳路径,而非全局最优路径

四、ros功能包

机器人获得目的地信息后,首先全局路径规划规划出一条大致可行的路线,然后局部路径规划器根据这条路线及costmap的信息规划出机器人在局部时做出具体行动策略,ROS中主要是使用了DWA算法。在ROS中每当move_base处于规划状态就调用DWA算法计算出一条最佳的速度指令,发送给机器人运动底盘执行。
ros导航功能包https://www.guyuehome.com/5500

参考论文:
《The Dynamic Window Approach To Collision Avoidance》
参考链接:
原理: https://zhuanlan.zhihu.com/p/519958218
原理: https://blog.csdn.net/peakzuo/article/details/86487923
代码: https://blog.csdn.net/weixin_37835423/article/details/89683302

内容来源于网络和参考链接整理,侵权联系删。

欢迎关注!

Original: https://blog.csdn.net/qq_41667348/article/details/125858494
Author: 执着且专注
Title: 局部规划算法:DWA算法原理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/787104/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球