[发明专利]一种在复杂地图下改进Visual Graph的方法有效
申请号: | 201611144910.2 | 申请日: | 2016-12-13 |
公开(公告)号: | CN106708043B | 公开(公告)日: | 2019-08-06 |
发明(设计)人: | 陈智鑫;林梦香 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G05D1/02 | 分类号: | G05D1/02;G06Q10/04 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 障碍物 凸多边形 复杂地形 直线传播 路径规划算法 顶点连线 发射光线 路径规划 光路 角点 反射 改进 | ||
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所示的光线发射过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611144910.2/1.html,转载请声明来源钻瓜专利网。