CN106708043B - 一种在复杂地图下改进Visual Graph的方法 - Google Patents

一种在复杂地图下改进Visual Graph的方法 Download PDF

Info

Publication number
CN106708043B
CN106708043B CN201611144910.2A CN201611144910A CN106708043B CN 106708043 B CN106708043 B CN 106708043B CN 201611144910 A CN201611144910 A CN 201611144910A CN 106708043 B CN106708043 B CN 106708043B
Authority
CN
China
Prior art keywords
light
map
point
barrier
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611144910.2A
Other languages
English (en)
Other versions
CN106708043A (zh
Inventor
陈智鑫
林梦香
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201611144910.2A priority Critical patent/CN106708043B/zh
Publication of CN106708043A publication Critical patent/CN106708043A/zh
Application granted granted Critical
Publication of CN106708043B publication Critical patent/CN106708043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Processing Or Creating Images (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本发明公开了一种在复杂地图下改进Visual Graph的方法,使之不仅适用于凸多边形障碍物的地图,也适用于一般的复杂地形的SLAM地图。Visual Graph是1979年提出的路径规划算法,模拟了光线沿直线传播这一特性,将起点和终点与凸多边形障碍物的角点连接,构成路径,但也仅限于凸多边形障碍物。本发明沿用主要思路,即光沿直线传播,从路径的起点和终点发射光线,经过障碍物的反射,最终以光路为载体获得一条连接起点和终点的路径,实现路径规划的功能,而不是简单使用障碍物顶点连线作为载体,这样也就不仅限于凸多边形的障碍物,对一般复杂地形都适用。

Description

一种在复杂地图下改进Visual Graph的方法
技术领域
本发明涉及智能机器人运动规划领域内的一种路径规划算法,具体是一种针对地形复杂的地图下Visual Graph算法的改进,使其不仅可以应用在凸多边形障碍物的地图下,也可以运用在复杂的地图下。
背景技术
当下能够自主导航避障的机器人***研究异常火热,而且也已经有许多产品应用于实践。如餐馆的服务机器人,就拥有障碍物识别,路径规划的能力;又如家庭扫地机器人,也拥有在开阔空间内规划自身运动路径的能力。在公共运输方面,无人机快递投递的应用已经开展的如火如荼,在快递投递上也必须用到路径规划,以使无人机能够在避开障碍物的前提下以最短的路径到达目的地并完成投递。
路径规划即是指机器人决策如何从地图的某一点运动到另一点的能力。首先要求机器人能够获得当前环境的地图信息,并能定位当前自身的位置,随后才可以进行路径规划,定位和建图的算法目前最实用的就是SLAM算法。目前有许多路径规划算法,如RRT、PRM等。
Visual Graph也是常用的路径规划算法,但是其应用对地图有严格的限制,要求地图的障碍物要是凸多边形,并且各个障碍物的顶点坐标已知,随后连接各个障碍物的顶点,并以这些连线为载体,生成路径。但是在实际应用场景中,地形是十分复杂的,地图中的障碍物形状是不规则的,而且其顶点坐标也是未知的,因此要直接利用Visual Graph算法是不可行的。现行的解决该问题的方法为,首先对地图进行预处理,使用形态学方法,如分水岭算法、特征匹配算法等,可以提取地图中的特征点或者障碍物的边界,获得障碍物的大致形状,并以直线连接各个特征点,将障碍物转化为一个凸多边形,再应用Visual Graph算法。这种方法的计算量不小,涉及的额外算法多,效率很难估算,而且在其将障碍物转化到凸多边形时,会对障碍物的边缘进行一定程度的膨胀或腐蚀,可能造成地图中原本不是障碍物的区域成为障碍物,原本是障碍物的区域成为可通过,可能使得最终得到的路径非法。
发明内容
本发明的技术解决问题:克服了原始Visual Graph对地图的硬性要求,提出一种在复杂地图下改进Visual Graph的方法,使其不再仅限于凸多边形障碍物的地图,在复杂的SLAM地图下也可以运行,并且无需对地图做预处理,节点的密度参数也很容易调整,以生成精确的路径。
本发明的技术解决方案:一种在复杂地图下改进Visual Graph的方法,其特征在于:能够使Visual Graph不仅仅应用于凸多边形障碍物的地图,对一般的SLAM地图也可以适用,其步骤如下:
步骤1:对地图进行转化,将灰度图或者SLAM所构建的地图二值化处理,得到转化后的地图,此过程称为地图二值化过程;
步骤2:针对转化后的地图,给定起点和终点,将起点和终点储存在一个顺序表中,并从起点和终点开始发射光线,开始建立光路图,此过程称为初始化过程;
步骤3:当光线碰触障碍物时,记录该碰撞点的坐标,并与顺序表中已有的节点求取距离,若距离小于一个阈值则舍弃该点,否则保留,该过程称为节点储存判定过程;
步骤4:从保留的节点开始,重新发射光线,并重复步骤3的过程,此过程称为重复光线发射过程;
步骤5:当所有光线碰撞障碍物都无法生成新的节点时,判断建图结束;
步骤6:在建好的拓扑地图上应用A*寻路算法,即可获得一条连接起点和终点,以光路为载体的路径,此过程称为寻路过程。
所述步骤1中,地图的二值化的方法为:
调用opencv库读入所给的地图文件,并将地图矩阵转化为一个二维整形数组,即表示二维平面空间,数组中的每一个元素代表地图上相应坐标的一个像素点,若该点为障碍物点,则将数组值设为1,若该点为可通过点,则将数组值设为0。
所述步骤2中,发射光线的方法为:
(1)对于某一点,从0度,即水平向右方向开始每隔一个固定的步长发射光线,直到360度为止;
(2)对于每个方向,光线逐像素向前推进,每推进一个像素,将会检测该点是否为可通过点,若可通过则继续推进,若不可通过则表示碰到障碍物,记录该点,进入步骤3的判断过程;
(3)若某一方向的光线距离过小,则表示该方向与障碍物十分贴近,是不合理的,因此若光线距离小于某一阈值,则该方向的光线将被舍弃。
所述步骤2中,储存节点的方法为:
设置两个顺序表,一个顺序表allnode储存所有的节点,即已经发射过光线与尚未发射光线的所有节点,另一个顺序表open储存尚未发射光线的节点。初始化时,将起点和终点都存入两个顺序表中。
所述步骤3中,节点储存的判定方法为:
当光线碰到障碍物时,将该碰撞点与allnode中的所有节点求取距离,若该距离小于某一阈值,则舍弃该点,否则将该点加入allnode和open表中。
所述步骤4中,重复光线发射的方法为:
取出open表头的一个元素,重复步骤2所示的光线发射过程。
所述步骤5中,建图结束的判断方法为:
当某一节点发射的光线与障碍物的碰撞点与已有点的距离均小于阈值时,则该节点不会生成新的节点,此后再从open表中取出一个点进行光线发射,此时open表的元素个数将会减少,当open表为空时,即建图过程结束。
本发明与现有技术相比的优点在于:
(1)本发明沿用原始算法的光线直线传播思路,但突破了原始算法只能应用于凸多边形障碍物地图的局限。在复杂地图中,以光线和障碍物表面的碰撞点作为节点,即类似于凸多边形的顶点,并从该节点发射新的光线来生成更多的节点,遍布整张地图的障碍物表面,并以光路为载体形成路径,对地图本身没有任何要求;
(2)本发明无需对地图进行预处理,计算量极小。与现有的改进Visual Graph的方法相比,现有技术需要额外设计算法来对地图进行预处理,以生成一张凸多边形地图来适应原始的Visual Graph算法,增加了非常巨大的计算量。而本发明对地图没有任何要求,即无需另外设计算法对地图进行预处理来生成凸多边形障碍物地图,直接对原地图进行操作,省去大量计算量,提高了运行效率;
(3)本发明的各项阈值参数都十分容易调整,与现有的技术方法相比,现有技术需要对障碍物表面进行膨胀或腐蚀,使障碍物的形状变得规则均匀,以此适应原始的VisualGraph算法,所得的路径常常出现穿越障碍物的非法情况。而本发明通过调整阈值参数可以得到一条更精确、合法的路径,无需对障碍物的边缘腐蚀或膨胀,不会导致地图中的障碍物点被腐蚀为可通过点,可通过点被膨胀为障碍物点,所得的路径精确而且合法。
附图说明
图1为原始Visual Graph算法效果;
图2为本发明方法的流程图;
图3为本发明效果图。
具体实施方式
本发明一般应用于slam算法建立的地图中,即是实际地形,较为复杂。
如图2所示,本发明具体实施步骤详细说明如下:
步骤1:用slam算法或其他建图算法获取当前所处环境的地图信息,以.pgm格式的图片传入,调用opencv库函数将其二值化,得到opencv的矩阵变量Mat,再将其转化成一个二维数组,其值为0或1,0表示可以通过,1表示存在障碍物,二值化过程完成;
步骤2:给定起点和终点,若已经由SLAM等定位算法定位机器人所在的位置,则起点为机器人当前所在点,终点则是目标点。首先将起点和终点置入一个名为open的顺序表中,作为待发射光线的节点,同时将它们存入一张名为allnode的顺序表,allnode是用来储存所有节点的顺序表。
步骤3:当open表非空时,从open表中取出一个点开始以起始发射角0度,即水平向右发射光线,在光线还没有碰到障碍物时,光线逐像素向前推进,每推进一个像素点,都对下一个像素点进行检测,若可通过则继续推进,若不可通过则表示碰到障碍物,此时光线停止推进,并记录该碰撞点坐标;
步骤4:对该碰撞点进行检测,若该碰撞点与光线发出点的距离小于某一阈值,则表示该方向与障碍物十分贴近,该方向的光线是不合理的,应当舍弃。若光线合理,则求取碰撞点与allnode表中所有元素的欧式距离,当其距离小于某一阈值时,则该点舍弃,否则将该点作为新的预备发射节点,同时存入open表和allnode表的表尾,并将该节点与光线发射节点建立连接,连接的具体实现为两个节点的结构体中各自包含一个指针,令两个对象所包含的指针互指,即实现节点连接,亦即拓扑图中的边;
步骤5:给发射角度一个步进角度,重复光线发射的过程,并对光线与障碍物的碰撞点进行步骤4的检测。若角度到达360度则该点的光线发射结束,重复步骤3,重新从open表中取出一个点,重复进行光线发射;
步骤6:当某一光线360度光线发射结束后均无法生成新的节点,则从这个时候开始,open表的内容将会减少,当open表中所有的节点都无法创建新的节点时,open表将为空,此时表明建图完成,已获得一张拓扑地图,其顶点为光线发射点,其边为节点与节点之间的光线连接;
步骤7:在所得的拓扑地图上应用A*寻路算法,A*的启发式代价设置为节点之间光线的距离,从起点开始,依照A*的启发式规则,到终点为止,即可获得连接起点和终点的一条以光路为载体的路径。
如图1,是未改进前的Visual Graph路径规划算法,其应用的地图只能是如图所示的,障碍物均为凸多边形的地图,而且每个障碍物的顶点都需要已知,将起点和终点并障碍物的顶点互相之间建立连接,则可以以连接为载体构成一条从起点到终点的连通路径。路径的优点在于直线度好,拐弯次数少,因而机器人运行时的速度损失小,但由于其只能运用在简单的凸多边形障碍物地图上,故很难应用在实际问题中。
如图3,是本发明改进以后的Visual Graph方法效果,图中的圆点表示光线发射节点,细线表示光路,而粗实线表示最终获得的路径。本发明继承了原有方法的优点,即拐弯次数较少,机器人的速度损失小,并且本发明克服了原有算法致命的缺点,使其可以应用在复杂地图中,而且无需对地图进行预处理操作,使其在实际问题中的应用前景大大的提高。

Claims (2)

1.一种在复杂地图下改进Visual Graph的方法,其特征在于:能够使Visual Graph不仅仅应用于凸多边形障碍物的地图,对一般的SLAM地图也可以适用,其步骤如下:
步骤1:对地图进行转化,将灰度图或者SLAM所构建的地图二值化处理,得到转化后的地图,此过程称为地图二值化过程;
步骤2:针对转化后的地图,给定起点和终点,将起点和终点储存在一个顺序表中,并从起点和终点开始发射光线,开始建立光路图,此过程称为初始化过程;
步骤3:当光线碰触障碍物时,记录碰撞点的坐标,并与顺序表中已有的节点求取距离,若距离小于一个阈值则舍弃该点,否则保留,该过程称为节点储存判定过程;
步骤4:从保留的节点开始,重新发射光线,并重复步骤3的过程,此过程称为重复光线发射过程;
步骤5:当所有光线碰撞障碍物都无法生成新的节点时,判断建图结束;
步骤6:在建好的拓扑地图上应用A*寻路算法,即可获得一条连接起点和终点,以光路为载体的路径,此过程称为寻路过程;
所述步骤1中,地图的二值化的方法为:
调用opencv库读入所给的地图文件,并将地图矩阵转化为一个二维整形数组,即表示二维平面空间,数组中的每一个元素代表地图上相应坐标的一个像素点,若该点为障碍物点,则将数组值设为1,若该点为可通过点,则将数组值设为0;
所述步骤2中,发射光线的方法为:
(1)对于某一点,从0度,即水平向右方向开始每隔一个固定的步长发射光线,直到360度为止;
(2)对于每个方向,光线逐像素向前推进,每推进一个像素,将会检测该点是否为可通过点,若可通过则继续推进,若不可通过则表示碰到障碍物,记录该点,进入步骤3的判断过程;
(3)若某一方向的光线距离过小,则表示该方向与障碍物十分贴近,是不合理的,因此若光线距离小于某一阈值,则该方向的光线将被舍弃;
所述步骤2中,储存节点的方法为:
设置两个顺序表,一个顺序表allnode储存所有的节点,即已经发射过光线与尚未发射光线的所有节点,另一个顺序表open储存尚未发射光线的节点;初始化时,将起点和终点都存入两个顺序表中;
所述步骤3中,节点储存的判定方法为:
当光线碰到障碍物时,将该碰撞点与allnode中的所有节点求取距离,若该距离小于某一阈值,则舍弃该点,否则将该点加入allnode和open表中;
所述步骤5中,建图结束的判断方法为:
当某一节点发射的光线与障碍物的碰撞点与已有点的距离均小于阈值时,则该节点不会生成新的节点,此后再从open表中取出一个点进行光线发射,此时open表的元素个数将会减少,当open表为空时,即建图过程结束。
2.根据权利要求1所述的在复杂地图下改进Visual Graph的方法,其特征在于:所述步骤4中,重复光线发射的方法为:取出open表头的一个元素,重复步骤2所示的光线发射过程。
CN201611144910.2A 2016-12-13 2016-12-13 一种在复杂地图下改进Visual Graph的方法 Active CN106708043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611144910.2A CN106708043B (zh) 2016-12-13 2016-12-13 一种在复杂地图下改进Visual Graph的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611144910.2A CN106708043B (zh) 2016-12-13 2016-12-13 一种在复杂地图下改进Visual Graph的方法

Publications (2)

Publication Number Publication Date
CN106708043A CN106708043A (zh) 2017-05-24
CN106708043B true CN106708043B (zh) 2019-08-06

Family

ID=58936854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611144910.2A Active CN106708043B (zh) 2016-12-13 2016-12-13 一种在复杂地图下改进Visual Graph的方法

Country Status (1)

Country Link
CN (1) CN106708043B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334080B (zh) * 2018-01-18 2021-01-05 大连理工大学 一种针对机器人导航的虚拟墙自动生成方法
CN109799817B (zh) * 2019-01-15 2021-12-14 智慧航海(青岛)科技有限公司 一种基于光反射特性的无人船全局路径规划方法
CN113108803B (zh) * 2021-04-12 2022-12-16 北京佰能盈天科技股份有限公司 针对双轴定位***的路径规划方法及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464158A (zh) * 2009-01-15 2009-06-24 上海交通大学 基于gps定位的道路网络栅格数字地图自动生成方法
CN102870430A (zh) * 2010-05-03 2013-01-09 思科技术公司 选择用于新连接的具有最少数量的光再生器的光路径
US8410920B2 (en) * 2009-12-04 2013-04-02 Denso Corporation Proximity notification device, proximity notification program and method for notifying proximity of vehicle
CN103679301A (zh) * 2013-12-31 2014-03-26 西安理工大学 基于复杂地形的最优路径寻找方法
CN104714555A (zh) * 2015-03-23 2015-06-17 深圳北航新兴产业技术研究院 一种基于边缘的三维自主探索方法
CN104737123A (zh) * 2012-10-19 2015-06-24 哈利伯顿能源服务公司 自定义配置的装置、方法和***
CN105469094A (zh) * 2015-11-28 2016-04-06 重庆交通大学 一种路面二值图像的边缘矢量线提取算法
CN105955280A (zh) * 2016-07-19 2016-09-21 Tcl集团股份有限公司 移动机器人路径规划和避障方法及***
CN105975975A (zh) * 2016-05-20 2016-09-28 中国科学技术大学 一种环境线特征提取方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464158A (zh) * 2009-01-15 2009-06-24 上海交通大学 基于gps定位的道路网络栅格数字地图自动生成方法
US8410920B2 (en) * 2009-12-04 2013-04-02 Denso Corporation Proximity notification device, proximity notification program and method for notifying proximity of vehicle
CN102870430A (zh) * 2010-05-03 2013-01-09 思科技术公司 选择用于新连接的具有最少数量的光再生器的光路径
CN104737123A (zh) * 2012-10-19 2015-06-24 哈利伯顿能源服务公司 自定义配置的装置、方法和***
CN103679301A (zh) * 2013-12-31 2014-03-26 西安理工大学 基于复杂地形的最优路径寻找方法
CN104714555A (zh) * 2015-03-23 2015-06-17 深圳北航新兴产业技术研究院 一种基于边缘的三维自主探索方法
CN105469094A (zh) * 2015-11-28 2016-04-06 重庆交通大学 一种路面二值图像的边缘矢量线提取算法
CN105975975A (zh) * 2016-05-20 2016-09-28 中国科学技术大学 一种环境线特征提取方法
CN105955280A (zh) * 2016-07-19 2016-09-21 Tcl集团股份有限公司 移动机器人路径规划和避障方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Graph-based visual SLAM and visual odometry using an RGB-D camera;JanHartmann;《Proceedings of the 9th International Workshop》;20130630;第288-293页

Also Published As

Publication number Publication date
CN106708043A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
Bastani et al. Roadtracer: Automatic extraction of road networks from aerial images
CN110675307B (zh) 基于vslam的3d稀疏点云到2d栅格图的实现方法
CN110139794B (zh) 用于停放车辆的***、方法及非暂时计算机可读存储介质
CN106708043B (zh) 一种在复杂地图下改进Visual Graph的方法
CN111094895B (zh) 用于在预构建的视觉地图中进行鲁棒自重新定位的***和方法
CN114384920A (zh) 一种基于局部栅格地图实时构建的动态避障方法
CN108334080B (zh) 一种针对机器人导航的虚拟墙自动生成方法
CN109214348A (zh) 一种障碍物检测方法、装置、设备及存储介质
CN110531770A (zh) 一种基于改进的rrt路径规划方法和***
Jaspers et al. Multi-modal local terrain maps from vision and lidar
CN107016706B (zh) 一种应用Visual Graph算法提取障碍物边界的方法
US20230071794A1 (en) Method and system for building lane-level map by using 3D point cloud map
US20200064481A1 (en) Autonomous mobile device, control method and storage medium
CN116448115B (zh) 基于导航雷达和光电的无人艇概率距离地图构建方法
US20220245835A1 (en) Geo-motion and appearance aware data association
Plachetka et al. DNN-based recognition of pole-like objects in LiDAR point clouds
Qin et al. Deep imitation learning for autonomous navigation in dynamic pedestrian environments
CN106971144B (zh) 一种应用Visual Graph算法提取道路中线的方法
US20200264609A1 (en) Online agent predictions using semantic maps
CN114063619A (zh) 一种基于地毯式扫描方式的无人船探破障方法
Stein et al. Enabling topological planning with monocular vision
Berrio et al. Fusing lidar and semantic image information in octree maps
CN105865457B (zh) 一种基于文化算法的动态环境下航迹规划方法
CN111123913A (zh) 一种多无人艇双层路径规划与协同避障方法
US11079767B2 (en) Lidar based recognition of ride hailing gestures for autonomous vehicles

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant