CN110570465B - 实时定位与地图构建方法、装置及计算机可读存储介质 - Google Patents

实时定位与地图构建方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN110570465B
CN110570465B CN201810569341.9A CN201810569341A CN110570465B CN 110570465 B CN110570465 B CN 110570465B CN 201810569341 A CN201810569341 A CN 201810569341A CN 110570465 B CN110570465 B CN 110570465B
Authority
CN
China
Prior art keywords
current
visual image
robot
data
laser
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
CN201810569341.9A
Other languages
English (en)
Other versions
CN110570465A (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.)
Hangzhou Hikrobot Co Ltd
Original Assignee
Hangzhou Hikrobot Technology Co Ltd
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 Hangzhou Hikrobot Technology Co Ltd filed Critical Hangzhou Hikrobot Technology Co Ltd
Priority to CN201810569341.9A priority Critical patent/CN110570465B/zh
Priority to PCT/CN2019/088413 priority patent/WO2019233299A1/zh
Publication of CN110570465A publication Critical patent/CN110570465A/zh
Application granted granted Critical
Publication of CN110570465B publication Critical patent/CN110570465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

本发明公开了一种实时定位与地图构建方法、装置及计算机可读存储介质,属于机器人技术领域。该方法包括:获取在当前位置采集到的当前视觉图像和当前激光数据;在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,所述历史视觉图像为采集时间早于所述当前视觉图像的视觉图像。本发明在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生运动时,可以将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,避免了因对机器人运行分析不当而导致机器人定位和构建地图不准确。

Description

实时定位与地图构建方法、装置及计算机可读存储介质
技术领域
本发明涉及机器人技术领域,特别涉及一种实时定位与地图构建方法、装置及计算机可读存储介质。
背景技术
自主机器人是指携带各种必要的传感器和控制器,在运行过程中无外界人为信息输入和控制的条件下,可以独立完成一定任务的机器人。比如,常见的自主机器人有扫地机器人。其中,机器人的自主性主要体现在机器人的自主导航,在未知的环境中,实现机器人的自主导航就要绘制机器人所处环境的地图。
目前,可以通过SLAM(Simultaneous Localization and Mapping,实时定位与地图构建)算法绘制地图。其中,在通过SLAM算法绘制地图时,通过机器人上携带的激光传感器和视觉传感器分别获取激光数据和视觉数据,激光数据为描述机器人与障碍物之间的距离的数据,视觉数据为描述机器人所在场景的数据。之后,通过机器人的车轮上安装的轮式里程计确定机器人是否发生移动,当通过轮式里程计确定机器人偏移当前位置指定阈值时,通过视觉数据和激光数据进行机器人的闭环检测,从而根据闭环检测结果进行机器人的定位和地图的构建。
但是,由于通过轮式里程计确定机器人发生移动时,有可能机器人的位置并未发生变化,比如,机器人撞到墙壁,机器人的车轮依旧会进行转动,轮式里程计进行正常的数据采集,后续根据视觉数据和激光数据进行闭环检测,并根据闭环检测结果进行机器人定位和地图构建后,机器人定位将不准确,构建的地图与实际场景将会不符合,降低了构建地图的准确性。
发明内容
本发明实施例提供了一种实时定位与地图构建方法、装置及计算机可读存储介质,用于解决相关技术中机器人定位不准确以及构建地图准确性低的问题。所述技术方案如下:
第一方面,提供了一种实时定位与地图构建方法,所述方法包括:
获取在当前位置采集到的当前视觉图像和当前激光数据;
在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,所述历史视觉图像为采集时间早于所述当前视觉图像的视觉图像。
可选地,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据之前,还包括:
分别对所述当前视觉图像和所述历史视觉图像进行特征提取,得到第一视觉特征点和第二视觉特征点;
根据所述第一视觉特征点和所述第二视觉特征点,确定所述当前视觉图像与所述历史视觉图像之间的场景重合度;
当所述场景重合度小于第一预设阈值时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
可选地,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据之前,还包括:
当所述当前视觉图像中不存在目标对象时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动,所述目标对象为所述历史视觉图像中的对象;
当所述当前视觉图像中存在所述目标对象时,确定所述目标对象在所述历史视觉图像中的位置,以及确定所述目标对象在所述当前视觉图像中的位置;
当所述目标对象在所述当前视觉图像中的位置与在所述历史视觉图像中的位置不相同时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
可选地,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据之前,还包括:
获取机器人的里程计数据;
根据所述机器人的里程计数据,确定所述机器人的移动状态;
相应地,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,包括:
当通过所述移动状态确定所述机器人已移动时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
可选地,所述机器人的里程计数据包括X方向的位移变化、Y方向的位移变化和所述机器人的角度变化;
所述根据所述机器人的里程计数据,确定所述机器人的移动状态,包括:
当所述机器人在X方向的位移变化和在Y方向的位移变化中任一方向的位移变化超过预设位移阈值,或者所述机器人的角度变化超过预设角度阈值时,确定所述机器人已移动。
可选地,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,包括:
基于所述当前视觉图像和视觉数据库进行视觉闭环检测,以确定闭环关键数据,所述视觉数据库用于存储所述机器人采集到的视觉数据,所述闭环关键数据为描述所述机器人当前所处的位置为当前时间之前曾经过的位置的数据;
当确定出所述闭环关键数据时,基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围;
基于所述当前激光数据和激光数据库,按照所述激光数据搜索范围进行激光闭环检测,以确定与所述当前激光数据匹配的历史激光数据,所述激光数据库用于存储所述机器人采集到的激光数据;
基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
可选地,所述基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据,包括:
确定采集所述历史激光数据时所述机器人所处位置与当前所处位置之间的位置误差;
当所述位置误差不为0时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到所述地图数据中。
可选地,所述基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围,包括:
获取采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据;
基于采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据,确定采集所述闭环关键数据时所述机器人所处的位置与所述机器人当前所处的位置之间的位姿距离;
基于所述位姿距离确定所述激光数据搜索范围。
可选地,所述基于所述位姿距离确定所述激光数据搜索范围,包括:
基于所述位姿距离,通过如下公式确定所述激光数据搜索范围的最大值;
dist_adapitve=log(1+a*dist_diff)+b
其中,所述dist_adapitve用于表示所述激光数据搜索范围的最大值,所述dist_diff用于表示所述位姿距离,所述a为常数,所述b为常数;
将0到所述最大值之间的范围确定为所述激光数据搜索范围。
第二方面,提供了一种实时定位与地图构建装置,所述装置包括:
第一获取模块,获取在当前位置采集到的当前视觉图像和当前激光数据;
写入模块,用于在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,所述历史视觉图像为采集时间早于所述当前视觉图像的视觉图像。
可选地,所述装置还包括:
特征提取模块,用于分别对所述当前视觉图像和所述历史视觉图像进行特征提取,得到第一视觉特征点和第二视觉特征点;
第一确定模块,用于根据所述第一视觉特征点和所述第二视觉特征点,确定所述当前视觉图像与所述历史视觉图像之间的场景重合度;
第二确定模块,用于当所述场景重合度小于第一预设阈值时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
所述装置还包括:
第三确定模块,用于当所述当前视觉图像中不存在目标对象时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动,所述目标对象为所述历史视觉图像中的对象;
第四确定模块,用于当所述当前视觉图像中存在所述目标对象时,确定所述目标对象在所述历史视觉图像中的位置,以及确定所述目标对象在所述当前视觉图像中的位置;
第五确定模块,用于当所述目标对象在所述当前视觉图像中的位置与在所述历史视觉图像中的位置不相同时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
可选地,所述装置还包括:
第二获取模块,用于获取机器人的里程计数据;
第六确定模块,用于根据所述机器人的里程计数据,确定所述机器人的移动状态;
相应的,所述写入模块用于:
当通过所述移动状态确定所述机器人已移动时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
可选地,所述机器人的里程计数据包括X方向的位移变化、Y方向的位移变化和所述机器人的角度变化;
所述第六确定模块用于:
当所述机器人在X方向的位移变化和在Y方向的位移变化中任一方向的位移变化超过预设位移阈值,或者所述机器人的角度变化超过预设角度阈值时,确定所述机器人已移动。
可选地,所述写入模块包括:
第一检测子模块,用于基于所述当前视觉图像和视觉数据库进行视觉闭环检测,以确定闭环关键数据,所述视觉数据库用于存储所述机器人采集到的视觉数据,所述闭环关键数据为描述所述机器人当前所处的位置为当前时间之前曾经过的位置的数据;
第一确定子模块,用于当确定出所述闭环关键数据时,基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围;
第二检测子模块,用于基于所述当前激光数据和激光数据库,按照所述激光数据搜索范围进行激光闭环检测,以确定与所述当前激光数据匹配的历史激光数据,所述激光数据库用于存储所述机器人采集到的激光数据;
第二确定子模块,用于基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
可选地,所述第二确定子模块用于:
确定采集所述历史激光数据时所述机器人所处位置与当前所处位置之间的位置误差;
当所述位置误差不为0时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到所述地图数据中。
可选地,所述第一确定子模块用于:
获取采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据;
基于采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据,确定采集所述闭环关键数据时所述机器人所处的位置与所述机器人当前所处的位置之间的位姿距离;
基于所述位姿距离确定所述激光数据搜索范围。
可选地,所述第一确定子模块还用于:
基于所述位姿距离,通过如下公式确定所述激光数据搜索范围的最大值;
dist_adapitve=log(1+a*dist_diff)+b
其中,所述dist_adapitve用于表示所述激光数据搜索范围的最大值,所述dist_diff用于表示所述位姿距离,所述a为常数,所述b为常数;
将0到所述最大值之间的范围确定为所述激光数据搜索范围。
第三方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法。
第四方面,提供了一种终端,所述终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面提供的任一项方法的步骤。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的任一项方法的步骤。
本发明实施例提供的技术方案带来的有益效果至少包括:
在本发明实施例中,可以获取当前视觉图像和历史视觉图像,并在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生运动时,可以将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据。由于可以通过当前视觉图像中的对象和历史视觉图像中的对象的变化,即可确定机器人还是否发生移动,无需单独通过轮式里程计确定机器人是否发生运动,避免了出现因对机器人运行分析不当而导致的定位和地图构建不准确,从而提高了机器人定位和地图构建的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实时定位与地图构建方法的流程图;
图2是本发明实施例提供的另一种实时定位与地图构建方法的流程图;
图3是本发明实施例提供的一种确定当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动的示意图;
图4是本发明实施例提供的一种确定地图绘制数据的流程图;
图5是本发明实施例提供的一种确定激光数据搜索范围的示意图;
图6是本发明实施例提供的一种描述位姿距离与激光数据搜索范围关系的示意图;
图7是本发明实施例提供的一种通过轮式里程计确定的机器人是否移动的示意图;
图8是本发明实施例提供的第一种实时定位与地图构建装置结构示意图;
图9是本发明实施例提供的第二种实时定位与地图构建装置结构示意图;
图10是本发明实施例提供的第三种实时定位与地图构建装置结构示意图;
图11是本发明实施例提供的第四种实时定位与地图构建装置结构示意图;
图12是本发明实施例提供的一种写入模块的结构示意图;
图13是本发明实施例提供的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例中涉及到的应用场景进行解释说明。
随着自主机器人的发展,机器人自主进行定位及构建地图的技术越来越受关注。目前,机器人在自主定位和构建地图时,通常是通过机器人车轮上安装的轮式里程计确定机器人发生移动后,基于机器人上安装的激光传感器采集的激光数据和安装的视觉传感器采集的视觉数据,对机器人进行闭环检测并根据闭环检测结果进行定位和构建地图。但是,由于通过轮式里程计确定机器人发生移动时,有可能机器人的位置并未发生变化,比如,机器人撞到墙壁,机器人的车轮依旧会进行转动,轮式里程计进行正常的数据采集,后续根据视觉数据和激光数据进行闭环检测,并根据闭环检测结果进行机器人定位和地图构建,机器人定位将不准确,构建的地图与实际场景将会不符合,降低了构建地图的准确性。
基于这样的场景,本发明实施例提供了一种能够提高机器人定位及构建地图地图准确性的实时定位与地图构建方法。
在对本发明实施例的应用场景进行介绍之后,接下来将结合附图对本发明实施例提供的实时定位与地图构建方法进行详细介绍。
图1为本发明实施例提供的一种实时定位与地图构建方法的流程图,参见图1,该方法包括如下步骤。
步骤101:终端或机器人获取在当前位置采集到的当前视觉图像和当前激光数据。
其中,机器人上通常安装有视觉传感器和激光传感器,因此,机器人可以通过安装的视觉传感器采集当前所处位置的视觉图像,得到当前视觉图像,并通过激光传感器采集当前所处位置的激光数据,得到当前激光数据。
需要说明的是,该终端为能够与机器人进行通信的终端,在机器人通过安装的视觉传感器采集到当前视觉图像,并通过安装的激光传感器采集到当前激光数据时,该机器人可以将采集到的当前视觉图像和当前激光数据发送给终端,从而终端可以获取到当前视觉图像和当前激光数据。
步骤102:终端或机器人在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将该当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,该历史视觉图像为采集时间早于该当前视觉图像的视觉图像。
由于通常情况下,只有在机器人发生移动时,才会进行机器人定位与地图构建,当机器人发生移动时,安装在机器人上的视觉传感器在机器人移动前和移动后所采集的视觉图像是不相同的,因此,当终端或机器人在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,说明机器人发生了运动,此时可以将该当前视觉图像和当前激光数据作为优化节点信息写入到地图数据。
在本发明实施例中,终端或机器人可以获取当前视觉图像和历史视觉图像,并在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生运动时,可以将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据。由于可以通过当前视觉图像中的对象和历史视觉图像中的对象的变化,即可确定机器人还是否发生移动,无需单独通过轮式里程计确定机器人是否发生运动,避免了出现因对机器人运行分析不当而导致的定位和地图构建不准确,从而提高了机器人定位和地图构建的准确性。
图2是本发明实施例提供的一种实时定位与地图构建方法的流程图,本发明实施例将结合附图2对上述图1所示的实施例进行详细的解释说明,参见图2,该方法具体包括如下步骤。
步骤201:终端或机器人获取在当前位置采集到的当前视觉图像和当前激光数据。
其中,终端或机器人获取在当前位置采集到的当前视觉图像和当前激光数据的操作可以参开上述步骤101的操作,本发明实施例对此不再进行一一赘述。
步骤202:终端或机器人在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将该当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,该历史视觉图像为采集时间早于该当前视觉图像的视觉图像。
由上述步骤102可知,终端或机器人可以根据当前视觉图像中的对象相对于历史视觉图像中对象是否发生运动,来确定是否需要将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据。因此,为了能顺利进行实现定位及地图构建,终端或机器人在将当前视觉图像和当前激光数据作为优化节点写入地图数据之前,需要先检测当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动。
下述分别对终端或机器人检测当前视觉图像中的对象相对于历史视觉图像中对象是否发生运动的操作,以及在当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据的操作进行说明。
检测当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动
其中,终端或机器人检测当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动的操作可以包括如下两种方式。
第一种方式,终端或机器人分别对当前视觉图像和历史视觉图像进行特征提取,得到第一视觉特征点和第二视觉特征点;根据第一视觉特征点和第二视觉特征点,确定当前视觉图像与历史视觉图像之间的场景重合度;当该场景重合度小于第一预设阈值时,确定当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动;当该场景重合度大于或等于第一预设阈值时,确定当前视觉图像中的对象相对于历史视觉图像中的对象机会未发生运动。具体流程可参见图3。
需要说明的是,对当前视觉图像和历史视觉图像进行特征提取,可以是对当前视觉图像和历史视觉图像中的对象的轮廓、颜色特征、纹理特征、空间关系等特征点的提取。
其中,终端或机器人可以将该第一视觉特征点和第二视觉特征点一一进行比较,并确定当前视觉图像中特征与第二视觉特征点相同的第一视觉特征点的相同个数,将相同个数除以当前视觉图像中第一数据特征点的总个数,得到当前视觉图像与历史视觉图像之间的场景重合度。
比如,终端或机器人从当前视觉图像中得到10个第一视觉特征点,从历史视觉图像中得到10个第二视觉特征点,将10个第一视觉特征点中每个第一视觉特征点分别与10个第二视觉特征点进行比较,当当前视觉图像中特征与第二视觉特征点相同的第一视觉特征点的相同个数为8个时,将8除以当前视觉图像中第一数据特征点的总个数10,得到当前视觉图像与历史视觉图像之间的场景重合度为80%。
需要说明的是,该终端或机器人可以通过SIFT(Scale-invariant featuretransform,尺度不变特征变换)算法、ORB(Oriented FAST and Rotated BRIEF,快速特征点提取和描述)算法、FAST(Features fromaccelerated segment test,角点检测)算法等进行特征提取。
另外,该第一预设阈值可以事先设置,比如该第一预设阈值可以为90%、95%等等。
另外,终端或机器人还可以事先设置第二预设阈值,该第二预设阈值小于第一预设阈值,当该场景重合度小于第二预设阈值时,说明机器人移动异常,该机器人的视觉传感器可能出现问题,比如,视觉传感器安装在机器人正前方时,由于安装不牢固可能会发生移动,从而在机器人未发生移动时,终端或机器人可能会根据该视觉传感器采集的视觉图像确定当前视觉图像中的对应相对于历史视觉图像中的对象发生了运动。此时,终端或机器人可以进行告警提示,该告警提示,该告警提示用于提示用户视觉传感器的位置发生变化,需要对视觉传感器的位置进行调整。
需要说明的是,该第二预设阈值可以事先设置,比如,该第二预设阈值可以为10%、5%等等。
再者,在本发明实施例中,历史视觉图像为采集时间早于当前视觉图像的视觉图像,因此,该历史视觉图像可以为早于当前时间采集的多张视觉图像中的任一张视觉图像。由于当历史视觉图像为基于当前采集时间最近时间所采集的图像时,如果机器人移动速度非常慢,而视觉图像的采集速度非常快时,那么当前视觉图像与历史视觉图像之间场景重合度大于第一预设阈值的可能性会非常高,从而导致无法进行后续将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据的操作。因此,为了能够顺利进行将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据的操作,终端或机器人可以将采集时间与当前视觉图像的采集时间相距预设时长的视觉图像,或者采集时间与当前视觉图像的采集时间之间的时长大于预设时长的视觉图像确定为历史视觉图像。或者,将上一次写入地图数据的节点信息包括的视觉图像确定为历史视觉图像。
需要说明的是,该预设时长可以事先设置,比如,该预设时长可以为5秒、6秒、7秒等。
第二种方式,当该当前视觉图像中不存在目标对象时,确定当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动,该目标对象为该历史视觉图像中的对象;当该当前视觉图像中存在该目标对象时,确定该目标对象在该历史视觉图像中的位置,以及确定该目标对象在当前视觉图像中的位置;当目标对象在当前视觉图像中的位置与在历史视觉图像中的位置不相同时,确定当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动。
由于当机器人未发生移动时,机器人在未移动期间所拍摄的多张视觉图像的内容应该为相同的,也即是,机器人在未发生移动时,目标对象在当前视觉图像中的位置与在历史视觉图像中的位置是相同的。因此,可以通过确定当前视觉图像中是否存在目标对象,以及在存在目标对象时,通过目标对象在当前视觉图像的位置和在历史视觉图像中的位置是否相同,来确定当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动。
将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据
由于通常情况下,当机器人发生移动后,机器人所在场景可能是未进行定位和地图构建的部分,因此,为了完善地图以方便后续机器人完成自主任务,通常需要对移动后机器人所在场景进行定位和地图构建。而定位和地图构建通常是将视觉图像与激光数据作为节点信息写入地图数据,因此,终端或机器人需要将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据。而终端或机器人将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据的操作可以包括如下步骤A-步骤E,具体参见图4所示的流程图。
步骤A:终端或机器人基于当前视觉图像和视觉数据库进行视觉闭环检测,以确定闭环关键数据,该视觉数据库用于存储该机器人采集到的视觉数据,该闭环关键数据为描述该机器人当前所处的位置为当前时间之前曾经过的位置的数据。
其中,终端或机器人可以将当前视觉图像与视觉数据库中的所有视觉数据进行特征匹配,当视觉数据库中存在与当前视觉图像相匹配的视觉数据时,将与该当前视觉图像相匹配的视觉数据确定为闭环关键数据。
需要说明的是,终端或机器人将当前视觉图像与视觉数据库中的所有视觉数据进行特征匹配的操作可以参考相关技术,本发明实施例对此不再进行一一赘述。
另外,由于机器人当前所在位置可能是之前从未经过的位置,那么终端或机器人进行视觉闭环检测后,可能无法确定闭环关键数据,此时,终端或机器人可以结束本次定位及地图构建的操作,不再继续进行后续激光闭环检测操作。
需要说明的是,当终端或机器人无法确定闭环关键数据时,说明机器人当前所处的位置为当前时间之前未曾经过的位置,如果继续进行后续的激光闭环检测操作,那么之后机器人定位将不准确,且在进行地图构建后,构建的地图也将非常的不准确。因此,当终端或机器人无法确定闭环关键数据时,可以结束本次定位及地图构建的操作。
步骤B:当终端或机器人确定出该闭环关键数据时,基于采集闭环关键数据时采集到的激光数据和当前激光数据,确定激光数据搜索范围。
由于通常情况下,机器人的闭环检测离不开视觉图像和激光数据,因此,机器人每一次在采集视觉图像时都会同时采集激光数据,并确定机器人当前所处的位姿数据,从而当终端或机器人确定出该闭环关键数据时,终端或机器人可以基于采集闭环关键数据时采集到的激光数据和当前激光数据,确定激光数据搜索范围。
需要说明的是,定位及地图构建与机器人所处位置相关,因此,机器人每一次在采集视觉图像和激光数据的同时,终端或机器人还会确定机器人当前的位姿数据。因此,终端或机器人基于采集闭环关键数据时采集到的激光数据和当前激光数据,确定激光数据搜索范围的操作可以为:获取采集闭环关键数据时机器人的位姿数据和采集当前激光数据时机器人的位姿数据;基于采集闭环关键数据时机器人的位姿数据和采集当前激光数据时机器人的位姿数据,确定采集该闭环关键数据时该机器人所处的位置与该机器人当前所处的位置之间的位姿距离;基于该位姿距离确定该激光数据搜索范围。具体流程可参见图5。
其中,位姿数据可以描述机器人所在位置以及姿态,该姿态可以为机器人正面的朝向等等。由于位姿距离可以用于描述物体的空间距离,因此,该位姿距离可以是欧式距离也可以是其他类型的距离。
另外,终端或机器人可以基于该位姿距离,通过如下指定公式确定该激光数据搜索范围的最大值,将0到该最大值之间的范围确定为激光数据搜索范围。
dist_adapitve=log(1+a*dist_diff)+b (1)
需要说明的是,在上述指定公式(1)中,dist_adapitve用于表示激光数据搜索范围的最大值;dist_diff用于表示位姿距离,a为常数,b为常数。
进一步地,当常数a和b未知时,终端或机器人在基于该位姿距离,通过指定公式确定该激光数据搜索范围的最大值之前,还需要确定常数a和b,从而确定该指定公式。
其中,终端或机器人可以事先设置带有对数公式未知常数a和b的对数公式、最大位姿距离、最小位姿距离、最大位姿距离对应的激光数据搜索范围的最大值以及最小位姿距离对应的激光数据搜索范围的最大值,将最大位姿距离和最大位姿距离对应的激光数据搜索范围的最大值代入带有未知常数a和b的对数公式,得到第一未知公式,将最小位姿距离和最小位姿距离对应的激光数据搜索范围的最大值代入带有未知常数a和b的对数公式,得到第二未知公式,对该第一未知公式和第二未知公式进行求解,得到未知常数a和b的数值,将常数a和b代入对数公式得到该指定公式。
步骤C:终端或机器人基于当前激光数据和激光数据库,按照该激光数据搜索范围进行激光闭环检测,以确定与该当前激光数据匹配的历史激光数据,该激光数据库用于存储机器人采集到的激光数据。
其中,由于闭环关键数据为描述该机器人当前所处的位置为当前时间之前曾经过的位置的数据,激光数据库中可能会存在与当前激光数据相同或相似的激光数据。因此,终端或机器人在进行激光闭环检测时,可以根据当前激光数据与激光数据搜索范围内的激光数据,分别确定当前激光数据为激光数据搜索范围内的激光数据的概率,确定概率最大的激光数据为与当前激光数据匹配的历史激光数据。
需要说明的是,在本发明实施例中,终端或机器人可以基于当前激光数据和激光数据库,按照该激光数据搜索范围进行激光闭环检测,也可以在确定出该闭环关键数据后,直接基于当前激光数据和激光数据库,进行激光闭环检测。
值得说明的是,由于激光数据搜索范围是根据当前视觉图像动态确定的,且激光数据搜索范围内的激光数据仅为激光数据库中的部分数据,因此,终端或机器人按照该激光数据搜索范围进行激光闭环检测时,运算量较小,消耗的运行资源也小,从而提高了终端或机器人***的稳定性。
另外,由于指定公式可以为对数公式,因此,可以通过坐标系描述位姿距离与激光数据搜索范围的最大值之间的关系。比如,参见图6,用坐标横轴描述位姿距离,坐标纵轴描述激光数据搜索范围的最大值。其中,从图6中可以很明显的看出来,当位姿距离较小时,为了能够成功确定历史激光数据,仍然需要选择一个相对较大的激光数据搜索范围;而当位姿距离较大时,则只需要一个相对较小的激光数据搜索范围,因此,通过该激光数据搜索范围进行激光闭环检测可以避免搜索时间过长,提高了终端或机器人***的稳定性。
步骤D:终端或机器人基于历史激光数据,将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据。
其中,终端或机器人确定采集历史激光数据时该机器人所处位置与当前所处位置之间的位置误差;当该位置误差不为0时,将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据中。
由上述可知,位姿数据可以描述机器人所在位置以及姿态,因此,当终端或机器人确定出该历史激光数据后,可以从历史位姿数据中确定机器人采集历史激光数据时机器人所处位置,从当前位姿数据中确定机器人当前所处的位置,并确定机器人采集历史激光数据时机器人所处位置与当前所处位置的位置误差。该历史位姿数据为采集历史激光数据时确定的机器人的位姿数据,当前位姿数据为采集当前激光数据时确定的机器人的位姿数据。
其中,终端或机器人可以确定机器人移动前所处位置为机器人的初始位置,后续机器人每一次采集视觉图像和激光数据时,可以通过安装在机器人上的里程计确定机器人当前所处位置相对初始位置的偏移量,根据机器人初始位置和相对初始位置的偏移量确定机器人当前所处的位置。
需要说明的是,当里程计为轮式里程计时,该轮式里程计可以记录机器人左右轮旋转的圈数和机器人旋转的角度,因此,终端或机器人可以将左右轮旋转的圈数乘以左右轮的周长,得到机器人的位移偏移量,以机器人移动前机器人正面面对的方向为正方向,根据机器人的旋转角度,确定机器人相对于正方向的角度偏移量。
另外,终端或机器人根据机器人初始位置和相对初始位置的偏移量确定机器人当前所处的位置的操作可以为:建立平面直接坐标系,将机器人的初始位置确定为(0,0)点,将机器人移动前正面面对的方向确定为X轴,根据该角度偏移量和位移偏移量确定机器人的坐标,将该坐标描述的位置确定为机器人当前所处的位置。
进一步地,由上述可知,终端或机器人在确定当前视觉图像中的对象相对于历史视觉图像中的对象发生运动时,可能是机器人因机器人自主移动发生了变化,也可能是因机器人上的视觉传感器发生移动导致发生运动,当终端或机器人因视觉传感器的移动而确定当前视觉图像中的对象相对于历史视觉图像中的对象发生运动时,后续定位及地图构建可能会不准确。因此,为了提高后续定位及地图构建的准确性,在终端或机器人确定当前视觉图像中的对象相对于历史视觉图像中的对象发生运动时,还可以获取机器人车轮上安装的轮式里程计记录的机器人的里程计数据,并根据该里程计数据确定机器人的移动状态;当通过移动状态确定该机器人已移动时,执行上述步骤202中将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据的操作,当通过移动状态确定该机器人未发生移动时,确定该机器人的视觉传感器位置发生变化,无需进行后续的定位及地图构建操作。具体流程可参见图7。
其中,当机器人的里程计数据包括X方向的位移变化、Y方向的位移变化和机器人的角度变化时,如果机器人在X方向的位移变化和在Y方向的位移变化中任一方向的位移变化超过预设位移阈值,或者该机器人的角度变化超过预设角度阈值时,则终端或机器人确定该机器人已移动;当机器人在X方向的位移变化和在Y方向的位移变化均未超过预设位移阈值,且该机器人的角度变化未超过预设角度阈值时,则终端或机器人确定该机器人未移动。
需要说明的是,机器人的角度是指机器人在移动过程中旋转的角度,比如,机器人原地旋转180度,那么180度即为机器人的角度。
由于轮式里程计可以记录机器人左右轮旋转的圈数及机器人的旋转角度,因此,终端或机器人可以通过轮式里程计左右轮旋转的圈数和机器人的旋转角度确定机器人的里程计数据。
其中,终端或机器人以上一次进行地图绘制时间为起点,确定在本次采集到当前视觉图像时轮式里程计记录的左右轮旋转的圈数及机器人的旋转角度,将左右轮旋转的圈数乘以左右轮的周长,得到机器人的位移变化;将机器人前进方向确定为Y方向,当机器人的旋转角度未发生变化时,确定机器人在Y方向上发生位移变化,当机器人的旋转角度为90度或-90度后进行位移变化时,确定机器人在X方向上发生位移变化,并确定机器人的角度为90度或-90度;当机器人未发生X方向或Y方向上的位移变化,但轮式里程计记录有的旋转角度时,将该旋转角度确定为机器人的角度。
需要说明的是,该预设位移阈值可以事先设置,比如,该预设位移阈值可以为15厘米、30厘米等等。该预设角度阈值同样可以事先设置,比如,该预设角度阈值可以为20度、30度等等。
再者,由于当该机器人的视觉传感器位置发生变化后,可能会影响后续进行定位及地图构建的操作,因此,终端或机器人可以在确定该机器人的视觉传感器位置发生变化后,进行告警提醒。
进一步地,在本发明实施例中,当终端或机器人在确定当前视觉图像中的对象相对于历史视觉图像中的对象发生运动后,继续通过机器人上安装的轮式里程计确定机器人的移动状态时,终端或机器人可以在确定机器人发生移动后将当前视觉图像和当前激光数据对应存储。
由于视觉图像存储于视觉数据库,激光数据存储于激光数据库,因此,终端或机器人可以将当前视觉图像存储于视觉数据库,将当前激光数据存储于激光数据库。通常情况下,由于数据库与数据库之间可进行关联,因此,可以将视觉数据库和激光数据库进行关联,从而实现当前视觉图像与当前激光数据之间的对应存储。
另外,由于终端或机器人还可以确定机器人每一次采集视觉图像和激光数据时机器人的位姿数据,且后续将当前视觉图像和当前激光数据作为优化节点信息写入到地图数据的操作与机器人所处的位置相关。因此,终端或机器人还可以将每一次确定的机器人的位姿数据存储至位姿数据库,并将该位姿数据库分别与视觉数据库和激光数据库进行关联,从而实现当前视觉图像、当前激光数据和当前位姿数据之间的对应存储。
值得说明的是,由于通常情况下,终端或机器人会将视觉传感器采集到的视觉图像和激光传感器采集到的激光数据进行存储,因此,当机器人较长时间移动之后,视觉图像和激光数据占用的内存和存储空间将会越来越大,从而导致后需计算复杂,且终端或机器人运行困难。而本发明实施例中,终端或机器人是在确定当前视觉图像中的对象相对于历史视觉图像中的对象发生运动后,或者在当前视觉图像中的对象相对于历史视觉图像中的对象发生运动且根据机器人的里程计数据确定机器人发生移动后,将当前视觉图像和当前激光数据进行对应存储,从而大幅降低了对终端或机器人的内存和存储空间的占用。同时,由于视觉数据库和激光数据库中存储的数据量越少,终端或机器人进行闭环检测、定位及地图构建等算法的运算量就越少,从而降低了终端或机器人的资源消耗。
进一步地,终端或机器人在将优化节点信息写入地图数据之后,还可以根据优化节点信息和地图数据中的其他节点信息生成优化条件,并根据优化条件与位置误差对地图数据中其他节点信息包括的位姿数据进行优化,从而实现对地图的优化。
在本发明实施例中,终端或机器人可以检测当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动,并在发生运动后继续通过轮式里程计确定机器人是否发生移动,从而提高机器人运动分析的准确性。之后,在机器人发生移动后,根据当前视觉图像和当前激光数据进行机器人的闭环检测,从而确定采集历史激光数据时机器人所处位置与当前所处位置之间的位置误差,并在误差不为0的情况下,将当前视觉图像和当前激光数据作为优化节点信息写入到所述地图数据中。由于无需单独通过轮式里程计确定机器人是否发生运动,避免了出现因对机器人运行分析不当而导致的机器人定位及地图构建不准确,从而提高了机器人定位及构建地图的准确性。
在对本发明实施例提供的实时定位与地图构建方法进行解释说明之后,接下来,对本发明实施例提供的实时定位与地图构建装置进行介绍。
图8是本公开实施例提供的一种实时定位与地图构建装置的框图,参见图8,该实时定位与地图构建装置可以由软件、硬件或者两者的结合实现。该装置包括:第一获取模块801和写入模块802。
第一获取模块801,获取在当前位置采集到的当前视觉图像和当前激光数据;
写入模块802,用于在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,所述历史视觉图像为采集时间早于所述当前视觉图像的视觉图像。
可选地,参见图9,所述装置还包括:
特征提取模块803,用于分别对所述当前视觉图像和所述历史视觉图像进行特征提取,得到第一视觉特征点和第二视觉特征点;
第一确定模块804,用于根据所述第一视觉特征点和所述第二视觉特征点,确定所述当前视觉图像与所述历史视觉图像之间的场景重合度;
第二确定模块805,用于当所述场景重合度小于第一预设阈值时,确定所述机器人所在的场景已发生变化。
可选地,参见图10,所述装置还包括:
第三确定模块806,用于当所述当前视觉图像中不存在目标对象时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动,所述目标对象为所述历史视觉图像中的对象;
第四确定模块807,用于当所述当前视觉图像中存在所述目标对象时,确定所述目标对象在所述历史视觉图像中的位置,以及确定所述目标对象在所述当前视觉图像中的位置;
第五确定模块808,用于当所述目标对象在所述当前视觉图像中的位置与在所述历史视觉图像中的位置不相同时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
可选地,参见图11,所述装置还包括:
第二获取模块809,用于获取机器人的里程计数据;
第六确定模块810,用于根据所述机器人的里程计数据,确定所述机器人的移动状态;
相应的,所述写入模块802用于:
当通过所述移动状态确定所述机器人已移动时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
可选地,所述机器人的里程计数据包括X方向的位移变化、Y方向的位移变化和所述机器人的角度变化;
所述第六确定模块810用于:
当所述机器人在X方向的位移变化和在Y方向的位移变化中任一方向的位移变化超过预设位移阈值,或者所述机器人的角度变化超过预设角度阈值时,确定所述机器人已移动。
可选地,参见图12,所述写入模块802包括:
第一检测子模块8021,用于基于所述当前视觉图像和视觉数据库进行视觉闭环检测,以确定闭环关键数据,所述视觉数据库用于存储所述机器人采集到的视觉数据,所述闭环关键数据为描述所述机器人当前所处的位置为当前时间之前曾经过的位置的数据;
第一确定子模块8022,用于当确定出所述闭环关键数据时,基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围;
第二检测子模块8023,用于基于所述当前激光数据和激光数据库,按照所述激光数据搜索范围进行激光闭环检测,以确定与所述当前激光数据匹配的历史激光数据,所述激光数据库用于存储所述机器人采集到的激光数据;
第二确定子模块8024,用于将基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
可选地,所述第二确定子模块8024用于:
确定采集所述历史激光数据时所述机器人所处位置与当前所处位置之间的位置误差;
当所述位置误差不为0时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到所述地图数据中。
可选地,所述第一确定子模块8022用于:
获取采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据;
基于采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据,确定采集所述闭环关键数据时所述机器人所处的位置与所述机器人当前所处的位置之间的位姿距离;
基于所述位姿距离确定所述激光数据搜索范围。
可选地,所述第一确定子模块8022还用于:
基于所述位姿距离,通过如下公式确定所述激光数据搜索范围的最大值;
dist_adapitve=log(1+a*dist_diff)+b
其中,所述dist_adapitve用于表示所述激光数据搜索范围的最大值,所述dist_diff用于表示所述位姿距离,所述a为常数,所述b为常数;
将0到所述最大值之间的范围确定为所述激光数据搜索范围。
综上所述,在本发明实施例中,终端或机器人可以检测当前视觉图像中的对象相对于历史视觉图像中的对象是否发生运动,并在发生运动后继续通过轮式里程计确定机器人是否发生移动,从而提高机器人运动分析的准确性。之后,在机器人发生移动后,根据当前视觉图像和当前激光数据进行机器人的闭环检测,从而确定采集历史激光数据时机器人所处位置与当前所处位置之间的位置误差,并在误差不为0的情况下,将当前视觉图像和当前激光数据作为优化节点信息写入到所述地图数据中。由于无需单独通过轮式里程计确定机器人是否发生运动,避免了出现因对机器人运行分析不当而导致的机器人定位及地图构建不准确,从而提高了机器人定位及构建地图的准确性。
需要说明的是:上述实施例提供的实时定位与地图构建装置在进行实时定位与地图构建时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实时定位与地图构建装置与实时定位与地图构建方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13示出了本发明一个示例性实施例提供的终端1300的结构框图。该终端1300可以是:机器人、智能手机、平板电脑、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1300包括有:处理器1301和存储器1302。
处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申请中方法实施例提供的实时定位与地图构建方法。
在一些实施例中,终端1300还可选包括有:***设备接口1303和至少一个***设备。处理器1301、存储器1302和***设备接口1303之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口1303相连。具体地,***设备包括:射频电路1304、触摸显示屏1305、摄像头1306、音频电路1307、定位组件1308和电源1309中的至少一种。
***设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和***设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和***设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置终端1300的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在终端1300的不同表面或呈折叠设计;在再一些实施例中,显示屏1305可以是柔性显示屏,设置在终端1300的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。
定位组件1308用于定位终端1300的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1308可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***、俄罗斯的格雷纳斯***或欧盟的伽利略***的定位组件。
电源1309用于为终端1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。
加速度传感器1311可以检测以终端1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1311采集的重力加速度信号,控制触摸显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1312可以检测终端1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对终端1300的3D动作。处理器1301根据陀螺仪传感器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1313可以设置在终端1300的侧边框和/或触摸显示屏1305的下层。当压力传感器1313设置在终端1300的侧边框时,可以检测用户对终端1300的握持信号,由处理器1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313设置在触摸显示屏1305的下层时,由处理器1301根据用户对触摸显示屏1305的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设置终端1300的正面、背面或侧面。当终端1300上设置有物理按键或厂商Logo时,指纹传感器1314可以与物理按键或厂商Logo集成在一起。
光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制触摸显示屏1305的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1305的显示亮度;当环境光强度较低时,调低触摸显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像头组件1306的拍摄参数。
接近传感器1316,也称距离传感器,通常设置在终端1300的前面板。接近传感器1316用于采集用户与终端1300的正面之间的距离。在一个实施例中,当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变小时,由处理器1301控制触摸显示屏1305从亮屏状态切换为息屏状态;当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变大时,由处理器1301控制触摸显示屏1305从息屏状态切换为亮屏状态。
也即是,本发明实施例不仅提供了一种终端,包括处理器和用于存储处理器可执行指令的存储器,其中,处理器被配置为执行图1或图2所示的实施例中的方法,而且,本发明实施例还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时可以实现图1或图2所示的实施例中的地图绘制方法。
本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种实时定位与地图构建方法,其特征在于,所述方法包括:
获取在当前位置采集到的当前视觉图像和当前激光数据;
在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,基于所述当前视觉图像和视觉数据库进行视觉闭环检测,以确定闭环关键数据,所述视觉数据库用于存储机器人采集到的视觉数据,所述闭环关键数据为描述所述机器人当前所处的位置为当前时间之前曾经过的位置的数据,所述历史视觉图像为采集时间早于所述当前视觉图像的视觉图像;
当确定出所述闭环关键数据时,基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围;
基于所述当前激光数据和激光数据库,按照所述激光数据搜索范围进行激光闭环检测,以确定与所述当前激光数据匹配的历史激光数据,所述激光数据库用于存储所述机器人采集到的激光数据;
基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
2.如权利要求1所述的方法,其特征在于,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据之前,还包括:
分别对所述当前视觉图像和所述历史视觉图像进行特征提取,得到第一视觉特征点和第二视觉特征点;
根据所述第一视觉特征点和所述第二视觉特征点,确定所述当前视觉图像与所述历史视觉图像之间的场景重合度;
当所述场景重合度小于第一预设阈值时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
3.如权利要求1所述的方法,其特征在于,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据之前,还包括:
当所述当前视觉图像中不存在目标对象时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动,所述目标对象为所述历史视觉图像中的对象;
当所述当前视觉图像中存在所述目标对象时,确定所述目标对象在所述历史视觉图像中的位置,以及确定所述目标对象在所述当前视觉图像中的位置;
当所述目标对象在所述当前视觉图像中的位置与在所述历史视觉图像中的位置不相同时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
4.如权利要求1所述的方法,其特征在于,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据之前,还包括:
获取机器人的里程计数据;
根据所述机器人的里程计数据,确定所述机器人的移动状态;
相应地,所述将所述当前视觉图像和当前激光数据作为优化节点信息写入到地图数据,包括:
当通过所述移动状态确定所述机器人已移动时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
5.如权利要求4所述的方法,其特征在于,所述机器人的里程计数据包括X方向的位移变化、Y方向的位移变化和所述机器人的角度变化;
所述根据所述机器人的里程计数据,确定所述机器人的移动状态,包括:
当所述机器人在X方向的位移变化和在Y方向的位移变化中任一方向的位移变化超过预设位移阈值,或者所述机器人的角度变化超过预设角度阈值时,确定所述机器人已移动。
6.如权利要求1所述的方法,其特征在于,所述基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据,包括:
确定采集所述历史激光数据时所述机器人所处位置与当前所处位置之间的位置误差;
当所述位置误差不为0时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到所述地图数据中。
7.如权利要求1所述的方法,其特征在于,所述基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围,包括:
获取采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据;
基于采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据,确定采集所述闭环关键数据时所述机器人所处的位置与所述机器人当前所处的位置之间的位姿距离;
基于所述位姿距离确定所述激光数据搜索范围。
8.如权利要求7所述的方法,其特征在于,所述基于所述位姿距离确定所述激光数据搜索范围,包括:
基于所述位姿距离,通过如下公式确定所述激光数据搜索范围的最大值;
dist_adapitve=log(1+a*dist_diff)+b
其中,所述dist_adapitve用于表示所述激光数据搜索范围的最大值,所述dist_diff用于表示所述位姿距离,所述a为常数,所述b为常数;
将0到所述最大值之间的范围确定为所述激光数据搜索范围。
9.一种实时定位与地图构建装置,其特征在于,所述装置包括:
第一获取模块,获取在当前位置采集到的当前视觉图像和当前激光数据;
写入模块,包括第一检测子模块、第一确定子模块、第二检测子模块和第二确定子模块;
所述第一检测子模块,用于在检测到当前视觉图像中的对象相对于历史视觉图像中的对象发生了运动时,基于所述当前视觉图像和视觉数据库进行视觉闭环检测,以确定闭环关键数据,所述视觉数据库用于存储机器人采集到的视觉数据,所述闭环关键数据为描述所述机器人当前所处的位置为当前时间之前曾经过的位置的数据,所述历史视觉图像为采集时间早于所述当前视觉图像的视觉图像;
所述第一确定子模块,用于当确定出所述闭环关键数据时,基于采集所述闭环关键数据时采集到的激光数据和所述当前激光数据,确定激光数据搜索范围;
所述第二检测子模块,用于基于所述当前激光数据和激光数据库,按照所述激光数据搜索范围进行激光闭环检测,以确定与所述当前激光数据匹配的历史激光数据,所述激光数据库用于存储所述机器人采集到的激光数据;
所述第二确定子模块,用于基于所述历史激光数据,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
特征提取模块,用于分别对所述当前视觉图像和所述历史视觉图像进行特征提取,得到第一视觉特征点和第二视觉特征点;
第一确定模块,用于根据所述第一视觉特征点和所述第二视觉特征点,确定所述当前视觉图像与所述历史视觉图像之间的场景重合度;
第二确定模块,用于当所述场景重合度小于第一预设阈值时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
11.如权利要求9所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于当所述当前视觉图像中不存在目标对象时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动,所述目标对象为所述历史视觉图像中的对象;
第四确定模块,用于当所述当前视觉图像中存在所述目标对象时,确定所述目标对象在所述历史视觉图像中的位置,以及确定所述目标对象在所述当前视觉图像中的位置;
第五确定模块,用于当所述目标对象在所述当前视觉图像中的位置与在所述历史视觉图像中的位置不相同时,确定所述当前视觉图像中的对象相对于所述历史视觉图像中的对象发生了运动。
12.如权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取机器人的里程计数据;
第六确定模块,用于根据所述机器人的里程计数据,确定所述机器人的移动状态;
相应的,所述写入模块用于:
当通过所述移动状态确定所述机器人已移动时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到地图数据。
13.如权利要求12所述的装置,其特征在于,所述机器人的里程计数据包括X方向的位移变化、Y方向的位移变化和所述机器人的角度变化;
所述第六确定模块用于:
当所述机器人在X方向的位移变化和在Y方向的位移变化中任一方向的位移变化超过预设位移阈值,或者所述机器人的角度变化超过预设角度阈值时,确定所述机器人已移动。
14.如权利要求9所述的装置,其特征在于,所述第二确定子模块用于:
确定采集所述历史激光数据时所述机器人所处位置与当前所处位置之间的位置误差;
当所述位置误差不为0时,将所述当前视觉图像和所述当前激光数据作为优化节点信息写入到所述地图数据中。
15.如权利要求9所述的装置,其特征在于,所述第一确定子模块用于:
获取采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据;
基于采集所述闭环关键数据时所述机器人的位姿数据和采集所述当前激光数据时所述机器人的位姿数据,确定采集所述闭环关键数据时所述机器人所处的位置与所述机器人当前所处的位置之间的位姿距离;
基于所述位姿距离确定所述激光数据搜索范围。
16.如权利要求15所述的装置,其特征在于,所述第一确定子模块还用于:
基于所述位姿距离,通过如下公式确定所述激光数据搜索范围的最大值;
dist_adapitve=log(1+a*dist_diff)+b
其中,所述dist_adapitve用于表示所述激光数据搜索范围的最大值,所述dist_diff用于表示所述位姿距离,所述a为常数,所述b为常数;
将0到所述最大值之间的范围确定为所述激光数据搜索范围。
CN201810569341.9A 2018-06-05 2018-06-05 实时定位与地图构建方法、装置及计算机可读存储介质 Active CN110570465B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810569341.9A CN110570465B (zh) 2018-06-05 2018-06-05 实时定位与地图构建方法、装置及计算机可读存储介质
PCT/CN2019/088413 WO2019233299A1 (zh) 2018-06-05 2019-05-24 地图构建方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810569341.9A CN110570465B (zh) 2018-06-05 2018-06-05 实时定位与地图构建方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110570465A CN110570465A (zh) 2019-12-13
CN110570465B true CN110570465B (zh) 2022-05-20

Family

ID=68772307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810569341.9A Active CN110570465B (zh) 2018-06-05 2018-06-05 实时定位与地图构建方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110570465B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111060118B (zh) * 2019-12-27 2022-01-07 炬星科技(深圳)有限公司 场景地图建立方法、设备及存储介质
CN111352911A (zh) * 2020-02-24 2020-06-30 北京小马智行科技有限公司 电子地图的压缩方法及装置、存储介质、电子设备
CN114930391A (zh) * 2020-07-20 2022-08-19 深圳元戎启行科技有限公司 地图更新方法、装置、计算机设备和存储介质
CN111958636A (zh) * 2020-08-07 2020-11-20 湖南神通智能股份有限公司 一种机器人位置的标记方法及***
CN112833890A (zh) * 2020-12-30 2021-05-25 深圳市海柔创新科技有限公司 地图构建方法、装置、设备、机器人及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831446A (zh) * 2012-08-20 2012-12-19 南京邮电大学 单目视觉slam中基于图像外观的闭环检测方法
CN103278170A (zh) * 2013-05-16 2013-09-04 东南大学 基于显著场景点检测的移动机器人级联地图创建方法
CN103900583A (zh) * 2012-12-25 2014-07-02 联想(北京)有限公司 用于即时定位与地图构建的设备和方法
CN106897666A (zh) * 2017-01-17 2017-06-27 上海交通大学 一种室内场景识别的闭环检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831446A (zh) * 2012-08-20 2012-12-19 南京邮电大学 单目视觉slam中基于图像外观的闭环检测方法
CN103900583A (zh) * 2012-12-25 2014-07-02 联想(北京)有限公司 用于即时定位与地图构建的设备和方法
CN103278170A (zh) * 2013-05-16 2013-09-04 东南大学 基于显著场景点检测的移动机器人级联地图创建方法
CN106897666A (zh) * 2017-01-17 2017-06-27 上海交通大学 一种室内场景识别的闭环检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于视觉与惯性传感器的移动机器人环境地图创建方法研究";张磊;《中国优秀博硕士论文全文数据库 信息科技辑》;20131215;第2-4章 *

Also Published As

Publication number Publication date
CN110570465A (zh) 2019-12-13

Similar Documents

Publication Publication Date Title
US11205282B2 (en) Relocalization method and apparatus in camera pose tracking process and storage medium
CN110570465B (zh) 实时定位与地图构建方法、装置及计算机可读存储介质
US11276183B2 (en) Relocalization method and apparatus in camera pose tracking process, device, and storage medium
CN110148178B (zh) 相机定位方法、装置、终端及存储介质
CN110967024A (zh) 可行驶区域的检测方法、装置、设备及存储介质
CN110967011A (zh) 一种定位方法、装置、设备及存储介质
CN110986930B (zh) 设备定位方法、装置、电子设备及存储介质
CN109558837B (zh) 人脸关键点检测方法、装置及存储介质
CN111127509B (zh) 目标跟踪方法、装置和计算机可读存储介质
CN110134744B (zh) 对地磁信息进行更新的方法、装置和***
CN109166150B (zh) 获取位姿的方法、装置存储介质
CN109886208B (zh) 物体检测的方法、装置、计算机设备及存储介质
CN110633336B (zh) 激光数据搜索范围的确定方法、装置及存储介质
CN110920631A (zh) 控制车辆的方法、装置、电子设备及可读存储介质
CN112749590B (zh) 目标检测方法、装置、计算机设备和计算机可读存储介质
CN111928861B (zh) 地图构建方法及装置
CN111127541A (zh) 车辆尺寸的确定方法、装置及存储介质
CN111354378B (zh) 语音端点检测方法、装置、设备及计算机存储介质
CN111753606A (zh) 一种智能模型的升级方法及装置
CN113432620B (zh) 误差估计方法、装置、车载终端及存储介质
WO2019233299A1 (zh) 地图构建方法、装置及计算机可读存储介质
CN112990421B (zh) 优化深度学习网络的运行过程的方法、装置及存储介质
CN113592874A (zh) 图像显示方法、装置和计算机设备
CN111402873A (zh) 语音信号处理方法、装置、设备及存储介质
CN111310526A (zh) 目标跟踪模型的参数确定方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Hikvision Robot Co.,Ltd.

Address before: 310051 5th floor, building 1, building 2, no.700 Dongliu Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address