一种地图创建方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据处理领域,特别涉及一种地图创建方法、装置、电子设备及存储介质。
背景技术
机器人时代已经来临,机器人在复杂的环境中要实现安全通行和导航避障,必然需要在机器人身上安置大量的传感器,如同人类集合视觉、听觉、触觉、嗅觉等多感官才能准确感受周围环境情况。
然而,发明人发现现有技术中至少存在如下问题:由于激光雷达安装位置和自身角度限制,用单个激光雷达只能探测机器人有限方向角度内的深度信息,主要是机器人前进方向180度范围,但机器人两侧及后方缺乏探测设备,如果在4个方向都安装激光雷达设备会带来成本增高,系统臃肿的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施方式的目的在于提供一种地图创建方法、装置、电子设备及存储介质,使得能够使用超声波传感器进行辅助建图,降低了对电子设备安装的激光雷达的数量的要求,降低了建图成本,为机器人实现避障和导航提供了基础。
为解决上述技术问题,本发明的实施方式提供了一种地图创建方法,包括以下步骤:获取机器人的至少一个超声波传感器传输的超声波数据,以及机器人的至少一个激光雷达传输的激光雷达数据;针对空白障碍地图的每个栅格,分别进行以下操作:根据激光雷达数据,判断栅格所指示的位置是否存在障碍物;若确定是,则确定栅格被占用;若确定不是,则至少根据超声波数据,确定栅格是否被占用;根据每个栅格的占用情况,得到障碍物栅格地图。
本发明的实施方式还提供了一种地图创建装置,包括:获取模块、确定模块和生成模块;获取模块用于:获取机器人的至少一个超声波传感器传输的超声波数据,以及机器人的至少一个激光雷达传输的激光雷达数据;确定模块用于:针对空白障碍地图的每个栅格,分别进行以下操作:根据激光雷达数据,判断栅格所指示的位置是否存在障碍物;若确定是,则确定栅格被占用;若确定不是,则至少根据超声波数据,确定栅格是否被占用;生成模块用于:根据空白障碍地图的每个栅格的占用情况,得到障碍物栅格地图。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述实施方式提及的地图创建方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的地图创建方法。
本发明实施方式相对于现有技术而言,机器人安装有超声波传感器,以辅助机器人的激光雷达传感器进行建图。由于超声波传感器成本低,体积小,使用超声波传感器辅助建图可以降低对电子设备安装的激光雷达的数量的要求,降低了机器人建图成本,为机器人实现避障和导航提供了基础。
另外,至少根据超声波数据,确定栅格是否被占用,包括:判断超声波数据是否指示栅格被占用;若确定是,则判断栅格对应的超声波数据和栅格对应的激光雷达数据的重合度是否大于阈值;若确定大于阈值,则确定栅格未被占用,若确定不大于阈值,则确定栅格被占用;若确定不是,则确定栅格被占用。
另外,在判断超声波数据是否指示栅格被占用之前,还包括:根据各超声波传感器传输的超声波数据,确定探测到有效距离的有效超声波传感器;根据有效超声波传感器的探测角,以及有效超声波传感器探测的距离值,生成超声波点云数据;判断超声波数据是否指示栅格被占用,包括:根据超声波点云数据,判断超声波数据是否指示栅格被占用。
另外,根据有效超声波传感器的探测角,以及有效超声波传感器探测的距离值,生成超声波点云数据,包括:针对相邻的超声波传感器中存在有效超声波传感器的有效超声波传感器,根据相邻的有效超声波传感器的探测角和距离值,以及有效超声波传感器的探测角和距离值,生成第一点云数据;针对相邻的超声波传感器中不存在有效超声波传感器的有效超声波传感器,根据有效超声波传感器的探测角和距离值,生成第二点云数据;根据第一点云数据和第二点云数据,得到超声波点云数据。
另外,根据相邻的有效超声波传感器的探测角和距离值,以及有效超声波传感器的探测角和距离值,生成第一点云数据,包括:根据有效超声波传感器的探测角和距离值,确定有效超声波传感器的第一扇形探测区域;根据相邻的有效超声波传感器的探测角和距离值,确定相邻的有效超声波传感器的第二扇形探测区域;根据第一扇形探测区域和第二扇形探测区域的圆弧中心点的连线,以及第二扇形探测区域的半弦长线,生成第一点云数据;或者,根据第一扇形探测区域和第二扇形探测区域的圆弧中心点的连线、第二扇形探测区域的半弦长线和第一扇形探测区域的半弦长线,生成第一点云数据;根据有效超声波传感器的探测角和距离值,生成第二点云数据,包括:根据有效超声波传感器的探测角和距离值,确定有效超声波传感器的第三扇形探测区域;根据第三扇形探测区域的弦长线,生成第二点云数据。
另外,在根据每个栅格的占用情况,绘制障碍物栅格地图之后,还包括:对障碍物栅格地图进行腐蚀运算和膨胀运算。
另外,在根据每个栅格的占用情况,绘制障碍物栅格地图之后,还包括:根据障碍物栅格地图,执行避障算法,以控制机器人运动。
另外,空白障碍地图根据避障区域和地图分辨率生成。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明的第一实施方式的地图创建方法的流程示意图;
图2是根据本发明的第一实施方式的激光雷达传感器扫描区域的示意图;
图3是根据本发明的第一实施方式的机器人的点云数据的示意图;
图4是根据本发明的第一实施方式的机器人的另一点云数据的示意图;
图5是根据本发明的第一实施方式的确定每个栅格的占用情况的流程示意图;
图6是根据本发明的第二实施方式的地图创建方法的流程示意图;
图7是根据本发明的第三实施方式的地图创建装置的结构示意图;
图8是根据本发明的第四实施方式的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种地图创建方法,应用于电子设备,例如,机器人本身,或者,与机器人连接的服务器。如图1所示,地图创建方法包括:
步骤101:获取机器人的至少一个超声波传感器传输的超声波数据,以及机器人的至少一个激光雷达传输的激光雷达数据。
具体地说,激光雷达数据可以是激光雷达扫描到的深度连续点云数据。激光雷达可以是单线雷达或多线雷达,一般为180度范围,探测深度较远,其扫描区域覆盖如图2的左边半圆虚线区域T所示。
在一个实施例中,激光雷达安装在机器人的前方。激光雷达数据描述了机器人视野前方一个或多个平面内以激光雷达为坐标原点,按照顺时针方向步进预设角度扫描到的深度值数据集合,记录了机器人前方详细的环境深度信息。
在一个实施例中,超声波数据是超声波传感器探测到的离散的障碍距离生成的数据。
需要说明的是,本领域技术人员可以理解,实际应用中,可以根据需要确定机器人安装的超声波传感器的个数和安装位置,例如,在机器人的每个侧面安装至少一个超声波传感器,本实施方式不限制超声波传感器的个数和安装位置。
步骤102:针对空白障碍地图的每个栅格,分别进行以下操作:根据激光雷达数据,判断栅格所指示的位置是否存在障碍物;若确定是,则确定栅格被占用;若确定不是,则至少根据超声波数据,确定栅格是否被占用。
具体地说,空白障碍地图可以是根据障碍区域和地图分辨率生成的。障碍区域是指机器人当前扫描的区域,地图分辨率可以根据需要设置。
在一个实施例中,电子设备基于激光雷达数据生成激光雷达数据图层,基于超声波数据,生成超声波数据图层。电子设备针对每个栅格,分别计算该栅格在激光雷达数据图层和超声波数据图层中的坐标,以确定各个栅格对应的激光雷达数据和超声波数据。
在一个实施例中,电子设备在至少根据超声波数据,确定栅格是否被占用的过程中,包括以下子步骤:
步骤1021:判断超声波数据是否指示栅格被占用。
具体地说,若确定超声波数据指示该栅格被占用,执行步骤1022,若确定超声波数据指示该栅格未被占用,执行步骤1023。
在一个实施例中,电子设备基于超声波数据,进行特征化模拟,得到超声波点云数据。电子设备在判断超声波数据是否指示栅格被占用的过程中,根据超声波点云数据,判断超声波数据是否指示栅格被占用。具体地说,电子设备根据各超声波传感器传输的超声波数据,确定探测到有效距离的有效超声波传感器;根据有效超声波传感器的探测角,以及有效超声波传感器探测的距离值,生成超声波点云数据。
在一个实施例中,电子设备根据有效超声波传感器的探测角,以及有效超声波传感器探测的距离值,生成超声波点云数据的过程包括:针对相邻的超声波传感器中存在有效超声波传感器的有效超声波传感器,根据相邻的有效超声波传感器的探测角和距离值,以及有效超声波传感器的探测角和距离值,生成第一点云数据;针对相邻的超声波传感器中不存在有效超声波传感器的有效超声波传感器,根据有效超声波传感器的探测角和距离值,生成第二点云数据;根据第一点云数据和第二点云数据,得到超声波点云数据。
在一个实施例中,电子设备根据相邻的有效超声波传感器的探测角和距离值,以及有效超声波传感器的探测角和距离值,生成第一点云数据,包括:根据有效超声波传感器的探测角和距离值,确定有效超声波传感器的第一扇形探测区域;根据相邻的有效超声波传感器的探测角和距离值,确定相邻的有效超声波传感器的第二扇形探测区域;根据第一扇形探测区域和第二扇形探测区域的圆弧中心点的连线,以及第二扇形探测区域的半弦长线,生成第一点云数据;或者,根据第一扇形探测区域和第二扇形探测区域的圆弧中心点的连线、第二扇形探测区域的半弦长线和第一扇形探测区域的半弦长线,生成第一点云数据。
在一个实施例中,电子设备根据有效超声波传感器的探测角和距离值,生成第二点云数据,包括:根据有效超声波传感器的探测角和距离值,确定有效超声波传感器的第三扇形探测区域;根据第三扇形探测区域的弦长线,生成第二点云数据。
例如,机器人为长方体机器人,该机器人的四个侧面分别安装有1个以上的超声波传感器。超声波传感器可以均匀的安装在机器人的周围。电子设备根据各超声波传感器传输的超声波数据,确定探测到有效距离的有效超声波传感器,从任意一个有效超声波传感器开始,判断与该有效超声波传感器相邻的超声波传感器为是否有效超声波传感器,若相邻的超声波传感器均不是有效超声波传感器,根据该有效超声波传感器探测的距离值和有效超声波传感器的探测角,确定扇形探测区域,以扇形探测区域的弦长线(线段a和线段b)模拟生成该侧面的点云数据,其点云数据的示意图如图3所示。若确定该有效超声波传感器相邻的超声波传感器中的一个超声波传感器为有效超声波传感器或两者均为有效超声波传感器,如图4所示,机器人的超声波传感器O、P和Q探测到有效距离,故超声波传感器O、超声波传感器P和超声波传感器Q为有效超声波传感器,点A为超声波传感器O的扇形探测区域的圆弧中心点,点B为超声波传感器P的扇形探测区域的圆弧中心点,点C为超声波传感器Q的扇形探测区域的圆弧中心点,AD为有效超声波传感器O的扇形探测区域的半弦长线,CE为有效超声波传感器Q的扇形探测区域的半弦长线。因此,该侧面的点云数据根据点E、C、B、A和D的依次连接得到的连线确定。若超声波传感器O和超声波传感器P为有效超声波传感器,超声波传感器Q不为有效超声波传感器,则根据超声波传感器O的半弦长线DA、A和B的连线AB和超声波传感器P的半弦长线BF(未示出线段),确定点云数据。
需要说明的是,本实施方式中,为阐述清楚,在判断有效超声波传感器的个数前,确定有效传感器的扇形探测区域,实际应用中,也可以在确定有效超声波传感器的个数后,再确定各个有效超声波传感器的扇形探测区域,本实施方式不限制执行确定扇形探测区域的步骤的时间。
需要说明的是,本领域技术人员可以理解,实际应用中,还可以通过其他方式生成超声波点云数据,本实施方式仅为举例说明。
值得一提的是,将超声波数据转化为与激光雷达数据兼容的超声波点云数据,便于电子设备参考超声波数据和激光雷达数据得到障碍物栅格地图。
步骤1022:判断栅格对应的超声波数据和栅格对应的激光雷达数据的重合度是否大于阈值;若确定大于阈值,则确定栅格未被占用,若确定不大于阈值,则确定栅格被占用。
具体地说,阈值可以根据需要设置,当基于激光雷达数据得到的栅格占用情况和基于超声波数据得到的栅格占用情况不同时,若栅格附近的局部激光雷达数据与栅格附近的局部超声波数据相近,以激光雷达数据的判断结果为准,以此对超声波数据进行修正。若两者相差较大,则以超声波数据为准。
步骤1023:确定栅格未被占用。
具体地说,若超声波数据和激光雷达数据都指示该栅格没有被占用,则可以确定该栅格未被占用。
在一个实施例中,电子设备基于激光雷达数据生成激光雷达数据图层,基于超声波数据,生成超声波数据图层。结合步骤1021至步骤1023后,确定每个栅格的占用情况的流程示意图如图5所示,包括以下步骤:
步骤201:分别计算该栅格在激光雷达数据图层和超声波数据图层中的坐标。通过计算栅格在激光雷达数据图层和超声波数据图层中的坐标,以确定各个栅格对应的激光雷达数据和超声波数据。
步骤202:根据激光雷达数据,判断栅格所指示的位置是否存在障碍物。
具体地说,判断该栅格对应的激光雷达数据图层的坐标所指示的位置是否有障碍物,若确定是,则执行步骤203,否则,执行步骤204。
步骤203:判定该栅格被占用。之后结束该栅格的判断流程。
步骤204:根据超声波数据,确定栅格所指示的位置是否存在障碍物。
具体地说,判断该栅格对应的超声波数据图层的坐标所指示的位置是否有障碍物,若确定是,则执行步骤206,否则,执行步骤205。
步骤205:判定该栅格未被占用。之后结束该栅格的判断流程。
步骤206:对栅格对应的超声波数据图层和栅格对应的激光雷达数据图层进行局部窗口抠图。
步骤207:判断基于超声波数据图层得到的抠图和基于激光雷达数据图层得到的抠图的重合度是否大于阈值。
具体地说,若重合度大于阈值,执行步骤205,否则,执行步骤203。
步骤208:判定该栅格未被占用。之后结束该栅格的判断流程。
步骤209:判定该栅格被占用。之后结束该栅格的判断流程。
需要说明的是,实际应用中,还可以通过其他方式判断栅格占用情况,例如,在基于超声波数据确定栅格被占用时,可以判定栅格被占用,不执行根据重合度大小确定栅格占用情况的步骤,上述内容仅为举例说明。
步骤103:根据每个栅格的占用情况,得到障碍物栅格地图。
具体地说,电子设备可以根据各个栅格的占用情况,生成障碍物栅格地图,以指示机器人周围的障碍物情况。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的地图创建方法,机器人安装有超声波传感器,以辅助机器人的激光雷达传感器进行建图。由于超声波传感器成本低,体积小,使用超声波传感器辅助建图可以降低对电子设备安装的激光雷达的数量的要求,降低了机器人建图成本,为机器人实现避障和导航提供了基础。
本发明的第二实施方式涉及一种地图创建方法。本实施方式在第一实施方式的基础上做了进一步改进,具体改进之处为:在根据每个栅格的占用情况,得到障碍物栅格地图之后,增加了对障碍物栅格地图进行腐蚀运算和膨胀运算等其他相关步骤。
具体的说,如图6所示,在本实施方式中,包含步骤301至步骤304,其中,步骤301至步骤303分别与第一实施方式中的步骤101至步骤103大致相同,此处不再赘述。下面主要介绍不同之处:
执行步骤301至步骤303。
步骤304:对障碍物栅格地图进行腐蚀运算和膨胀运算。
具体地说,电子设备对障碍物栅格地图进行腐蚀运算和膨胀运算,滤除障碍物栅格地图上的细小噪声。
需要说明的是,本领域技术人员可以理解,实际应用中,还可以通过其他运算对障碍去栅格地图进行优化,此处不一一列举。
步骤305:根据障碍物栅格地图,执行避障算法,以控制机器人运动。
具体地说,在得到障碍物栅格地图以后,电子设备可以执行如采用DWA(dynamicswindow approach,动力学窗口法)等避障算法,计算机器人控制执行输出,以控制机器人运动。
需要说明的是,本领域技术人员可以理解,实际应用中,可以有选择地执行步骤304或步骤305,本实施方式不限制障碍物栅格地图的优化方式和使用场景。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的地图创建方法,机器人安装有超声波传感器,以辅助机器人的激光雷达传感器进行建图。由于超声波传感器成本低,体积小,使用超声波传感器辅助建图可以降低对电子设备安装的激光雷达的数量的要求,降低了机器人建图成本,为机器人实现避障和导航提供了基础。除此之外,通过腐蚀运算和膨胀运算,滤除障碍物栅格地图上的细小噪声,提高了障碍物栅格地图的质量。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种地图黄健装置,如图7所示,包括:获取模块401、确定模块402和生成模块403。获取模块401用于:获取机器人的至少一个超声波传感器传输的超声波数据,以及机器人的至少一个激光雷达传输的激光雷达数据。确定模块402用于:针对空白障碍地图的每个栅格,分别进行以下操作:根据激光雷达数据,判断栅格所指示的位置是否存在障碍物;若确定是,则确定栅格被占用;若确定不是,则至少根据超声波数据,确定栅格是否被占用。生成模块403用于:根据空白障碍地图的每个栅格的占用情况,得到障碍物栅格地图。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明的第四实施方式涉及一种电子设备,如图8所示,包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行如上述实施方式提及的地图创建方法。
该电子设备包括:一个或多个处理器501以及存储器502,图8中以一个处理器501为例。处理器501、存储器502可以通过总线或者其他方式连接,图8中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述地图创建方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施方式中的地图创建方法。
上述产品可执行本申请实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的方法。
本发明的第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。