机器人行走问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5. 模型的建立与求解
为了不与障碍物发生碰撞, 题目要求机器人行走线路与障碍物间的最短距离 为1个单位,且越远越安全。所以,可以按题目要求将问题分为两种情况,一是 在最小安全距(即1个单位长度)下求最短路径,二是考虑安全因素,找到保留 适当安全距下求最优路径。
5.1 最小安全距下的最短路径
5.1.1 模拟环境下的理论最短路径算法 首先在不考虑机器人行走线路与障碍物间的最短距离为1个单位的条件,即 机器人只要不穿过障碍物即可,同时允许机器人能沿折线移动的情况下,求机器 人行走的最短路径。 把该情况下求得的路径,我们称之为理论最短路径。 从出发点R 到目标点A(或B 、 C)的直线距离是最短的,但考虑到路径不 能穿过障碍物,所以理论上最短路径是一条刚好绕过障碍物的折线。本节在平面 场景图中的无障碍区域中插入N个路径点,通过计算机搜索出连接其中一个或多 个点的最短折线。 下面给出理论最短路径的计算机模拟算法过程: 步骤1:在100×80的平面场景图内随机读取N个路径点,并存储在p中; 步骤2:判断 p中的第 i个点是否在障碍物区域内,若在障碍区域内,则删除 该点,否则将该点放入集合S中; 步骤3:: 将集合S中的点及R 、A、B 、C点依次存储在 pp中,求出pp中任意两 点的距离; 步骤4:将 pp任意两点i,j 的距离 d(i,j) 存储在矩阵d 中,若i ,j两点间的连线经 过障碍物区域,则记d(i,j)为∞; 步骤5: 输入d矩阵, 调用Floyd算法, 从而得出pp中第i 点到第j点的最短路径, 且该路径不经过障碍物区域; 步骤6:输出RA、RB、RC 之间的的最短路径值以及路径图。 模拟环境下最短路径的最优解 根据上述算法,通过Matlab运行得到如下路径图:
问题可以从两个角度进行考虑,一是最小安全距下求最短路径,二是权衡安 全因素与路径值,选择较优的路径。 对于问题(1) ,求机器人从出发点安全到达每个目标点的最短路径,若机器 人可以折线转弯,机器人要绕过障碍物到达目标点必须在障碍物周围增加路径 点。只要能找到这些最佳的路径点,对求出的折线形式的路径进行平滑处理, 即 可得到最优的路径。 对于问题(2),求机器人依次安全通过 A、B 、C点的最短路径,可以在问题(1) 的基础上, 用求解问题(1)的方法得出 R、 A、 B和C四个路径点两两间的最短路径, 从而得到机器人依次通过A、 B、 C的最短路径, 最后对所求的路径进行平滑处理, 即可得到最优的路径。
5
5.1.2 基于垂线法的Floyd算法改进 Floyd算法的基本思想是, 从邻接矩阵A开始进行n次迭代, 第一次迭代后A[i,j] 的值是从vi到vj且中间不经过变化大于 1的路径点的最短路径长度,第k 次迭代后 A[i,j] 的值是从vi到vj且中间不经过变化大于k的路径点的最短路径长度,第 n次迭 代后A[i,j] 的值就是从v i到v j的最短路径长度。 Floyd算法是建立在已知路径点的权值及方向的基础上的,因此机器人行走 的最短路径规划需从算法路径点的选择、路径点的带权有向图入手进行研究。 (1) 路径点的选择 垂线法是指在指定连线上作垂线, 通过垂线与障碍物边沿的交点, 确定Floyd 算法中的路径点的方法, 垂线法能够有效地将环境中最短路径上的路径点选择出 来。垂线法选择路径点的步骤为: 步骤1 连接始点vk(初始值为v 0) 、终点v n,图5-1-3中的终点为v5 ,找出连线 上所经过的障碍物Oi,图5-1-3中障碍物为O1 ; 步骤2 在障碍物Oi上,以vkvn 的连线(简称为t)作垂线m,垂线m 与t的交点 为Qi,垂线m 与障碍物边沿的交点为Ui; 步骤 3 分别选择 t 两边UiQi 距离最大的点vi,纳入节点集合 S 中,其中vi 与v5 连线的方向是沿着连线t 的方向的,图5-1-3中障碍物O1选择的节点为 v 1、 v 2;若 v i与终点v 5的连线经过障碍物Oi,则将v i设为连接始点v k,返回步骤1,直到vi与终 点v 5的连线不经过障碍物Oi。如图5-1-3,v1 与v 5的连线经过障碍物O1 ,需再作v1 与v 5的连线的垂线,得到v 3,同理再作v3与v5连线的垂线,得到v4 。 因此,根据垂线法得到集合S中的路径点为:S={v0、v1 、v 2、v 3、v 4、v5}。
3. 模型假设
(1) 移动机器人在二维平面进行运动,不需要考虑障碍物高度信息; (2) 如果两个障碍物相距太近,障碍物之间距离小于移动机器人的宽度,则 将两个障碍物合并作为一个障碍物处理; (3) 在规划过程中把移动机器人可以看作质点处理; (4) 在移动过程中机器人不会发生故障,并严格按照给定指令行走; (5) 机器人转弯路线是圆弧线段,机器人不能折线转弯; (6) 每个圆形路线的半径至少为1个单位; (7) 假设每个转弯路径处只有一段圆形曲线且转弯路径是与直线相切的一圆 形曲线段; (8) 每个圆形路线的半径至少为1个单位。
在平面场景中、障碍物外指定一点为机器人要到达的目标点,确定机器人的 最优行走路线。其中,最优行走路线需满足: (1) 曲线光滑,由直线段和圆弧线段组成; (2) 机器人转弯路线是圆弧线段,机器人不能折线转弯; (3) 转弯路径是与直线相切的一圆形曲线段,也可以是两个或多个相切的圆 弧曲线段组成; (4) 每个圆形路线的半径至少为1个单位; (5) 机器人行走线路与障碍物间的最短距离为1个单位,若碰撞发生,则机器 人无法到达目标点,行走失败。 请满足以上要求回答如下问题: 1. 场景图中有三个目标点A(50,40) 、B (75,60) 、C(95,20) ,请用数学 建模的方法给出机器人从R(0,0)出发安全到达每个目标点的最短路线; 2. 求机器人从R(0,0)出发,依次安全通过A、B 到达C的最短路线。
80 70 B(75,60) 60 50 40 A(50,40) 30 20 C(95,20) 10 0 0 R(0,0) B2(30,30;10,15) B4(85,15;5,10) B1(20,40;5,10)
B3(70,50;15,5)
10
20
30
40
50
60
70
80
90
100
图2 机器人可行域与不可行域
2. 问题分析
该问题是一个机器人的路径规划问题,为了使机器人能够无障碍到达目标 点,路径需满足以下要求: (1) 转弯路径是与直线相切的一圆形曲线段,也可以是两个或多个相切的圆 弧曲线段组成,每个圆形路线的半径至少为1个单位; (2) 机器人行走线路与障碍物间的最短距离为1个单位;
2
为满足要求(2) ,将障碍物边界向四周延伸 1个单位,如下图 2所示,这样, 空白区域则为机器人的实际可行域U。
机器人行走问题
摘要
本文主要研究机器人在有障碍物的情况下的路径规划, 并且要求机器人的行 走路径为平滑曲线。 通过将机器人路径规划问题化为行走路径可行域中路径点的 选取问题,从而将其转化为图论中的最短路径问题。最后,通过对折线的平滑处 理得到机器人的最优路径。 对于路径点的选取,首先用计算机随机模拟路径点,用 Floyd算法得到当前 随机路径点构成的网路图的最短路径。通过多次模拟结果的对比,缩小了各个模 拟点的选取范围,然后在此基础上提出了垂线法来选取节点,用Floyd 算法得到 理论最短路径。 最后, 再对其做相应的平滑处理后得到最小安全距下的最短路径。 对于路径评估的两个目标函数(路径长度和安全度)的考虑,本文通过对其 分配不同的加权权重系数,将其转换为遗传算法中的适应度函数,用链接图法建 立环境模型并通过Floyd算法找出一条初始路径,并在充分考虑局部最优的可能 性下由理论最短路径选取另一条初始路径, 通过比较经遗传算法优化后两条路径 的适应度函数大小,得到全局最优的安全最优路径。 对于问题一:本文在此基础上考虑最小安全条件及平滑条件,分别对3种障 碍物顶点折线的情形做出最优的平滑处理,从而得到最小安全距下的最短路径。 最后用路径长度与安全度作为路径评估的两个目标函数, 通过遗传算法得到安全 最优路径。实验结果如下: 表1 问题一结果 路径 d RA d RB d RC 70.5075 107.9586 102.0516 Floyd算法 73.3182 111.4842 108.8761 遗传算法 对于问题二:对于求R 依次到A、B 、C的最优路径的问题,本文通过在第一 问的基础上求得的 d RA , d AB , d BC 的最优路径,再对目标点处 A,B的折线进行 相应平滑处理。实验结果如下: 表2 问题二结果 路径 d RABC 159.3003 Floyd算法 166.7941 遗传算法
3
4. 符号说明
使用符号 V U d RA d RB d RC d RABC L 含义说明 不可行域,即障碍物边界向外扩展1个单位的区域 可行域,即除去不可行域后剩下的区域 从R 到A的路径的长度 从R到B 的路径的长度 从R到C的路径的长度 从R 依次到A、B、C的路径的长度 以半径为1的圆平滑处理折线后的路径值
4
80 70 B(75,60) 60 50 40 30 20 C(95,20) 10 0 R 0 10 20 30 40 50 60 70 80 90 100 A(50,40)
图5-1-1 模拟环境下的路径图(1)
其中, d RA =70.9226, d RB =109.2076, d RC =103.1175。 该计算机模拟算法的准确度与N的值有关,N越大,模拟出来的结果就越接 近于实际。但是由于算法的复杂度,使得N的值不能太大,所以模拟结果与实际 之间存在着一定的误差。 又由于随机选取的路径点不同,每一次运行结果都有一定误差,这表明算法 存在较大的随机性。它的求解过程限制于随机选取的路径点,如下图5-1-2所示:
80 70 B(75,60) 60 50 40 30 20 C(95,20) 10 0 A(50,40)
0
10
20
30
40
50
60
70
80
90
100
图5-1-2 模拟环境下的路径图(2)
其中, d RA =73.2921, d RB =114.6570, d RC =103.2072。 当路径点距离障碍物顶点较远时,路径只能经过障碍物周围的点到达目标 点,导致不能得到理论上的最优值。 通过多次模拟实验发现,当选取的路径点越接近障碍物顶点(如路径R-A, 当路径点越接近障碍物顶点(40,15))时,得到的路径值越小,并趋于一个常数。 因此,根据此规律,可以通过重新规定路径点选取的方法以减小随机选取带来的 误差,同时路径点数目的减少能有效减小算法的时间复杂度,并缩短运行时间。
80 70 B(75,60) 60 50 40 30 20 10 0 v0 0 B2(30,30;10,15) O1 B1(20,40;5,10)
v1
v3
v4 v5
A(50,40) B4(85,15;5,10) C(95,20) B3(70,50;15,5)
80 70 60 50 40 30 20 10 0 0 R(0,0) B2(30,30;10,15) B1(20,40;5,10) B3(70,50;15,5) A(50,40) B4(85,15;5,10) C(95,20) B(75,60)
10
20
30
40
50
60
Hale Waihona Puke Baidu70
80
90
100
图1 机器人行走环境
关键词 机器人 路径规划 计算机模拟 垂线法 Floyd算法
遗传算法
1
1. 问题重述
下图是一个100×80 的平面场景图,在 R( 0,0)点处有一个机器人,机器 人只能在该100×80的范围内活动,图中四个矩形区域是机器人不能与之发生碰 撞的障碍物,障碍物的数学描述分别为 B1(20,40;5,10) 、B2(30,30;10, 15) 、B3 (70,50;15,5) 、B4 (85,15;5,10) ,其中B1( 20,40;5,10) 表示一个矩形障碍物,其中心坐标为(20,40) ,5表示从中心沿横轴方向左右各 5个单位, 10表示从中心沿纵轴方向上下各10个单位,其它三个障碍物的描述完 全类似。