使用负映射的定位的制作方法

文档序号:16503489发布日期:2019-01-05 08:53阅读:174来源:国知局
使用负映射的定位的制作方法

本申请要求2017年4月21日提交的美国专利申请15/494159的优先权,其全部内容通过引用并入本文。



背景技术:

仓库可以用于由各种不同类型的商业实体存储货物,包括制造商、批发商和运输业务。示例性储存的商品可包括原材料、零件或组件、包装材料和成品。在某些情况下,仓库可以配备装载平台,以允许货物装载到运货卡车或其他类型的车辆上或从其卸载。仓库还可以使用多排托盘架以允许存储托盘、包含堆叠的箱子或其他物体的扁平运输结构。另外,仓库可以使用机器或车辆来提升和移动货物或货物托盘,例如起重机和叉车。可以使用人工操作员来操作机器、车辆和其他设备。在一些情况下,一个或多个机器或车辆可以是由计算机控制系统引导的机器人设备(“机器人”)。计算机控制系统可以相对于分布在整个仓库中的标记来定位一个或多个机器人。对机器人进行定位可以允许计算机控制系统将一个或多个机器人导航通过仓库。



技术实现要素:

示例性系统和方法可以帮助在机器人车辆的环境内定位机器人车辆,从而帮助机器人车辆在环境中导航。机器人的环境可以包括地标。可以映射地标的位置。机器人车辆可以检测地标,并且机器人车辆或机器人车辆外部的处理器可以将检测到的地标与地图上的地标相关联,从而估计机器人车辆在环境中的姿势。然而,机器人车辆也可能错误地检测环境中的地标。这种错误检测的地标可能对姿势估计产生负面影响。这样,每个检测到的地标可以被视为候选地标,直到确定每个地标对应于地标或错误检测。在可以识别这种错误检测的情况下,它们可以用于帮助定位机器人车辆。可以映射一个或多个错误检测源。可以基于检测到的地标估计机器人车辆的姿势。基于估计的姿势,错误检测可以与映射的错误检测源相关联。如此关联,错误检测可以帮助确定姿势估计的置信水平。例如,如果一个或多个错误检测不能与错误检测源相关联,则姿势估计可能不太可能是准确的,并且姿势估计的置信水平可能较低。机器人车辆可以部分地基于姿势估计和与姿势估计相关联的置信水平来导航通过环境。

在一个示例中,提供了一种方法,其包括确定环境的地图。该地图包括环境内的多个映射地标的和环境内的错误检测源区域的位置。该方法还包括基于来自传感器的传感器数据检测多个候选地标。该方法还包括确定多个候选地标中的哪些对应于多个映射地标中的一个并且哪些对应于错误检测。该方法还包括基于被确定为对应于多个映射地标中的一个的多个候选地标来估计机器人车辆在环境内的姿势。该方法还包括基于机器人车辆的估计姿势确定被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域内。该方法还包括基于被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域内来确定姿势估计的置信水平。

在另一示例中,提供了一种系统,其包括机器人车辆,安装在机器人车辆上的传感器,一个或多个处理器,以及非暂时性计算机可读介质。该系统还包括存储在非暂时性计算机可读介质上并且可由一个或多个处理器执行以确定机器人车辆的环境地图的程序指令。该地图包括环境内的多个映射地标的和环境内的错误检测源区域的位置。程序指令还基于来自安装在机器人车辆的传感器的传感器数据检测多个候选地标。程序指令还确定多个候选地标中的哪些对应于多个映射地标中的一个并且哪些对应于错误检测。程序指令还基于被确定为对应于多个映射地标中的一个的多个候选地标来估计机器人车辆在环境内的姿势。程序指令还基于机器人车辆的估计姿势确定被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域内。程序指令还基于被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域内来确定姿势估计的置信水平。

在另一示例中,提供了一种非暂时性计算机可读介质,在其中存储有可由一个或多个处理器执行的指令,以使计算系统执行功能。功能包括确定环境地图。该地图包括环境内的多个映射地标的和环境内的多个错误检测源区域的位置。功能还包括基于来自安装在机器人车辆的传感器的传感器数据检测多个候选地标。功能还包括确定多个候选地标中的哪些对应于多个映射地标中的一个并且哪些对应于错误检测。功能还包括基于被确定为对应于多个映射地标中的一个的多个候选地标来估计机器人车辆在环境内的姿势。功能还包括基于机器人车辆的估计姿势确定被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域中的一个内。功能还包括基于被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域中的一个内来确定姿势估计的置信水平。

在另一示例中,提供了一种系统,其包括用于确定环境地图的装置。该地图包括环境内的多个映射地标的和环境内的错误检测源区域的位置。该系统还包括用于基于来自安装在机器人车辆的传感器的传感器数据检测多个候选地标的装置。该系统还包括用于确定多个候选地标中的哪些对应于多个映射地标中的一个并且哪些对应于错误检测的装置。该系统还包括用于基于被确定为对应于多个映射地标中的一个的多个候选地标来估计机器人车辆在环境内的姿势的装置。该系统还包括用于基于机器人车辆的估计姿势确定被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域内的装置。该系统还包括用于基于被确定为对应于错误检测的多个候选地标中的哪些落入错误检测源区域内来确定姿势估计的置信水平的装置。

前面的概述仅仅是说明性的,并不意图以任何方式进行限制。除了以上描述的说明性方面、实施例和特征之外,通过参考附图和以下详细描述和附图,进一步的方面、实施例和特征将变得明显。

附图说明

图1是根据示例实施例的系统的框图。

图2描绘了根据示例实施例的用于操作一个或多个仓库的系统。

图3示出了根据示例实施例的系统。

图4示出了根据示例实施例的用于一个或多个机器人设备的机器人设备架构。

图5示出了根据示例实施例的用于一个或多个机器人设备的激光扫面仪架构。

图6示出了根据示例实施例的在环境中导航的机器人车辆。

图7是示出根据示例实施例的机器人控制系统的模块的功能框图。

图8示出了根据示例实施例的机器人的映射环境。

图9示出了根据示例实施例的已经进行了多次检测的机器人。

图10a,10b,10c和10d示出了根据示例实施例的与候选地标的样本集和对应的映射地标相关联的内点的确定。

图11a,11b,11c和11d示出了根据示例实施例的与候选地标的另一样本集和对应的映射地标相关联的内点的确定。

图12a示出了根据示例实施例的机器人车辆的环境。

图12b示出了根据示例实施例的机器人车辆的环境内的多个检测到的候选地标。

图12c示出了根据示例实施例的检测到的候选地标和机器人车辆的环境的地图上的映射地标之间的关联。

图12d示出了根据示例实施例的机器人车辆的环境的更新地图,其包括错误检测的指示。

图13示出了根据示例实施例的机器人车辆在机器人车辆的环境中导航以获得传感器数据。

图14示出了根据示例实施例的生成的机器人车辆环境的地图,其包括错误检测源区域。

图15示出了根据另一示例实施例的另一个生成的机器人车辆环境的地图,其包括错误检测源区域。

图16示出了根据另一示例实施例的生成的机器人车辆环境的地图,其包括错误检测源区域,在错误检测源区域中机器人仅使用地图上可用的某些数据。

图17a示出了根据示例实施例的姿势置信度确定场景中的多个检测到的地标和错误检测。

图17b示出了根据另一示例实施例的姿势置信度确定场景中的不同的多个检测到的地标和错误检测。

图18是根据示例实施例的方法的框图。

具体实施方式

本文描述了示例方法和系统。本文描述的任何示例实施例或特征不一定被解释为比其他实施例或特征优选或有利。这里描述的示例实施例并不意味着限制。容易理解的是,所公开的系统和方法的某些方面可以以各种各样的不同配置进行布置和组合,所有这些都在本文中考虑。

此外,附图中所示的特定布置不应被视为限制性的。应该理解,其他实施例可以更多或更少地包括给定图中所示的每个元件。此外,可以组合或省略所示出的元件中的一些。另外,示例实施例可以包括图中未示出的元件。

i.概述

示例实施例可以包括或以其他方式涉及可以用于估计机器人车辆的环境内车辆(例如机器人车辆或手动操作车辆)的姿势并且由此帮助机器人在环境中导航的方法和系统。例如,机器人车辆上的一个或多个传感器可以通过从环境内的候选地标接收信号来检测地标。机器人车辆可以基于所接收到的信号确定其相对于候选地标的位置。机器人车辆可以确定候选地标中的哪些对应于映射地标并且哪些对应于错误检测。机器人车辆可以通过将其相对于检测到的地标的位置变换为其相对于对应的映射地标的位置来估计其在环境中的姿势。机器人车辆还可以基于检测到的候选地标确定姿势估计置信度。虽然,在一些场景中,错误检测可能减损准确的姿势估计,但是本文描述的示例方法和系统可以使用这些错误检测来帮助确定姿势估计的置信水平。

在一些示例中,机器人可能接收或检测与地标无关的信号,或者错误表示地标的位置的信号。接收到的或检测到的这种类型的信号可以称为“错误检测”。错误检测可能导致机器人不准确地估计其在环境中的姿势,从而阻碍机器人有效地在环境中导航。例如,因为检测到的地标包括一个或多个错误检测,机器人可能错误地将某些映射地标与检测到的地标相关联。基于这种错误的关联,机器人可能错误地估计其在环境中的姿势并且可能无效地在环境中导航。

通过利用先前映射的错误检测源区域,示例系统和方法可以使用错误检测来帮助机器人车辆在环境中导航,而不是阻碍这种导航。为此,可以将检测到的地标视为候选地标,可以审查候选地标以确定它们中的哪些对应于映射地标,并且哪些对应于错误检测。然后可以使用指示错误检测源区域的地图来确定错误检测中的哪些是预期的以及哪些是意外的。

一些示例可以包括对候选地标的多个子集(例如,具有三个候选地标的子集)进行采样。然后,子集的每个采样候选地标可以与对应的映射地标配对。这个过程可有助于审查候选地标,因为一些采样子集将包括错误检测而其他子集则将不包括错误检测。可以单独评估每个采样子集。这些示例还可以包括确定要应用于每个子集的候选地标的变换。变换可以将每个子集的采样候选地标与对应的映射地标匹配,使得在采样的候选地标与对应的映射地标之间存在最小距离。使用候选地标的子集和对应的映射地标可以减少确定变换所需的计算。

一些示例可以进一步包括确定与每个采样子集相关联的内点的数量。针对每个采样子集确定的变换可以应用于所有候选地标。采样子集的内点的数量可以基于变换的候选地标与相邻的映射地标之间的距离。例如,可以将变换的候选地标与相邻的映射地标(例如,最接近的映射地标)之间的距离与内点阈值距离进行比较。与相邻的映射地标的距离小于或等于内点阈值距离的变换的候选地标可以被称为“内点”。与相邻的映射地标的距离大于阈值的变换的候选地标可以被称为“外点”。内点可以指示变换的子集将关联的候选地标与相邻的映射地标准确地匹配,而外点可以指示相反内容。不包括错误检测的采样子集更有可能产生使候选地标与相邻的映射地标准确匹配的变换,并且进而会产生更多的内点。因此,确定内点的数量可以帮助审查候选地标,因为更多数量的内点可以对应于具有很少或没有错误检测的采样子集,而更多数量的外点可以对应于包括一个或多个错误检测的子集。

在一些示例中,也可以映射错误检测源的位置的指示。这种错误检测源可能占据地图的相对较大部分。例如,错误检测源可以包括环境内的反射表面,例如墙壁。这样,可以映射环境的包含错误检测的整个区域。在估计机器人车辆的姿势时,这些区域可能不适合使用,因为错误检测可能来自该区域的任何部分。然而,对应于映射地标的候选地标可用于估计机器人车辆的姿势。基于姿势,可以确定对应于错误检测的检测到的候选地标是否落入映射的错误检测源区域内。在这样的地标确实落入错误检测源区域的情况下,可以确定姿势估计更可能是准确的。相反,不落入映射的错误检测源区域内的错误检测可以指示姿势估计不太可能是准确的。

映射错误检测源位置(例如错误检测源区域)的指示可以包括将一个或多个机器人导航通过环境。机器人可以识别错误检测,确定姿势估计,并且基于姿势估计,映射错误检测源位置。在几个错误检测源位置彼此接近的情况下,可以确定错误检测源区域。

在一些示例中,姿势估计的置信水平可以基于与样本集相关联的内点的数量,以及被确定为与落入环境内的先前映射的错误检测源区域中的错误检测对应的候选地标的数量。例如,置信度可以基于对应于映射地标或落入错误检测源区域的候选界标与候选地标的总数量的比率。接近1的比率可以指示非常少的意外错误检测,而接近零的比率可以指示存在许多意外的错误检测。

现在将详细参考在附图中示出的各种实施例。在以下详细描述中,阐述了许多具体细节以便提供对本公开和所描述的实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践本公开。在其他情况下,没有详细描述众所周知的方法、过程和组件以及电路,以免不必要地模糊实施例的各方面。

ii.机器人设备的系统设计

图1是根据示例实施例的系统100的框图。系统100包括规划系统110和机器人设备120。规划系统110可以包括非机载规划器112,其可以协调在环境中操作的一个或多个机器人设备的运动。非机载规划器112可包括路线图规划器114。非机载规划器112和/或路线图规划器114可以生成用于机器人设备(例如机器人设备120)在环境中操作时跟随的一个或多个异步路径116。

路线图、原型图或表示环境的其他路线图,例如下面在图3的上下文中讨论的原型图300可以被接收、确定或以其他方式提供到规划系统110、非机载规划器112和/或路线图规划器114。异步路径116可以是基于路线图、原型图或其他路线图的一个或多个路径。例如,如果路线图、原型图或其他路线图具有连接多个交叉点的多个边缘,则可以根据多个边缘和/或多个交叉点来指定异步路径116。

在一些示例中,机器人设备120可以是能够跟随路径的任何一个或多个转向车辆。例如,机器人设备120可以包括机载软件130和/或硬件150。机载软件130可包括以下中的一个或多个:定位子系统132,障碍物检测子系统134,测距子系统136,路径跟随子系统138和轨迹跟随子系统142。定位子系统132可用于定位机器人设备,即,确定机器人设备在环境中的位置。定位子系统132可以生成机器人设备和/或其他物体的位置估计,位置估计可以用于定位机器人设备、帮助机器人设备跟随路径(例如异步路径116)和/或辅助机器人设备跟随轨迹,例如轨迹140。一旦生成位置估计,定位子系统132就可以向路径跟踪子系统138提供位置估计。

异步路径或简称路径可以是非时变规划或指示机器人设备120如何从起点sp行进到终点ep的其他信息;即,(异步)路径不考虑时间。相反,轨迹可以包括针对规划时间间隔机器人设备120可以跟随的转向角度和牵引马达速度的值。

规划时间间隔可以是机器人设备被引导或被规划以跟随路径、路线和/或行程的持续时间。在一些实施例中,规划时间间隔可以是预定的时间量;例如,五秒,一秒,0.2秒,0.1秒。具体地,可以基于指定规划时间间隔的值的用户输入来确定预定的规划时间间隔。在其他实施例中,可以基于一个或多个其他值来确定规划时间间隔;例如,缝合时间(stitchtime),与统一的边缘(或路径)花费相关联的时间,沿轨迹行进的估计时间。用于确定规划时间间隔和规划时间间隔的值的其他技术也是可行的。

然后,可以使用一个或多个轨迹来描述机器人设备120如何能够以时变方式从起点sp行进到终点ep。在一些实施例中,轨迹还可以在规划时间间隔内提供关于除转向角度和牵引马达速度之外的其他变量的值的信息,例如但不限于机器人设备120的其他运动变量(例如,速度和加速度)和机器人设备120的致动器位置。

作为示例,将汽车从“家”位置驱动到“工作”位置的路径可以包括街道的有序列表,控制实体(例如人或自主车辆的控制设备)可以使用街道的有序列表来将汽车从家驱动到工作。在该示例中,从家到工作的轨迹可以涉及一个或多个指令,其指定控制实体可以用于将汽车从家驱动到工作的速度和/或加速度。在一些示例中,轨迹可以考虑交通、障碍物、天气和其他时间敏感的条件;例如,从家到工作的轨迹可以指示控制实体“在20mph或以下时右转10秒”、“加速到55mph并且直线行驶3分钟”、“在30秒内减速至20mph”、“在20mph或以下时左转10秒”等。在一些实施例中,轨迹可以沿途改变;例如,以考虑障碍物、路径变化等。

障碍物检测子系统134可以确定一个或多个障碍物是否阻挡机器人设备120的路径和/或轨迹。这些障碍物的示例可以包括但不限于托盘、可能从托盘上掉下来的物体、机器人设备以及在环境中工作的操作人员。如果检测到障碍物,则障碍物检测子系统134可以向路径跟随子系统138提供指示障碍物检测的一个或多个通信。指示障碍物检测的所述一个或多个通信可以包括关于由障碍物检测子系统134检测到的一个或多个障碍物的一个或多个位置的位置信息和/或关于由障碍物检测子系统134检测到的一个或多个障碍物的识别信息。测距子系统136可以使用数据,例如来自伺服驱动器152的数据,来估计机器人设备120随时间的位置的一个或多个变化。

路径跟随子系统138和/或轨迹跟随子系统142可以充当机器人设备120上的规划器。该机载规划器可以基于由定位子系统132提供的位置估计来跟随一个或多个路径,例如异步路径116。

路径跟踪子系统138可以接收异步路径116、来自定位子系统132的位置估计输入、关于来自障碍物检测子系统134的一个或多个障碍物的一个或多个位置的位置信息和/或关于来自测距子系统136的一个或多个位置变化的信息,并产生一个或多个轨迹140作为输出。

硬件150可包括伺服驱动器152和/或马达154。伺服驱动器152可包括一个或多个伺服机构和相关的电气设备。在一些示例中,伺服驱动器152可包括一个或多个电子放大器,用于为一个或多个伺服机构供电和/或监控来自(多个)伺服机构的反馈信号。伺服驱动器152可以从机载软件130接收控制信号,例如轨迹144,并且可以向(多个)伺服机构提供电流以产生与控制信号成比例的运动。在一些实施例中,伺服驱动器152可以将从(多个)伺服机构接收到的状态信息与轨迹144所命令的预期状态进行比较。然后,伺服驱动器152可以调节所提供的电流的电压频率或脉冲宽度,以校正接收到的状态信息和预期状态之间的偏差。在其他实施例中,伺服驱动器152可以向机载软件130提供诸如反馈信号和/或位置相关信息的信息。

一个或多个马达154可以是伺服驱动器152的(多个)伺服机构的一部分或全部。例如,马达154可以使用由伺服驱动器152提供的电流来产生机械力以驱动机器人设备120的一部分或全部;例如,马达154可以提供力以推进机器人设备120和/或驱动机器人设备120的一个或多个效应器。

可以关于路线图来执行环境内的机器人设备的路径规划,例如包括室内设置和/或室外设置的环境,室内设置例如仓库、办公楼或家,室外设置例如公园、停车场或院子,路线图是代理(agent)(例如机器人设备)可以跟随的路径的连接图。使用路线图来规划环境中的代理路线而不是采用自由空间方法可以减少总规划状态空间,从而使大规模多代理协调易于处理。此外,路线图的使用可以使操作员能够直观地控制允许机器人设备导航的区域。

路线图生成可以首先涉及生成原型图,其指示车道的粗略位置和行进方向。在一些示例中,原型图可以是指示机器人设备的车道和行进方向的定向图。在其他示例中,可以基于环境的绘图或地图手动生成原型图。

图2描绘了根据示例实施例的用于操作一个或多个仓库的系统200。系统200包括仓库管理系统210、规划系统110和机器人设备220。仓库管理系统210可以接收与仓库相关联的一个或多个物流请求212;例如,在仓库中存储一个或多个物品的请求和/或从仓库运送一个或多个物品的请求。仓库管理系统210可以将物流请求212转换成一个或多个动作214,其中动作214可以包括但不限于将一个或多个指定代理移动到一个或多个指定位置的“移动到”动作,以及将一个或多个物品运送到一个或多个指定位置的“运输”动作。在一些示例中,动作214可以包括{代理id,目的地}形式的去-到命令,但是其他动作也是可行的,诸如“移动托盘”。这些通常可以分解为移动到命令,但是(移动到拾取位置,移动到放置位置)。

规划系统110包括非机载规划器112和执行器220。非机载规划器112可以接收动作214作为输入,并为仓库中操作的一个或多个代理(例如,多个机器人设备)生成一个或多个协调路径216,以执行动作214。协调路径216可以是用于仓库中的所有代理的协调动作规划的一部分,以满足物流请求212。协调动作规划可以考虑代理的优先序;例如,如果预期机器人设备rd1和rd2二者几乎同时到达某一点,则机器人设备中的一个可以优先于另一个,例如机器人设备rd1等待机器人设备rd2通过该点(或相反亦然)。执行器220可以接收协调路径216并生成非冲突子路径222以引导机器人设备120完成协调动作规划中的其部分以执行动作214来完成物流请求212。

如上面在图2中所示,包括非机载规划器112和执行器220的规划系统110可以与机器人设备120通信。在一些实施例中,机器人设备可以是叉车;例如,任何职业安全和健康管理局(osha)1级或3级动力工业卡车。在其他实施例中,规划系统110可以包括使用位于“云”(例如,一个或多个联网计算设备)中和/或位于与机器人设备120共同定位的房屋的某处的一个或多个联网计算设备来执行的软件。

在一些实施例中,可以同步非机载规划器112和执行器220。在示例实施例中,非机载规划器112和执行器220可以在一个设备上实现,例如,在规划系统110或机器人设备120中,并在设备内同步。在另一示例实施例中,非机载规划器112和执行器220可以在一个或多个设备中同步地动作。

图3示出了根据示例实施例的系统300,其包括物流接口310、仓库管理系统210和使用网络318连接的一个或多个机器人设备120。物流接口310可以经由网络318向仓库管理系统210提供关于物体(例如托盘)和/或机器人设备到仓库管理系统210的移动的库存任务指令。示例库存任务可以是将包含类型b的物品的托盘a移动到位置c。

仓库管理系统210可以从物流接口310接收库存任务指令并生成一个或多个任务/作业指令(例如,指示机器人设备a将托盘b从位置c移动到位置d的指令)和/或用于控制(多个)机器人设备120执行库存任务指令的规划。任务/作业指令和/或规划可包括关于一个或多个路径和/或一个或多个轨迹的信息,其中(多个)任务/作业指令、(多个)规划、路径和轨迹/多个轨迹由仓库管理系统210的规划系统110使用在图1和图2的上下文中讨论的技术生成。

例如,仓库管理系统210可以是使用一个或多个计算设备运行并存储数据的集中控制服务器;例如,服务器计算设备。为了执行这些任务,仓库管理系统210可以包括wms中间件,并且可以提供用户接口以提供对用于监视和管理系统300的工具的访问。wms中间件和/或仓库管理系统210的其他组件可以使用一个或多个应用程序编程接口(api),例如协议转换api,用于在任务/作业指令(例如,指示机器人设备a将托盘b从位置c移动到位置d的指令)到机器人设备路径、姿势和/或轨迹之间的转换;库存任务和任务/作业指令之间的转换;以及api之间的转换。

由仓库管理系统210提供的用户接口可以为系统300提供一个或多个用户接口功能,包括但不限于:监控机器人设备120,例如,呈现与一个或多个机器人设备的位置、电池状态、充电状态等有关的数据;使得能够生成和发送(多个)库存任务指令、(多个)任务/作业指令、(多个)规划、(多个)路径和/或轨迹/多个轨迹到(多个)机器人设备120中的一个或多个;以及浏览、更新、删除和/或插入与一个或多个仓库地图、托盘、网络和/或规划系统(例如,规划系统110,仓库管理系统210和/或物流接口310)相关的数据。

在一些实施例中,仓库管理系统210可以在物流接口310和(多个)机器人设备120之间以及两个或更多个机器人设备120之间路由通信,并且管理一个或多个机载系统,例如在一个或多个机器人设备120上的机载系统320。在其他实施例中,仓库管理系统210可以存储、生成、读取、写入、更新和/或删除与系统300相关的数据,例如但不限于:关于由一个或多个机器人设备120完成任务/作业指令的数据;关于(多个)机器人设备120中的一些或全部的位置和/或姿势的数据,包括指示机器人设备被初始化/启动时所在位置的数据;与人类动作、事件分析和/或调试的一个或多个审计跟踪相关的数据;以及状态跟踪的数据。在其他实施例中,仓库管理系统210可以包括与(多个)机器人设备120和一个或多个适配器通信的中央消息路由器/持久性管理器。一个或多个适配器中的每一个可以提供对仓库管理系统210可用的系统300的数据和/或通信的访问,并且可以包括但不限于:用于上述用户接口的用户接口服务适配器,使万维网(www)/因特网能够访问关于系统300的信息的web内容服务适配器,消息代理适配器和/或充当api和/或wms之间的通信之间的中介的wms适配器。

图3示出了一个或多个机器人设备120中的每一个可以包括以下中的一个或多个:机载系统320,网络交换机330,车辆控制器332,可编程逻辑控制器(plc)334,一个或多个设备传感器338,以及一个或多个驱动器340。

机载系统320可以是用于机器人规划的计算和传感器包,其被配置为安装到机器人设备120中并与机器人设备120一起使用,其中机载系统320可以包括机载传感器322和一个或多个规划/执行处理器324。图3还示出了机载系统320,其被配置为使用网络交换机330以(经由网络318)至少与规划系统110、设备传感器338和/或与机器人设备120的一个或多个致动器通信。

机载系统320可以负责以下中的一个或多个:机器人设备120的定位,用以执行规划和/或沿着由仓库管理系统210提供的路径和/或轨迹行进的局部轨迹的生成,生成对驱动器340的命令以跟随一个或多个(局部)轨迹,生成用于控制机器人设备120的(多个)致动器的命令,以及向仓库管理系统210报告姿势、状态和/或其他信息。

机载传感器322可包括一个或多个导航激光器、激光扫描仪、相机和/或用于导航和/或控制机载系统320的其他传感器。例如,(多个)机器人设备120中的机器人设备可以包括一个或多个激光扫描仪,例如由德国waldkirch的sickag、日本大阪的hokuyoautomaticco.ltd和/或日本大阪的keyence公司提供的一个或多个激光扫描仪。激光扫描仪可以用于沿着机器人设备的行进方向以及沿着机器人设备的侧面、角落和/或后面的障碍物检测和/或避让。激光扫描仪还可用于使用基于反射器的定位来定位机器人设备。在一些实施例中,相机和/或其他传感器可用于代替激光扫描仪或与激光扫描仪一起用于障碍物检测、障碍物避免和/或定位。

(多个)规划/执行处理器324可包括至少连接到机载传感器322的一个或多个计算机处理器。(多个)规划/执行处理器324可以从机载传感器322读取数据,生成局部轨迹和/或命令到(多个)驱动器340以移动机器人设备120,并与仓库管理系统210通信。局部轨迹可以是机器人设备120在起始姿势处开始并且在某个时间到达结束姿势的轨迹。在一些示例中,可以隐含地指定起始姿势;例如,起始姿势可以是机器人设备120的当前姿势,因此局部轨迹可以基于其起始姿势是机器人设备120的当前姿势的假设。

(多个)规划/执行处理器324可以使用组件框架。组件框架可以是多线程作业调度和消息传递系统,其基于用于配置为提供机器人设备120的一致异步模型的输入/输出(i/o)和信令的软件库(例如由弗吉尼亚州onancock的boost.org提供的“boost::asio”和“boost::signals2”软件库)构建。组件框架能够实现软件组件(或模块)之间的通信,使得软件组件可以以线程安全的方式并行执行。

组件框架可以包括以下中的一个或多个:状态机组件、定位组件、规划组件和轨迹跟踪组件。状态机组件可以管理机器人设备120的状态以用于车辆初始化、车辆命令和故障处理。状态机组件可以使用确定性有限自动机或其他状态机来管理机器人设备的状态。

定位组件可以从车辆传感器读取数据并且集成机器人设备120的先前状态信息以确定机器人设备120的姿势。车辆传感器数据可以指示由车辆传感器检测到的一个或多个地标/兴趣点。替代地,来自车辆传感器的数据可能需要处理,使得定位组件基于车辆传感器数据检测一个或多个地标/兴趣点。可以相对于一个或多个检测到的地标/兴趣点(例如托盘或其他物体)确定姿势。规划组件可以从仓库管理系统210接收一个或多个目标,并确定机器人设备120的局部轨迹以实现那些目标。在一些实施例中,局部轨迹可以是机器人设备120将在预定时间量内跟随的短期轨迹;例如,100毫秒、200毫秒、500毫秒、1秒、5秒。轨迹跟随组件可以接收由规划组件生成的局部轨迹,并生成用以沿着局部轨迹行进的驱动控制指令。然后将驱动控制指令中继到驱动器340,驱动器340控制牵引马达和机器人设备120的其他致动器。

网络交换机330可以实现(多个)机器人设备120的通信。这些通信可以包括但不限于机载系统320和机器人设备120的其余部分之间的通信;例如,设备传感器338和驱动器340,以及经由网络318与仓库管理系统210的通信。例如,网络交换机330可以通过以太网和/或到有线网络的其他(多个)有线通信接口和/或通过wi-fitm和/或到无线网络的其他(多个)无线通信接口实现基于传输控制协议/网际协议(tcp/ip)的通信,例如台湾省新台北市的planet技术公司的planetethernetswitch。

在一些实施例中,(多个)机器人设备120和规划系统110之间的通信可以包括远程过程调用(rpc)。远程过程调用可以允许通过规划系统110的软件调用驻留在一个或多个机器人设备120上的软件过程、方法和/或功能,反之亦然。远程过程调用可以基于通信协议,例如tcp/ip、超文本传输协议(http)(例如http1.0和/或http2.0)、和/或其他通信协议。部分或全部远程过程调用可以包括加密数据;可以使用安全套接字层(ssl)、传输层安全性(tls)和/或一个或多个其他加密算法和/或协议来加密这样的数据。在使用加密数据的实施例中,诸如专用认证机构之类的一个或多个认证机构可以验证用于加密和/或解密加密数据的一个或多个证书。认证机构可以使用访问控制列表(acl)来控制对一个或多个证书的访问。远程过程调用可以使用请求/响应协议和/或双向流协议来进行与rpc相关的通信。在双向流传输协议用于rpc相关通信的实施例中,单个长寿命rpc可用于实现双向流传输协议。

车辆控制器332和/或可编程逻辑控制器334可以为(多个)机器人设备120提供电气和传感器管理功能。电气和传感器管理功能可以包括但不限于用于电负载控制、照明控制、传感器控制、传感器和/或开关信号处理以及电源管理的功能。车辆主控器336可以提供用于控制(多个)机器人设备320的一个或多个致动器(例如提升设备)的功能。

(多个)设备传感器338可包括一个或多个传感器,其可提供与控制和/或操作机器人设备120相关的数据。数据可以提供关于(多个)机器人设备120的环境的信息,例如但不限于定位信息、位置估计和映射数据。例如,(多个)设备传感器338可包括一个或多个激光器(例如,二维(2d)激光器,安全激光器,激光扫描仪),相机(例如,飞行时间(tof)相机,红绿蓝(rgb)相机,热像仪),电子传感器,接近传感器,导航设备和位置传感器。

(多个)驱动器340可包括一个或多个驱动器控制器和/或致动器,其提供用于移动(多个)机器人设备120的功能。驱动控制器可以引导驱动致动器以控制(多个)机器人设备120的移动。驱动致动器可包括一个或多个牵引马达、电驱动器、液压驱动器和气动驱动器。

图4示出了根据示例实施例的(多个)机器人设备120的机器人设备架构400。(多个)机器人设备120的机器人设备架构400可以包括软件。该软件可以包括用于定位410的软件,用于托盘姿势估计器412的软件,与状态机414相关的软件,用于规划器跟随器416的软件,用于组件框架420的软件和用于操作系统430的软件。该软件可以由一个或多个硬件规划/执行处理器324执行。(多个)机器人设备120和其他设备之间的通信可以使用网络网关440和/或网络交换机330来执行。例如,网络网关440可以用于与(多个)机器人设备120中的机器人设备无线通信以及在(多个)机器人设备120中的机器人设备内进行无线通信,并且网络交换机330可以用于与(多个)机器人设备120中的机器人设备以及在(多个)机器人设备120中的机器人设备内进行有线通信。机器人设备架构400还包括附加硬件,诸如上面在图3的上下文中讨论的(多个)设备传感器338和(多个)驱动器340。在一些实施例中,机器人设备架构400可以包括一个或多个相机,包括但不限于tof相机450和rgb相机452,其中一个或多个相机可以包括一个或多个静态相机和/或一个或多个视频相机。

图5示出了根据示例实施例的(多个)机器人设备120的激光扫描仪架构500。在一些实施例中,(多个)设备传感器338中的一些或全部可以是由激光扫描仪架构500示出的激光器和激光扫描仪。

激光扫描仪架构500可包括激光器510、512、520、522,激光扫描器524,协议转换器526,网络交换机330和机载系统320。激光器510、512、520和522可位于(多个)机器人设备120的固定位置;例如,激光器510可以位于机器人设备的前部,激光器512可以位于机器人装置的后部,激光器520可以位于机器人设备的左前角,并且激光器522可以位于机器人设备的右前角。激光器510、512、520、522和/或激光扫描仪524可以提供信息以在环境内定位机器人设备。在一些实施例中,激光器510、512、520、522和/或激光扫描仪524可以发射光,光从一个或多个反射器反射——反射光可以由一个或多个激光传感器检测,并且机器人设备可以基于检测反射光所用的持续时间定位在环境中。特别是在这些实施例中,激光器510、512、520、522和/或激光扫描仪524中的一些或全部可包括一个或多个激光传感器,用于检测反射的激光。然后,激光器510、512、520、522和/或激光扫描仪524中的一些或全部可以生成数据,包括但不限于与激光器相关的数据(例如,激光器的维护数据),与由激光器发射的光有关的数据,和与(多个)激光传感器检测反射激光所用的一个或多个持续时间有关的数据。

如图5所示,一些激光器(例如激光器520、522和激光扫描仪524)可以直接连接到网络交换机330,而其他激光器(例如激光器510、512)可以经由协议转换器526连接到网络交换机330。协议转换器526可以将激光器(例如激光器510和/或512)所使用的通信协议转换为网络交换机330使用的通信协议;例如,从基于rs-422的通信协议转换为基于以太网的通信协议。然后,激光器510、512、520、522和激光扫描仪524可以经由网络交换机330和可能的协议转换器526向机载系统320发送数据和从机载系统320接收命令。

在一些实施例中,(多个)机器人设备120可以经受一个或多个故障条件。这些故障条件和相关恢复策略的示例描述于下表1中。

表1

iii.机器人车辆在环境中的定位

图6示出了根据示例实施例的在环境中导航的机器人车辆。可估计机器人车辆600的位置和取向,并且机器人车辆可相应地在环境中导航。机器人车辆的位置和取向可以被称为机器人车辆的“姿势”。可以基于机器人车辆的一个或多个传感器602接收到的信号606来估计机器人车辆的姿势。所接收到的信号可以与遍布环境分布的地标604相关联。例如,信号可以由放置在仓库中的各个位置的逆向反射标记反射。在该示例中,机器人车辆可以包括光测距和检测(lidar)单元,其将光发射到机器人车辆周围的区域,并且定位在机器人车辆周围的区域中的逆向反射器可以将光反射回到机器人车辆以由机器人车辆的一个或多个传感器进行检测。

在一些示例中,接收到的信号可以指示地标相对于机器人的位置。此外,可以预先确定环境中的地标的位置。例如,可以映射地标。将所接收到的信号与对应的映射地标匹配可以允许推断出机器人在环境中的姿势。例如,机器人可以将检测到的地标与映射地标匹配以确定其在地图上的位置。此外,可以预先确定与环境内的障碍物610相关的地标的位置。例如,也可以映射障碍物的位置。机器人可进行运动608以在环境内导航,同时基于估计的姿势和障碍物的预定位置来避开障碍物。

图7是示出根据示例实施例的机器人控制系统的模块的功能框图。机器人控制系统可以包括作为机载感测模块700的一部分的一个或多个传感器。传感器可以提供指示机器人车辆的轮测距仪708的数据。传感器还可以包括导航扫描仪710。导航扫描仪710可以被配置为从机器人的环境中的候选地标接收信号。

机器人控制系统的姿势估计模块702可以指示机器人车辆相对于环境中的映射地标的位置和取向。姿势估计模块702可以包括基于来自机载感测模块700的输入而执行功能的软件。例如,每当导航扫描仪710执行扫描时,来自机载感测模块的传感器数据可以由姿势估计模块702处理,以确定机器人车辆在环境中的当前位置和取向。姿势估计模块702的姿势跟踪/细化块712和全局定位块714表示处理步骤,而姿势块716、置信度/准确度块718和初始姿势估计块720表示处理块712和714的输出。

姿势估计模块702可以以两种模式操作。在第一模式中,姿势估计模块702可以具有机器人的初始姿势估计720,并且姿势跟踪/估计块712可以更新初始姿势估计720。姿势跟踪/细化712可结合初始姿势估计720利用轮测距仪708和来自导航扫描仪710的数据来识别机器人车辆相对于候选地标的位置。姿势跟踪/细化块712可以将候选地标与接近初始姿势估计720的特定映射地标相关联。姿势估计模块702还可以提供基于关联的姿势估计716、以及姿势估计的置信度/准确度718。置信度/准确度718可以指示初始姿势估计是足够的,或者它需要进一步细化。同样在第一模式中,由姿势跟踪/细化块712确定的姿势716和置信度/准确度718可以用在后处理模块704中以确定机器人的细化姿势估计。同时,可以跳过全局定位块714。此外,在姿势跟踪/细化712期间导出的姿势估计716可以被视为机器人的初始姿势估计720,以用于随后的姿势估计。

在第二模式中,姿势估计模块702可以不具有机器人车辆在环境中的位置的初始指示。换句话说,可能尚未确定初始姿势估计720。在第二模式中,姿势估计模块702可以利用全局定位714而不是姿势跟踪/细化712来确定机器人的姿势。全局定位块714可以测试跨越机器人车辆的整个环境的候选地标与映射地标之间的关联。全局定位块714还可以输出姿势估计716和置信度/准确度718。同样在第二模式中,由全局定位块714确定的姿势716和置信度/准确度718可以用在后处理模块704中,以确定机器人的细化姿势估计。此外,在全局定位714期间导出的姿势估计716可被视为机器人车辆的初始姿势估计720,以用于随后的姿势估计。

后处理模块704可以用于细化从姿势跟踪/细化或全局定位导出的姿势估计。后处理模块可以执行姿势估计和定位模块的置信度/准确度以及机载感测模块的轮测距仪的融合外推722。在融合外推期间,当存在高置信度/准确度时,细化姿势估计可以更多地依赖于由定位模块提供的估计姿势。相反,当存在低置信度/准确度时,细化姿势估计可更多地依赖于轮测距仪。此外,后处理模块可以基于所提供的置信度/准确度和细化姿势估计来提供地图更新724。例如,地图更新可以基于细化的姿势估计来更新映射地标的位置。在其他示例中,地图更新可以更新与用于生成细化姿势估计的映射地标相关联的统计信息。

由图8的机器人控制系统执行的每个功能可以周期性地执行。例如,导航扫描仪710可以以8hz执行扫描,而轮测距仪708可以以100hz进行更新。作为另一示例,姿势估计模块的处理块712和714可以以8hz从机载感测模块接收数据,并且可以以8hz产生姿势716和置信度/准确度718。不同的频率也是可行的。

图8示出了根据示例实施例的机器人车辆的映射环境。生成机器人的姿势估计可以依赖于环境800内的地标的预定位置。例如,映射地标802可以对应于地图上的第一坐标(x1,y1),映射地标804可以对应于第二坐标(x2,y2),映射地标806可以对应于第三坐标(x3,y3),并且映射地标808可以对应于第四坐标(x4,y4)。在该示例中,仅x和y轴可能是相关的,因为映射地标可以分布在基本水平的标记平面上。例如,环境800中的每个地标可以定位在地板上方5英尺的高度(对应于z轴)。在其他示例中,映射地标可以对应于地图上的坐标范围。例如,坐标范围可以对应于各种地标的尺寸。在其他示例中,映射地标可以对应于(3-d)地图上的三维(3-d)坐标。表示映射地标的位置的其他方式也是可行的。

在一些示例实施例中,映射地标可以是逆向反射标记,其被配置为将光反射回到光源。在这样的示例中,机器人车辆可以包括光测距和检测(lidar)单元,其被配置为向机器人周围的区域发光。逆向反射标记可以将来自lidar单元的信号反射回到机器人车辆。机器人车辆可以包括机器人车辆的一个或多个传感器,其可以被配置为从逆向反射标记接收反射信号并检测标记相对于机器人车辆的位置。

图9示出了根据示例实施例的已经进行了多个检测的机器人车辆。生成机器人车辆的姿势估计可以进一步依赖于由机器人车辆900的一个或多个传感器902检测到的信号906。在一个示例中,信号可以与候选地标912、914、916、918和920相关联。信号可以指示候选地标相对于机器人的位置。例如,候选地标912可以对应于相对于机器人车辆900的半径(r1)和相对于机器人车辆900的角度(α1),候选地标914可以对应于半径(r2)和角度(α2),候选地标916可以对应于半径(r3)和角度(α3),候选地标918可以对应于半径(r4)和角度(α4),候选地标920可以对应于半径(r5)和角度(α5)。在其他示例中,候选地标可以由相对于机器人车辆900的笛卡尔坐标表示。表示候选地标相对于机器人车辆的位置的其他方式也是可行的。

在一些示例中,候选地标的位置可以由机器人车辆的至少一个传感器确定。也就是说,传感器可以接收指示候选地标的位置的信号。传感器可以生成表示接收到的信号的传感器数据,并且可以基于传感器数据确定候选地标的位置。然后,机器人的控制系统可以从传感器接收候选地标的位置。在其他示例中,至少一个传感器可以生成原始传感器数据,并且机器人的一个或多个处理器可以处理原始传感器数据以确定候选地标的位置。例如,处理器可以识别来自机器人上的传感器的信号,该信号具有大于强度阈值的强度。在其他示例中,远离机器人的处理器可以基于传感器数据来检测候选地标的位置。其他确定候选地标位置的方法也是可行的。

候选地标可以对应于或可以不对应于映射地标。例如,候选地标912、914、916和918可以对应于映射地标(例如,图9的映射地标802、804、806和808),而候选界标920可以对应于错误检测。错误检测可能使得难以将候选地标与对应的映射地标匹配,因此可能妨碍机器人车辆的准确姿势估计。以下示例实施例描述了审查候选地标以实现准确姿势估计的方法。

图10a、10b、10c和10d示出了根据示例实施例的与候选地标的样本集和对应的映射地标相关联的内点的确定。图10a示出了机器人车辆的映射环境。映射地标1002、1004、1006和1008具有预定位置。图10b示出了已经进行了多个检测的机器人车辆。检测对应于候选地标1012、1014、1016、1018和1020。出于本示例的目的,候选地标1020对应于错误检测,而其他候选地标对应于映射地标。为了估计机器人车辆的姿势并确定哪些(如果有的话)候选地标对应于错误检测,可以选择候选地标和映射地标的样本集。

在示例实施例中,确定样本集包括候选地标1012、1014和1020,以及对应的映射地标1002、1004和1006。在本示例中,已经对三个候选地标进行了采样。但是,也可以使用不同数量的采样地标。例如,采样地标的数量可以涉及候选地标总数量的百分比。

在一些实施例中,可以伪随机地执行对候选地标的采样。在其他实施例中,可以以有序的方式执行对候选地标的采样。例如,可以以相对于机器人的角度的顺序执行对候选地标的采样。在其他示例中,可以以相对于机器人的半径的顺序执行对候选地标的采样。在其他示例中,可以伪随机地选择第一候选地标,并且可以基于与第一候选地标的接近度来对其他候选地标进行采样。在其他示例中,可以基于期望的几何形状来选择候选地标。例如,可以对最类似等腰三角形的候选地标进行采样。在另一示例中,可以对最类似线的候选地标进行采样。其他采样候选地标的方法也是可行的。

在一些实施例中,可以以与采样的候选地标类似的方式选择对应的映射地标。在其他实施例中,可以对形成与采样的候选地标相似的几何形状的对应的映射地标进行采样。在本示例中,采样的映射地标1002、1004和1006最类似于由采样的候选地标1012、1014和1020形成的几何形状。对对应的映射地标进行采样的其他方式也是可行的。

在一些实施例中,可以确定若干样本集,每个样本集包括候选地标和对应的映射地标的不同组合。可以审查每个样本集以确定哪些样本集充分地表示机器人的姿势。

图10c示出了基于已应用于所有候选地标的样本集确定的变换。可以为样本集确定将候选地标的采样子集与对应的映射地标相关联的变换。例如,变换可以平移和旋转候选地标,以便最小化采样的候选地标与对应的映射地标之间的距离。在该示例实施例中,采样的候选地标1012、1014和1020已被取向为最小化与对应的映射地标1004、1006和1002的总距离。诸如迭代最近点(icp)算法的最小二乘法可以实现这种匹配。任何类似的算法可以适当地将候选地标的采样子集与对应的映射地标匹配。其他变换也是可行的。

虽然可以基于候选地标的采样子集和对应的映射地标来确定变换,但是可以将变换应用于所有候选地标。在本示例中,除了采样的候选地标之外,还将变换应用于非采样的候选地标1016和1018。

一旦将确定的变换应用于候选地标,就可以确定变换的候选地标与相邻的映射地标之间的距离。在应用变换之后,与特定变换的候选地标对应的相邻的映射地标可以是最接近的映射地标。在一些示例中,每个映射地标可以仅用作到一个变换的候选地标的相邻映射地标。在该示例中,映射地标1002是变换的候选地标1020的相邻的映射地标,映射地标1004是变换的候选地标1012的相邻的映射地标,并且映射地标1006是变换的候选地标1014的相邻的映射地标。

该变换大体上可以指示机器人1000的潜在姿势。变换的候选地标与相邻的地标之间的距离可以指示变换是否呈现可行的姿势。例如,可以确定与变换相关联的内点的数量。

图10d示出了根据示例实施例的与变换的候选地标相关联的多个内点的数量。可以基于内点距离阈值来确定每个内点。内点距离阈值可以指示变换的候选地标是否与任何映射地标充分匹配。在本示例中,内点距离阈值由半径1030、1032和1034表示,其分别环绕变换的候选地标1020、1012和1014。在相邻的映射地标的阈值距离内的任何变换的候选地标可以被认为是内点。在本示例中,变换的候选地标1012、1014和1020可以被认为是内点。图10d中未描绘的是候选地标1016和1018,其不被视为内点。图10d中未描绘的是映射地标1008,其不在任何变换的候选地标的内点距离阈值内。

包括错误检测的采样子集可能导致不能充分表示机器人姿势的变换。在本示例中,候选地标1012、1014、1016和1018分别对应于映射地标,而候选地标1020对应于错误检测。图10c和10d示出了因为采样子集包括错误检测而不充分表示机器人姿势的变换的示例实施例。

在本示例中,从五个变换的候选地标确定三个内点。换句话说,根据变换,可以认为五个候选地标中有三个已经充分匹配。可以确定五个候选地标中的具有内点的三个不对应于可行的变换,这进而不表示机器人的可行姿势。其他因素可有助于确定变换不可行。在图11a-d中,例如,没有一个非采样的候选地标与内点相关联。可能常见的是变换的采样候选地标与内点相关联,因为所确定的变换旨在将采样的候选地标与对应的映射地标最佳地匹配。因此,在确定变换的可行性时,可以给予非采样候选地标是否与内点相关联更多权重。在确定内点数量不足的示例中,可以对其他候选地标和对应的映射地标进行采样,可以变换其他候选地标,并且可以确定与其他候选地标相关联的多个内点。

图11a、11b、11c和11d示出了根据示例实施例的与候选地标的另一样本集和对应的映射地标相关联的内点的确定。图11a示出了与图11a所示的机器人车辆相同的映射环境。类似地,图11b示出了已进行与图11b所示相同的检测的机器人车辆。然而,图11a和11b描绘了不同的样本集。在本示例中,候选地标1114、1116和1118以及对应的映射地标1104、1106和1108被采样。图11c示出了从应用于所有候选地标的样本集确定的变换。在本示例中,基于采样的候选地标1114、1116和1118以及对应的映射地标1104、1106和1108确定变换。该变换也应用于非采样的地标1112和1120。图11d示出了与地图地标匹配的变换的候选地标相关联的多个内点。采样候选地标1114、1116和1118是内点,因为它们对应于相邻的映射地标1104、1106和1108,其在采样候选地标的半径1134、1136和1138内。非采样候选地标1112也是内点,因为相邻的映射地标1102在候选地标1112的半径1132内。然而,候选地标1120是外点,因为没有映射地标落入与候选地标1120相关联的内点阈值距离内。

图11d示出了包括五个候选地标中的四个内点的示例实施例。可以确定五个候选地标中的具有内点的四个对应于可行的变换,这进而表示机器人的可行姿势。可以进行该确定,因为总共有四个采样和相邻地标1102、1104、1106和1108。因此,在本示例中确定四个内点指示了使候选地标与每个相关的映射地标充分匹配的变换。其他因素可能有助于确定变换是否可行。在图11d中,例如,一个非采样的候选地标与内点相关联。非采样候选地标与内点相关联可能是重要的,因为源自一个或多个错误检测的变换不太可能允许内点与非采样候选地标相关联,如图11a-11d所示。

在本示例中,可以认为变换是可行的。这样,可以基于变换确定可以从中选择变换的样本集和姿势估计。例如,可以基于与所选择的样本集相关联的内点来估计机器人车辆的姿势。此外,与样本集相关联的任何外点可以确定为对应于错误检测。在本示例中,候选地标1120可以确定为对应于错误检测。

图11a-11d示出了仅包括对应于映射地标的候选地标的采样子集可以导致充分表示机器人姿势的变换。虽然图10a-10d示出了远离任何映射地标的错误检测如何使得变换不适当,并且因此导致不良的姿势估计,可以使用错误检测来帮助确定与姿势估计相关联的置信水平。以下示例实施例描述了使用错误检测来确定与姿势估计相关联的置信水平的方法。

如上参考图7所述,置信水平可以与机器人车辆的每个姿势估计相关联。可以基于与检测到的候选地标的变换相关联的内点的数量和检测到的候选地标的总数来确定置信水平。例如,本示例包括五个候选地标中的四个内点。得到的姿势估计的置信水平可以基于内点数量与候选地标的总数量的比率。在该示例中,接近1的比率将指示准确姿势估计的高可能性。相反,接近零的比率将指示准确姿势估计的低可能性。在另一示例中,置信水平可以基于内点数量与外点数量的比率。在该示例中,远大于1的比率(例如5)将指示准确姿势估计的高可能性,而接近或小于1的比率将指示准确姿势估计的低可能性。如下所述,其他测量置信水平的方法也是可行的。

在一些示例中,可以在确定细化姿势估计时考虑姿势估计置信度。例如,具有高姿势估计置信度的所选择的采样子集可以是细化姿势估计的主要贡献者。具有低姿势估计置信度的所选择的采样子集可以是细化姿势估计的次要贡献者。例如,细化姿势估计可以从轮测距仪得到,而不是从所选择的样本集得出。以这种方式,完成姿势估计可以使人联想到卡尔曼滤波。

图12a、12b、12c和12d示出了根据示例实施例的错误检测的映射。映射错误检测可以帮助使用被确定为对应于错误检测的候选地标来确定与姿势估计相关联的置信水平。

图12a示出了根据示例实施例的机器人车辆的环境。环境可以包括多个地标,例如地标1202、1204、1206和1208。地标可以放置在特征上,例如环境中的障碍物。在示例实施例中,环境可以是仓库环境,如上所述。这样的环境可以包括多个障碍物,并且地标可以放置在某些障碍物上。如上所述,在一些示例中,地标可以包括逆向反射标记,其被配置为将光反射回光源。在这样的示例中,机器人可以包括光测距和检测(lidar)单元,其被配置为向机器人周围的区域发光。在这样的示例中,反射表面可能成为错误检测源,因为lidar设备可以发射光信号,并且垂直于发射光的路径的反射源可以将信号反射回机器人车辆上的一个或多个传感器。在本示例中,这种反射表面被描绘为表面1210。虽然即将进行的描述通常适用于逆向反射器和反射表面,但应该容易理解,这样的环境可以附加地或替代地包括其他类型的地标,例如环境的特别着色区域、环境内的边缘的特定布置、或放置在环境中的快速响应(qr)代码标记。每个这样的地标类型可以与对应类型的错误检测源相关联。其他类型的地标和对应的错误检测源也是可行的。

图12b示出了根据示例实施例的已经进行了多次检测的机器人车辆。生成机器人的姿势估计可以进一步依赖于由机器人车辆1200的一个或多个传感器检测到的信号。在一个示例中,信号可以与候选地标1212、1214、1216、1218和1220相关联。如上参考图9所述,可以确定相对于车辆的候选地标的位置。

在本示例中,候选地标121212141216和1218可以分别对应于地标1202、1204、1206和1208。此外,候选地标1220可以对应于来自反射表面1210的错误检测。因此,反射表面1210可以被称为错误检测源。确定哪些候选地标对应于地标并且哪些对应于错误检测可能需要处理。应当理解,如图12b所示的机器人车辆1200的姿势是任意的,以说明单独检测候选地标可能不是机器人车辆在环境中的位置的决定因素。

图12c示出了根据示例实施例的机器人车辆的映射环境。在本示例中,检测到的地标1212、1214、1216和1218与映射地标1202、1204、1206和1208的表示匹配。将候选地标与映射地标的表示匹配可以通过变换来执行,如上面关于图10a-d和11a-d所讨论的。在本示例中,候选地标1212、1214、1216和1218可以被确定为内点,而候选地标1220可以被确定为外点。因此,候选地标1212、1214、1216和1218可用于估计机器人车辆1200的姿势。

虽然图12c的描述仅描述了确定哪些检测到的候选地标对应于映射地标并且哪些对应于错误检测的一个示例,其他这样的方法是可行的。例如,对对应于检测到的候选地标的数据的附加滤波、阈值处理或统计分析可以帮助进行该确定。这样,确定哪些候选地标对应于映射地标并且哪些对应于错误检测的任何方法可以用于本公开的目的。

图12d示出了根据示例实施例的机器人车辆的环境的更新地图,其包括错误检测的指示。已经变换了候选地标以使它们在地图上匹配,如上面关于图12c所描述的,机器人车辆或与机器人车辆相关联的计算系统可以更新环境地图以包括错误检测源位置1220的指示。在本示例中,指示1220被呈现为“x”,但是任何错误检测的指示都是可行的。例如,因为环境地图可以简单地存储在计算机可读介质中,例如非暂时性计算机可读介质,所以该指示可以简单地采用与地图相关联的数据结构中的表示错误检测的特征的形式。错误检测源指示1220可以对应于错误检测源区域。虽然,在本示例中,仅提供单个错误检测和单个检测源指示1220,但是应当理解,可以确定若干错误检测,并且这些错误检测可以对应于一个或多个错误检测源区域。

图13示出了根据示例实施例的机器人车辆在机器人车辆的环境中导航以获得传感器数据。图12d示出了已经根据机器人车辆上的传感器数据确定了单个错误检测的示例环境地图。然而,机器人车辆可以在环境中导航以获得附加的传感器数据并确定用于更新环境地图的附加错误检测。在示例实施例中,机器人车辆1302可以沿着路径1304在机器人车辆的环境1300中导航。当机器人车辆经过错误检测源1308时,例如上面关于图12a描述的反射表面,机器人车辆可以连续地检测环境内的候选地标的子集,并且可以确定候选地标中的哪些对应于映射地标1306,并且哪些对应于错误检测。当确定错误检测时,机器人车辆或计算系统可以更新地图以包括错误检测的指示。特别地,可以更新地图以提供错误检测源位置的指示。当候选地标用于估计如上所述的机器人车辆的姿势时,机器人车辆或计算系统可以在机器人车辆导航通过环境时更新地图。在其他示例中,表示错误检测的数据可以存储在计算机可读介质中,例如非暂时性计算机可读介质,使得地图可以在机器人车辆1302导航通过环境1300之后被更新。另外,在一些示例中,这样的数据可以来自联接到多个机器人车辆的传感器。当机器人车辆执行任务或在环境1300内导航时,每个可以采用类似的传感器数据。在这些示例中,每个机器人车辆可以单独更新地图,或者可以向中央数据储存库提供数据,该中央数据储存库在更新地图时考虑所有这些数据。例如,通信地联接到机器人车辆的中央控制器单元可以提供用于环境中的任何机器人车辆使用的地图,并且中央控制器还可以基于机器人车辆获得的传感器数据提供对地图的更新。

图14示出了根据示例实施例的生成的机器人车辆环境的地图,其包括错误检测源区域。如上参考图12d和3所述,一个或多个机器人车辆可以在机器人车辆的环境中导航并获得传感器数据。根据传感器数据,可以检测多个地标和错误检测。地图1400可以包括地标1402的指示,并且可以包括错误检测源1404的指示。该地图1400可以用于确定机器人车辆的姿势,如上面关于图10a-d和11a-d所述。此外,该地图可以用于确定每个姿势估计的姿势估计置信度。在本示例中,映射的错误检测源中的每个可以对应于单独的错误检测源区域。例如,每个错误检测源可以与围绕错误检测源的半径相关联,并且半径内的面积可以被认为是单独的错误检测源区域。在其他示例中,每个错误检测源可以与表面1006相关联。在这些示例中,在限定数量的错误检测源的阈值距离内的每个映射表面1006可以被认为是错误检测源区域。也可以以其他方式确定错误检测源区域。

图15示出了根据另一示例实施例的另一个生成的机器人车辆的环境的地图,其包括错误检测源区域。如参考图11所述,生成的机器人车辆的环境地图可以包括错误检测源区域的指示。生成的地图1500包括映射地标1502、错误检测源区域1504和环境特征1506的指示。在本示例中,基于每个面积单元的错误检测的数量来确定错误检测源区域1504。在一些示例中,可以为地图1500的多个区域确定错误检测源的数量。如果区域内的错误检测源的数量满足或超过错误检测源区域阈值,则该区域可以被认为是错误检测源区域。在另一示例中,如上所述,每个错误检测源可以与区域内的半径和对应面积相关联。如果两个或更多个这样的面积重叠,则可以认为它们形成单个错误检测源区域1504。

应当理解,尽管错误检测源区域1504可以是不连贯的(即,由环境内的多个面积限定),但是它们可以被认为是单个错误检测源区域。具体地,在地图1500存储在计算机可读介质(例如,非暂时性计算机可读介质)内的场景中,地图可以与单个物体相关联,该单个物体包括与错误检测源区域对应的环境的多个面积。替代地,每个这样的区域可以与存储在计算机可读介质中的不同物体相关联。定义错误检测源区域的其他方式也是可行的。

图16示出了根据另一示例实施例的生成的机器人车辆的环境的地图,其包括错误检测源区域,在错误检测源区域中机器人仅使用地图上可用的某些数据。如上参考图7所述,机器人车辆可以具有初始姿势估计,并且可以包括允许机器人车辆确定自初始姿势估计以来已经经过了多少距离的测距数据。基于初始姿势估计以及可能的测距数据,机器人车辆或与机器人车辆相关联的计算系统可以在其确定指示环境的传感器数据之前具有对机器人车辆在环境中的位置的一般感测。当环境的地图1600包括错误检测源区域1604时,机器人车辆可以选择不从错误检测源区域获得数据。这样,在机器人导航通过环境时的任何给定点处,可能存在包括错误检测源区域1604的环境的错误检测区1608。在一些示例中,机器人车辆可以从错误检测区1608获得数据,但是在确定姿势估计时可以不使用它们。如上所述,错误检测可能妨碍将检测到的候选地标与环境中的映射地标相关联的过程。然而,在这些示例中,来自错误检测区的数据可用于确定与姿势估计相关联的置信水平。

图17a示出了根据示例实施例的姿势置信度确定场景中的多个检测到的地标和错误检测。如上参考图10d所述,错误检测可能对估计机器人车辆的姿势产生负面影响。然而,当例如通过在环境地图内包括错误检测源区域来映射这种错误检测时,可以使用错误检测来确定机器人车辆的姿势估计的置信水平。

在本示例中,检测到的候选地标1702、1706、1710、1714、1718和1722已经与环境地图匹配。在该示例中,可以确定候选地标1702、1704和1710分别对应于映射地标1700、1704和1708。相反,可以确定候选地标1714、1718和1722对应于错误检测。在本示例中,如此匹配的这些候选地标中的每一个可以落入映射的错误检测源区域内。具体地,候选地标1714、1718和1722分别落入错误检测源区域1712、1716和1720内。因为每个错误检测落入地图的已知产生错误检测的部分内,所以机器人车辆或计算系统可确信姿势估计是准确的。

在机器人车辆的地图包括错误检测源区域的情况下,错误检测可用于在环境内导航机器人车辆。在这些示例中,姿势估计的置信水平可以进一步基于被确定为落入错误检测源区域内的错误检测。例如,置信水平可以包括被确定为对应于映射地标或落入错误检测源区域的候选界标与检测到的候选地标的总数辆的比率。在该示例中,接近1的比率将指示准确姿势估计的高可能性。相反,接近零的比率将表明准确姿势估计的低可能性。基于落入错误检测源区域内的错误检测来确定姿势估计的置信水平的其他方式也是可行的。

在这些示例中,还可以在估计机器人车辆的姿势时使用置信水平。可以变换每个样本集,并且除了确定内点和外点之外,还可以确定任何变换的候选地标是否落入映射的错误检测源区域内。例如,如果变换的候选地标中的每一个对应于内点或落入错误检测源区域,则可以选择该样本集以确定姿势估计。使用与变换的候选地标相关联的置信水平来确定姿势估计的其他方式也是可行的。

图17b示出了根据另一示例实施例的姿势置信度确定场景中的多个检测到的地标和错误检测。与图17a中的示例相反,匹配的候选地标1702、1706、1710、1718、,1724和1726并非全部对应于映射地标或落入错误检测源区域内。在该示例中,候选地标1724和1726来自未映射的错误检测源,并且因此,对确定姿势估计和与姿势估计相关联的置信度造成减损。因此,与基于这些检测到的候选地标的姿势估计相关联的置信水平可能低于关于图17a计算的置信水平。

图18是根据示例实施例的方法的框图,该方法可以用于确定机器人车辆在环境内的姿势以及姿势估计的置信水平。在一些示例中,该方法可以作为系统的一部分来执行。例如,块1802可以由机器人的一个或多个传感器结合执行存储在非暂时性计算机可读介质上的程序指令的一个或多个处理器来执行。在该示例中,机器人的一个或多个传感器可以从多个候选地标接收信号,而执行的程序指令可以基于接收到的信号检测多个候选地标,并且确定候选地标相对于机器人的位置。一个或多个处理器可以执行程序指令以还执行块1800、1804、1806、1808和1810中包括的功能。

在其他示例中,该方法可以作为计算系统的一部分来执行。在这些示例中,非暂时性计算机可读介质可以存储指令,指令可由一个或多个处理器执行,以使计算系统执行该方法的块。

在这些示例中,一个或多个处理器和非暂时性计算机可读介质可以远程执行块。在其他示例中,一个或多个处理器和非暂时性计算机可读介质可以在机器人车辆处执行该方法。在其他示例中,该方法的一些部分可以远程执行,而其他部分可以在机器人车辆处执行。

可以执行该方法的块1800以确定机器人车辆的环境地图,其中该地图包括环境内的多个映射地标的以及环境内的错误检测源区域的位置。可以基于由环境内的一个或多个机器人车辆上的一个或多个传感器获得的传感器数据来确定地图。可以处理传感器数据以检测错误检测,并且可以更新地图以包括表示错误检测源的错误检测源区域。

可以执行该方法的块1802以基于来自机器人车辆上的传感器的传感器数据检测多个候选地标。例如,机器人车辆上的传感器可以从环境内的多个信号源接收信号,并且确定所接收到的信号中的哪些包括满足或超过候选地标信号强度阈值的信号强度。

可以执行该方法的块1804以确定候选地标中的哪些对应于多个映射地标中的一个并且哪些对应于错误检测。例如,可以将变换应用于候选地标以将候选地标的样本集与对应的映射地标匹配。基于变换的候选地标与映射地标匹配的接近度,可以确定哪些候选地标对应于映射地标并且哪些候选地标对应于错误检测。

可以执行该方法的块1806,以基于被确定为对应于多个映射地标中的一个的检测到的候选地标来估计机器人车辆在环境内的姿势。

可以执行该方法的块1808,以基于机器人车辆的估计姿势确定被确定为对应于错误检测的检测到的候选地标中的哪些落入错误检测源区域内。例如,可以基于用于估计机器人姿势的样本集来变换所有候选地标以在地图上匹配。如此匹配,错误检测可能落入错误检测源区域之内或之外。

可以执行该方法的块1810,以基于被确定为对应于错误检测的检测到的候选地标中的哪些落入错误检测源区域内来确定姿势估计的置信水平。例如,可以确定候选地标的总数量,并且确定姿势估计的置信水平可以基于对应于映射地标或落入错误检测源区域内的候选地标的总数量的比例。

iv.其他定位实施例

虽然图6-18的详细描述整体上涉及在环境内定位机器人车辆,应该理解的是,出于示例的目的提供了这样的描述,并且不应该将其解释为限制。例如,可以实施上述相同的系统和方法以在环境中定位手动操作的车辆。这种定位可以允许人类操作员查看提供用于在手动操作的车辆上显示的环境地图,其包括对手动操作的车辆的当前姿势估计的指示。

此外,可以实现上述系统和方法以定位其他设备,例如映射传感器单元。映射传感器单元可以移动到环境内的多个位置以生成用于映射环境的数据。在每个位置处,可以使用上述系统和方法来定位传感器单元。这样的数据可用于生成环境地图。

本领域技术人员应该容易理解,所描述的系统和方法可以被实现为定位环境中布置的任何数量的车辆、设备或传感器。

v.结论

本公开不受在本申请中描述的用于作为各个方面的说明的特定实施例的限制。对于本领域技术人员来说显而易见的是,在不脱离本发明的精神和范围的情况下可以进行许多修改和变化。根据前面的描述,除本文列举的那些之外,在本公开的范围内的功能上等同的方法和设备对于本领域技术人员将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围内。

上述详细描述参考附图描述所公开的系统、装置和方法的各种特征和功能。在附图中,相似的符号通常标识相似的组件,除非另有说明。并未和附图中描述的示例实施例并不意味着限制。可以使用其它实施例,并且可以进行其它改变,而不脱离本文给出的主题的精神和范围。将容易理解的是,如本文整体上描述并且在附图中示出的本发明的各方面可以以各种各样的不同配置布置、取代、组合、分离和设计,在本文中所有这些都被明确地设想。

表示信息处理的块可对应于可被配置为执行本文描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的块可对应于程序代码(包括相关数据)的模块、段或一部分。程序代码可以包括可由处理器执行的一个或多个指令,用于实现该方法或技术中的特定逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,例如包括磁盘或硬盘驱动器或其他存储介质的存储设备。

计算机可读介质还可以包括例如诸如寄存器存储器、处理器高速缓存和随机存取存储器(ram)等短时间内存储数据的计算机可读介质。计算机可读介质还可以包括用于在更长时间段内存储程序代码和/或数据的非暂时计算机可读介质,例如诸如只读存储器(rom)、光盘或磁盘、压缩盘只读存储器(cd-rom)等。计算机可读介质也可以是任何其它易失性或非易失性存储系统。计算机可读介质可以被认为是例如计算机可读存储介质或有形存储设备。

而且,表示一个或多个信息传输的块可对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以是在不同物理设备中的软件模块和/或硬件模块之间。

图中所示的具体布置不应视为限制。应该理解,其他实施例可以更多或更少地包括给定图中所示的每个元件。此外,可以组合或省略所示出的元件中的一些。另外,示例实施例可以包括图中未示出的元件。

虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文公开的各个方面和实施例是为了说明的目的,而不是限制性的,其真实范围由所附权利要求指示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1