机器人路径规划Word文档下载推荐.docx
《机器人路径规划Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《机器人路径规划Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
2.1 栅格地图的建立
首先对移动机器人及工作环境作以下假设:
1)工作环境是在一个面积大小为100的正方形区域;
2)移动机器人形状大小为11的正方形;
3)障碍物形状不作限定,所占面积为1~n,n取值范围[1,100];
将移动机器人的工作环境以栅格地图的形式进行分块,每个栅格形状大小为11,并对每个栅格进行编号,从坐标原点开始,沿X轴编号,编号形式如图1所示,图中灰色部分为障碍物位置。
图1 栅格地图模型
2.2 移动机器人在栅格地图中的移动方向
假定移动机器人所在位置为点(xs,ys),移动机器人的移动方向有8个,方向表示如图2所示,移动一个单元格后机器人的位置分别为(xs+1,ys+1)、(xs,ys+1)、(xs–1,ys+1)、(xs–1,ys)、(xs–1,ys–1)、(x,ys–1)、(xs+1,ys–1)、(xs+1,ys),需要移动的距离分别是
。
图2 移动机器人移动方向和移动距离图
3 移动机器人最短路径规划算法的实现
3.1 Floyd算法的基本思想
Floyd算法的基本思想是:
假设求从节点vi到vj的最短路径。
如果从vi到vj有弧,则从vi到vj存在一条长度为Aij的路径,该路径不一定是最短路径,尚需进行n次试探。
首先考虑路径<
vi,v1,vj>
是否存在,如果存在,则比较<
vi,vj>
和<
的路径长度,取长度较短者为从vi到vj的中间节点的序号不大于1的最短路径。
假如在路径上再增加一个节点v2,也就是说,如果<
vi,…,v2>
v2,…,vj>
分别是当前找到的中间节点的序号不大于1的最短路径,那么<
vi,…,v2,…,vj>
就有可能是从vi到vj的中间节点的序号不大于2的最短路径。
将它和已经得到的从vi到vj中间节点序号不大于1的最短路径相比较,从中选出中间节点的序号不大于2的最短路径之后,再增加一个v3,继续进行试探。
依次类推,经过n次比较后,求得从vi到vj的最短路径。
3.2 移动机器人最短路径规划的流程
Floyd算法是建立在已知节点的权值及方向的基础上的,因此移动机器人的最短路径规划从算法节点选择、节点的带权有向图入手进行研究。
3.2.1 节点的选择
垂线法是指在指定连线上作垂线,通过垂线与障碍物边沿的交点,确定Floyd算法中的节点的方法,通过垂线法能有效的将环境中最短路径上节点选择出来,垂线法选择节点的流程为:
1)连接始点v0、终点vt,找出连线上所经过的障碍物Oi,图3(a)中障碍物为O1、O2;
2)在障碍物O1、O2上,以v0vt的连线(简称为t)作垂线m,垂线m与t的交点为Qi,垂线m与障碍物边沿的交点为Ui;
3)分别选择t两边UiQi距离最大的点vi,纳入节点集合S中,图3(b)中障碍物O1选择的节点为v1、v2,障碍物O2选择的节点为v3、v4。
因此,根据垂线法得到集合S中的节点为:
S={v0、v1、v2、v3、v4、vt}。
图3 垂线法选择节点图
3.2.2 有向图及邻接矩阵
根据垂线法选择节点后,图3(b)所示,根据节点v0、v1、v2、v3、v4、vt所在位置计算出节点间的权值大小。
w01指v0、v1间的权值,w01=3+
,权值大小由两点间的移动距离得到,为方便观察,将vt用v5代表。
如果两点连线间有障碍物,这两点间的权值为∞,路径的走向是沿着连线t的方向,也就是连线t同一边节点间的方向,与确定它的Qi点间的方向是相同的,在t不同边的点直接不限制相互间的方向。
所以只存在有v0到v1、v0到v2的方向,而没有v1到v0、v2到v0的指向,v1与v2、v4,v2与v3、v4间是存在指向的,如果两点连线间有障碍,权值仍为∞。
因此,根据节点位置、障碍物位置和连线的t方向,得到环境路径的有向带权图,如图4(a)所示,及有向图的邻接矩阵,如图4(b)所示。
图4 移动机器人带权路径有向图及其邻接矩阵
3.2.3 Floyd算法路径规划的实现
移动机器人路径的邻接矩阵,也就是初始状态下vi到vj没经过其他中间节点的权值矩阵。
因此,
(1)
移动机器人寻找最短路径的实现步骤如下:
1)写出vi到vj初始无中间节点权值矩阵A0,如式
(1)所示,从权值矩阵看出,v0、v1、v2、v3、v4、v5相互间的权值关系和方向关系。
2)计算vi到vj间有1个中间节点情况下的最短权值矩阵。
设vj经过一个中间点vr到达vj,则vi到vj的最短
距离为:
,最短权值矩阵为
即移动机器人中间经过1个节点的权值矩阵为:
(2)
3)计算vi到vj间有k个中间节点情况下的最短权值矩阵。
设vj经过中间点vr到达vj,vi经过r个中间节点到达点vr的最短距离为
,vr经过k–r个中间节点达到点vj的最短距离为
,则vi经过k个中间点到达vj的最
短距离为
,最短权值矩阵为:
则移动机器人中间经过2个节点的权值矩阵为:
(3)
经过分析,得到移动机器人中间经过3个节点、4个节点时的权值矩阵和经过2个节点时的权值矩阵相同。
移动机器人从v0到v5,经过v2、v4所需距离最短,最短距离
移动机器人寻找最短路径的Floyd算法非形式化描述为:
a)初始化:
A0
b)Fork:
=1ton
Fori:
Forj:
If
Then
c)算法结束
语句的执行频度为:
n3。
3.3 Floyd算法的改进
根据Floyd算法推算v0到v5最短路径过程时,间接推算出所有节点间的最短路径,这样算法执行频度相对增加。
移动机器人在寻找最短路径时,只需要确定从始点出发,直到终点时,相关节点的最短路径,其余节点间的最短路径不作要求。
因此,需要对Floyd算法提出
改进,算法的改进方法如下:
1)求vi到vj之间有1个中间节点的最短权值矩阵时,中间节点及vi、vj的选择遵循以下规则:
①不选择始点v0或终点v5为中间节点。
②当vj=v0时,不进行中间节点的选择。
③当vi=v5时,不进行中间节点的选择。
2)求vi到vj之间有2~k个中间节点的最短权值矩阵时,中间节点及vi、vj的选择遵循以下规则:
也就是2~k个中间节点的任何一个,都不能为v0、v5。
③当vi=v5时,不进行中间节点的选择。
按照规则进行算法改进后,i、j、k取值变化为:
表1是算法改进前后,Floyd算法的性能比较表。
表1 Floyd算法改进前后的性能比较表
n
语句执行频度
语句执行频度之比
改进前
改进后
改进后/改进前
3
27
4
0.148
64
18
0.281
5
125
48
0.384
6
216
100
0.463
7
343
180
0.525
8
512
294
0.574
9
729
448
0.615
10
1000
648
0.648
4 实验结果
Floyd算法改进前后频度随n值变化曲线如图5所示,从图上看出随着n值的增大,语句执行频度增加,改进后明显比改进前语句执行频度低,也就是改进后执行算法所用时间较少,充分证明了Floyd算法改进的优越性和合理性。
图5 Floyd算法改进前后频度对比图
图6所示为改进后与改进前语句执行频度之比与n值的关系图,随着n值增大,比值增大,说明这种改进方式更适合节点稀疏的有向图,对于节点稠密的有向图这种改进方式不及节点稀疏的有向图优越,但从图5中改进前后频度随n值变化曲线看出,节点稠密有向图改进后仍比改进前优越。
图6 Floyd算法改进前后频度比值图
图7中所示线路是移动机器人基于Floyd算法实现的路径规划路线,路径按照垂线法分析出的节点选择的路径,实现了路径最短的选择原则。
图7 基于Floyd算法的移动机器人路径选择图
5 结 论
本文对移动机器人工作环境建模,在建模的基础上,根据垂线法对路径节点进行选择,然后根据Floyd算法选择移动机器人的最短路径,并对Floyd算法进行简化改进,最后通过实验证明改进的Floyd算法实现了移动机器人路径的最短和时间的减少。
今后我将对Floyd算法在移动机器人最短路径规划过程中的改进继续作深入研究。
最后,衷心感谢倪建军老师在智能机器人课程上的悉心指导与帮助!
参考文献
[1]黄贵玲,高西全,靳松杰,等.基于蚁群算法的最短路径问题的研究和应用[J].计算机工程与应用,2007,43(13):
228-235.
[2]刘韵,何建农.基于交通网络最短路径搜索的改进算法[J].计算机工程与应用,2007(14):
220-222.
[3]胡桔州.Floyd最短路径算法在配送中心选址中的应用[J].湖南农业大学学报:
自然科学版,2004,30(4):
382-384.