机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改

一、源码及问题

        最初的源码链接https://blog.csdn.net/heyijia0327/article/details/44983551

        改进后的代码连接https://blog.csdn.net/xingdou520/article/details/83626591

        前段时间看了一下dwa算法的原理,机器人在获得目的地信息后,首先经过全局路径规划规划出一条大致可行的路线,然后调用局部路径规划器根据这条路线及costmap的信息规划出机器人在局部时做出具体行动策略,ROS中主要是使用了DWA算法。在ROS中每当move_base处于规划状态就调用DWA算法计算出一条最佳的速度指令,发送给机器人运动底盘执行。DWA算法全称为dynamic window approach,其原理主要是在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个评价函数对这些轨迹打分,最优的速度被选择出来发送给下位机。

        通过一段时间的研究发生源码有很大的bug,一个是更换起点和终点之后需要手动调节初始姿态,很麻烦!二是某些方向存在逻辑,会陷入循环导致寻路失败。如下:

起点和终点                                                                                       起点和终点(发生错误!!!)                                              

机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改                             机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改                 

机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改

二、改进后效果

       只需要输入起点和终点即可,并且任意位置都可成功寻路

机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改

三、改进的代码

https://download.csdn.net/download/weixin_41971010/16635966

上一篇:一文了解 Apache Spark 3.0 动态分区裁剪(Dynamic Partition Pru


下一篇:在 Webpack 和 TypeScript 项目中使用 Dynamic Import 但只打包成一个 JS 文件的方法