CN111247390B - Vslam的并发的重新定位和重新初始化 - Google Patents
Vslam的并发的重新定位和重新初始化 Download PDFInfo
- Publication number
- CN111247390B CN111247390B CN201780095661.9A CN201780095661A CN111247390B CN 111247390 B CN111247390 B CN 111247390B CN 201780095661 A CN201780095661 A CN 201780095661A CN 111247390 B CN111247390 B CN 111247390B
- Authority
- CN
- China
- Prior art keywords
- robotic device
- pose
- environment
- processor
- feature
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 74
- 230000004044 response Effects 0.000 claims abstract description 62
- 230000015654 memory Effects 0.000 claims description 28
- 230000002596 correlated effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 abstract description 30
- 238000004891 communication Methods 0.000 description 36
- 238000013507 mapping Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Image Analysis (AREA)
Abstract
各个实施例包括用于针对机器人设备的重新定位和重新初始化的处理设备和方法。各个实施例可以包括:响应于未能确定机器人设备在环境中的第一姿态并且确定丢失对机器人设备的跟踪,并发地对机器人设备的第二姿态重新定位并且对机器人设备的第三姿态重新初始化。各个实施例可以包括:响应于未能确定机器人设备在环境中的第一姿态并且确定丢失对机器人设备的跟踪,对机器人设备在环境中的第二姿态预先重新定位;响应于对机器人设备的第二姿态成功地预先重新定位,对机器人设备的第三姿态重新定位;以及响应于对机器人设备的第二姿态未成功地预先重新定位,对机器人设备的第四姿态重新初始化。
Description
背景技术
正在开发机器人设备以用于广泛的应用。机器人设备可以被配备有能够捕获图像、图像序列或视频的相机。一些机器人设备可以被配备有单目图像传感器,诸如单目相机。
机器人设备可以执行同时定位和地图绘制(SLAM),以构建和更新未知环境的地图,而同时跟踪机器人设备在环境中的位置。机器人设备可以使用其图像传感器设备来收集对于视觉SLAM(VSLAM)有用的数据。然而,实现VSLAM的机器人设备可能由于差的照明、无特征的环境和移动的对象而丢失跟踪。
发明内容
各个实施例包括用于对机器人设备的重新定位和重新初始化的方法以及执行这样的方法的机器人设备和处理设备。
各个实施例可以包括:确定所述机器人设备在环境中的第一姿态;确定是否丢失对所述机器人设备的跟踪;以及响应于未能确定所述机器人设备在所述环境中的所述第一姿态并且确定丢失对所述机器人设备的跟踪,并发地对所述机器人设备的第二姿态重新定位并且对所述机器人设备的第三姿态重新初始化。
各个实施例还可以包括:确定对所述机器人设备的所述第二姿态重新定位是否是成功的;响应于确定对所述机器人设备的所述第二姿态重新定位是成功的,终止对所述机器人设备的所述第三姿态重新初始化;确定对所述机器人设备的所述第三姿态重新初始化是否是成功的;以及响应于确定对所述机器人设备的所述第三姿态重新初始化是成功的,终止对所述机器人设备的所述第二姿态重新定位。
各个实施例还可以包括:确定对所述机器人设备的所述第二姿态重新定位是否是成功的;响应于确定对所述机器人设备的所述第二姿态重新定位是不成功的,对所述机器人设备的所述第二姿态重新定位;确定对所述机器人设备的所述第三姿态重新初始化是否是成功的;以及响应于确定对所述机器人设备的所述第三姿态重新初始化是不成功的,对所述机器人设备的所述第三姿态重新初始化。
在一些实施例中,对所述机器人设备的第二姿态重新定位可以包括:捕获所述环境的第一特征的传感器数据;将所捕获的传感器数据与针对所述环境的多个特征的被存储的传感器数据进行比较;从所述环境的所述多个特征中识别出所述环境的具有与所捕获的传感器数据相匹配的被存储的传感器数据的第二特征;相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位;确定所述机器人设备相对于所述环境的所述第二姿态;以及基于所述机器人设备的所述第二姿态来跟踪所述机器人设备。
各个实施例还可以包括:取得所述环境的所述第二特征的被存储的基于描述符的特征;以及将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较。在这样的实施例中,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位可以包括:基于将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位。
在一些实施例中,对所述机器人设备的所述第三姿态重新初始化可以包括:取得在丢失对所述机器人设备的跟踪之前获得的、所述机器人设备的第四姿态;取得自从丢失对所述机器人设备的跟踪以来所捕获的传感器数据;以及使用所述机器人设备的所述第四姿态以及自从丢失对所述机器人设备的跟踪以来所捕获的所述传感器数据,来对所述机器人设备的所述第三姿态重新初始化。
各个实施例还可以包括:确定所述机器人设备相对于所述环境的所述第三姿态;以及将所述机器人设备的所述第三姿态与所述环境的被存储的地图进行相关。
各个实施例可以包括:确定所述机器人设备在环境中的第一姿态;确定是否丢失对所述机器人设备的跟踪;响应于未能确定所述机器人设备在所述环境中的所述第一姿态并且确定丢失对所述机器人设备的跟踪,对所述机器人设备在所述环境中的第二姿态预先重新定位;响应于对所述机器人设备的所述第二姿态成功地预先重新定位,对所述机器人设备的第三姿态重新定位;以及响应于对所述机器人设备的所述第二姿态未成功预先重新定位,对所述机器人设备的第四姿态重新初始化。
在一些实施例中,对所述机器人设备在所述环境中的第二姿态预先重新定位包括:取得所述机器人设备在经规划的路径上去往下一目标的第五姿态;取得与所述机器人设备的所述第五姿态相关联的被存储的传感器数据;取得所述环境的与所述机器人设备的所述第五姿态相关联的第一特征的被存储的基于描述符的特征;确定所述第一特征的所述基于描述符的特征是否超过特征门限;响应于确定所述第一特征的所述基于描述符的特征超过所述特征门限,指示对所述机器人设备的所述第二姿态预先重新定位是成功的;以及响应于确定所述第一特征的所述基于描述符的特征没有超过所述特征门限,指示对所述机器人设备的所述第二姿态预先重新定位是不成功的。
各个实施例还可以包括:确定对所述机器人设备的所述第三姿态重新定位是否是成功的;响应于确定对所述机器人设备的所述第三姿态重新定位是成功的,基于所述机器人设备的所述第三姿态来跟踪所述机器人设备;确定对所述机器人设备的所述第四姿态重新初始化是否是成功的;以及响应于确定对所述机器人设备的所述第四姿态重新初始化是成功的,基于所述机器人设备的所述第四姿态来跟踪所述机器人设备。
各个实施例还可以包括:确定对所述机器人设备的所述第三姿态重新定位是否是成功的;响应于确定对所述机器人设备的所述第三姿态重新定位是不成功的,对所述机器人设备的所述第三姿态重新定位;确定对所述机器人设备的所述第四姿态重新初始化是否是成功的;以及响应于确定对所述机器人设备的所述第四姿态重新初始化是不成功的,对所述机器人设备的所述第四姿态重新初始化。
在一些实施例中,对所述机器人设备的第三姿态重新定位可以包括:捕获所述环境的第一特征的传感器数据;将所捕获的传感器数据与和所述环境的第二特征相关联的被存储的传感器数据进行比较,所述环境的所述第二特征是与所述机器人设备在经规划的路径上去往下一目标的第五姿态相关联的;相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位;确定相对于所述环境的所述第三姿态;以及基于所述第三姿态来跟踪所述机器人设备。
各个实施例还可以包括:取得所述环境的所述第二特征的被存储的基于描述符的特征;以及将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,其中,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位可以包括:基于将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位。
在一些实施例中,对所述机器人设备的第四姿态重新初始化可以包括:取得在丢失对所述机器人设备的跟踪而获得的、所述机器人设备的第五姿态;取得自从丢失对所述机器人设备的跟踪以来所捕获的传感器数据;使用所述机器人设备的所述第五姿态以及自从丢失对所述机器人设备的跟踪以来所捕获的所述传感器数据,来对所述机器人设备的所述第四姿态重新初始化;确定相对于所述环境的所述第四姿态;以及将所述第四姿态与所述环境的被存储的地图进行相关。
另外的实施例包括一种机器人设备,其包括:传感器、存储器、以及处理器,所述处理器被配置有处理器可执行指令以执行上文概述的方法中的任何方法的操作。另外的实施例包括一种机器人设备,其包括用于执行上文概述的方法中的任何方法的操作的单元。另外的实施例包括一种用于在机器人设备中使用的处理设备,其被配置为执行上文概述的方法中的任何方法的操作。另外的实施例包括一种在其上存储有处理器可执行指令的非暂时性处理器可读介质,所述处理器可执行指令被配置为使得机器人设备的处理器执行上文概述的方法中的任何方法的操作。
附图说明
并入本文并且构成该说明书的部分的附图示出了示例实施例,并且连同以上给出的总体描述以及以下给出的详细描述一起用于解释各个实施例的特征。
图1是根据各个实施例的在通信系统内操作的机器人设备的系统框图。
图2是示出根据各个实施例的机器人设备的组件的组件框图。
图3是示出适于在实现各个实施例的机器人设备中使用的处理设备的组件框图。
图4是示出适于与各个实施例一起使用的机器人设备的重新定位和重新初始化系统的组件的组件框图。
图5示出了根据各个实施例的由机器人设备进行的环境导航。
图6是示出根据各个实施例的针对机器人设备的并发的重新定位和重新初始化的方法的过程流程图。
图7是示出根据各个实施例的针对机器人设备的利用预先重新定位的重新定位和重新初始化的方法的过程流程图。
图8是示出根据各个实施例的针对机器人设备的重新定位的方法的过程流程图。
图9是示出根据各个实施例的针对机器人设备的重新初始化的方法的过程流程图。
图10是示出根据各个实施例的针对机器人设备的预先重新定位的方法的过程流程图。
图11是示出根据各个实施例的针对机器人设备的利用预先重新定位的重新定位的方法的过程流程图。
具体实施方式
将参照附图来详细描述各个实施例。在可能的情况下,将贯穿各个附图使用相同的附图标记来指代相同或类似的部分。对特定示例和实施例的提及是出于说明性的目的,而并非旨在限制权利要求的范围。
如本文中所使用的,术语“机器人设备”指代包括被配置为提供一些自主或半自主能力的机载处理设备的各种类型的设备中的一种设备。机器人设备的示例包括但不限于:飞行器,诸如无人驾驶飞行器(UAV)或无人机;陆基机器人和运载工具(例如,自主式或半自主式机器人、真空机器人、自主式或半自主式机动车辆等);水基设备(即,被配置用于在水面上或在水下操作的运载工具);天基设备(例如,航天器或航天探测器);和/或其某种组合。在一些实施例中,机器人设备可以是有人驾驶的。在其它实施例中,机器人设备可以是无人驾驶的。在其中机器人设备是自主式的实施例中,机器人设备可以包括机载计算设备,机载计算设备被配置为在没有例如来自人类操作者(例如,经由远程计算设备)的远程操作指令的情况下(即,自主地)操纵和/或导航机器人设备。在其中机器人设备是半自主式的实施例中,机器人设备可以包括机载计算设备,机载计算设备被配置为接收例如来自人类操作者(例如,经由远程计算设备)的一些信息或指令,并且与所接收的信息或指令一致地来自主地操纵和/或导航机器人设备。在一些实现中,机器人设备可以是航空设备(无人驾驶或有人驾驶),其可以是旋翼飞机或有翼飞机。例如,旋翼飞机(也被称为多旋翼飞行器或多旋翼直升机)可以包括多个推进单元(例如,转子/推进器),其为机器人设备提供推进力和/或提升力。旋翼飞机的特定非限制性示例包括三旋翼直升机(三个转子)、四旋翼直升机(四个转子)、六旋翼直升机(六个转子)和八旋翼直升机(八个转子)。然而,旋翼飞机可以包括任意数量的转子。机器人设备可以包括可以执行各种功能的各种组件和/或有效载荷。
机器人设备可以采用同时定位和地图绘制(SLAM)技术来构建和更新未知环境的地图,而同时跟踪机器人设备在环境中的位置。机器人设备越来越多地被配备有用于捕获图像和视频的图像传感器设备。在一些实施例中,图像传感器设备可以包括单目图像传感器(例如,单目相机)。机器人设备可以使用图像传感器设备来收集对于SLAM有用的数据。使用图像传感器设备来收集对于SLAM有用的数据的机器人设备可以实现视觉SLAM(VSLAM)。机器人设备可以包括任何数量的额外传感器(例如,轮子编码器、惯性测量单元(IMU)、红外(IR)传感器、声纳传感器、保险杠传感器、LIDAR传感器等),以提高VSLAM的准确性和/或稳健性。
对于被配备有单目图像传感器的机器人设备,图像传感器可能无法提供足够的信息来使得处理设备能够确定机器人设备姿态(位置和朝向)以及针对环境的地图点两者。实现VSLAM的机器人设备在异常环境中可能由于差的照明、无特征的环境、移动的对象和/或不熟悉的环境而丢失跟踪。对于实现VSLAM的机器人设备来说,恢复跟踪和定位直到返回正常和/或已知环境为止和之时是困难的。
各个实施例可以改善对遇到导致机器人设备丢失跟踪的异常环境的机器人设备的定位和跟踪。具体地,各个实施例可以使用多种技术来提高恢复跟踪直到返回正常和/或已知环境为止和之时的可能性和速度。因此,各种方法可以实现对机器人设备的姿态的重新定位和/或重新初始化。各种方法可以实现对姿态的并发的重新定位和/或重新初始化,以提高可以确定机器人设备的姿态并且可以恢复跟踪的可能性和速度。各种方法可以基于沿着被规划以去往下一目标的路径的姿态来实现对机器人设备的姿态的预先重新定位,以确定可以用于在重新定位和重新初始化之间进行选择的成功重新定位的可能性,并且提高可以确定机器人设备的姿态并且可以恢复跟踪的可能性和速度。
各个实施例可以提供用于按照这样的方式来存储传感器数据和地图数据的设备和方法:可以在被配置用于对机器人设备的姿态重新定位和重新初始化的多个模块之间共享数据。存储传感器数据和地图数据以供被配置用于对姿态重新定位和重新初始化的多个模块共享访问,这可以减少用于存储和使用传感器数据和地图数据的存储器需求。
各个实施例可以包括用于将机器人设备的经重新定位和/或经重新初始化的姿态与被存储的传感器数据和地图数据进行相关的设备和方法。传感器数据和地图数据可以是与单一世界坐标系相关的,以提高可以确定机器人设备的姿态并且可以恢复跟踪的速度和准确度。各个实施例可以将经重新定位和/或经重新初始化的姿态与单一世界坐标系中的传感器数据和地图数据进行相关。
各个实施例可以通过在异常环境中实现对机器人设备的姿态的快速重新定位和/或重新初始化,从而提供对已知技术进行技术改进。各个实施例可以通过执行并发过程来对姿态重新定位和重新初始化,通过执行对姿态的预先重新定位以在对姿态的重新定位和重新初始化之间进行选择,通过减少用于对姿态的重新定位和/或重新初始化的存储器需求,以及通过将经重新定位和/或经重新初始化的姿态与被存储的在单一世界坐标系中的传感器数据和地图数据进行相关,从而提高对姿态的重新定位和/或重新初始化的速度。
各个实施例可以是在各种通信系统100内操作的机器人设备内实现的,在图1中示出了通信系统100的示例。参照图1,通信系统100可以包括机器人设备102、基站104、接入点106、通信网络108以及网络单元110。在一些实施例中,机器人设备120可以被配备有图像传感器102a。在一些实施例中,图像传感器102a可以包括单目图像传感器。
基站104和接入点106可以提供无线通信,以分别通过有线和/或无线通信回程116和118来接入通信网络108。基站104可以包括被配置为在广域(例如,宏小区)以及小型小区上提供无线通信的基站,小型小区可以包括微小区、毫微微小区、微微小区以及其它类似的网络接入点。接入点106可以包括被配置为提供在相对较小区域上的无线通信的接入点。基站和接入点的其它示例也是可能的。
机器人设备102可以在无线通信链路112上与基站104进行通信,以及在无线通信链路114上与接入点106进行通信。无线通信链路112和114可以包括多个载波信号、频率或者频带,其中每一者可以包括多个逻辑信道。无线通信链路112和114可以使用一种或者多种无线接入技术(RAT)。可以在无线通信链路中使用的RAT的示例包括3GPP长期演进(LTE)、3G、4G、5G、全球移动通信系统(GSM)、码分多址(CDMA)、宽带码分多址(WCDMA)、全球微波接入互操作性(WiMAX)、时分多址(TDMA)、以及其它移动电话通信技术蜂窝RAT。可以在通信系统100内的各个无线通信链路中的一个或多个链路中使用的RAT的另外的示例包括中距离协议(例如,Wi-Fi、LTE-U、LTE直连、LAA、MuLTEfire)以及相对短距离RAT(诸如ZigBee(紫蜂)、蓝牙、以及蓝牙低能量(LE))。
网络单元110可以包括网络服务器或者另一类似的网络单元。网络单元110可以在通信链路122上与通信网络108进行通信。机器人设备102和网络单元110可以经由通信网络108进行通信。网络单元110可以向机器人设备102提供多种信息,例如,导航信息、天气信息、关于局部空中、地面和/或海面交通的信息、移动控制指令以及与机器人设备102的操作相关的其它信息、指令或者命令。
在各个实施例中,机器人设备102可以在环境120中移动。在一些实施例中,机器人设备可以使用图像传感器102a来捕获环境120中的目标图像125的一个或多个图像。在一些实施例中,目标图像125可以包括测试图像,其可以包括已知特性,诸如高度和宽度。
机器人设备可以包括有翼或旋翼飞机种类。图2示出了地面运载工具设计的示例性机器人设备200,其利用由相应的电动机驱动的一个或多个轮子202来为机器人设备200提供运动。机器人设备200被示为可以利用各个实施例的机器人设备的示例,但是并不旨在暗示或要求各个实施例限于地面机器人设备。例如,各个实施例可以与旋翼或有翼机器人设备、水上机器人设备和天基机器人设备一起使用。
参照图1和2,机器人设备200可以与机器人设备102类似。机器人设备200可以包括多个轮子202、主体204以及图像传感器206。框架(未示出)可以为电动机和其相关联的轮子202以及图像传感器206提供结构支撑。为了便于描述和说明,省略了机器人设备200的一些详细的方面,诸如连线、框架结构互连或者本领域技术人员将已知的其它特征。虽然所示出的机器人设备200具有轮子202,但是这仅是示例性的,并且各个实施例可以包括用于提供推进和操纵能力的任何种组件,诸如履带、桨、滑橇、或其任何组合、或其它组件的任何组合。
机器人设备200还可以包括控制单元210,其可以容纳用于为机器人设备200供电和控制其操作的各种电路和设备。控制单元210可以包括处理器220、功率模块230、传感器240、一个或多个有效载荷固定单元244、一个或多个图像传感器245、输出模块250、输入模块260和无线电模块270。
处理器220可以被配置有处理器可执行指令,以控制机器人设备200的行进和其它操作,包括各个实施例的操作。处理器220可以包括或者耦合到导航单元222、存储器224、陀螺仪/加速计单元226和操纵数据模块228。处理器220和/或导航单元222可以被配置为通过无线连接(例如,蜂窝数据网络)与服务器进行通信,以接收对导航有用的数据,提供实时位置报告以及评估数据。
操纵数据模块228可以耦合到处理器220和/或导航单元222,并且可以被配置为提供与行进控制相关的信息,诸如朝向、姿势、速度、航向、以及导航单元222可以用于导航目的的类似信息,诸如全球导航卫星系统(GNSS)位置更新之间的航位推算。陀螺仪/加速计单元226可以包括加速计、陀螺仪、惯性传感器、惯性测量单元(IMU)或其它类似的传感器。操纵数据模块228可以包括或者接收来自陀螺仪/加速计单元226的数据,陀螺仪/加速计单元226提供关于机器人设备200的朝向和加速度的数据(其可以用于导航和定位计算)以及提供在各个实施例中使用的数据用于处理图像。
处理器220还可以从一个或多个图像传感器245(例如相机,其可以是单目相机)和/或其它传感器240接收额外信息。在一些实施例中,图像传感器245可以包括具有红外线、紫外线和/或其它波长的光的能力的光学传感器。传感器240还可以包括轮子传感器、射频(RF)传感器、气压计、声纳发射器/检测器、雷达发射器/检测器、麦克风或者另一声学传感器、或者可以提供可由处理器220用于移动操作以及导航和定位计算的信息的另一传感器。传感器240可以包括接触式传感器或压力传感器,其可以提供指示机器人设备200何时已经与表面接触的信号。有效载荷固定单元244可以包括伺服电动机,其驱动抓握和释放机构以及相关的控制装置,它们对控制单元210进行响应,以响应于来自控制单元210的命令而抓握和释放有效载荷。
功率模块230可以包括可以将功率提供给各个组件的一个或多个电池,各个组件包括处理器220、传感器240、有效载荷固定单元244、图像传感器245、输出模块250、输入模块260和无线电模块270。另外,功率模块230可以包括能量储存组件,诸如可充电电池。处理器220可以被配置有处理器可执行指令,以控制功率模块230的充电(即,所收集的能量的储存),诸如通过使用充电控制电路来执行充电控制算法。替代地或者另外,功率模块230可以被配置为管理其自己的充电。处理器220可以耦合到输出模块250,其可以输出控制信号,控制信号用于管理驱动轮子202和其它组件的电动机。
当机器人设备200朝向目的地前进时,可以通过各个电动机对轮子202的控制来控制机器人设备200。处理器220可以从导航单元222接收数据,并且使用这样的数据,以便确定机器人设备200的目前位置和朝向、以及朝着目的地或中间站点的合适的路线。在各个实施例中,导航单元222可以包括GNSS接收机系统(例如,一个或多个全球定位系统(GPS)接收机),其使得机器人设备200能够使用GNSS信号进行导航。替代地或者另外,导航单元222可以被配备有无线电导航接收机,其用于从无线电节点接收导航信标或其它信号,无线电节点诸如导航信标(例如,甚高频(VHF)全向范围(VOR)信标)、Wi-Fi接入点、蜂窝网络站点、无线站、远程计算设备、其它机器人设备等。
无线电模块270可以被配置为接收导航信号(诸如来自航空导航设施的信号等),以及将这样的信号提供给处理器220和/或导航单元222,以辅助机器人设备导航。在各个实施例中,导航单元222可以使用从在地面上的可识别RF发射器(例如,AM/FM无线电站、Wi-Fi接入点以及蜂窝网络基站)接收的信号。
无线电模块270可以包括调制解调器274以及发送/接收天线272。无线电模块270可以被配置为与各种无线通信设备(例如,无线通信设备(WCD)290)进行无线通信,这些通信设备的示例包括无线电话基站或小区塔(例如,基站104)、网络接入点(例如,接入点106)、信标、智能电话、平板设备或者机器人设备200可以与其进行通信的另一计算设备(诸如网络单元110)。处理器220可以经由无线电模块270的调制解调器274和天线272以及经由发送/接收天线292和无线通信设备290建立双向无线通信链路294。在一些实施例中,无线电模块270可以被配置为支持使用不同无线接入技术与不同的无线通信设备的多个连接。
在各个实施例中,无线通信设备290可以通过中间接入点连接到服务器。在一个示例中,无线通信设备290可以是机器人设备操作者的服务器、第三方服务(例如包裹递送、开账单等)或站点通信接入点。机器人设备200可以通过一个或多个中间通信链路与服务器通信,中间通信链路诸如耦合到广域网(例如,互联网)或其它通信设备的无线电话网络。在一些实施例中,机器人设备200可以包括并且采用其它形式的无线电通信,诸如与其它机器人设备的网状连接或者与其它信息源(例如,用于收集和/或分发天气或其它数据收集信息的气球或其它站)的连接。
在各个实施例中,控制单元210可以被配备有输入模块260,其可以用于各种应用。例如,输入模块260可以从机载相机或传感器接收图像或数据,或者可以从其它组件(例如,有效载荷)接收电子信号。
虽然在图2中将控制单元210中的各个组件示为单独的组件,但是这些组件(例如,处理器220、输出模块250、无线电模块270以及其它单元)中的一些或者全部可以被一起集成在单个处理设备310中,在图3中示出了处理设备310的示例。
参照图1-3,处理设备310被可以配置为在机器人设备中使用,并且可以被配置为片上系统(SoC)312或者包括SoC 312。SoC 312可以包括(但是不限于)处理器314、存储器316、通信接口318和储存存储器接口320。处理设备310或SoC 312还可以包括用于建立无线通信链路的通信组件322(诸如有线或无线调制解调器)、储存存储器324、天线326等。处理设备310或SoC 312还可以包括硬件接口328,其被配置为使得处理器314能够与机器人设备的各个组件进行通信并且控制这些组件。处理器314可以包括各种处理设备中的任何处理设备,例如任何数量的处理器核。
术语“片上系统(SoC)”在本文中通常但并非排除性地用于指代一组互连的电子电路,其包括一个或多个处理器(例如314)、存储器(例如316)和通信接口(例如318)。SoC 312可以包括各种不同类型的处理器314和处理器核,诸如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、处理设备的特定组件的子系统处理器(诸如用于相机子系统的图像处理器或用于显示器的显示处理器)、辅助处理器、单核处理器和多核处理器。SoC 312可以进一步体现其它硬件和硬件组合,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑器件、分立门逻辑、晶体管逻辑、性能监测硬件、看门狗硬件和时间基准装置。集成电路可以被配置为使得集成电路的组件位于单片的半导体材料(例如,硅)上。
SoC 312可以包括一个或多个处理器314。处理设备310可以包括一个以上的SoC312,从而增加处理器314和处理器核的数量。处理设备310还可以包括与SoC 312不相关联(即在SoC 312外部)的处理器314。各个处理器314可以是多核处理器。处理器314可以分别被配置用于特定目的,其可以与处理设备310或SoC 312的其它处理器314相同或不同。具有相同或不同配置的处理器314和处理器核中的一者或多者可以被分组在一起。一组处理器314或处理器核可以被称为多处理器集群。
SoC 312的存储器316可以是易失性或非易失性存储器,其被配置用于存储用于由处理器314访问的数据和处理器可执行指令。处理设备310和/或SoC 312可以包括被配置用于各种目的的一个或多个存储器316。一个或多个存储器316可以包括易失性存储器,诸如随机存取存储器(RAM)或主存储器或高速缓存存储器。
处理设备310和SoC 312的组件中的一些或全部可以以不同的方式来布置和/或组合,同时仍然提供各个方面的功能。处理设备310和SoC 312可以不限于这些组件中的每个组件之一,并且每个组件的多个实例可以被包括在处理设备310的各种配置中。
图4示出了适于与各个实施例一起使用的机器人设备的重新定位和重新初始化系统400。参照图1-4,可以在机器人设备(例如,102、200)的硬件组件和/或软件组件中实现重新定位和重新初始化系统400,其操作可以由机器人设备的一个或多个处理器(例如,处理器220、处理设备310、SoC 312等)来控制。
传感器阵列402可以包括任何数量和组合的传感器,例如,图像传感器404、轮子传感器406、惯性测量单元(IMU)408、红外传感器410、保险杠传感器412、声纳传感器414、LIDAR传感器416等。传感器阵列402中的每个传感器404-416可以捕获传感器数据,传感器数据可以用于在现实世界环境(例如,125、500)和世界坐标系内跟踪机器人设备和对机器人设备进行地图绘制。
跟踪模块420可以被配置为实时计算机器人设备的姿态并且计算针对环境的地图。在各个实施例中,可以相对于世界坐标系来计算姿态和/或地图。在各个实施例中,可以相对于先前计算出的姿态来计算姿态和/或地图,并且通过重新定位和重新初始化系统400的另一模块(诸如地图绘制模块418)将姿态和/或地图与世界坐标系相关。跟踪模块可以从传感器404-416接收传感器数据,并且使用所接收的传感器数据来计算机器人设备的姿态并计算针对环境的地图。
跟踪模块420可以计算机器人设备的姿态。在各个实施例中,可以基于在机器人设备的特定区域与任何数量和组合的传感器404-416和/或传感器阵列402之间的关系来计算机器人设备的姿态。换句话说,可以基于该关系来将任何数量和组合的传感器404-416和/或传感器阵列402的姿态转换为机器人设备的姿态。例如,机器人设备的姿态可以被配置为指定针对机器人设备的中心点的姿态。传感器404-416可以位于机器人设备上的、除了机器人设备的中心点之外的、距机器人设备的中心点的特定距离和朝向的位置处。跟踪模块420可以计算传感器404-416的姿态,并且通过该特定距离和朝向来调整传感器404-416的姿态,以计算机器人设备的姿态。可以进行类似的计算以计算传感器阵列402和多个传感器404-416的姿态。在各个实施例中,计算针对多个传感器404-416的姿态可以包括计算针对相对于多个传感器404-416的位置(诸如在多个传感器404-416之间的中点)的姿态。在各个实施例中,机器人设备的姿态可以是与针对任何数量和组合的传感器404-416和/或传感器阵列402的姿态相同的。
跟踪模块420可以计算机器人设备在其中移动的环境的地图。在各个实施例中,可以基于在所计算出的机器人设备的姿态之间的关系来计算地图。例如,机器人设备可以在整个环境中移动,并且可以针对机器人设备在环境内的不同位置和/或朝向来计算多个姿态。在各个实施例中,可以通过将姿态彼此相关来计算地图。可以基于任何数量和组合的姿态的位置和朝向的差异来进行计算。在各个实施例中,可以通过将姿态与传感器数据相关来计算地图。在各个实施例中,可以基于姿态和在计算该姿态之前和/或之后从任何数量和组合的传感器404-416接收的传感器数据来进行计算。
跟踪模块420还可以被配置为识别传感器数据的基于描述符的特征,并且将基于描述符的特征与地图中的姿态进行关联。基于描述符的特征可以是传感器数据的可以用于识别环境中的物品和/或区域的特征。例如,传感器数据的特定模式可以指示环境中的拐角,并且跟踪模块420可以被配置为识别传感器数据模式,将传感器数据模式识别为指示拐角,并且将拐角的基于描述符的特征与传感器数据和地图中的姿态进行关联。基于描述符的特征还可以指示多维空间中的物品和/或区域的位置,例如,距参考点的高度;物品和/或区域在环境中的朝向;和/或传感器数据的可能没有指示特定物品和/或特定区域、但是以其它方式值得关注的特征,例如超过指定门限的传感器数据特征,比如在角度门限之下缺少传感器数据可以指示未知的坡度或落差(其可能是坡道、楼梯、窗台等)。
跟踪模块420可能丢失对机器人设备的跟踪。换句话说,跟踪模块420可能无法使用从传感器404-416接收的传感器数据来计算机器人设备的姿态和/或地图。传感器数据在数量和/或质量方面可能不充足的,和/或可能没有被跟踪模块420识别。在各个实施例中,传感器404-416可能捕获并提供对于跟踪模块420来说过于饱和、不够饱和、不清楚和/或不可识别的传感器数据,并且跟踪模块420可能无法计算机器人设备的姿态和/或地图。在本文进一步描述的各个实施例中,跟踪模块420可以从初始化/重新初始化模块422和/或重新定位模块426接收机器人设备的姿态和/或地图。跟踪模块420可以从所接收的姿态来重新开始和/或继续针对机器人设备的跟踪和地图绘制。
地图绘制模块418可以被配置为管理地图数据。在各个实施例中,管理地图数据可以包括地图构建、优化和/或破坏。地图绘制模块418可以从跟踪模块420接收计算出的地图和/或从被配置为存储地图的地图数据库424接收被存储的地图。地图可以包括地图数据,其可以包括接收的和/或被存储的由传感器404-416捕获的传感器数据,包括由图像传感器404捕获的图像、计算出的和/或被存储的姿态、和/或识别的和/或被存储的基于描述符的特征。地图绘制模块418可以被配置为将从跟踪模块420接收的计算出的地图与从地图数据库424接收的被存储的地图进行关联,以使得计算出的地图可以与被存储的在世界坐标系中的地图相关联。关联可以用于通过扩展、减小和/或改变被存储的地图来更新被存储的地图。能够与被存储的地图相关联的计算出的地图以及这些关联可以被存储在地图数据库424中,并且计算出的地图可以被合并到被存储的地图中。无法与被存储的地图相关联的计算出的地图可以在没有与被存储的地图的关联的情况下被存储在地图数据库424中,并且计算出的地图可以被合并到被存储的地图中。
初始化/重新初始化模块422可以被配置为对机器人设备的姿态和/或地图初始化/重新初始化。可以在名称为“Image Sensor Initialization in a Robotic device(机器人设备中的图像传感器初始化)”的国际专利申请No.PCT/CN2017/094926中找到对初始化的详细描述,该国际专利申请的全部内容被并入本文中。对姿态和/或地图初始化和重新初始化是可互换的过程。初始化和重新初始化的不同之处可以在于,初始化可以响应于针对机器人设备的新的跟踪会话的开始(例如,在完成先前的跟踪会话之后和/或在机器人设备的启动和/或唤醒之后开始)而发生;而重新初始化可以响应于跟踪会话的中断(例如,在由于接收到异常环境中的传感器数据而丢失跟踪之后)而发生。可以在重新初始化方面描述本文的各个实施例,而不会限制说明书和权利要求书的范围,因为对各实施例的描述也可以适用于初始化。
重新初始化模块422可以响应于跟踪模块420丢失跟踪,来对机器人设备的姿态和/或地图重新初始化。重新初始化模块422可以从任何数量和组合的传感器404-416和/或传感器阵列402接收传感器数据。重新初始化模块422可以使用多个传感器数据集合来确定机器人设备的姿态和/或地图,其可以被称为经重新初始化的姿态和经重新初始化的地图。重新初始化模块422可以比较多个传感器数据集合以确定针对机器人设备的经重新初始化的姿态和/或经重新初始化的地图。例如,传感器404-416可以在由四个墙壁围住的环境中从传感器404-416的四个不同朝向捕获四个传感器数据集合。通过比较四个传感器数据集合,重新初始化模块422可以确定机器人设备在环境中的相对于四个墙壁的经重新初始化的姿态。此外,重新初始化模块422可以确定机器人设备在传感器404-416捕获四个传感器数据集合的方向上的经重新初始化的地图。
重新初始化模块422可以将经重新初始化的姿态和/或经重新初始化的地图提供给跟踪模块420,并且跟踪模块420可以根据经重新初始化的姿态和/或经重新初始化的地图来重新开始和/或继续针对机器人设备的跟踪。在各个实施例中,地图绘制模块418可以从跟踪模块420接收经重新初始化的地图和/或基于经重新初始化的地图而计算出的地图。地图绘制模块418可以按照与处理从跟踪模块420接收的其它计算出的地图相同的方式,来处理经重新初始化的地图和/或基于经重新初始化的地图而计算出的地图。地图绘制模块418可以将经重新初始化的地图和/或基于经重新初始化的地图而计算出的地图与被存储的地图进行关联,和/或将经重新初始化的地图和/或基于经重新初始化的地图而计算出的地图存储在地图数据库424中。
路径规划模块428可以被配置为从被存储的地图规划去往下一目标的姿态的路径(即,生成“经规划的路径”)。响应于跟踪会话的中断,例如在跟踪模块420由于接收到异常环境中的传感器数据而丢失跟踪之后,路径规划模块428可以确定沿着所规划的路径去往下一目标的姿态。例如,姿态可以是在被存储的地图中从机器人设备的最后计算出的姿态起的下一接近的姿态。在各个实施例中,路径规划模块428可以确定是否存在与姿态相关联的足够的传感器数据和/或基于描述符的特征数据以用于重新定位模块426对机器人设备的姿态和/或地图重新定位。在各个实施例中,路径规划模块428可以确定与所确定的姿态相关联的传感器数据和/或基于描述符的特征数据在数量和/或质量方面的充足性。路径规划模块428可以将与所确定的姿态相关联的传感器数据和/或基于描述符的特征数据的数量和/或质量的指示符与针对传感器数据和/或基于描述符的特征数据的数量和/或质量的门限进行比较。对于与所确定的姿态相关联的具有足够数量和/或质量的传感器数据和/或基于描述符的特征数据,处理设备可以将与所确定的姿态相关联的地图提供给重新定位模块426。
重新定位模块426可以被配置为对机器人设备的姿态和/或地图重新定位。类似于重新初始化模块422,重新定位模块426可以是响应于跟踪会话的中断(例如,在跟踪模块420由于接收到异常环境中的传感器数据而丢失跟踪之后)而被触发以对机器人设备的姿态和/或地图重新定位。重新定位模块426可以从地图数据库424接收任何数量的地图。在各个实施例中,重新定位模块426可以经由地图绘制模块418、跟踪模块420和/或路径规划模块428从地图数据库424接收地图。在各个实施例中,地图可以是由地图绘制模块418、跟踪模块420和/或重新定位模块426中的任何一者基于计算出的地图和/或与计算出的地图相关联的被存储的地图(例如,具有针对在距计算出的姿态的门限距离内的姿态的地图数据的被存储的地图)来选择的。在各个实施例中,地图可以是由路径规划模块428基于与沿着经规划的路径去往下一目标的姿态相关联的被存储的地图来选择的。重新定位模块426还可以从任何数量和组合的传感器404-416和/或传感器阵列402接收传感器数据。在各个实施例中,重新定位模块426可以经由跟踪模块420接收传感器数据。重新定位模块426可以将所接收的传感器数据与所接收的地图的传感器数据进行比较,以确定机器人设备是否处于或接近所接收的地图的姿态,其可以被称为经重新定位的姿态和经重新定位的地图。例如,重新定位模块426可以将从图像传感器404接收的图像与接收到的地图的传感器数据的图像进行比较,以确定在这些图像之间是否存在足够的相似性,从而确定机器人设备是否处于或接近与接收到的地图的图像或传感器数据相关联的姿态。在各个实施例中,可以将对一种类型的传感器数据(例如,在该示例中,为图像)的比较与对其它传感器数据和/或针对传感器数据的基于描述符的特征的比较相结合。导致对姿态和/或地图的肯定识别的对传感器数据的比较可以产生经重新定位的姿态和/或经重新定位的地图。
重新定位模块426可以将经重新定位的姿态和/或经重新定位的地图提供给跟踪模块420,并且跟踪模块420可以根据经重新定位的姿态和/或经重新定位的地图重新开始和/或继续针对机器人设备的跟踪。在各个实施例中,地图绘制模块418可以从跟踪模块420接收经重新定位的地图和/或基于经重新定位的地图而计算出的地图。地图绘制模块418可以按照与处理从跟踪模块420接收的其它计算出的地图相同的方式,来处理经重新定位的地图和/或基于经重新定位的地图而计算出的地图。地图绘制模块418可以将经重新定位地图和/或基于经重新定位的地图而计算出的地图与被存储的地图进行关联,和/或将经重新定位地图和/或基于经重新定位的地图而计算出的地图存储在地图数据库424中。
在各个实施例中,传感器数据和地图数据可以是按照可以在多个模块418、420、422、426和428之间共享数据的方式来存储和接收的。存储传感器数据和地图数据以供多个模块418、420、422、426和428共享访问,这可以减少用于存储和使用传感器数据和地图数据的存储器需求。如本文所讨论的,各个模块418、420、422、426和428可以从传感器404-416和/或传感器阵列402接收传感器数据,以及经由其它模块418、420、422、426和428从地图数据库424接收地图数据。存储传感器数据和地图数据以供共享访问,这使得各个模块418、420、422、426和428能够访问和使用相同的被捕获的和/或存储的传感器数据以及计算出的和/或存储的地图数据。例如,相同的传感器数据和地图数据可以由重新初始化模块422和重新定位模块426共享,以对机器人设备的姿态和/或地图重新初始化以及对机器人设备的姿态和/或地图重新定位(包括在重新初始化模块422和重新定位模块426的并发操作期间)。
图5示出了根据各个实施例的由机器人设备进行的示例环境导航。参照图1-5,可以将机器人设备200放置在环境500中的起始位置516处。在各个实施例中,起始位置516可以是用于机器人设备200的充电站。在各个实施例中,机器人设备200可以最初位于环境500的已知或经地图绘制的环境502中。由于机器人设备200可能已经存储了用于已知环境502的地图,因此已知环境502可以是已知的。在各个实施例中,所存储的用于已知环境502的地图可以被预先加载到机器人设备200中,和/或机器人设备200可能已经通过跟踪其在已知环境502中的先前移动来对已知环境502进行了地图绘制。
在图5中所示的示例中,机器人设备200可以大致沿着路径508行进而没有丢失跟踪。路径508可以位于已知环境502的也是正常环境的一部分中。换句话说,路径508可以位于已知环境502的其中机器人设备200可以在其中行进而不丢失跟踪的一部分中,这是因为机器人设备200可以将沿着路径508捕获的传感器数据与所存储的用于已知环境502的地图的传感器数据进行相关。
机器人设备200可能行进到在已知环境502中作为异常环境506的位置。随着机器人设备200接近异常环境506,机器人设备200可能无法利用所存储的用于已知环境502的地图的传感器数据来识别沿着任何路径512所捕获的传感器数据。沿着任何路径512针对异常环境506所捕获的传感器数据可能照明太差,缺少足够的特征和/或由于缺少先前的地图绘制和/或由于对已知环境502的改变而是不熟悉的。由于异常环境506,机器人设备200可能丢失沿着任何路径512的跟踪。
在各个实施例中,机器人设备200可以通过识别沿着路径510所捕获的传感器数据,来在已知环境502内重新定位。在各个实施例中,机器人设备200可以基于存储的沿着路径510的传感器数据来对机器人设备200预先重新定位,并且机器人设备200可以使用沿着路径510所捕获的传感器数据重新定位。机器人设备200可以产生经重新定位的姿态和/或经重新定位的地图,并且沿着路径510行进。
在各个实施例中,机器人设备200可以在未知环境504中沿着路径514捕获传感器数据。机器人设备200可能无法在未知环境504中重新定位,因为机器人设备200可能没有存储用于未知环境504的地图。机器人设备200能够沿着路径514捕获足以确定机器人设备200在未知环境504中的姿态和/或地图并且产生机器人设备200在未知环境504中的经重新初始化的姿态和/或经重新初始化的地图的传感器数据。在各个实施例中,机器人设备200可以在没有丢失跟踪的情况下最终返回到已知环境502,并且将针对未知环境504而重新初始化的地图与所存储的用于已知环境502的地图进行相关。在关联并且保存针对未知环境504而经重新初始化的地图时,可以将未知环境504的经地图绘制的部分转换为已知环境502的部分。在各个实施例中,机器人设备200还可以通过沿着路径510捕获足以确定机器人设备200在已知环境502中的姿态和/或地图并且产生机器人设备200在已知环境502中的经重新初始化的姿态和/或经重新初始化的地图的传感器数据,从而在已知环境502中重新初始化。
在各个实施例中,机器人设备200进行重新定位并遵循路径510还是进行重新初始化并遵循路径514,这可以取决于哪个过程(即重新定位或重新初始化)更快地完成。在各个实施例中,机器人设备200是进行重新定位并遵循路径510还是进行重新初始化并遵循路径514可以取决于机器人设备200进行预先重新定位并且然后进行重新定位,还是无法进行预先重新定位并且然后进行重新初始化。
图6示出了根据各个实施例的针对机器人设备的并发的重新定位和重新初始化的方法600。参照图1-6,机器人设备的处理器(例如,处理器220、处理设备310、SoC 312等、以及机器人设备的硬件组件和/或软件组件(例如,硬件模块和/或软件模块420-428))可以使用机器人设备的任何数量和组合的传感器(例如,传感器404-416),并发地尝试针对机器人设备(例如,机器人设备的任何组件,包括机器人设备本身)的重新定位和重新初始化。
在框602中,处理器可以跟踪来自环境的特征。该环境可以是机器人设备所处的环境。跟踪来自环境的特征可以包括经由任何数量和组合的传感器来捕获该特征的传感器数据。例如,使用图像传感器来捕获该特征的图像。
在框604中,处理器可以确定机器人设备的姿态。可以通过将所捕获的传感器数据与被存储的地图的被存储的传感器数据进行比较来确定姿态。响应于确定在所捕获的传感器数据与被存储的地图的被存储的传感器数据之间的匹配,处理器可以识别与被存储的地图的被存储的传感器数据相关联的姿态,并且将该姿态确定为机器人设备的姿态。响应于没有找到在所捕获的传感器数据与被存储的地图的被存储的传感器数据之间的匹配,处理器可以不确定机器人设备的姿态。在各个实施例中,一旦确定了姿态和/或一旦超过了姿态确定门限而没有确定出机器人设备的姿态,则确定机器人设备的姿态的过程可以结束。在各个实施例中,可以依据所比较的被存储的地图的被存储的传感器数据的量、时间等来表示姿态门限。
在确定框606中,处理器可以确定是否丢失针对机器人设备的跟踪。响应于确定了机器人设备的姿态,处理器可以确定处理器还没有丢失针对机器人设备的跟踪。响应于没有确定出机器人设备的姿态,处理器可以确定处理器已经丢失针对机器人设备的跟踪。
响应于确定丢失针对机器人设备的跟踪(即,确定框606=“是”),处理器可以并发地进行以下操作:在框608中对机器人设备姿态重新定位,并且在框612中对机器人设备姿态重新初始化。在各个实施例中,本文中参照在图8中所示的方法800进一步描述了在框608中对机器人设备姿态重新定位,并且本文中参照在图9中所示的方法900进一步描述了在框612中对机器人设备姿态重新初始化。
在确定框610中,处理器可以确定机器人设备姿态是否被重新定位。在各个实施例中,处理器可以响应于接收到关于机器人设备姿态重新定位成功的指示(如参照在图8中所示的方法800的框818所描述的),或者接收到关于机器人设备姿态重新定位不成功的指示(如参照在图8中所示的方法800的框820所描述的),来确定机器人设备姿态是否被重新定位。
在确定框614中,处理器可以确定机器人设备姿态是否被重新初始化。在各个实施例中,处理器可以响应于接收到关于机器人设备姿态重新初始化成功的指示(如参照在图9所示的方法900的框914所描述的),或者接收到关于机器人设备姿态重新初始化不成功的指示(如参照在图9所示的方法900的框916所描述的),来确定机器人设备姿态是否被重新初始化。
在各个实施例中,在确定框610中确定机器人设备姿态是否被重新定位以及在确定框614中确定机器人设备姿态是否被重新初始化可以由处理器并发地实现。在确定框610中确定机器人设备姿态是否被重新定位以及在确定框614中确定机器人设备姿态是否被重新初始化这两个操作是否被并发地实现,这可以取决于在框608中对机器人设备姿态重新定位以及在框612中对机器人设备姿态重新初始化分别何时完成执行。
响应于确定机器人设备姿态没有被重新定位(即,确定框610=“否”),在框608中,处理器可以对机器人设备姿态重新定位。
响应于确定机器人设备姿态没有被重新初始化(即,确定框614=“否”),在框612中,处理器可以对机器人设备姿态重新初始化。
响应于确定机器人设备姿态被重新定位(即,确定框610=“是”),或者响应于确定机器人设备姿态被重新初始化(即,确定框614=“是”),在框616中,处理器可以终止对机器人设备姿态重新定位(如在框608中实现的)和/或终止对机器人设备姿态重新初始化(如在框612中实现的)。在各个实施例中,其可以仅是在框608中对机器人设备姿态重新定位和在框612中对机器人设备姿态重新初始化中的可能需要被终止的一项操作。例如,响应于确定机器人设备姿态被重新定位(即,确定框610=“是”),在框616中,处理器可以终止对机器人设备姿态重新初始化(如在框612中实现的)。再例如,响应于确定机器人设备姿态被重新初始化(即,确定框614=“是”),在框616中,处理器可以终止对机器人设备姿态重新定位(如在框608中实现的)。
响应于确定没有丢失针对机器人设备的跟踪(即,确定框606=“否”),或者在框616中在终止对机器人设备姿态重新定位(如在框608中实现的)和/或终止对机器人设备姿态重新初始化(如在框612中实现)之后和/或与终止并发地,在框602中,处理器可以跟踪来自环境的特征。
图7示出了根据各个实施例的针对机器人设备的利用预先重新定位的重新定位和重新初始化的方法700。参照图1-7,机器人设备的处理器(例如,处理器220、处理设备310、SoC 312等、以及机器人设备的硬件组件和/或软件组件(例如,硬件模块和/或软件模块420-428))可以基于关于针对机器人设备的预先重新定位的确定,使用机器人设备的任何数量和组合的传感器(例如,传感器404-416),来尝试针对机器人设备(例如,机器人设备的任何组件,包括机器人设备本身)的重新定位和重新初始化。
在各个实施例中,处理器可以实现如所描述的方法600的框602、604、606、608、610、612和614。
在框602中,处理器可以跟踪来自环境的特征。该环境可以是机器人设备所处的环境。在框604中,处理器可以确定机器人设备的姿态。在确定框606中,处理器可以确定是否丢失针对机器人设备的跟踪。
响应于确定丢失针对机器人设备的跟踪(即,确定框606=“是”),在框702中,处理器可以取得在被规划以去往下一目标的路径上的姿态。在各个实施例中,处理器可以基于机器人设备在所规划的路径上尚未实现的下一姿态来选择在路径规划上的姿态。在各个实施例中,处理器可以基于在所规划的路径上与机器人设备的最后姿态最接近的姿态来选择在所规划的路径上的姿态,而不管机器人设备是否已经实现了该最接近的姿态。在各个实施例中,处理器可以基于与姿态相关联的地图数据的数量和/或质量来选择在所规划的路径上的姿态,而不管机器人设备是否已经实现了该姿态。在各个实施例中,处理器可以基于多个准则来选择在所规划的路径上的姿态,所述多个准则可以是基于每个准则的优先级而分别被加权的。
在框704中,处理器可以对机器人设备姿态预先重新定位。在各个实施例中,本文中参照在图10中所示的方法1000进一步描述了在框704中对机器人设备姿态预先重新定位。
在确定框706中,处理器可以确定机器人设备姿态是否被预先重新定位。在各个实施例中,处理器可以响应于接收到关于机器人设备姿态预先重新定位成功的指示(如参照在图10中所示的方法1000的框1014所描述的),或者接收到关于机器人设备姿态预先重新定位不成功的指示(如参照在图10中所示的方法1000的框1016所描述的),来确定机器人设备姿态是否被预先重新定位。
响应于确定机器人设备姿态被预先重新定位(即,确定框706=“是”),在框608中,处理器可以对机器人设备姿态重新定位。在各个实施例中,本文中参照在图8中所示的方法800进一步描述了和/或本文中参照在图11中所示的方法1100进一步描述了在框608中对机器人设备姿态重新定位。
响应于确定机器人设备姿态没有被预先重新定位(即,确定框706=“否”),在框612中,处理器可以对机器人设备姿态重新初始化。
在各个实施例中,在方法700中,在框608中对机器人设备姿态重新定位以及在框612中对机器人设备姿态重新初始化可以不是并发地实现的。
响应于确定机器人设备姿态被重新定位(即,确定框610=“是”),或者响应于确定机器人设备姿态被重新初始化(即,确定框614=“是”),在框602中,处理器可以跟踪来自环境的特征。
图8示出了根据各个实施例的针对机器人设备的重新定位的方法800。参照图1-8,机器人设备的处理器(例如,处理器220、处理设备310、SoC312等、以及机器人设备的硬件组件和/或软件组件(例如,硬件模块和/或软件模块420-428))可以使用机器人设备的任何数量和组合的传感器(例如,传感器404-416),来尝试针对机器人设备(例如,机器人设备的任何组件,包括机器人设备本身)的重新定位。
在框802中,处理器可以捕获来自环境的特征。捕获来自环境的特征可以包括从任何数量和组合的传感器捕获针对特征的传感器数据。例如,使用图像传感器来捕获该特征的图像。在各个实施例中,该特征可以是与如参照方法600的框602描述的所跟踪的特征不同的、导致处理器丢失针对机器人设备的跟踪的特征。
在框804中,处理器可以将所捕获的特征的传感器数据与特征的被存储的传感器数据进行比较。例如,处理器可以将该特征的图像捕获与特征的被存储的图像捕获进行比较。处理器可以将所捕获的特征的传感器数据与任何数量的被存储的特征的传感器数据进行比较。在各个实施例中,与所捕获的传感器数据进行比较的被存储的传感器数据可以受到任何数量的准则的限制,例如被存储的传感器数据的相关联的姿态不超过距机器人设备的最后姿态的最大距离。
在框806中,处理器可以识别具有与所捕获的特征的传感器数据相匹配的传感器数据的被存储的特征。例如,处理器可以识别被存储的特征的与所捕获的特征的被捕获的图像相匹配的被存储的图像。在各个实施例中,处理器可以基于以下各项中的任何一项或组合来确定匹配:被存储的传感器数据和所捕获的传感器数据的匹配点的最小数量和/或被存储的传感器数据和所捕获的传感器数据的匹配点的最小质量指示符。
在框808中,处理器可以取得与被存储的特征相关联的被存储的基于描述符的特征。被存储的基于描述符的特征可以被包括在被存储的特征与其相关联的地图的地图数据中。基于描述符的特征可以是被存储的传感器数据的可以用于识别环境的特征的特征。例如,传感器数据的特定模式可以指示拐角特征。基于描述符的特征还可以指示特征在多维空间中的位置,例如,距参考点的高度;特征在环境中的朝向;和/或可能没有指示特定特征但是以其它方式值得关注的其它传感器数据。
在框810中,处理器可以将与被存储的特征相关联的基于描述符的特征与所捕获的特征的传感器数据进行比较。在将基于描述符的特征与传感器数据进行比较时,处理器可以识别与和基于描述符的特征相关联的传感器数据模式相匹配的传感器数据模式,并且将传感器数据模式识别为指示基于描述符的特征。对基于描述符的特征与传感器数据的肯定比较可以允许处理器将所捕获的特征识别为被存储的特征。
在框812中,处理器可以相对于与被存储的特征相关联的姿态来定位机器人设备。被存储的特征和姿态可以是被存储的地图的相关联的地图数据。处理器可以使用以下各项的任何组合来计算机器人设备的位置:机器人设备的先前姿态、自从机器人设备的先前姿态以来可以用于指示机器人设备的移动的距离和方向的所捕获的传感器数据、以及被存储的特征的姿态。
在框814中,处理器可以确定相对于环境的机器人设备姿态。处理器可以使用机器人设备相对于被存储的特征的位置,来确定机器人设备在与被存储的特征相关联的地图上的姿态。处理器可以基于以下各项来确定在地图上的机器人设备姿态:地图在世界坐标系中位于何处、被存储的特征相对于地图位于何处、以及机器人设备相对于被存储的特征位于何处。处理器还可以使用地图在世界坐标系中的位置,来提供在世界坐标系中与环境的任何数量的其它地图的相对位置。处理器可以使用机器人设备相对于地图的位置,来确定在世界坐标系中在构成环境的地图中的机器人设备姿态。
在确定框816中,处理器可以确定机器人设备姿态重新定位是否是成功的。响应于在框814中确定出相对于环境的设备姿态,处理器可以确定机器人设备姿态重新定位是成功的。响应于未能在框814中确定出相对于环境的设备姿态,处理器可以确定机器人设备姿态重新定位是不成功的。
响应于确定机器人设备姿态重新定位是成功的(即,确定框816=“是”),在框818中,处理器可以指示机器人设备姿态重新定位是成功的。处理器可以通过以下操作来指示机器人设备姿态重新定位是成功的:发送指示机器人设备姿态重新定位成功的信号,设置指示机器人设备姿态重新定位成功的寄存器标志或比特,和/或返回机器人设备姿态重新定位姿态。
响应于确定机器人设备姿态重新定位是不成功的(即,确定框816=“否”),在框820中,处理器可以指示机器人设备姿态重新定位是不成功的。处理器可以通过发送指示机器人设备姿态重新定位不成功的信号和/或设置指示机器人设备姿态重新定位不成功的寄存器标志或比特,来指示机器人设备姿态重新定位是不成功的。
图9示出了根据各个实施例的针对机器人设备的重新初始化的方法900。参照图1-9,机器人设备的处理器(例如,处理器220、处理设备310、SoC 312等、以及机器人设备的硬件组件和/或软件组件(例如,硬件模块和/或软件模块420-428))可以使用机器人设备的任何数量和组合的传感器(例如,传感器404-416),来尝试针对机器人设备(例如,机器人设备的任何组件,包括机器人设备本身)的重新初始化。
在框902中,处理器可以取得从丢失跟踪之前的先前机器人设备姿态。处理器可以访问临时存储器,例如,可以存储机器人设备的指定数量的姿态的高速缓存和/或寄存器。在各个实施例中,可以基于诸如先进先出之类的替换策略,将临时存储器中的姿态替换为最近的机器人设备姿态。处理器可以从临时存储器中取得任何数量和组合的先前机器人设备姿态。
在框904中,处理器可以取得自从丢失跟踪以来的传感器数据。处理器可以访问临时存储器,例如,可以存储针对机器人设备的指定数量的传感器数据的高速缓存和/或寄存器。在各个实施例中,可以基于诸如先进先出之类的替换策略,将临时存储器中的传感器数据替换为最近的传感器数据。处理器可以从临时存储器中取得任何数量和组合的传感器数据。
在框906中,处理器可以使用环境的多个特征的被捕获的传感器数据来对机器人设备的姿态和地图重新初始化。如本文所提到的,重新初始化和初始化是与如在以下申请中描述的初始化过程类似的过程:名称为“Image Sensor Initialization in a Roboticdevice(机器人设备中的图像传感器初始化)”的国际专利申请No.PCT/CN2017/094926,该国际专利申请的全部内容被并入本文中。处理器可以基于机器人设备与环境中的多个被捕获的特征的关系,来确定机器人设备相对于所述多个被捕获的特征的位置和朝向以及该环境的地图。处理器可以将机器人设备相对于多个被捕获的特征的位置和朝向用作在重新初始化地图内的机器人设备重新初始化姿态,重新初始化地图包括基于机器人设备与多个被捕获的特征的关系的地图。
在框908中,处理器可以确定相对于被存储的地图的机器人设备重新初始化姿态和重新初始化地图。随着机器人设备从其机器人设备重新初始化姿态移动,处理器可以确定来自已知的被存储的地图的机器人设备姿态。处理器可以使用来自从机器人设备重新初始化姿态开始的移动的传感器数据,来确定在机器人设备重新初始化姿态与在被存储的地图上的机器人设备姿态之间的关系。例如,传感器数据可以指示在机器人设备重新初始化姿态与在被存储的地图上的机器人设备姿态之间的移动距离和方向。处理器可以计算在机器人设备重新初始化姿态与在被存储的地图上的机器人设备姿态之间的关系,例如距离和角度或者方向。类似地,处理器可以基于机器人设备重新初始化姿态和在被存储的地图上的机器人设备姿态,和/或传感器数据如何指示机器人设备移动穿过重新初始化地图和被存储的地图,来将重新初始化地图与被存储的地图适配。
在框910中,处理器可以将机器人设备重新初始化姿态和重新初始化地图与被存储的地图进行相关。根据在框908中确定机器人设备重新初始化姿态和重新初始化地图与被存储的地图之间的关系,处理器可以将机器人设备重新初始化姿态和重新初始化地图与被存储的地图相关,以使得设备重新初始化姿态和重新初始化地图可以被整合到世界坐标系中。处理器可以基于被存储的地图在世界坐标系中的位置,来将传感器数据和/或在机器人设备重新初始化姿态和重新初始化地图与被存储的地图之间的关系转换为在世界坐标系内的单位和位置。
在确定框912中,处理器可以确定机器人设备姿态重新初始化是否是成功的。处理器可以响应于在框910中将机器人设备重新初始化姿态和重新初始化地图与被存储的地图相关,来确定机器人设备姿态重新初始化是成功的。处理器可以响应于未能在框910中将机器人设备重新初始化姿态和重新初始化地图与被存储的地图相关,来确定机器人设备姿态重新初始化是不成功的。
响应于确定机器人设备姿态重新初始化是成功的(即,确定框912=“是”),在框914中,处理器可以指示机器人设备姿态重新初始化是成功的。处理器可以通过发送指示机器人设备姿态重新初始化是成功的信号,设置指示机器人设备姿态重新初始化成功的寄存器标志或比特,和/或返回机器人设备重新初始化姿态,来指示机器人设备姿态重新初始化是成功的。
响应于确定机器人设备姿态重新初始化是不成功的(即,确定框912=“否”),在框916中,处理器可以指示机器人设备姿态重新初始化是不成功的。处理器可以通过发送指示机器人设备姿态重新初始化不成功的信号和/或设置指示机器人设备姿态重新初始化不成功的寄存器标志或比特,来指示机器人设备姿态重新初始化是不成功的。
图10示出了根据各个实施例的针对机器人设备的预先重新定位的方法1000。参照图1-10,机器人设备的处理器(例如,处理器220、处理设备310、SoC 312等、以及机器人设备的硬件组件和/或软件组件(例如,硬件模块和/或软件模块420-428))可以使用机器人设备的任何数量和组合的传感器(例如,传感器404-416),来尝试针对机器人设备(例如,机器人设备的任何组件,包括机器人设备本身)的预先重新定位。
在框1002中,处理器可以取得沿着经规划的路径去往下一目标的姿态。在各个实施例中,处理器可以基于机器人设备在经规划的路径上尚未实现的下一姿态来选择在经规划的路径上的姿态。在各个实施例中,处理器可以基于在经规划的路径上与机器人设备的最后姿态最接近的姿态来选择在经规划的路径上的姿态,而不管机器人设备是否已经实现了该最接近的姿态。在各个实施例中,处理器可以基于与姿态相关联的地图数据的数量和/或质量来选择在经规划的路径上的姿态,而不管机器人设备是否已经实现了该姿态。在各个实施例中,处理器可以基于多个准则来选择在经规划的路径上的姿态,所述多个准则可以分别是基于每个准则的优先级而被加权的。
在框1004中,处理器可以取得与在路径规划上的姿态相关联的任何数量和组合的被存储的特征的被存储的传感器数据。例如,处理器可以取得与在路径规划上的姿态相关联的被存储的特征的图像捕获。
在框1006中,处理器可以取得与和在路径规划上的姿态相关联的被存储的特征相关联的被存储的基于描述符的特征。被存储的基于描述符的特征可以被包括在被存储的特征和在经规划的路径上的姿态与其相关联的地图的地图数据中。基于描述符的特征可以是被存储的传感器数据的可以用于识别环境中的特征的特征。例如,特定的传感器数据模式可以指示拐角特征。基于描述符的特征还可以指示特征在多维空间中的位置,例如,距参考点的高度;特征在环境中的朝向;和/或可能没有指示特定特征但是以其它方式值得关注的其它传感器数据。
在框1008中,处理器可以取得传感器参数。在各个实施例中,传感器可以具有非固有和/或固有参数。例如,传感器的非固有参数可以包括不是传感器的技术参数的参数,例如传感器在机器人设备上的放置。一个示例可以包括在机器人设备上的传感器的位置与针对机器人设备的姿态的位置之间的相对位置。固有参数可以包括传感器的技术参数,例如焦距、主点、光谱灵敏度等。
在框1010中,处理器可以利用基于描述符的特征来生成在经规划的路径上的姿态的虚拟图像。虚拟图像可以是针对与在经规划的路径上的姿态相关联的特征的传感器数据被捕获的条件的重现。例如,如本文所提到的,姿态可以是针对机器人设备的组件和/或机器人设备本身的点的。在各个实施例中,姿态可以是机器人设备的传感器(例如,图像传感器)的姿态。在机器人设备和传感器的非固有参数(例如,在机器人设备上的传感器的位置与姿态或机器人设备之间的相对位置)的情况下,所述姿态可以使用给定姿态来计算。使用这样的信息,当针对特征的传感器数据可以被确定时、用于当针对特征的传感器数据被捕获时,与在经规划的路径上的姿态相关联的针对传感器的姿态被捕获。
在确定框1012中,处理器可以确定与在经规划的路径上的姿态相关联的特征的基于描述符的特征是否超过特征门限。处理器可以将与在经规划的路径上的姿态相关联的特征的基于描述符的特征数据的数量和/或质量的指示符与针对基于描述符的特征数据的数量和/或质量的特征门限进行比较。对于具有足够数量和/或质量的相关联的基于描述符的特征数据,处理器可以确定与在经规划的路径上的姿态相关联的特征的基于描述符的特征超过特征门限。
响应于确定与在经规划的路径上的姿态相关联的特征的基于描述符的特征超过特征门限(即,确定框1012=“是”),在框1014中,处理器可以指示机器人设备姿态预先重新定位是成功的。处理器可以通过发送指示机器人设备姿态预先重新定位成功的信号,设置指示机器人设备姿态预先重新定位成功的寄存器标志或比特,和/或返回机器人设备预先重新定位姿态,来指示机器人设备姿态预先重新定位是成功的。
响应于确定与在经规划的路径上的姿态相关联的特征的基于描述符的特征没有超过特征门限(即,确定框1012=“否”),在框1016中,处理器可以指示机器人设备姿态预先重新定位是不成功的。处理器可以通过发送指示机器人设备姿态预先重新定位不成功的信号和/或设置指示机器人设备姿态预先重新定位不成功的寄存器标志或比特,来指示机器人设备姿态预先重新定位是不成功的。
图11示出了根据各个实施例的针对机器人设备的利用预先重新定位的重新定位的方法1100。参照图1-11,机器人设备的处理器(例如,处理器220、处理设备310、SoC 312等、以及机器人设备的硬件组件和/或软件组件(例如,硬件模块和/或软件模块420-428))可以使用机器人设备的任何数量和组合的传感器(例如,传感器404-416),来尝试针对机器人设备(例如,机器人设备的任何组件,包括机器人设备本身)的利用预先重新定位的重新定位。
在各个实施例中,处理器可以实现如本文参照在图8中所示的方法800所描述的框802、818和820。
在框802中,处理器可以捕获来自环境的特征。
在框1102中,处理器可以将所捕获的特征的传感器数据与预先定位特征的被存储的传感器数据进行比较。预先定位特征可以包括与在经规划的路径上的姿态相关联的被存储的特征。例如,处理器可以将特征的图像捕获与特征的被存储的图像捕获进行比较。处理器可以将所捕获的特征的传感器数据与任何数量的预先定位特征的传感器数据进行比较。在各个实施例中,与所捕获的传感器数据进行比较的被存储的传感器数据可以受到任何数量的准则的限制,例如,被存储的传感器数据的相关联的姿态不超过距机器人设备的最后姿态和/或在经规划的路径上的姿态的最大距离。
在框1104中,处理器可以将与预先定位特征相关联的基于描述符的特征与所捕获的特征的传感器数据进行比较。在将基于描述符的特征与传感器数据进行比较时,处理器可以识别与和基于描述符的特征相关联的传感器数据模式相匹配的传感器数据模式,并且将传感器数据模式识别为指示基于描述符的特征。对基于描述符的特征与传感器数据的肯定比较可以允许处理器将所捕获的特征识别为预先定位特征。
在框1106中,处理器可以相对于在经规划的路径上去往下一目标的姿态来定位机器人设备。预先定位特征和在经规划的路径上的姿态可以是被存储的地图的相关联的地图数据。处理器可以使用以下各项的任何组合来计算机器人设备的位置:机器人设备的先前姿态、自从机器人设备的先前姿态以来可以用于指示机器人设备的移动的距离和方向的所捕获的传感器数据、以及预先定位特征的姿态。
在框1108中,处理器可以确定相对于环境的机器人设备姿态。处理器可以使用机器人设备相对于在经规划的路径上的姿态的位置,来确定机器人设备在与在路径规划上的姿态相关联的地图上的姿态。处理器可以基于以下各项来确定在地图上的机器人设备姿态:地图在世界坐标系中位于何处、在经规划的路径上的姿态相对于地图位于何处、以及机器人设备相对于在经规划的路径上的姿态位于何处。处理器还可以使用地图在世界坐标系中的位置,来提供在世界坐标系中与环境的任何数量的其它地图的相对位置。处理器可以使用机器人设备相对于地图的位置,来确定在世界坐标系中在构成环境的地图中的机器人设备姿态。
在确定框1110中,处理器可以确定机器人设备姿态重新定位是否是成功的。处理器可以响应于在框1108中确定出相对于环境的设备姿态,来确定机器人设备姿态重新定位是成功的。处理器可以响应于未能在框1108中确定出相对于环境的设备姿态,来确定机器人设备姿态重新定位是不成功的。
响应于确定机器人设备姿态重新定位是成功的(即,确定框1110=“是”),在框818中,处理器可以指示机器人设备姿态重新定位是成功的。
响应于确定机器人设备姿态重新定位是不成功的(即,确定框1110=“否”),在框820中,处理器可以指示机器人设备姿态重新定位是不成功的。
所示出以及描述的各个实施例仅是作为示例来提供的,以示出权利要求的各个特征。然而,关于任何给定实施例所示出并且描述的特征未必限于相关联的实施例,并且可以与示出并且描述的其它实施例一起使用或者相组合。此外,权利要求并不旨在由任何一个示例实施例限制。例如,方法600、700、800、900、1000和1100中的操作中的一个或多个操作可以替换方法600、700、800、900、1000和1100中的一个或多个操作或者与其组合,反之亦然。
前述方法描述和过程流程图仅是作为说明性示例来提供的,而并非旨在要求或者暗示各个实施例的操作必须以所给出的次序来执行。如本领域技术人员将明白的,可以以任何次序来执行前述实施例中的操作的次序。诸如“之后”、“然后”、“接下来”等的词语并非仅在限制操作的次序;这些词语用于引导读者通读对这些方法的描述。此外,对单数形式的权利要求要素的任何提及,例如,使用冠词“一(a)”、“一(an)”或者“所述(the)”并不被解释为将该要素限制为单数。
结合本文公开的实施例描述的各个说明性的逻辑框、模块、电路和算法操作均可以实现成电子硬件、计算机软件或这二者的组合。为了清楚地说明硬件和软件之间的这种可交换性,上文对各个说明性的组件、框、模块、电路和操作均围绕其功能进行了总体描述。至于这种功能是实现为硬件还是实现为软件,取决于特定的应用和对整个系统所施加的设计约束。本领域技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是这种实施例决策不应解释为造成对权利要求的范围的脱离。
利用被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任意组合,可以实现或执行用于实现结合本文公开的方面所描述的各个说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以实现为接收机智能对象的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或者任何其它这种配置。替代地,一些操作或方法可以由特定于给定功能的电路来执行。
在一个或多个方面中,所描述的功能可以用硬件、软件、固件、或者其任意组合来实现。如果用软件来实现,则功能可以作为一个或多个指令或代码存储在非暂时性计算机可读存储介质或者非暂时性处理器可读存储介质上。本文公开的方法或算法的操作可以体现在处理器可执行软件模块或者处理器可执行指令中,其可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或者处理器可读存储介质可以是可以由计算机或处理器访问的任何存储介质。通过举例而非限制的方式,这种非暂时性计算机可读或处理器可读存储介质可以包括RAM、ROM、EEPROM、闪速存储器、CD-ROM或者其它光盘存储、磁盘存储或者其它磁存储智能对象、或者可以用于存储具有指令或数据结构形式的期望程序代码并且可以被计算机访问的任何其它介质。如本文中所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述各项的组合也包括在非暂时性计算机可读和处理器可读介质的范围之内。另外,方法或算法的操作可以作为代码和/或指令中的一个或者任意组合或者集合位于非暂时性处理器可读存储介质和/或计算机可读存储介质上,其可以并入计算机程序产品中。
为了使本领域技术人员能够实现或使用权利要求,提供了对所公开的实施例的先前描述。对于本领域技术人员而言,对这些实施例的各种修改将是显而易见的,并且在不脱离权利要求的精神和范围的情况下,本文中定义的总体原理可以应用于其它实施例。因此,本公开内容并非旨在限于本文中所示出的实施例,而是被赋予与随后的权利要求和本文公开的原理和新颖特征相一致的最广范围。
Claims (17)
1.一种对机器人设备的重新定位和重新初始化的方法,包括:
确定所述机器人设备在环境中的姿态;
确定是否丢失对所述机器人设备的跟踪;以及
响应于未能确定所述机器人设备在所述环境中的所述姿态并且确定丢失对所述机器人设备的跟踪,同时地重新定位以确定所述机器人设备的经重新定位的姿态并且重新初始化以确定所述机器人设备的经重新初始化的姿态。
2.根据权利要求1所述的方法,还包括:
确定重新定位以确定所述机器人设备的所述经重新定位的姿态是否是成功的;
响应于确定重新定位以确定所述机器人设备的所述经重新定位的姿态是成功的,终止重新初始化以确定所述机器人设备的所述经重新初始化的姿态;
确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是否是成功的;以及
响应于确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是成功的,终止重新定位以确定所述机器人设备的所述经重新定位的姿态。
3.根据权利要求1所述的方法,还包括:
确定重新定位以确定所述机器人设备的所述经重新定位的姿态是否是成功的;
响应于确定重新定位以确定所述机器人设备的所述经重新定位的姿态是不成功的,重新定位以确定所述机器人设备的所述经重新定位的姿态;
确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是否是成功的;以及
响应于确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是不成功的,重新初始化以确定所述机器人设备的所述经重新初始化的姿态。
4.根据权利要求1所述的方法,其中,重新定位以确定所述机器人设备的经重新定位的姿态包括:
捕获所述环境的第一特征的传感器数据;
将所捕获的传感器数据与针对所述环境的多个特征的被存储的传感器数据进行比较;
从所述环境的所述多个特征中识别出所述环境的具有与所捕获的传感器数据相匹配的被存储的传感器数据的第二特征;
相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位;
确定所述机器人设备相对于所述环境的所述经重新定位的姿态;以及
基于所述机器人设备的所述经重新定位的姿态来跟踪所述机器人设备。
5.根据权利要求4所述的方法,还包括:
取得所述环境的所述第二特征的被存储的基于描述符的特征;以及
将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,
其中,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位包括:基于将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位。
6.根据权利要求1所述的方法,其中,重新初始化以确定所述机器人设备的所述经重新初始化的姿态包括:
取得在丢失对所述机器人设备的跟踪之前获得的、所述机器人设备的姿态;
取得自从丢失对所述机器人设备的跟踪以来所捕获的传感器数据;以及
使用在丢失对所述机器人设备的跟踪之前获得的、所述机器人设备的所述姿态以及自从丢失对所述机器人设备的跟踪以来所捕获的所述传感器数据,重新初始化以确定所述机器人设备的所述经重新初始化的姿态。
7.根据权利要求6所述的方法,还包括:
确定所述机器人设备相对于所述环境的所述经重新初始化的姿态;以及
将所述机器人设备的所述经重新初始化的姿态与所述环境的被存储的地图进行相关。
8.一种机器人设备,包括:
存储器;
传感器;以及
处理器,其通信地连接到所述存储器和所述传感器并且被配置有处理器可执行指令以进行以下操作:
确定所述机器人设备在环境中的姿态;
确定是否丢失对所述机器人设备的跟踪;以及
响应于未能确定所述机器人设备在所述环境中的所述姿态并且确定丢失对所述机器人设备的跟踪,同时地重新定位以确定所述机器人设备的经重新定位的姿态并且重新初始化以确定所述机器人设备的经重新初始化的姿态。
9.根据权利要求8所述的机器人设备,其中,所述处理器还被配置有处理器可执行指令以进行以下操作:
确定重新定位以确定所述机器人设备的所述经重新定位的姿态是否是成功的;
响应于确定重新定位以确定所述机器人设备的所述经重新定位的姿态是成功的,终止重新初始化以确定所述机器人设备的所述经重新初始化的姿态;
确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是否是成功的;以及
响应于确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是成功的,终止重新定位以确定所述机器人设备的所述经重新定位的姿态。
10.根据权利要求8所述的机器人设备,其中,所述处理器还被配置有处理器可执行指令以进行以下操作:
确定重新定位以确定所述机器人设备的所述经重新定位的姿态是否是成功的;
响应于确定重新定位以确定所述机器人设备的所述经重新定位的姿态是不成功的,重新定位以确定所述机器人设备的所述经重新定位的姿态;
确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是否是成功的;以及
响应于确定重新初始化以确定所述机器人设备的所述经重新初始化的姿态是不成功的,重新初始化以确定所述机器人设备的所述经重新初始化的姿态。
11.根据权利要求8所述的机器人设备,其中,所述处理器还被配置有处理器可执行指令,以通过以下操作来重新定位以确定所述机器人设备的经重新定位的姿态:
捕获所述环境的第一特征的传感器数据;
将所捕获的传感器数据与针对所述环境的多个特征的被存储的传感器数据进行比较;
从所述环境的所述多个特征中识别出所述环境的具有与所捕获的传感器数据相匹配的被存储的传感器数据的第二特征;
相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位;
确定所述机器人设备相对于所述环境的所述经重新定位的姿态;以及
基于所述机器人设备的所述经重新定位的姿态来跟踪所述机器人设备。
12.根据权利要求11所述的机器人设备,其中,所述处理器还被配置有处理器可执行指令以进行以下操作:
取得所述环境的所述第二特征的被存储的基于描述符的特征;以及
将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,
其中,所述处理器还被配置有处理器可执行指令,以通过以下操作相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位:基于将所述环境的所述第二特征的所述被存储的基于描述符的特征与所捕获的传感器数据进行比较,相对于所述环境的所述第二特征来对所述环境的所述第一特征进行定位。
13.根据权利要求8所述的机器人设备,其中,所述处理器还被配置有处理器可执行指令,以通过以下操作来重新初始化以确定所述机器人设备的所述经重新初始化的姿态:
取得在丢失对所述机器人设备的跟踪之前获得的、所述机器人设备的姿态;
取得自从丢失对所述机器人设备的跟踪以来所捕获的传感器数据;以及
使用在丢失对所述机器人设备的跟踪之前获得的、所述机器人设备的所述姿态以及自从丢失对所述机器人设备的跟踪以来所捕获的所述传感器数据,重新初始化以确定所述机器人设备的所述经重新初始化的姿态。
14.根据权利要求13所述的机器人设备,其中,所述处理器还被配置有处理器可执行指令以进行以下操作:
确定所述机器人设备相对于所述环境的所述经重新初始化的姿态;以及
将所述机器人设备的所述经重新初始化的姿态与所述环境的被存储的地图进行相关。
15.根据权利要求8所述的机器人设备,其中:
所述存储器包括:被配置为存储地图数据的地图数据库;
所述传感器被配置为捕获传感器数据;以及
所述机器人设备还包括:
重新初始化模块,其通信地连接到所述处理器、所述传感器和所述存储器;以及
重新定位模块,其通信地连接到所述处理器、所述传感器和所述存储器,
其中,所述重新初始化模块和所述重新定位模块被配置为:共享由所述传感器捕获的传感器数据和被存储在所述地图数据库中的地图数据。
16.一种机器人设备,包括:
用于确定所述机器人设备在环境中的姿态的单元;
用于确定是否丢失对所述机器人设备的跟踪的单元;以及
用于响应于未能确定所述机器人设备在所述环境中的所述姿态并且确定丢失对所述机器人设备的跟踪,同时地重新定位以确定所述机器人设备的经重新定位的姿态并且重新初始化以确定所述机器人设备的经重新初始化的姿态的单元。
17.一种用于在机器人设备中使用的计算设备,所述计算设备被配置为:
确定所述机器人设备在环境中的姿态;
确定是否丢失对所述机器人设备的跟踪;以及
响应于未能确定所述机器人设备在所述环境中的所述姿态并且确定丢失对所述机器人设备的跟踪,同时地重新定位以确定所述机器人设备的经重新定位的姿态并且重新初始化以确定所述机器人设备的经重新初始化的姿态。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/105270 WO2019068222A1 (en) | 2017-10-06 | 2017-10-06 | SIMULTANEOUS RELOCATION AND RESETTING OF VSLAM |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111247390A CN111247390A (zh) | 2020-06-05 |
CN111247390B true CN111247390B (zh) | 2023-09-01 |
Family
ID=65994201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780095661.9A Active CN111247390B (zh) | 2017-10-06 | 2017-10-06 | Vslam的并发的重新定位和重新初始化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11340615B2 (zh) |
EP (1) | EP3692336B1 (zh) |
CN (1) | CN111247390B (zh) |
WO (1) | WO2019068222A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019019157A1 (en) * | 2017-07-28 | 2019-01-31 | Qualcomm Incorporated | INITIALIZING IMAGE SENSOR IN A ROBOTIC VEHICLE |
CN110456797B (zh) * | 2019-08-19 | 2022-06-28 | 杭州电子科技大学 | 一种基于2d激光传感器的agv重定位系统及方法 |
CN113012216B (zh) * | 2019-12-20 | 2023-07-07 | 舜宇光学(浙江)研究院有限公司 | 特征分类优化方法和slam定位方法及其系统和电子设备 |
CN113137968B (zh) * | 2020-01-16 | 2023-03-14 | 浙江舜宇智能光学技术有限公司 | 基于多传感器融合的重定位方法、重定位装置和电子设备 |
US11284236B2 (en) * | 2020-04-10 | 2022-03-22 | Motorola Mobility Llc | Device presence detection system |
CN112336883A (zh) * | 2020-10-28 | 2021-02-09 | 湖南安商医疗科技有限公司 | 一种自主移动的脉冲氙气灯和等离子杀菌机器人 |
CN113001544B (zh) * | 2021-02-26 | 2022-03-25 | 深圳乐动机器人有限公司 | 一种机器人的控制方法、装置及机器人 |
CN113619569A (zh) * | 2021-08-02 | 2021-11-09 | 蔚来汽车科技(安徽)有限公司 | 用于固定泊车场景的车辆定位方法及其系统 |
CN118089705A (zh) * | 2024-04-26 | 2024-05-28 | 深圳市普渡科技有限公司 | 地图更新方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007048674A1 (de) * | 2005-10-25 | 2007-05-03 | Siemens Aktiengesellschaft | System und verfahren für ein kamerabasiertes tracking |
CN102075686A (zh) * | 2011-02-10 | 2011-05-25 | 北京航空航天大学 | 一种鲁棒的实时在线摄像机跟踪方法 |
WO2013071190A1 (en) * | 2011-11-11 | 2013-05-16 | Evolution Robotics, Inc. | Scaling vector field slam to large environments |
CN106885574A (zh) * | 2017-02-15 | 2017-06-23 | 北京大学深圳研究生院 | 一种基于重跟踪策略的单目视觉机器人同步定位与地图构建方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576228A (zh) | 2009-08-31 | 2012-07-11 | Neato机器人技术公司 | 移动机器人环境的同时定位和地图绘制的方法和设备 |
US8711206B2 (en) | 2011-01-31 | 2014-04-29 | Microsoft Corporation | Mobile camera localization using depth maps |
DE102012201870A1 (de) | 2012-02-08 | 2013-08-08 | RobArt GmbH | Verfahren zum automatischen Auslösen einer Selbstlokalisierung |
US9524434B2 (en) | 2013-10-04 | 2016-12-20 | Qualcomm Incorporated | Object tracking based on dynamically built environment map data |
US9625912B2 (en) * | 2014-09-03 | 2017-04-18 | Sharp Laboratories Of America, Inc. | Methods and systems for mobile-agent navigation |
US9846042B2 (en) * | 2014-11-13 | 2017-12-19 | Worcester Polytechnic Institute | Gyroscope assisted scalable visual simultaneous localization and mapping |
CN105513083B (zh) | 2015-12-31 | 2019-02-22 | 新浪网技术(中国)有限公司 | 一种ptam摄像机跟踪方法及装置 |
WO2018024897A1 (de) * | 2016-08-05 | 2018-02-08 | RobArt GmbH | Verfahren zur steuerung eines autonomen mobilen roboters |
US11199414B2 (en) * | 2016-09-14 | 2021-12-14 | Zhejiang University | Method for simultaneous localization and mapping |
US10099368B2 (en) * | 2016-10-25 | 2018-10-16 | Brandon DelSpina | System for controlling light and for tracking tools in a three-dimensional space |
-
2017
- 2017-10-06 EP EP17928069.8A patent/EP3692336B1/en active Active
- 2017-10-06 US US16/641,730 patent/US11340615B2/en active Active
- 2017-10-06 CN CN201780095661.9A patent/CN111247390B/zh active Active
- 2017-10-06 WO PCT/CN2017/105270 patent/WO2019068222A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007048674A1 (de) * | 2005-10-25 | 2007-05-03 | Siemens Aktiengesellschaft | System und verfahren für ein kamerabasiertes tracking |
CN102075686A (zh) * | 2011-02-10 | 2011-05-25 | 北京航空航天大学 | 一种鲁棒的实时在线摄像机跟踪方法 |
WO2013071190A1 (en) * | 2011-11-11 | 2013-05-16 | Evolution Robotics, Inc. | Scaling vector field slam to large environments |
CN106885574A (zh) * | 2017-02-15 | 2017-06-23 | 北京大学深圳研究生院 | 一种基于重跟踪策略的单目视觉机器人同步定位与地图构建方法 |
Non-Patent Citations (1)
Title |
---|
A NOVEL RE-TRACKING STRATEGY FOR MONOCULAR SLAM;Hong Liu,et al.;2017 IEEE ICASSP;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3692336B1 (en) | 2022-05-18 |
CN111247390A (zh) | 2020-06-05 |
US20200241536A1 (en) | 2020-07-30 |
EP3692336A4 (en) | 2021-06-30 |
WO2019068222A1 (en) | 2019-04-11 |
EP3692336A1 (en) | 2020-08-12 |
US11340615B2 (en) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111247390B (zh) | Vslam的并发的重新定位和重新初始化 | |
US11720100B2 (en) | Systems and methods for utilizing semantic information for navigation of a robotic device | |
US20200117210A1 (en) | Auto-Exploration Control of a Robotic Vehicle | |
CN111093907B (zh) | 机器人式运载工具的稳健导航 | |
ES2883847T3 (es) | Prevención de colisiones de vehículos | |
WO2019135847A1 (en) | Adjustable object avoidance proximity threshold based on classification of detected objects | |
US10149276B2 (en) | Aerial robotic vehicle antenna switching | |
US10386857B2 (en) | Sensor-centric path planning and control for robotic vehicles | |
US11080890B2 (en) | Image sensor initialization in a robotic vehicle | |
US20190066522A1 (en) | Controlling Landings of an Aerial Robotic Vehicle Using Three-Dimensional Terrain Maps Generated Using Visual-Inertial Odometry | |
CN111684378A (zh) | 管理机器人交通工具的有限安全模式操作 | |
EP3738114A1 (en) | Identifying landing zones for landing of a robotic vehicle | |
CN110998235B (zh) | 在机器人式运载工具中的图像输出调整 | |
WO2023141740A1 (en) | Method and system for loop closure detection | |
WO2023060461A1 (en) | Selecting a frontier goal for autonomous map building within a space | |
WO2023137744A1 (en) | Methods of camera-to-robotic device calibration |
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 |