机器人避障问题的解题分析(建模集训)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

v1.0 可编辑可修改机器人避障问题的解题分析

摘要:本文对2012年全国大学生数学建模竞赛D题机器人避障问题进行了全面分析,对最短路的设计进行了理论分析和证明,建立了机器人避障最短路径的几何模型,对最短时间路径问题通过建立非线性规划模型,有效地解决了转弯半径、圆弧圆心位置和行走时间等问题。

关键词:机器人避障;最短路径;Dijkstra算法;几何模型;非线性规划模型

1 引言

随着科学技术的进步和计算机技术的发展,机器人的应用越来越广泛,在机器人的应用中如何使机器人在其工作范围内为完成一项特定的任务寻找一条安全高效的行走路径,是人工智能领域的一个重要问题。本文主要针对在一个场景中的各种静态障碍物,研究机器人绕过障碍物到达指定目的地的最短路径问题和最短时间问题。

本文以2012年“高教社”杯全国大学生数学建模竞赛D题“机器人避障问题”为例进行研究。假设机器人的工作范围为800×800的平面正方形区域(如图1),其中有12个不同形状的静态障碍物,障碍物的数学描述(如表1):

图1 800×800平面场景图

表1

在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动,机器人不能与障碍物发生碰撞,障碍物外指定一点为机器人要到达的目标点。规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。机器人直线行走的最大速度为50=v 个单位/秒。机器人转弯时,最大转弯速度为2

1.0100

e

1)(ρρ-+==v v v (ρ是转弯

半径)。如果超过该速度,机器人将发生侧翻,无法完成行走。

场景图中有4个目标点O(0, 0),A(300, 300),B(100, 700),C(700, 640),下面我们

将研究机器人从O(0, 0)出发,求O→A、O→B、O→C和O→A→B→C→O的最短路径,以及机器人从O(0, 0)出发,到达A的最短时间路径问题。

2 静态避障问题中机器人行走最短路径的分析

行走路径的设计

在本例中障碍物有4种不同形状:矩形、平行四边形、三角形和圆形。考虑到机器人本身的形状和大小,为研究方便起见,将机器人视为一个点。机器人与障碍物之间的距离至少为10个单位,因此可以先用包络线画出机器人行走的危险区域(如图2),包络线内是机器人的禁入区。

图2 障碍物包络图

对障碍物的一个角点来说,其禁入区的边界应由两条直线和一条圆弧组成,两条直线分别平行于角点的两条边,间距为10个单位,圆弧是以障碍物角点为圆心,半径为10个单位的四分之一圆弧。可以证明具有圆形限定区域的最短路径由两部分组成,一部分是平面上的自然最短路径(直线段),另一部分是限定区域的部分边界(即绳子拉到最紧时的圆弧部分),这两部分是相切的,互相连接(如图3所示)。由A绕过半圆形障碍物到达B点的路径有多条,其中最短路径为AEFB(E、F为切点),其他路径与AB直线围成的区域都覆盖这一路径与AB直线围成的区域,由此证明[1]。

图3

由此可以确定机器人的行走路径应为线圆结构,那么是否是转弯半径越小,行走路径就越短呢为此需要求在已知两个固定点和圆弧圆心坐标的情况下,圆弧半径r 为何值,才能使机器人的行走路径最短。

图4

如图4,已知两个固定点()()1122,,,A a b B a b ,圆心(),O m n ,可以求得两切点坐标()()1122,,,C x y D x y ,设半径为r ,圆弧CD 所对的圆心角为ω,A B →的路径长度为L ,则

()()

()()

22

22

1122111122221122arctan arctan L AC BD r y b y b x a y b x a y b r x a x a ω=++⎛⎫

--=

-+--+-⋅- ⎪

--⎝

⎭ 将路径函数L 对r 求导,得11221122

arctan

arctan y b y b

L x a x a --'=--- 因为11111111,,arctan

0y b x a y b x a ->>>-,22222222

,,arctan 0y b

x a y b x a -<><-,所以0L '>.

0L '>,则函数L 为单调递增函数,因此当圆弧半径r 逐渐增加时,机器人的行走路径

会增大,r 逐渐降低时,机器人的行走路径会减小[2]

,本题规定转弯半径最小为10个单位,所以在路径设定时应将转弯半径设定为最小值10个单位。

根据以上分析,对于静态障碍物机器人的行走路径应遵循以下三个原则: 原则一:机器人的行走路径为线圆结构,由两条切线和一段圆弧组成; 原则二:每个路口至多发生一次转弯,并以障碍物顶点为转弯圆弧的中心; 原则三:机器人转弯圆弧半径为最小允许半径10个单位。

最短路径的选择

从起点到达目标点有多条路径,根据Dijkstra 算法可以找出从起点到达每一个目标点的最短路径。本文采用带权的有向图表示机器人的行走路径,途中节点为障碍物的角点,边表示障碍物之间的联系,权表示线路的长度(节点之间的直线距离)。从顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径就是所求最短路径,Dijkstra 算法就是按路径的长度递增次序产生最短路径的算法[3]

下面以 O B →为例,确定O B →的最短路径。

如图5所示,根据障碍物的形状和位置,本文给出了机器人从O(0, 0)出发避过障碍物到达目标B 点的4条较优路径。

图5

画出O B →的非循环网络图(如图6):

相关文档
最新文档