【论文】读论文

今天读了一篇关于机器人路径规划的论文,在这里记录一下。

原文:改进 A*和动态窗口法的移动机器人路径规划https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CAPJ&dbname=CAPJLAST&filename=JSJJ2020102300M&v=l5%25mmd2FDG1c37fumFRahpllN7JWV7J8kDILJRNZEVRg08wG9PMHUwc7HUH8oEHwUpjio

1、提出问题

文章提出了结合A*算法动态窗口法的融合算法。

首先,,使用 A*算法规划出一条全局路径,再利用一种关键折点提取算法,用于剔除全局路径上的冗余拐点及冗余节点,保证路径的全局最优。

然后,根据关键节点对全局路径进行分段,再结合动态窗口法对每段局部路径进行优化,提高路径的安全性和平滑性。

A*算法存在的问题:拐点过多、节点冗余、与障碍物距离近等问题。

动态窗口法:极容易陷入布局最优,寻路成功率低。

2、提出算法

(1)优化A*算法

   (a)获取 A*算法所规划路径的全部节点集U{}\left \{ Pi,1\leq i\leq n\right \}  ,其中  P_{1}表示规划路径的起点, P_{n}表示规划路径的终点。创建初始值只包含路径起点 P_{1} 和终点 P_{n} 的关键节点集 V\left \{ P_{1},P_{n} \right \}用来存放算法优化后的关键转折点。

扫描二维码关注公众号,回复: 12933860 查看本文章

   (b)从 P_{1}  开始作直线依次连接 P_{3},P_{4},\cdots ,P_{m} ,判断直线 P_{1}P_{m} 是否经过障碍物,若直线 P_{1}P_{m} 经过障碍物,则节点 P_{m-1} 为路径的必经节点,且必为关键转折点,将节点  P_{m-1} 添加至集合V ;若直线 P_{1}P_{m} 没有经过障碍物,则判定节点P_{2},\cdots ,P_{m}为冗余节点,从 P_{m} 继续向后连接节点集U 中的节点,直到连接到路径的终点 P_{n} ,将所有的关键节点都添加至集合V 。关键节点选取完成后,集合 V\left \{ P_{1},P_{m-1},\cdots ,P_{m+k},P_{n} \right \}包含了所有关键节点,假设集合V 中包含的路径关键节点数为m。 

  (c)依次连接集合V 中所有的节点,完成对路径的全局优化,路径全局优化步骤图如图

(2)优化动态窗口法

由动态窗口法的原理可知,路径的影响因素主要是移动机器人的航向角和角速度,由于角速度通常是固定配置值,所以影响路径平滑程度和路径长度的主要因素是航向角。航向角偏差越大,所需的转弯距离越长,越容易造成路径的冗余。故本文主要针对航向角进行改进和优化,局部优化的具体步骤如下。

   (a)从起点 P_{1} 开始,依次将关键节点集 V\left \{ P_{1},P_{m-1},\cdots ,P_{m+k},P_{n} \right \}中除开终点  P_{n} 的所有节点作为局部路径规划的起点 S_{1},S_{2},\cdots ,S_{m-1} ;从第二个节点 P_{m-1} 开始,依次将集合 V\left \{ P_{1},P_{m-1},\cdots ,P_{m+k},P_{n} \right \}中的所有节点作为局部路径规划的终点 D_{1},D_{2},\cdots ,D_{m-1} ,将全局路径分为 S_{1}D_{1},S_{2}D_{2},\cdots ,S_{m-1}D_{m-1} 共 m-1 段路。 

这里没有看懂

(b)计算路径 S_{1}D_{1} 即原线段 P_{1}P_{m-1} 的倾斜角度,计算线段倾斜角度的公式如下。 

(c)将路径的倾斜角度转换为弧度值,作为移动机器人的初始航向角,斜率角度转化弧度值的公式如下。 

      

(d)初始化移动机器人的状态参数集 L{l},其中l{x,y,yaw,v,w} 记录移动机器人路径规划过程中的状态参数,包括位置、航向角、线速度、角速度。 

(e)按照实际环境需要,设定移动机器人的初始线速度V(m/s) 、初始角速度 w(rad/s) ,结合前三步得到起点S_{1}(m)、终点 D_{1}(m)、初始航向角 yaw(rad) ,综合得到 

(f)使用动态窗口法进行局部路径规划,并将机器人的所有状态参数l_{i}更新到到状态参数集L 中,记录路径的所有节点和机器人的位姿信息,每段路径完成后状态参数集变成 表示移动机器人的最新状态参数。 
 

(g)按照式(b)计算下一段路径的倾斜角度  ,同时将机器人上一状态参数l中的 yaw转换为角度值 ,弧度值转化为角度值的公式如下。 

这里为什么要将机器人的航向角设为yaw/2呢???

(h)重复(g),

图片文字均来自该论文,仅供学习,侵权联删。

猜你喜欢

转载自blog.csdn.net/Zhouzi_heng/article/details/115036160