一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

建模和感知地形的楼梯跟踪的制作方法

2023-02-16 13:28:05 来源:中国专利 TAG:


1.本发明涉及楼梯跟踪。


背景技术:

2.机器人通常被定义为可重新编程且多功能的操纵器,其被设计为通过可变编程的运动来移动材料、部件、工具或专用设备以执行任务。机器人可以是物理锚定的操纵器(例如,工业机器人臂)、在整个环境中移动(例如,使用腿、轮或基于牵引的机构)的移动机器人、或者操纵器和移动机器人的某种组合。机器人被用于各种行业,包括例如制造、运输、危险环境、勘探和医疗保健。因此,机器人穿过具有需要各种协调腿移动部件的障碍物或特征的环境的能力为这些行业提供了附加益处。


技术实现要素:

3.本公开的一个方面提供了一种用于建模和感知地形的楼梯跟踪的方法。该方法包括在数据处理硬件处接收在机器人的环境周围的传感器数据。该方法还包括由数据处理硬件基于与所接收的传感器数据相对应的体素来生成地图的集合。该地图的集合包括地面高度地图和机器人的移动限制地图,移动限制地图标识机器人应该避免进入的环境内的非法区域。所述方法进一步包括由所述数据处理硬件基于所述传感器数据生成针对所述环境内的楼梯的集合的楼梯模型,合并所述楼梯模型和所述移动限制地图以生成增强的楼梯地图,以及基于所述增强的楼梯地图或所述地面高度地图控制所述机器人穿过所述环境。
4.本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方案中,基于增强的楼梯地图或地面高度地图控制机器人包括确定机器人的移动步进是否发生在与楼梯模型对应的楼梯的集合内。在该实施方式中,当移动步进发生在楼梯的集合内时,该方法包括使用增强的楼梯地图穿过在环境内的楼梯的集合,并且当移动步进未能发生在楼梯的集合内时,该方法包括使用地面高度地图穿过环境。在一些示例中,移动限制地图包括标识环境内的机器人应该避免移动机器人的主体的一个或多个非法区域的主体地图,以及标识环境内的机器人应该避免使机器人的脚触地的一个或多个非法区域的步进地图。
5.在一些配置中,合并楼梯模型和移动限制地图生成增强的楼梯地图,该增强的楼梯地图具有标识机器人的环境内的合法区域的带符号距离场。可选地,合并楼梯模型和移动限制地图可以包括标识移动限制地图指示楼梯的集合内的障碍物,而楼梯模型不指示楼梯的集合内的障碍物,确定障碍物满足高度标准,并且合并楼梯模型和移动限制地图以生成增强的楼梯地图可以包括将障碍物并入增强的楼梯地图中。
6.在一些实施方式中,合并楼梯模型和移动限制地图包括在地面高度地图和楼梯模型内的相同位置处确定地面高度地图内的第一相应高度超过楼梯模型的楼梯的集合的第二相应高度。在此实施方式中,合并楼梯模型与移动限制地图还包括将楼梯模型的包括相同位置的相应楼梯分段成条带,且将楼梯模型内的相同位置处的相应条带分类为增强的楼梯地图中的相应非法区域,所述相应非法区域与环境内机器人应避免使机器人的脚触地的
区域对应。此处,所述方法可包括将覆盖指示符与楼梯模型的相应楼梯相关联。可选地,合并楼梯模型与移动限制地图可包括:对于楼梯模型的每一楼梯,由数据处理硬件在增强的楼梯地图中生成相应楼梯的边缘周围的相应非法区域,相应非法区域与环境内机器人应该避免使机器人的脚触地的区域对应。在一些示例中,其中传感器数据包括来自安装在机器人上的至少一个传感器的点云的点。这里,至少一个传感器可以包括立体相机。
7.在一些示例中,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括以下中的至少一个:基于楼梯模型选择具有实现每个楼梯一个脚步的节奏的移动控制器,或将机器人的行进速度约束为楼梯模型的楼梯的集合的斜率的函数。可选地,基于增强的楼梯地图或地面高度地图控制机器人穿过环境可以包括在机器人穿过楼梯的集合时通过以下方式来修改避障系统:将与楼梯的集合接界的墙壁标识为相应的障碍物以及将所标识的墙壁的相应非法区域定义为具有平行于楼梯的集合的方向的朝向(orientation)。基于增强的楼梯地图或地面高度地图控制机器人穿过环境可包括当机器人穿过所述楼梯的集合时将机器人的摆动腿的脚的触地约束到距机器人的对侧站姿腿单个楼梯步进的距离。基于增强的楼梯地图或地面高度地图控制机器人穿过环境可包括通过以下方式约束机器人在机器人穿过楼梯的集合时在机器人的摆动腿的摆动阶段期间修改触地位置:确定机器人的摆动腿的当前位置、当前速度和直到触地的估计时间,基于当前位置、当前速度和估计时间来确定摆动腿是否将越过正穿越的楼梯的边缘,以及当确定指示摆动腿将无法越过正被穿过的楼梯的边缘时,防止机器人修改摆动腿的触地位置。
8.在一些配置中,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括通过以下方式约束机器人的摆动腿在机器人穿过楼梯的集合时的移动:对于每个楼梯:标识机器人的摆动腿与相应楼梯的边缘之间的距离,以及确定机器人的摆动腿与相应楼梯的边缘之间的经标识的距离是否满足距离阈值,距离阈值被配置为防止摆动腿与对应楼梯的相应边缘之间的碰撞。当机器人的摆动腿与相应楼梯的边缘之间的经标识的距离不满足距离阈值时,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括防止摆动腿进一步减小机器人的摆动腿与相应楼梯的边缘之间的距离,直到摆动腿的高度超过相应楼梯的高度为止。
9.本公开的另一方面提供了一种机器人。机器人包括主体和两个或更多个腿,所述两个或更多个腿耦接到主体并且被配置为穿过环境。机器人还包括与机器人通信的控制系统。控制系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储当在数据处理硬件上执行时使数据处理硬件执行操作的指令。操作包括接收在机器人的环境周围的传感器数据,并且基于与所接收的传感器数据相对应的体素生成地图的集合。该地图的集合包括地面高度地图和机器人的移动限制地图,移动限制地图标识机器人应该避免进入的环境内的非法区域。所述操作还包括基于所述传感器数据生成针对所述环境内的楼梯的集合的楼梯模型,以及合并所述楼梯模型和所述移动限制地图以生成增强的楼梯地图。操作还包括基于增强的楼梯地图或地面高度地图来控制机器人以穿过环境。
10.该方面可以包括以下可选特征中的一个或多个。在一些实施方式中,基于增强的楼梯地图或地面高度地图控制机器人包括确定机器人的移动步进是否发生在与楼梯模型对应的楼梯的集合内。在该实施方式中,当移动步进发生在楼梯的集合内时,操作包括使用增强的楼梯地图穿过在环境内的楼梯的集合,并且当移动步进未能发生在楼梯的集合内
时,操作包括使用地面高度地图穿过环境。移动限制地图可以包括标识环境内的机器人应该避免移动机器人的主体的一个或多个非法区域的主体地图,以及标识环境内的机器人应该避免使机器人的脚触地的一个或多个非法区域的步进地图。
11.在一些示例中,合并楼梯模型和移动限制地图生成增强的楼梯地图,该增强的楼梯地图具有标识机器人的环境内的合法区域的带符号距离场。附加地或替代地,合并楼梯模型和移动限制地图可包括标识移动限制地图指示楼梯的集合内的障碍物而楼梯模型不指示楼梯的集合内的障碍物,确定障碍物满足高度标准,且合并楼梯模型和移动限制地图以生成增强的楼梯地图可包括将障碍物并入增强的楼梯地图中。
12.在一些配置中,合并楼梯模型和移动限制地图包括:在地面高度地图和楼梯模型内的相同位置处确定地面高度地图内的第一相应高度超过楼梯模型的楼梯的集合的第二相应高度,将包括相同位置的楼梯模型的相应楼梯分段成条带,以及将楼梯模型内的相同位置处的相应条带分类为增强的楼梯地图中的相应非法区域。相应的非法区域与环境内机器人应该避免使机器人的脚触地的区域对应。此处,操作可包括将覆盖指示符与楼梯模型的相应楼梯相关联。合并楼梯模型与移动限制地图可包括:对于楼梯模型的每一楼梯,由数据处理硬件在增强的楼梯地图中生成相应楼梯的边缘周围的相应非法区域,相应非法区域与环境内机器人应避免使机器人的脚触地的区域对应。传感器数据可以包括来自安装在机器人上的至少一个传感器的点云的点。这里,至少一个传感器是立体相机。
13.在一些实施方式中,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括以下中的至少一个:基于楼梯模型选择具有实现每个楼梯一个脚步的节奏的移动控制器,或将机器人的行进速度约束为楼梯模型的楼梯的集合的斜率的函数。可选地,基于增强的楼梯地图或地面高度地图控制机器人穿过环境可以包括在机器人穿过楼梯的集合时通过以下方式修改避障系统:将与楼梯的集合接界的墙壁标识为相应的障碍物并且将所标识的墙壁的相应非法区域定义为具有平行于楼梯的集合的方向的朝向。附加地或替代地,基于增强的楼梯地图或地面高度地图控制机器人以穿过环境可包括在机器人穿过楼梯的集合时,将机器人的摆动腿的脚的触地约束到距机器人的对侧站姿腿单个楼梯步进的距离。
14.在一些示例中,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括:通过以下方式约束机器人在机器人穿过楼梯的集合时在机器人的摆动腿的摆动阶段期间修改触地位置:确定机器人的摆动腿的当前位置、当前速度和直到触地的估计时间,并且基于机器人的摆动腿的当前位置、当前速度和直到触地的估计时间确定摆动腿是否将越过正在被穿过的楼梯的边缘。在该示例中,当确定指示摆动腿将无法越过正被穿过的楼梯的边缘时,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括防止机器人修改摆动腿的触地位置。
15.在一些配置中,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括:通过以下方式在机器人穿过楼梯的集合时约束机器人的摆动腿的移动:对于每个楼梯,标识机器人的摆动腿与相应楼梯的边缘之间的距离且确定机器人的摆动腿与相应楼梯的边缘之间的经标识的距离是否满足距离阈值。所述距离阈值被配置为防止摆动腿与对应楼梯的相应边缘之间的碰撞。当机器人的摆动腿与相应楼梯的边缘之间的经标识的距离未能满足距离阈值时,基于增强的楼梯地图或地面高度地图控制机器人穿过环境包括防止摆动腿进一步减小机器人的摆动腿与相应楼梯的边缘之间的距离,直到摆动腿的高度超过相应楼
梯的高度为止。
16.在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。根据说明书和附图以及权利要求,其他方面、特征和优点将是显而易见的。
附图说明
17.图1a是站立在楼梯间平台顶上的示例机器人的透视图。
18.图1b是图1a的机器人的示例系统的示意图。
19.图2a和2b是用于图1a的机器人的示例楼梯跟踪器的示意图。
20.图2c到2i是用于图1a的机器人的示例楼梯上升跟踪器的示意图。
21.图2j-2u是用于图1a的机器人的示例楼梯下降跟踪器的示意图。
22.图3a-3e是用于图1a的机器人的示例楼梯监管器的示意图。
23.图4是用于生成楼梯间模型的方法的操作的示例布置的流程图。
24.图5是用于基于融合的建模和感知地形来控制机器人的方法的操作的示例布置的流程图。
25.图6是可以用于实现本文描述的系统和方法的示例计算设备的示意图。
26.各个附图中相同的附图标记表示相同的元件。
具体实施方式
27.当有腿机器人在环境中操纵时,机器人可能遇到需要精确的腿移动和脚放置(即,远端放置)的地形(例如,人造结构)。为了提供精确的腿移动和脚放置,当机器人的系统标识不同类型的地形时,机器人的移动控制系统可以约束机器人的移动以穿过地形,以便防止可能导致机器人灾难性问题的错误,甚至小的错误。例如,当人类穿过楼梯时,该任务需要一定程度的协调(例如,眼到脚的协调)。在没有协调的情况下,人可能误步、滑倒、绊倒或掉在楼梯上。机器人可能遇到同样的不幸,但缺乏自然的协调。因此,机器人需要系统和方法来协调精确的腿移动。
28.图1a是机器人100的环境10的示例。环境10通常是指与一些类型的地形相关联的空间区域,包括机器人100可以穿过的楼梯20、20a-n或楼梯状地形(例如,使用如图1b所示的控制系统170)。机器人100的系统负责在环境10周围协调和/或移动机器人100。当机器人100穿过楼梯20或楼梯状地形并且在环境10周围移动时,机器人100的系统可以分析地形,规划机器人100的运动轨迹(例如,利用路径生成器174、步进定位器176、主体规划器178),和/或指示机器人100执行各种移动(例如,利用控制器172)。机器人100可以一起使用机器人100的各种系统以尝试成功地穿过环境10,同时避免碰撞c和/或损坏机器人100或机器人的环境10。
29.楼梯20、20a-n通常是指被设计为桥接竖直距离的一组多于一个的楼梯20(即,一组n个楼梯20)。为了桥接竖直距离,楼梯20a-n通常延伸水平距离,其中竖直高度在节距(或节距线)上具有给定的升高。每个楼梯20传统上包括踏面22和竖板24。楼梯20的踏面22是指楼梯20的踏上的水平部分,而竖板24是指每个踏面22之间的楼梯20的竖直部分。每个楼梯20的踏面22跨越从楼梯20的外边缘26到楼梯20之间的竖板24测量的踏面深度“d”。对于住宅、商业或工业结构,出于安全目的,一些楼梯20还包括作为边缘26的一部分的鼻部。如图
1a中所示,鼻部是踏面22的在踏面22下方的竖板24上方突出的部分。例如,鼻部(示出为边缘26a)是踏面22a的一部分并且在竖板24a上方突出。
30.楼梯20的集合可以在平台或支撑表面12(例如,水平支撑表面)之前或包括平台或支撑表面12(例如,水平支撑表面)。例如,楼梯平台是指在楼梯20集合的顶部处或在楼梯20之间的位置处的水平平台或支撑表面12。例如,在楼梯20的方向改变的情况下或在特定数量的楼梯20之间(即,连接两个地板的楼梯20的段)发生楼梯平台。图1a示出了站在楼梯20的集合顶部的楼梯平台上的机器人100。此外,楼梯20的集合可以被约束在一个或多个墙壁28和/或栏杆之间。在一些示例中,墙壁28包括脚趾板(例如,踏面22的端部处的踢脚板状结构或滑道)或纵梁。在未完全封闭的工业楼梯20的情况下,工业楼梯20包括用作脚趾板的纵梁(例如,金属纵梁)。
31.楼梯状地形更一般地是指在一定距离上高度变化的地形。楼梯状地形可以在高程变化方面类似于楼梯(例如,具有高程增益的倾斜俯仰或具有高程损失的下降俯仰)。然而,在楼梯状地形的情况下,踏面22和竖板24的轮廓不那么明显。相反,楼梯状地形可以指具有踏面状部分的地形,该踏面状部分允许机器人具有足够的牵引来种植站姿肢体并且顺序地或同时地使用前导肢体在地形内的邻近竖直障碍物(类似于竖板)上上升或下降。例如,楼梯状地形可以包括瓦砾、倾斜的岩石杂乱、损坏或劣化的传统楼梯等。
32.参考图1a,机器人100包括主体110,其具有基于运动的结构,例如耦接到主体110的腿120a-d,其使得机器人100能够在环境10周围移动。在一些示例中,每个腿120是可铰接结构,使得一个或多个关节j允许腿120的构件122移动。例如,每个腿120包括将腿120的上部构件122、122u耦接到主体110的髋关节jh和将腿120的上部构件122u耦接到腿120的下部构件122
l
的膝关节jk。对于撞击检测,髋关节jh可以被进一步分解为髋关节jh的外展-内收旋转和髋关节jh的屈曲-伸展旋转,其中,髋关节jh的外展-内收旋转被指定为“j
hx”,用于发生在机器人100的额状面(即,在x方向轴a
x
和z方向轴az的方向上延伸的x-z平面)中,髋关节jh的屈曲-伸展旋转被指定为“j
hy”,用于发生在机器人100的矢状面(即,在y方向轴ay和z方向轴az的方向上延伸的y-z平面)中。尽管图1a描绘了具有四条腿120a-d的四足机器人,但是机器人100可以包括任何数量的腿或基于运动的结构(例如,具有两条腿的双足机器人或人形机器人),其提供穿过环境10内的地形的手段。
33.为了穿过地形,每个腿120具有接触地形的表面12(即,牵引表面)的远端124。换句话说,腿120的远端124是机器人100用于在机器人100的移动期间枢转、种植或通常提供牵引的腿120的端部。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,但是腿120的远端124包括踝关节ja,使得远端124相对于腿120的下部构件122
l
是可铰接的。
34.机器人100具有沿着重力方向的竖直重力轴(例如,示出为z方向轴az)和质心cm,质心cm是机器人100的分布质量的加权相对位置总和为零的点。机器人100还具有基于相对于竖直重力轴az(即,相对于重力的固定参考系)的cm的姿势p,以定义由机器人100采取的特定姿态或站姿。机器人100的姿态可以由机器人100在空间中的朝向或角位置定义。腿120相对于主体110的移动改变了机器人100的姿势p(即,机器人的cm的位置和机器人100的姿态或朝向的组合)。这里,高度(即,竖直距离)通常是指沿着(例如,平行于)z方向(即,z轴az)的距离。机器人100的矢状面对应于在y方向轴ay和z方向轴az的方向上延伸的y-z平面。
换句话说,矢状面将机器人100平分为左侧和右侧。通常垂直于矢状面,地平面(也称为横向平面)通过在x方向轴a
x
和y方向轴ay的方向上延伸而跨越x-y平面。地平面是指支撑表面12,其中机器人100的腿120的远端124可以生成牵引以帮助机器人100在环境10周围移动。机器人100的另一解剖平面是横跨机器人100的主体110延伸的额状面(例如,从机器人100的具有第一腿120a的左侧到机器人100的具有第二腿120b的右侧)。额状面通过在x方向轴a
x
和z方向轴az的方向上延伸而跨越x-z平面。
35.当有腿机器人在环境10周围移动时,机器人的腿120经历步态周期。通常,步态周期在腿120触地或接触支撑表面12时开始,并且在相同腿120再次接触地平面12时结束。这里,触地也被称为脚步,其定义基于运动的结构120的远端124落入与支撑表面12接触的点或位置。步态周期可以主要分为两个阶段,摆动阶段和站姿阶段。在摆动阶段期间,腿120执行(i)从支撑表面12的抬离(有时也称为脚趾离地以及站姿阶段和摆动阶段之间的过渡),(ii)腿120的膝关节jk处的屈曲,(iii)腿120的膝关节jk的伸展,以及(iv)触地(或脚步)回到支撑表面12。这里,处于摆动阶段的腿120被称为摆动腿120
sw
。当摆动腿120
sw
前进通过摆动阶段120
sw
的移动时,另一腿120执行站姿阶段。站姿阶段是指腿120的远端124(例如,脚)在支撑表面12上的时间段。在站姿阶段期间,腿120执行(i)初始支撑表面接触,其触发从摆动阶段到站姿阶段的过渡,(ii)负载响应,其中腿120抑制支撑表面接触,(iii)中间站姿支撑,用于当对侧腿(即,摆动腿120
sw
)抬离并摆动到平衡位置(大约摆动阶段的一半)时,以及(iv)末端站姿支撑,从机器人的com在腿120上方时直到对侧腿120触碰支撑表面12。这里,处于站姿阶段的腿120被称为站姿腿120
st

36.为了在环境10周围操纵,机器人100包括具有一个或多个传感器132、132a-n(例如,示出为第一传感器132、132a和第二传感器132、132b)的传感器系统130。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(imu))、力传感器和/或运动学传感器。传感器132的一些示例包括诸如立体相机的相机、扫描光检测和测距(lidar)传感器、或扫描激光检测和测距(ladar)传感器。在一些配置中,机器人100包括在机器人100的主体110的前端(即,邻近机器人100的前腿120a-b的机器人100的头部)处的作为传感器132的两个立体相机和在邻近机器人100的后腿120c-d的机器人100的主体110的后端处的作为传感器132的一个立体相机。在一些示例中,传感器132具有限定对应于传感器132的感测范围或区域的对应视场fv。例如,图1a描绘了机器人100的视场fv。每个传感器132可以是可枢转的和/或可旋转的,使得传感器132可以例如围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场fv。
37.参考图1a和图1b,在一些实施方式中,传感器系统130包括耦接到关节j的传感器132。在一些示例中,这些传感器132耦接到操作机器人100的关节j的电机(例如,传感器132、132a-b)。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动力学134、134
jd
。作为基于关节的传感器数据134收集的关节动力学134
jd
可以包括关节角度(例如,上部构件122u相对于下部构件122
l
)、关节速度(例如,关节角速度或关节角加速度)和/或在关节j处经历的关节扭矩(也称为关节力)。此处,由一或多个传感器132生成的基于关节的传感器数据134可为原始传感器数据、经进一步处理以形成不同类型的关节动力学134
jd
的数据,或两者的某一组合。例如,传感器132测量关节位置(或耦接在关节j处的构件122的位置),并且机器人100的系统执行进一步处理以从位置数据导出速度和/或加速度。
在其他示例中,传感器132被配置为直接测量速度和/或加速度。
38.当用传感器132勘测视场fv时,传感器系统130生成对应于视场fv的传感器数据134(也称为图像数据)。在一些示例中,传感器数据134是与由三维体积图像传感器132生成的三维体积点云相对应的图像数据。附加地或替代地,当机器人100在环境10周围操纵时,传感器系统130收集机器人100的姿势数据,该姿势数据包括惯性测量数据(例如,由imu测量的)。在一些示例中,姿势数据包括关于机器人100的运动学数据和/或朝向数据,例如,关于关节j或机器人100的腿120的其他部分的运动学数据和/或朝向数据。利用传感器数据134,机器人100的感知系统180可以生成环境10周围的地形的地图182。
39.当机器人100在环境10周围操纵时,传感器系统130收集与环境10的地形和/或机器人100的结构相关的传感器数据134(例如,机器人100的关节动力学和/或里程计)。例如,图1a描绘了站在作为机器人100的环境10的楼梯20的集合的平台(即,水平支撑表面)上的机器人100。这里,传感器系统130收集关于楼梯20的集合的传感器数据134。当传感器系统130收集传感器数据134时,计算系统140被配置为存储传感器数据134、处理传感器数据134和/或将传感器数据134传送到机器人100的各种系统(例如,控制系统170、感知系统180、楼梯跟踪器200和/或楼梯监管器300)。为了执行与传感器数据134相关的计算任务,机器人100的计算系统140包括数据处理硬件142和存储器硬件144。数据处理硬件142被配置为执行存储在存储器硬件144中的指令,以执行与机器人100的活动(例如,移动和/或基于移动的活动)相关的计算任务。一般而言,计算系统140指的是数据处理硬件142和/或存储器硬件144的一个或多个位置。
40.继续参考图1a和图1b,在一些示例中,计算系统140是位于机器人100上的本地系统。当位于机器人100上时,计算系统140可以是集中式的(即,在机器人100上的单个位置/区域中,例如,在机器人100的主体110中)、分散式的(即,位于机器人100周围的各种位置处)、或两者的混合组合(例如,其中大多数集中式硬件和少数分散式硬件)。为了说明一些差异,分散式计算系统140可以允许处理发生在活动位置处(例如,在移动腿120的关节的电机处),而集中式计算系统140可以允许中央处理中心与位于机器人100上的各个位置处的系统通信(例如,与移动腿120的关节的电机通信)。
41.附加地或替代地,计算系统140包括远离机器人100定位的计算资源。例如,计算系统140可以经由网络150与远程系统160(例如,远程计算机/服务器或基于云的环境)通信。非常类似于计算系统140,远程系统160包括远程计算资源,诸如远程数据处理硬件162和远程存储器硬件164。这里,传感器数据134或其他经处理的数据(例如,由计算系统140本地处理的数据)可以存储在远程系统160中,并且可以是计算系统140可访问的。在一些示例中,计算系统140被配置为利用远程资源162、164作为计算资源142、144的扩展,使得计算系统140的资源可以驻留在远程系统160的资源上。
42.在一些实施方式中,如图1a和1b所示,机器人100包括控制系统170和感知系统180。感知系统180被配置为从传感器系统130接收传感器数据134并处理传感器数据134以生成地图182。利用由感知系统180生成的地图182,感知系统180可以将地图182传送到控制系统170,以便为机器人100执行受控动作,例如在环境10周围移动机器人100。在一些示例中,通过使感知系统180与控制系统170分离但与控制系统170通信,控制系统170的处理可以集中于控制机器人100,而感知系统180的处理集中于解释由传感器系统130收集的传感
y位置处,机器人100应该以特定高度步进。
48.无步进地图182b通常是指地图182,其定义不允许机器人100步进的区域,以便当机器人100可以在特定水平位置(即,x-y平面中的位置)处步进时通知机器人100。在一些示例中,非常类似于主体障碍物地图182c和地面高度地图182a,无步进地图182b被划分为单元网格,其中每个单元表示机器人100周围的环境10中的特定区域。例如,每个单元是三平方厘米。为了便于解释,每个单元存在于环境10内的x-y平面内。当感知系统180生成无步进地图182b时,感知系统180可以生成布尔值图,其中布尔值图标识无步进区域和步进区域。无步进区域是指存在障碍物的一个或多个单元的区域,而步进区域是指感知不存在障碍物的一个或多个单元的区域。感知系统180进一步处理布尔值图,使得无步进地图182b包括带符号距离场。这里,无步进地图182b的带符号距离场包括到障碍物边界的距离(例如,到无步进区域244的边界的距离)和到障碍物边界的矢量v(例如,定义到无步进区域244的边界的最近方向)。
49.主体障碍物地图182c通常确定机器人100的主体110是否可以相对于机器人100与x-y平面中的位置重叠。换句话说,主体障碍物地图182c标识机器人100的障碍物,以通过在环境10中的位置处重叠来指示机器人100是否有与相同位置附近或相同位置处的障碍物碰撞或潜在损坏的风险。作为机器人100的主体110的障碍物地图,机器人100的系统(例如,控制系统170)可以使用主体障碍物地图182c来标识与机器人100邻近或最靠近机器人100的边界以及标识移动机器人100以便避开障碍物的方向(例如,最佳方向)。在一些示例中,非常类似于其他地图182,感知系统182根据单元网格(例如,x-y平面的网格)生成主体障碍物地图182c。这里,主体障碍物地图182c内的每个单元包括距障碍物的距离和指向作为障碍物的最近单元(即,障碍物的边界)的矢量。
50.由于机器人100基于由机器人100周围的一个或多个传感器132捕获的传感器数据134的一些解释而在环境10周围导航,因此出现环境10内的某些类型的结构可能常规地导致差的传感器数据134的情况。不幸的是,即使当存在差的传感器数据134时,机器人100仍然可以尝试在环境10内导航和/或执行任务。经常导致差的传感器数据134的一种类型的结构是楼梯20。这是特别有问题的,因为楼梯20在商业上和住宅上都是相当常见的结构特征。此外,用于楼梯导航的差的传感器数据134可能是灾难性的,因为楼梯通常还需要精确的腿移动和脚放置。由于从协调的角度来看,楼梯可能是难以导航的特征,因此差的传感器数据134可能显著地复合导航挑战。
51.传感器132可能由于各种原因而产生差的传感器数据134,但是楼梯20实际上是更易受传感器数据问题影响的结构。关于楼梯20,通常可能发生两个单独的问题。一个问题通常涉及楼梯上升,而另一个问题涉及楼梯下降。对于楼梯上升,打开的竖板楼梯20对机器人100造成问题。在竖板楼梯20打开的情况下,机器人100的(多个)传感器132可以处于等于一个或多个楼梯20的高度的感测高度。在该高度处,传感器132生成通过打开竖板24的远传感器数据134和楼梯20的边缘26的近传感器数据134。换句话说,当传感器132不能看到竖板24时,楼梯20的踏面22的边缘26对于机器人100而言可能表现为浮动横档,并且可能被机器人的感知系统180错误地标识为机器人100的障碍物。当机器人100即将下或正在下楼梯20的集合时,诸如立体相机的传感器132可能由于限定楼梯间(staircase)的重复结构和线而产生差的传感器数据134。例如,立体相机具体地通过尝试找到作为现实世界中的相同对象的
两个不同图像的一部分来起作用,并且使用视差来确定该对象的距离。然而,基于当从顶部到底部观察楼梯间时楼梯间的重复线,传感器132更可能不匹配相同的对象并且因此生成差的传感器数据134。这对于工业或格栅楼梯间特别常见,因为格栅引入了传感器132能够不匹配的更多重复线。尽管并非所有楼梯间都是有格栅的,但这对机器人100的导航提出了问题,因为机器人100可能经常部署在工业环境10中。尽管这些场景不是每种类型的楼梯间都发生,但是难以上升一种类型的楼梯间并下降另一种类型的楼梯间的机器人100可能限制机器人的多功能性和鲁棒性。
52.为了尝试解决这些传感器数据问题中的一些,机器人100使用称为楼梯跟踪器200的系统来检测和跟踪楼梯20的特征。楼梯跟踪器200允许机器人100通过具有较低维度模型来理解模糊数据。参考图2a和2b,在一些实施方式中,楼梯跟踪器200经配置以接收传感器数据134并输出楼梯模型202。模型202可以包括某种形式的地板高度和一系列楼梯20。这里,楼梯20是具有方向、位置和任一方向上的范围的线段。模型202通常可以假设楼梯20被水平约束并且包括最小/最大上升和最小/最大延伸。可替代地,斜率可以被约束为最小值/最大值。
53.为了生成模型202,楼梯跟踪器200包括检测器210和检测跟踪器220。楼梯跟踪器200的检测器210从传感器系统130接收传感器数据134并生成检测的特征212。此检测的特征212可对应于楼梯20的不同结构特征,例如边缘26、踏面22、竖板26、墙壁28和/或其某一组合。当机器人100接近楼梯20的集合时,检测器210用于确定对应于楼梯20的特征(例如,第一楼梯20的边缘26)的检测的特征212(例如,在图2b中示出为检测的边缘212、212e)。检测器210在特定时间ti生成检测的特征212。一旦检测器210在特定时间ti确定了检测的特征212,检测跟踪器220就监测到该检测的特征212e在未来时间步长t
i 1
期间仍然是楼梯20的实际特征的最佳表示。换句话说,当传感器系统130捕获传感器数据134时,楼梯跟踪器200以特定频率接收传感器数据134。检测器210基于来自第一时间步长t1的传感器数据134和来自先前时间步长t
i-1
的聚合传感器数据134两者来确定在第一时间步长t1处的检测的特征212。检测器210将检测的特征212传送到检测跟踪器220,并且当在检测跟踪器220处不存在初级检测时,检测跟踪器220将检测的特征212建立为跟踪的检测222(也称为初级检测)或初始检测。换句话说,当检测跟踪器220没有跟踪与从检测器210接收到的检测的特征212相对应的楼梯特征时,检测跟踪器212在第一时间步长t1使用检测的特征212初始化该楼梯特征的跟踪过程。例如,图2b示出了检测跟踪器220,其将第一时间步长t1处的楼梯20的边缘26的第一检测的特征212、212
e1
标识为跟踪的检测222。在第一时间步长t1之后的第二时间步长t2处,楼梯跟踪器200接收在第二时间步长t2处和/或在第一时间步长t1与第二时间步长t2之间的时间段期间生成的传感器数据134作为最近传感器数据134。使用最近传感器数据134,检测器210在稍后的时间t
i 1
生成另一个检测的特征212。例如,检测器210在第二时间步长t2处生成楼梯20的边缘26的第二检测的特征212、212
e2

54.为了执行其跟踪过程,当检测跟踪器220接收到第二检测的特征212、212
e2
时,检测跟踪器220确定在第二时间步长t2接收的第二检测的特征2122是否类似于来自第一时间步长t1的第一检测的特征212
e1
(现在是跟踪的检测222)。当第一和第二检测的特征212相似时,检测跟踪器220将第一和第二检测的特征212合并在一起以更新跟踪的检测222。这里,在合并操作期间,检测跟踪器220可以使用平均(例如,由检测的特征212中的置信度误差加
权的加权平均值)将检测的特征212与跟踪的检测222合并在一起。当第二检测的特征212
e2
不类似于第一检测的特征212
e1
时,检测跟踪器220确定对于与第二检测的特征212
e2
相对应的楼梯特征是否存在替代的跟踪的特征224(即,先前在检测的特征212处将检测跟踪器220标识为替代的跟踪的特征224)。当不存在替代的跟踪的特征224时,检测跟踪器220在第二时间步长t2处将第二检测的特征2122建立为替代的跟踪的特征224。当替代的跟踪的特征224已经存在时,检测跟踪器220确定第二时间步长t2处的第二检测的特征212
e2
是否类似于现有的替代的跟踪的特征224。当第二时间步长t2处的第二检测的特征212
e2
类似于现有的替代的跟踪的特征224时,检测跟踪器220将第二时间步长t2处的第二检测的特征212
e2
与现有的替代的跟踪的特征224合并(例如,使用平均或加权平均)。当第二时间步长t2处的第二检测的特征212
e2
与现有的替代的跟踪的特征224不相似时,检测跟踪器200可以生成等于第二时间步长t2处的第二检测的特征212
e2
的另一替代的跟踪的特征224。在一些示例中,检测跟踪器220被配置为跟踪和/或存储多个替代检测224。
55.通过结合检测器210使用检测跟踪器220的跟踪过程,楼梯跟踪器200可以审查每个检测以防止楼梯跟踪器200不利地依赖于检测。换句话说,在机器人100不断收集关于其自身的传感器数据134(例如,以15hz的频率)的情况下,对来自传感器数据134的快照的单个检测的依赖可能导致关于楼梯20的特征的实际位置的不准确性。例如,机器人100可以在第一时间和第二时间之间移动或改变其姿势p,生成先前被遮挡、部分遮挡或通常较差捕获的楼梯20的区域的传感器数据134。这里,在第一时间仅执行单个检测的系统可能遭受不完整的传感器数据134并且不准确地检测特征。相比之下,通过基于在一段时间内可用于楼梯跟踪器200的最近传感器数据134不断地跟踪每一检测,楼梯跟踪器200生成检测的楼梯特征(例如,初级检测和替代检测)的双峰概率分布。利用楼梯20的特征的双峰概率分布,楼梯跟踪器200能够生成楼梯20的特征的准确表示以包括在楼梯模型202中。此外,该检测和跟踪过程容忍在与任意差的传感器数据134相对应的任何特定时刻的检测,因为该检测随时间被跟踪并与其他检测(例如,可能是基于更好数据或基于多个检测上的更大数据聚合的检测)平均。因此,尽管单个检测可能在任何时刻出现噪声,但是检测跟踪器220的合并和替代交换操作随时间发展楼梯特征的准确表示。
56.然后可以将这些楼梯特征结合到楼梯模型202中,楼梯跟踪器200生成该楼梯模型202并将其传送到机器人100的各种系统(例如,控制机器人100穿过楼梯20的系统)。在一些配置中,一旦跟踪的特征222已由检测器210检测到且由检测跟踪器220跟踪达某一数目个迭代,楼梯跟踪器200就将跟踪的特征222并入到楼梯模型202中。例如,当检测跟踪器220已跟踪相同特征达三到五个检测/跟踪循环时,楼梯跟踪器200将此特征的所跟踪的检测222(即,已针对多个检测循环更新的检测)并入到楼梯模型202中。换句话说,楼梯检测器200确定所跟踪的检测222在检测和跟踪过程中已经成熟为楼梯20的特征的最可能候选。
57.当传感器132向下沿楼梯20的集合对等时,传感器132的该下降有利位置产生与向上沿楼梯20的集合对等的传感器132不同质量的传感器数据134。例如,向上沿楼梯20的集合具有遮挡楼梯20的踏面22和竖板26中的一些的有利位置,而向下沿楼梯20的集合具有遮挡竖板26和踏面22的一部分的有利位置。由于这些差异以及其他原因,楼梯跟踪器200可以具有专用于楼梯上升(例如,楼梯上升跟踪器200a)和楼梯下降(例如,楼梯下降跟踪器200b)的单独功能。例如,每一楼梯跟踪器200a-b可为楼梯跟踪器200的部分,但为单独的软
件模块。在一些配置中,每一楼梯跟踪器200a-b虽然是单独的模型,但可彼此协调。例如,当机器人100在楼梯导航期间(例如,在楼梯20上)改变方向时,楼梯上升跟踪器200a将信息传递到楼梯下降跟踪器200b(或反之亦然)。
58.参考图2c至图2i,楼梯上升跟踪器200a包括检测器210、210a和检测跟踪器220、220a。这里,检测器210a和检测跟踪器220a具有如前所述的功能,使得检测器210a被配置为检测一个或多个楼梯20的特征(例如,边缘26或墙壁28),并且检测跟踪器220a被配置为基于楼梯上升跟踪器200的建模技术和由机器人100捕获的当前传感器数据134来跟踪检测的特征212,以确保检测的特征212保持楼梯20的实际特征的准确表示。然而,在一些示例中,检测器210a和检测跟踪器220a还包括特定于上升的楼梯20的集合的附加或替代操作。
59.在一些示例中,诸如图2d-2f,检测器210a被配置为检测楼梯20的边缘26。一般来说,为了标识可对应于楼梯20的边缘26的传感器数据134,检测器210a可首先基于先前检测标识前一楼梯20的位置。换句话说,检测器210a基于先前针对第一楼梯20、20a检测到的传感器数据134的位置来标识对应于第二楼梯20、20b的传感器数据134。在该方法中,检测器210a能够自举任何数量的楼梯20,同时还适应先前楼梯而不是世界框架的变化。通过查看相对于先前楼梯20的传感器数据134的传感器数据134,相关性允许检测器210检测特征,即使这些特征在楼梯间的过程中正在改变(例如,楼梯20正在弯曲)。例如,图2d描绘了第二楼梯20b的传感器数据134存在于检测区域ad中,该检测区域ad被示出为相对于第一楼梯20a的第一检测的边缘212、212
e1
的虚线矩形目标检测框。
60.参考图2e,在一些实施方式中,基于检测区域ad内的传感器数据134,检测器210a将检测区域ad划分为段(例如,限定像素宽检测列的柱状段)并且递增地穿过检测区域ad的每个段。当在朝向机器人100的方向d(例如,朝向楼梯20的实际边缘26将可能存在的方向)上搜索检测区域ad的段时,检测器210a标识在检测区域ad的段内在该方向d上最远的传感器数据134的点。在一些示例中,为了确定搜索方向d上的最远点,检测器210a顺序地搜索检测区域ad的每个段,直到搜索段是空集,并且将搜索段中在空集之前的一个或多个点标识为沿着楼梯20的边缘26的一个或多个点。例如,搜索段内具有最大高度(例如,z坐标高度)的一个或多个点对应于边缘点(例如,以红色示出)。
61.参考2f,在一些配置中,检测器210a通过将线性回归拟合应用于由检测器210a标识的边缘点来生成第一线l1。例如,检测器210a使用最小二乘拟合生成第一线l1。由于一些点可以对应于视场fv的范围附近的异常数据或点的事实,检测器210a可以进一步细化该拟合。例如,图2f中的检测器210在第一拟合的细化期间移除红色和紫色圆圈中的传感器数据134。此处,检测器210a还可通过基于传感器数据134的分布(例如,以绿色球体示出)确定检测的楼梯边缘可能在何处结束(或终止)来细化第一拟合且移除此传感器数据134。在这些细化中的一个或多个细化之后,检测器210a可以通过将线性回归拟合应用于剩余边缘点来生成第二线l2。这里,线性回归拟合也可以是类似于第一线l1的最小二乘拟合。在一些配置中,在生成第一线l1或第二线l2之后,检测器210可以通过将当前检测的边缘212e与一个或多个先前检测的边缘212e进行比较并确定例如当前检测的边缘212太短、太倾斜或体现证明拒绝的一些其他异常来拒绝当前检测的边缘212e。如果检测器210没有拒绝当前检测的边缘212,则检测器210a将当前检测的边缘212e传递到检测跟踪器220a,以便检测跟踪器220a执行跟踪过程。
62.与对其他楼梯20的特征的检测不同,对楼梯间的第一楼梯20、20a的检测可以是独特的,因为检测器210a不知道在何处寻找传感器数据134。换句话说,返回参考图2d,检测器210a基于第一楼梯20a的先前检测的特征212标识传感器数据134的可能对应于用于检测第二楼梯20b的特征的潜在点。当在第一楼梯20a上执行检测时,检测器210a不具有此先前楼梯参考点。为了找到第一楼梯20a,检测器210a被配置为根据沿着z轴az(例如,平行于机器人100的重力轴)的高度(即,z坐标)对传感器数据134进行分类。例如,在图2g中,分类c可以包括地板高度分类c、cf、预期的第一楼梯分类c、c
s1
和/或预期的第二楼梯分类c、c
s2
。在一些示例中,检测器210a首先基于机器人100的脚124在地板上的假设通过地板高度分类cf对传感器数据134进行分类。检测器210a可以相对于所确定的地板高度生成其他分类c。这里,检测器210a使用其在现实世界中通常有多高的楼梯/楼梯间的先验知识来定义第一楼梯和第二楼梯相对于地板高度的分类高度。
63.在一些配置中,基于分类c,检测器210a搜索如关于图2e所示的检测区域ad以确定传感器数据134的边缘点。换句话说,为了从传感器数据134检测第一楼梯20a的边缘点,检测器210a在假定对应于第一楼梯20a的高度处(例如,基于对应于预期第一楼梯分类c、c
s1
的高度)执行关于图2e描述的列搜索。在一些示例中,检测器210a被配置为对边缘点进行聚类并且合并除了聚类cl之间的间隙之外似乎可能是相同楼梯20的一部分的任何聚类cl。在一些实施方式中,利用所标识和聚类的边缘点,检测器210确定所标识和聚类的边缘点是否指示被分类为第一楼梯分类c
s1
和第二楼梯分类c
s2
的传感器数据134之间的一致关系。这里,当所标识和聚类的边缘点描绘楼梯分类c
s1
、c
s2
并且在第一边缘点集合之上定义第二边缘点集合(例如,反映一个楼梯在另一楼梯之上的实际楼梯间)时,所标识和聚类的边缘点可以指示被分类为第一楼梯分类c
s1
和第二楼梯分类c
s2
的传感器数据134之间的一致关系。当发生这种情况时,楼梯上升跟踪器200a可以确定底层传感器数据134最可能对应于楼梯间,并且将其自身(或推荐其应用)应用于底层传感器数据134以检测特征。
64.基于传感器数据分类过程,检测器210a知道第一楼梯20、20a的近似位置。使用该近似位置,检测器210a可以细化楼梯20(例如,第一楼梯20a)的高度。例如,检测器210a基于近似位置选择可能对应于楼梯20的踏面22的传感器数据134的点,并对传感器数据134的选定点的高度进行平均。此处,检测器210a接着将选定点的平均高度限定为楼梯20的踏面22的细化高度(即,也称为楼梯20的高度)。当机器人100靠近楼梯20时,检测器210a可以执行该高度细化,使得机器人100的(多个)传感器132在楼梯20上方。
65.参考图2h,检测器210a被配置为生成检测的墙壁212、212w作为检测的特征212。在一些示例中,为了检测墙壁28,检测器210a首先估计一个或多个楼梯20的检测的边缘212e的误差边界eb,以限定墙壁28的搜索区域(即,检测区域ad)。这里,误差边界是指检测的边缘212e的置信度容限。误差边界通常越靠近机器人100越小(即,边缘26的置信度容限越严格),并且越远离机器人100越大(即,边缘26的置信度容限越宽松)。检测器210a估计误差边界eb,因为检测器210a想要避免在检测期间意外地包括边缘点作为墙壁点。在图2h中,检测器210a估计每一楼梯20(例如,示出为第一楼梯20a及第二楼梯20b)在第一方向(例如,示出为沿x轴的第一误差边界eb
al
)及第二方向(例如,示出为沿z轴的第二误差边界e
ba2
)上的误差边界eb。然后,检测器210a将搜索区域或检测区域ad定义为至少部分地由误差边界eb界定的区域。例如,第一检测区域a
d1
从第一楼梯20a跨越误差边界eb到从第二楼梯20b跨越误
差边界eb以搜索与第一楼梯20a的范围相交的一个或多个墙壁28,并且第二检测区域a
d2
从第二楼梯20b跨越误差边界eb到从第三楼梯20c(部分示出)跨越误差边界eb以搜索与第二楼梯20a的范围相交的一个或多个墙壁28。通过使用该误差边界方法,检测器210a试图防止作为噪声传感器数据134的边缘26的部分与墙壁检测212w混淆。
66.参考图2i,在一些实施方式中,检测器210a从楼梯间(或机器人100的主体110)的中心向外搜索检测区域ad。在向外搜索检测区域ad的同时,当检测器210a遇到足够大小的传感器数据134的聚类cl时,检测器210a确定检测的墙壁212w。在一些示例中,当聚类cl满足估计的墙壁阈值时,传感器数据134的聚类cl具有足够的大小。这里,估计的墙壁阈值可以对应于聚类cl的点密度。当检测器210a标识出满足估计的墙壁阈值的传感器数据134的聚类cl时,检测器210a估计墙壁28位于聚类cl的内边缘(即,朝向楼梯间中心的边缘)处的位置处。这里,检测器210a将估计的墙壁位置定义为检测的墙壁212w。例如,在图2i中,检测器210a确定分别对应于第一聚类cl、cl1和第二聚类cl2的内边缘的楼梯间的每一侧上的第一检测的墙壁212w1和第二检测的墙壁212w2。在一些配置中,检测器210a还基于对应聚类cl处的传感器数据134的密度来生成关于检测的墙壁212w的误差边界。
67.参考图2j-2u,楼梯跟踪器200可以被配置为楼梯下降跟踪器200、200b,其包括上升楼梯跟踪器200a或一般楼梯跟踪器200的附加或替代功能。这里,下降楼梯跟踪器200b的功能特定于机器人100下楼梯20以及机器人100在下降期间如何感知传感器数据134的场景。当下楼梯20时,由于传感器132的特定限制,一个或多个传感器132可能生成不准确的传感器数据134。
68.另外,在一些示例中,在楼梯间下降期间,机器人100使楼梯20向后下降。换句话说,机器人100被定向成使得机器人100的后腿120c-d在机器人100的前腿120a-b之前首先下楼梯20。当向后下楼梯20时,机器人100可以在机器人100的后部(例如,在后腿120c-d附近的主体110的端部附近)包括较少的传感器132,因为机器人100可以被设计为大致前向加载传感器系统130以适应面向前的导航。在机器人100的后端处具有较少的传感器132的情况下,与机器人100的前端的视场fv相比,机器人100可以具有有限的视场fv。
69.对于下降楼梯间,大多数楼梯间可能不在机器人100的视场fv中,直到机器人100靠近或邻近楼梯间。由于楼梯间之前不在机器人100的视场fv内,因此在机器人100位于楼梯20的顶部之前,机器人100没有关于下降楼梯间的许多初始传感器数据134。因此,机器人100使用楼梯下降跟踪器200b来根据对应于楼梯间的顶部楼梯20的边缘26的地板边缘26、26f来识别下降楼梯间。在一些示例中,为了确定地板边缘26f,楼梯下降跟踪器200b被配置为确定机器人100的支撑表面12(即,也称为机器人100下方的地板12)以直线消失的位置。换句话说,机器人100确定与支撑表面12消失的位置相对应的直线可以是地板边缘26f(即,下降楼梯20的集合的顶部楼梯20的边缘26)。
70.楼梯下降跟踪器200b包括检测器210、210b和检测跟踪器220、220b。这里,楼梯下降跟踪器200b的检测器210b和检测跟踪器220b可以以与楼梯跟踪器200和/或楼梯上升跟踪器200a的检测器210和检测跟踪器210类似的方式表现。即,检测器210b被配置为检测一个或多个楼梯20的特征(例如,边缘26或墙壁28),并且检测跟踪器220b被配置为基于楼梯下降跟踪器200的建模技术和由机器人100捕获的当前传感器数据134来跟踪检测的特征212以确保检测的特征212保持楼梯20的实际特征的准确表示。
71.在一些实施方式中,楼梯下降跟踪器200b的检测器210b从传感器系统130接收传感器数据134并生成检测的特征212。当机器人100接近下降楼梯20的集合时,检测器210b用于确定对应于地板边缘26f的检测的边缘212、212e。一旦检测器210b确定了检测的边缘212e,检测跟踪器220b就监测该检测的边缘212e在未来时间步长期间保持地板边缘26f的最佳表示。
72.参考图2k至图2p,在一些配置中,楼梯下降跟踪器200b的检测器210b对所接收的传感器数据134执行进一步处理,以便生成检测的边缘212、212e作为检测的特征212。例如,检测器210b接收传感器数据134并按高度对传感器数据134进行分类。这里,传感器数据134的点的高度对应于z轴(即,平行于机器人100的重力轴的轴)上的高度。在一些示例中,检测器210b的分类过程将传感器数据134的每个点分类为高度分类c,其对应于机器人100周围的地板的高度c、cf、地板上方的高度c、c
af
、或地板下方的高度c、c
bf
。不幸的是,由于如何感测环境10或传感器132的能力,传感器数据134通常可能具有从传感器数据134缺失的间隙或部分。为了辅助检测器210b的进一步处理,检测器210b可以执行形态学扩展以填充传感器数据134内的间隙。例如,扩张过程标识传感器数据134内的间隙,并通过扩展与所标识的间隙邻近的传感器数据134来填充所标识的间隙。
73.利用经分类的传感器数据134,检测器210b可进一步经配置以基于三维传感器数据134对二维图像空间执行进一步处理(例如,如图2l中所示)。在二维图像空间中,图像空间的每个像素px可以表示或对应于传感器数据134的高度分类c。换句话说,对于每个像素px,检测器210b确定与图像空间中的相应像素位置相对应的经分类的传感器数据是否已经被分类为地板分类cf、地板上方分类c
af
或地板下方分类c
bf
。利用表示传感器数据134的图像空间,检测器210b可以通过分析图像空间的像素px来确定检测的边缘212e。
74.在一些示例中,诸如图2m,一旦检测器210b将高度分类与图像空间的像素px相关联,检测器210b就被配置为搜索图像空间以标识可以对应于地板边缘26e的潜在像素px。在一些实施方式中,检测器210b使用某个预定义宽度的搜索列(例如,像素宽列)来搜索图像空间。例如,图像空间被划分为列,并且对于每列,检测器210b搜索像素px之间的高度分类c的变化。换句话说,在搜索期间,当像素px对应于地板分类cf时,检测器210b将像素px标识为地板边缘像素px、pxf,该地板分类cf之后是对应于缺失传感器数据134或某个阈值量的地板下方传感器数据134(即,具有地板下方分类c
bf
)的后续像素px。在一些配置中,检测器210b从图像空间的底部开始执行列宽搜索,其中像素px包括地板分类cf并且在相应列中向上搜索。
75.通过分析图像空间以确定检测的边缘212e,检测器210b可以避免与在三维空间中搜索传感器数据134相关联的潜在问题。例如,当检测器210b尝试检测地板边缘26f时,传感器数据134可以看起来处于高-低-高-低的交替高度模式(例如,其中高对应于地板分类cf,低对应于地板下方分类c
bf
)。然而,在传感器数据134的一种配置中,地板边缘26f实际上位于第一组高传感器数据134内,但是第三组高传感器数据134可能使检测器210b混淆,从而导致检测器210b解释地板边缘26f存在于第三组高传感器数据134中。在具有相同图案的传感器数据134的对比配置中,地板边缘26f实际上可能存在于第三组高传感器数据134中,但是第一组和第三组之间的第二组低传感器数据134可能使检测器210b混淆,导致检测器210b检测第一组高传感器数据134中的地板边缘26f。因为传感器数据134可能具有这些不
一致性,所以检测器210b的特征检测可能发生在二维空间而不是三维空间中。
76.如图2n和图2o所示,当检测器210b完成图像空间的搜索并标识地板边缘像素px、pxf时,检测器210b然后可以通过对所标识的地板边缘像素px、pxf执行一个或多个线性回归拟合来近似地板边缘26f。在一些示例中,检测器210b在应用线性回归拟合之前对地板边缘像素pxf进行聚类。例如,图2n描绘泛光边缘像素pxf的三个聚类。这里,这种聚类技术可以帮助更复杂的情况,其中检测器210b需要将所标识的地板边缘像素px、pxf合并在一起,以向所标识的地板边缘像素px、pxf提供一些线性。在一些实施方式中,诸如图2o,检测器210b首先将地板边缘26f定义为与最小二乘拟合相关联的第一线l1,然后通过标识异常地板边缘像素px、pxf并移除这些异常来从最小二乘拟合细化第一线l1。例如,检测器210b标识视场fv的周边附近的异常地板边缘像素pxf,并且如通过比较图2n和图2o所示,检测器210b移除这些异常地板边缘像素pxf。在移除异常的情况下,检测器210b应用细化拟合以生成第二线l2来表示地板边缘26f。在一些示例中,第二线l2不使用最小二乘拟合(例如,基于岭回归的拟合),而是使用基于损失函数的绝对值最小化的拟合(例如,基于套索回归的拟合)。通过使用具有基于例如套索回归的拟合的第二线l2,检测器210b可以拟合线l以更适当地反映传感器数据134的部分看起来准确地定义地板边缘26f的位置(例如,地板分类cf的聚类紧密接近地板下方分类c
bf
的聚类或传感器数据134之间的窄间隙),而传感器数据134的其他部分缺乏地板边缘26f的准确定义(即,缺少数据并且对于机器人100周围的3d空间具有大的感知间隙)。相比之下,最小二乘拟合线通常不考虑这些细微差别,而是简单地构造穿过缺失数据134的间隙中间的线l。换句话说,最小二乘拟合线可能比基于损失函数的绝对值最小化的拟合更受异常的影响。
77.在一些示例中,检测器210b确定误差216或误差值以指示检测的边缘212e相对于实际边缘26(例如,地板边缘26f)的准确度(或置信度)。这里,为了确定误差216,检测器210b可以使用用于构造线l的点的数量(例如,所标识的地板边缘像素pxf的数量)、地板与所生成的线l的点之间的距离的测量(即,地板12与所生成的线l之间的间隙的大小)和/或线l的拟合(即,表示线l上的点的一致性的度量)作为输入。在一些实施方式中,误差216指示距离误差及旋转误差(例如,偏航误差)两者。这里,在图2p中,检测器210b描绘了有序距离条,其是误差计算过程的视觉图示。
78.检测器210b被配置为将检测的特征212(例如,检测的边缘212e)传送到楼梯下降跟踪器200b的检测跟踪器220b。这里,检测跟踪器220b对检测的特征212执行类似于关于图2b描述的跟踪过程的跟踪过程。在一些示例中,检测跟踪器220b在跟踪过程的合并操作期间使用由检测器210b计算的误差216。例如,当将第一时间步长t1处的检测的特征212与第二时间步长t2处的后续检测的特征212合并时,检测跟踪器220b执行检测的特征212的加权平均,其中权重对应于每个检测的特征212的误差值216。另外,与检测的特征212相关联的错误216也可以用于确定跟踪的检测222是否应该替代的跟踪的特征224替换。换句话说,当替代的跟踪的特征224的误差216满足跟踪置信度阈值时,检测跟踪器220b用替代的跟踪的特征224替换跟踪的检测222。这里,跟踪置信度阈值可以指两个误差216(例如,用于跟踪的检测222的第一误差216和用于替代的跟踪的特征224的第二误差216)之间的差值。
79.为了生成楼梯间模型202,检测器210b还被配置为检测楼梯20集合周围的墙壁28作为检测的特征212。当使用楼梯下降跟踪器200b来检测楼梯20集合周围的墙壁28时,在一
些示例中,诸如图2q,检测器210a限定可能存在墙壁28的区域。例如,检测器210b知道墙壁28不与机器人100(例如,机器人100的主体110)相交,并且墙壁28不存在于机器人100的脚步中(例如,基于机器人100的感知系统180)。因此,检测器210b可以将其对传感器数据134内的区域的检测限制到排除机器人100和脚步位置的区域。在一些示例中,为了检测墙壁28,检测器210b从中心向外(例如,从机器人100的主体110向外)搜索限定区域。当向外搜索时,检测器210b为传感器数据134建立评分系统。这里,评分系统在距机器人100的水平或径向距离(例如,垂直于机器人100的重力轴的xy平面或横向平面中的距离)中对传感器数据134的每个数据点进行计数。对于每个搜索区域(例如,每厘米),评分系统将计数添加到搜索区域内的传感器数据134的每个点的得分。当检测器210b移动到远离机器人100的下一个搜索区域时,检测器210b与距机器人100的距离成比例地折扣分数。例如,当搜索区域是平方厘米时,在第二搜索区域中距机器人100两厘米的距离处,检测器210b从分数中减去计数(即,距离折扣),但是继续从该第二搜索区域中的传感器数据134的每个点添加计数。检测器210b可以针对视场fv迭代地重复该过程,以确定墙壁28是否存在于机器人100的每一侧上。在一些配置中,当分数满足预定分数阈值时,检测器210b检测到墙壁28存在(即,确定墙壁28的检测的特征212、212w)。在一些示例中,检测器210b基于分数阈值的0.5至2倍的值来建立误差界限eb
1,2
。一旦检测器210b在特定时间步长ti处生成检测的墙壁212w,检测器210b就将该检测的特征212传递到检测跟踪器220b以对该墙壁特征执行跟踪过程。
80.附加地或替代地,当使用楼梯下降跟踪器200b时,检测器210b确定楼梯20集合内的楼梯20的宽度,并假设该宽度对于该集合内的所有楼梯20是恒定的。在一些配置中,检测器210b在一个水平方向上搜索传感器数据134,并且基于在该水平方向上检测的墙壁212w和机器人100的已知位置,检测器210b假定检测的墙壁212w的位置用于相对的墙壁28。这些方法可以与标识楼梯20的每个端部上的宽度的楼梯上升跟踪器200a形成对比。
81.参考图2r至图2u,除了检测地板边缘26f和一个或多个墙壁28(即,机器人100的横向边界)之外,检测器210b还能够检测楼梯20或楼梯间的楼梯特征(例如,当机器人100下楼梯时)。也就是说,这里,楼梯特征是指楼梯20的特征,其不包括地板的特征(例如,地板边缘26f)和(多个)墙壁28的特征(例如,踏面22、竖板24、边缘26等)。在一些示例中,检测器210b被配置为在首先执行关于地板边缘26f(即,用于下楼梯间的起始点和参考线)的检测和围绕楼梯间的一个或多个墙壁28的检测之后检测楼梯20的特征。通过在检测到一个或多个墙壁28之后执行楼梯特征的检测,检测器210b在检测到这些楼梯特征时从其检测区域ad中排除(多个)墙壁28的位置。例如,检测器210b滤除先前被标识为可能对应于墙壁28的传感器数据134。
82.在一些示例中,检测器210b基于单个维度对传感器数据134进行聚类,z坐标对应于传感器数据134内的点的高度位置。如前所述,高度或z坐标是指沿着z轴az(即,平行于机器人100的重力轴)的坐标位置。为了基于高度位置对传感器数据134进行聚类,检测器210b基于高度对传感器数据134的点进行排序,标识高度顺序内的峰值(例如,与三角形核卷积),并且基于所标识的峰值对传感器数据134的点进行分组。换句话说,当基于高度对传感器数据134的点进行排序时,检测器210b识别出存在高度范围的带(例如,对应于楼梯间结构的离散高度间隔)。在具有三个楼梯20的楼梯间中,高度范围可对应于第一楼梯20、20a的第一踏面高度、第二楼梯20、20b的第二踏面高度和第三楼梯20、20c的第三踏面高度。通过
标识这些高度增量或峰值,检测器210能够对传感器数据134的点进行聚类。检测器210b可以根据需要合并聚类cl以细化其对聚类cl的分组。在一些配置中,高度聚类cl经历与其他检测的特征212相同的检测和跟踪过程。
83.在一些实施方式中,聚类cl还包括指示相应聚类的高度对应于楼梯20(例如,楼梯20的踏面22)的置信度的聚类置信度。例如,在图2r中,每个聚类cl由具有指示检测器对聚类cl的置信度的直径或大小的球体在视觉上表示。在一些配置中,聚类cl中的置信度基于聚类cl中的点的数量(例如,统计地增加高度正确地对应于楼梯20的可能性)。作为示例,图2r示出了由于第三聚类cl3的直径被表示为小于其他聚类cl,所以检测器210b对第三聚类cl、cl3的信心低于对其他聚类cl的信心。当机器人100在楼梯下降跟踪器200b操作时正在下楼梯20时,检测器210b可以包括标识机器人100成功踏上楼梯间的位置的脚步信息fs、fs
1-4。
通过包括脚步信息fs,检测器210b可以细化其聚类置信度。换句话说,由于楼梯20本质上以离散的高度间隔出现,因此成功的脚步fs意味着在该脚步高度处或附近的聚类cl是正确的;导致检测器210b显著增加与聚类cl相关联的置信度。例如,在第一楼梯20、20a处的第一脚步fs、fs1和第二楼梯20、20b处的第二脚步fs、fs2的情况下,检测器210b可以确定第一楼梯20a和第二楼梯20b之间的高度间隔,并将该间隔应用于聚类cl以更新聚类置信度。例如,检测器210b增加存在于作为第一楼梯20a和第二楼梯20b之间的高度间隔的整数倍的高度处的聚类cl的聚类置信度。在一些示例中,检测器210b仅在聚类cl发生在机器人100成功踏上楼梯间的楼梯20的位置处或附近时增加聚类cl的置信度。
84.当检测楼梯特征时,检测器210b可以将单个楼梯20的边缘26检测为检测的特征212,非常像它检测到地板边缘26f。换句话说,检测器210b可以将传感器数据134或传感器数据134的聚类cl分类为楼梯踏面c、c
t
(如地板分类cf)和楼梯踏面下方的c、c
bt
(如地板下方分类c
bf
)。这里,图2t示出了已经被分类为楼梯踏面分类c
t
和楼梯踏面下方分类c
bt
的传感器数据134。基于与楼梯20的踏面22相关的传感器数据134的分类,检测器210b可经配置以执行经分类传感器数据的一维搜索或二维搜索(例如,如地板边缘的检测)以检测楼梯20的边缘26。当检测器210b执行一维搜索时,检测器210b在一维高度信息中搜索传感器数据134,并假设边缘26平行于当机器人100最初接近下降楼梯20时由楼梯下降跟踪器200b的检测和跟踪过程先前确认的检测的地板边缘212、212e。通过执行二维搜索和边缘检测,与一维搜索不同,检测器210b可以能够检测具有边缘26的弯曲的楼梯20的集合,边缘26不一定平行于楼梯间内的楼梯20的其他边缘26。在一些配置中,检测器210b使用多模态或混合搜索方法,其中检测器210b首先尝试基于二维搜索生成楼梯20的检测的边缘212、212e,但是如果传感器数据134是问题或者如果检测器210b确定其对二维搜索的检测的边缘212e的置信度不满足搜索置信度阈值,则恢复到一维搜索。
85.上升和下降之间的差异之一是,由于楼梯20的集合的重复性质,下降必须经常处理差的传感器数据134。相当频繁地,下降时或下降之前的传感器数据134可能随着时间和空间的变化而始终差。由于差的传感器数据134的高可能性,检测器210b被配置为假设高度聚类cl中的一些高度聚类对应于楼梯间的真实楼梯20,而其他高度聚类不对应于楼梯间的真实楼梯20;而在实际楼梯间中也可能存在不对应于传感器数据134的任何聚类cl的楼梯20。基于这些假设,检测器210b生成由检测器210b标识的聚类cl的所有可能的楼梯对准al。这里,楼梯对准al是指楼梯20的潜在序列,其中序列的每个楼梯20处于可以对应于所标识
的聚类cl的特定高度间隔。当生成所有可能的楼梯对准al时,检测器210b可从楼梯对准al插入或移除潜在楼梯。
86.为了说明,图2u描绘了检测器210b标识出四个聚类cl,cl
0-3
。这里,在第一聚类c0和第二聚类c1之间存在大的高度间隙。这样,检测器210b生成对准al,其中潜在的楼梯(例如,描绘为s)位于第一聚类c0和第二聚类c1之间的某个高度处(例如,在第三高度h3处示出的潜在楼梯)。当评估所有可能的对准al时,检测器210a可以确定对准al内的潜在楼梯是否以具有反映实际楼梯的均匀间隔的高度间隔出现。在该示例中,在每个标识的聚类cl处具有潜在楼梯的第一对准al、al1不能在对应于第一聚类clo和第二聚类cl1的潜在楼梯之间具有均匀的间隔。第二对准al、al2不包括对应于第三聚类c、c2的潜在楼梯,但是由于第一高度h1和第五高度h5之间的大高度间隙,该第二对准al2中的潜在楼梯的序列仍然不能在每个潜在楼梯之间具有均匀的间隔。对于第三对准al、al3,检测器210b在第三高度h3处在第一聚类c0和第二聚类c1之间的间隙中产生潜在楼梯,但是该第三对准al3也不能在每个潜在楼梯之间具有均匀的间隔。例如,与第三高度h3处的潜在楼梯相比,第六高度h6处的潜在楼梯在邻近楼梯之间具有不同的间隔。在由检测器210b生成的第四对准al、al4中,检测器210b不将潜在楼梯与第三聚类cl、cl2相关联,并且还在第三高度h3处生成潜在楼梯。此处,此潜在楼梯序列确实具有均匀间隔,且因此,检测器210b确定第四对准al4是最佳楼梯对准候选者218(例如,如此对准序列周围的框所示)。在一些配置中,检测器210b对对准al中的每一个进行评分,并选择具有最佳分数(例如,取决于评分系统的最高或最低分数)的对准al作为最佳楼梯对准候选218。在这些配置中,分数可以并入其他基于检测或跟踪的信息,诸如聚类置信度、形成聚类的点的量、和/或先前跟踪和确认的楼梯检测。
87.尽管图2r到2u说明检测器210b检测多于一个楼梯20的过程,但检测器210可在此多楼梯检测过程期间间歇地标识楼梯特征(例如,边缘26)。当这发生时,这些检测的特征212可以被传递到检测跟踪器220b并且随后被并入楼梯模型202内。附加地或替代地,可修改或消除由此多楼梯检测过程执行的不同操作,但仍导致由检测器210b检测的特征212。例如,发生所述过程以检测单个楼梯20或楼梯20的一部分。在另一示例中,检测器210b不利用脚步信息fs。
88.参考图3a-3e,在一些实施方式中,机器人100包括楼梯监管器300。机器人100的系统可以能够以几种不同的方式处理楼梯穿过。例如,机器人100可以根据感知系统180、楼梯跟踪器200(例如,以楼梯模式)或者结合楼梯跟踪器200使用感知系统180来导航楼梯20。由于这些选项,楼梯监管器300被配置为管理使用这些方法中的哪一种和/或何时使用它们,以便优化机器人100的导航和操作。这里,楼梯监管器300的使用还可以通过在来自感知系统180的地图182和来自楼梯跟踪器200的楼梯模型202之间执行合并操作来帮助最小化实现一个选项相对于另一个选项的特定弱点。一般而言,楼梯监管器300包括主题障碍物合并器310、无步进合并器330、地面高度分析器320和查询接口340。在一些配置中,楼梯监管器300的一个或多个功能可以在机器人100的其他系统中执行。例如,图3a将查询接口340描绘为控制系统170内的虚线框,因为其功能可以并入控制系统170中。
89.继续参考图3a,在一些配置中,楼梯监管器300与控制系统170、感知系统180和楼梯跟踪器200通信。楼梯监管器300从感知系统180接收地图182并且从楼梯跟踪器200接收楼梯模型202。利用这些输入,楼梯监管器300建议控制系统170何时应该使用来自楼梯跟踪
器200的信息、来自感知系统180的信息或两者的某种组合来导航楼梯20。例如,楼梯监管器300的每个合并器组件310、330可以被配置为将楼梯模型202的各方面与感知系统180的一个或多个地图182合并(例如,形成增强的楼梯模型或增强的感知地图)。在一些示例中,楼梯监管器300将所得的合并地图传送到控制系统170,以使得控制系统170能够基于这些合并地图中的一个或多个来控制机器人100的操作(例如,增强的无步进地图332和/或增强的主体障碍物地图312)。除了接收这些合并地图之外,控制系统170还可以分别从楼梯跟踪器200和感知系统180接收未修改的楼梯间模型202和地面高度地图182。
90.参考图3b,在一些示例中,楼梯监管器300的主体障碍物合并器310被配置为将主体障碍物地图182c和楼梯模型202合并成增强的主体障碍物地图312。当合并主体障碍物地图182c和楼梯间模型202时,主体障碍物合并器310可以标识在楼梯间中的位置处,楼梯间模型200不指示障碍物的存在,而主体障碍物地图182c不一致并且指示障碍物。这里,当所标识的障碍物满足特定标准314时,可以将由主体障碍物地图182c标识的障碍物合并到增强的主体障碍物地图312中。当不满足标准314时,障碍物不包括在增强的主体障碍物地图312中。在这种情况下,关注的是楼梯间上的某物不是楼梯间模型202的一部分,并且应该在导航期间避免。在一些示例中,标准314对应于感知系统180存在于楼梯20上的障碍物满足置信度阈值的置信度。在这些示例中,置信度阈值可以对应于高于平均值或超过正常置信度水平的置信度。在一些配置中,标准314要求所标识的障碍物存在于相对于楼梯间的特定高度处,以指示所标识的障碍物最可能存在于楼梯间上。通过将标准314设置为要求所标识的障碍物存在于特定高度(例如,阈值障碍物高度),标准314试图避免感知系统180部分地观看楼梯20并将楼梯20本身错误地分类为障碍物的情况。阈值障碍物高度可以被配置在距楼梯间的楼梯20的高度的某个偏移距离处。标准314的一些其他示例包括多少点云点已经被标识为对应于障碍物,针对障碍物的传感器数据134的密度有多大,和/或障碍物内的其他特性是否类似于噪声或固体对象(例如,填充率)。
91.当感知系统180标识其感知(即,映射)与楼梯跟踪器200的楼梯间模型202之间的差异时,如果机器人100处于格栅地板模式,则通常忽略该差异。这里,格栅地板可能导致机器人的(多个)传感器132的问题,从而影响感知系统180的感知。因此,如果机器人100主动地参与格栅地板模式,则楼梯监管器300被配置为信任由楼梯跟踪器200而不是感知系统180进行的标识,因为楼梯跟踪器200已经被专门设计用于具有差的传感器数据134的场景,诸如格栅地板。
92.参考图3c,在一些配置中,楼梯监管器300的地面高度分析器320被配置为标识楼梯间模型202中应该被地面高度地图182a的高度数据覆盖的位置。为了标识这些位置,分析器320接收地面高度地图182a并在地图182a内的楼梯间的位置处或附近搜索地面高度地图182a,以确定地面高度地图182a的段的高度是否超过对应位置中的楼梯间的高度。在一些示例中,地面高度分析器330包括高度阈值322或其他形式的标准322(例如,类似于主体障碍物合并器310的标准314),使得地面高度分析器320确定地面高度地图182a内的高度满足高度阈值322或其他形式的标准322。在一些配置中,当分析器320标识应该被来自地面高度地图182a的高度数据覆盖的楼梯间模型202中的位置时,分析器320生成指示符324并将该指示符324与楼梯间模型202相关联以指示楼梯间模型202在该特定位置被覆盖。在一些示例中,分析器320将指示符与包括该位置的楼梯间模型202的楼梯20相关联,而不是生成用
于楼梯间模型202内的特定位置的指示符324。这里,指示符324可以不包括楼梯间模型202如何被覆盖(例如,在什么高度处覆盖楼梯间模型202),而是简单地模型202实际上被覆盖(例如,在特定楼梯20上的某个位置处)。该指示可以起作用,使得每当查询接口340想要知道关于位置的信息时,查询接口340不需要查询地面高度地图182a和楼梯间模型202两者。相反,查询接口340可以仅查询楼梯间模型202,并且在少数情况下,被告知存在覆盖;因此必须随后查询地面高度地图182a。在一些实施方式中,当分析器320确定应该被地面高度地图182a的高度数据覆盖的楼梯间模型202内的位置时,分析器320扩张该位置处的特征,以便包括对应于高度数据的对象/障碍物的精确位置周围的安全容限。
93.参考图3d,在一些示例中,楼梯监管器300的无步进合并器330被配置为合并无步进地图182b和楼梯间模型202以形成修改的无步进地图332。为了形成修改的无步进地图332,无步进合并器330在修改的无步进地图332中生成对应于楼梯间模型202的一些特征附近的区域的无步进区域。例如,无步进合并器330在修改的步进地图332中针对每个楼梯20的边缘26上方和下方的特定距离不生成步进区域,并且在墙壁28的特定距离内不生成步进区域。
94.另外,无步进合并器330在修改的步进地图332中在楼梯间模型202被地面高度地图182a覆盖的位置处不生成步进区域。例如,无步进合并器330标识楼梯间模型202的对应于覆盖o的每个楼梯20。基于该确定,无步进合并器330将每个标识的楼梯20分成段或条带(例如,指定宽度的竖直列),并确定哪些条带包括覆盖o。例如,图3d示出了五个楼梯20、20a-e中的第二楼梯20、20b和第四楼梯20d,每个楼梯具有覆盖o(例如,第一覆盖o、o1和第二覆盖o、o2)。然后可以由无步进合并器330将具有覆盖o的每个柄指定为无步进区域。在一些示例中,无步进合并器330将无步进区域扩张为容限或缓冲,以确保机器人100的脚124和机器人100的结构的任何其他部分都不意外地与对象碰撞。
95.在一些实施方式中,诸如图3e,查询接口340在控制系统170、感知系统180和楼梯跟踪器200之间对接。例如,控制系统170的控制器172可以询问查询接口340在楼梯20上的特定位置处的高度。查询接口340进而将第一查询342、342a传送到楼梯跟踪器200,询问楼梯跟踪器200是否具有针对楼梯20上的特定位置处的高度的答案(即,楼梯间模型202是否具有答案)。这里,楼梯跟踪器200可以响应否、是、或是但是对于该楼梯20存在覆盖o。当楼梯跟踪器200响应否时,查询接口340向感知系统180查询楼梯20上的特定位置处的高度,因为作为默认导航系统的感知系统180将固有地具有答案。当楼梯跟踪器200响应是时,楼梯跟踪器200返回具有楼梯上的特定位置处的高度的响应。当楼梯跟踪器200通知查询接口340在该特定楼梯20上存在覆盖o时,查询接口340向感知系统180发送第二查询342、342b以标识楼梯跟踪器200是否在楼梯20上的特定位置处被覆盖。当对该第二查询342b的回答为是时,查询接口340从感知系统180请求高度。当对此第二查询342b的回答为否时,查询接口340可返回到楼梯跟踪器200以检索高度位置。在这些示例中,楼梯跟踪器200被配置为响应是或否。在这些示例中,当楼梯跟踪器200做出肯定响应时,查询接口340进一步细化查询342以询问是否存在针对包括特定位置的楼梯20的覆盖o。
96.在一些配置中,机器人100的操作者或用户命令或激活机器人100的楼梯模式。当机器人100处于楼梯模式时,楼梯跟踪器200变为激活的(即,从非激活状态)。利用激活楼梯跟踪器200,楼梯监管器300可以在环境内的楼梯20的集合被检测和跟踪时执行其功能。在
一些实施方式中,楼梯跟踪器200总是激活的(即,不必从非激活状态变为激活的),并且总是激活的楼梯跟踪器200确定机器人100是否应该进入楼梯模式(例如,利用楼梯监管器300)。
97.当楼梯跟踪器200是激活的时,机器人100可以在其行进速度方面受到约束。在一些示例中,机器人100的速度被约束为检测的楼梯的平均斜率或实际斜率的函数。在一些实施方式中,激活楼梯跟踪器200使得机器人100能够选择速度限制以将机器人的步幅长度与检测的楼梯间的步长匹配(例如,每个楼梯步生成一个脚步)。例如,当楼梯跟踪器200是激活的时,控制系统170可以被配置为选择具有实现每个楼梯步一个脚步的节奏的控制器172。附加地或替代地,当楼梯跟踪器200是激活的时,楼梯跟踪器200可以具有相关联的专用楼梯控制器,其已经针对速度、节奏、步幅长度等方面进行了优化。
98.在一些示例中,当楼梯跟踪器200是激活的时,机器人100参与避障调谐。例如,当楼梯跟踪器200指示机器人100实际上在楼梯间上时,机器人100可以改变其执行避障的方式。当存在障碍物约束时,避障通常基于沿着障碍物边界的直线而发生。这里,该直线的朝向可能是重要的,特别是在诸如楼梯间的潜在受限环境中。因此,当楼梯跟踪器200是激活的并且楼梯间上的障碍物看起来类似于楼梯间的墙壁时,机器人100可以将墙壁障碍物的朝向重新限定为平行于楼梯间的方向(即,非常像楼梯间墙壁通常平行于楼梯间的方向)。这使得在楼梯20上避障更容易一点。
99.在一些实施方式中,当楼梯跟踪器200是激活的时,楼梯跟踪器200应用或致使应用特定于楼梯的步进规划器约束。例如,步进规划器约束对应于试图防止机器人100相对于对侧腿120一次上或下多于一个楼梯20的软约束。这里,软约束是指机器人100被促使遵守但在极端或重要条件下被允许违反(例如,满足硬约束)的约束。另一种形式的步进规划器约束可以是标识何时太晚而不能切换给定楼梯20处的触地位置的约束。利用楼梯的简化几何形状,机器人100的系统可以计算何时切换楼梯触地位置太晚。为了执行该分析,机器人100可以使用界定摆动腿120
sw
的脚124的当前位置上方的楼梯20和下方的楼梯20的边缘的四个潜在约束。在每个时间步,机器人100基于摆动腿120
sw
的当前位置和速度以及在触地之前剩余多少时间来检查摆动腿120
sw
是否能够越过这四个潜在约束。如果在特定时间步,不可能越过这四个潜在约束,则机器人100引入硬约束,该硬约束定义改变楼梯触地位置太晚。
100.可选地,当楼梯跟踪器200是激活的时,机器人100的控制系统170可以提供一种形式的道路辅助,使得机器人100穿过楼梯间的中心。当机器人100的操作者使用远程控制器(例如,具有操纵杆)来驱动机器人100时,道路辅助特征可以用于自动地朝向楼梯间的中心驱动机器人100;消除了某些形式的潜在操作者错误。然而,在道路辅助的情况下,如果操作者实际上正在提供驱动机器人远离中心的输入,则道路辅助屈服于这些手动控制。例如,当用户命令与道路辅助功能相反时,道路辅助特征完全关闭。
101.楼梯跟踪器200还可以帮助防止当摆动腿120
sw
接触楼梯20的边缘26时发生的悬崖刮擦。例如,仅使用感知系统180,楼梯20的几何形状相当复杂,因为感知系统180使用三厘米分辨率的块。当主要使用楼梯跟踪器200或与感知系统180组合使用楼梯跟踪器200时,可以简化楼梯几何形状,使得可以在距楼梯20的边缘26的阈值距离处实现对升降到楼梯20的上升部26和边缘26上方的摆动腿120
sw
的控制,以防止悬崖刮擦。
102.图4是用于生成楼梯间模型的方法的操作的示例布置的流程图。在操作402,方法400接收与楼梯间20邻近的机器人100的传感器数据134。对于楼梯间20的每个楼梯20,方法400执行操作404a-c。在操作404a,方法400在第一时间步长ti基于传感器数据134检测相应楼梯20的边缘26。在操作404b处,方法400通过将来自第一时间步长ti的检测的边缘212与在第二时间步长t
i 1
处的替代的检测的边缘224进行比较来确定检测的边缘212是否是最可能的步进边缘候选222。这里,第二时间步长t
i 1
发生在第一时间步长ti之后。在操作404c,当检测的边缘212是最可能的步进边缘候选222时,方法400基于检测的边缘212周围的传感器数据高度来定义相应楼梯20的高度。在操作406,方法400生成楼梯间模型202,该楼梯间模型202包括具有在相应定义的高度处的相应边缘26的楼梯20。
103.图5是用于基于融合的建模和感知地形来控制机器人的方法的操作的示例布置的流程图。在操作502,方法500接收机器人100的环境10周围的传感器数据134。在操作504,方法500基于与所接收的传感器数据134相对应的体素来生成地图182的集合。该地图182的集合包括地面高度地图182a和机器人100的移动限制地图182。移动限制地图182标识机器人100应该避免进入的环境10内的非法区域。在操作506,方法500基于传感器数据134为环境10内的楼梯20的集合生成楼梯模型202。在操作508,方法500合并楼梯模型202和移动限制地图182以生成增强的楼梯地图。在操作510,方法500基于增强的楼梯地图或地面高度图182a来控制机器人100穿过环境10。
104.图6是可以用于实现本文档中描述的系统(例如,控制系统170、感知系统180、楼梯跟踪器200和楼梯监管器300)和方法(例如,方法400、500)的示例计算设备600的示意图。计算设备600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的本发明的实施方式。
105.计算设备600包括处理器610(例如,数据处理硬件142、162)、存储器620(例如,存储器硬件144、164)、存储设备630、连接到存储器620和高速扩展端口650的高速接口/控制器640、以及连接到低速总线670和存储设备630的低速接口/控制器660。组件610、620、630、640、650和660中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器610可以处理用于在计算设备600内执行的指令,包括存储在存储器620中或存储设备630上的指令,以在外部输入/输出设备(诸如耦接到高速接口640的显示器680)上显示图形用户接口(gui)的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多个类型的存储器。此外,可以连接多个计算设备600,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
106.存储器620在计算设备600内非暂时性地存储信息。存储器620可以是计算机可读介质、(多个)易失性存储器单元或(多个)非易失性存储器单元。非暂时性存储器620可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备600使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器
(pcm)以及磁盘或磁带。
107.存储设备630能够为计算设备600提供大容量存储。在一些实施方式中,存储设备630是计算机可读介质。在各种不同的实施方式中,存储设备630可以是软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在被执行时执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器620、存储设备630或处理器610上的存储器。
108.高速控制器640管理计算设备600的带宽密集型操作,而低速控制器660管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器640耦接到存储器620、显示器680(例如,通过图形处理器或加速器),并且耦接到高速扩展端口650,高速扩展端口650可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器660耦接到存储设备630和低速扩展端口690。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口690可以例如通过网络适配器耦接到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或诸如交换机或路由器的联网设备。
109.计算设备600可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器600a或者在一组这样的服务器600a中被多次实现,被实现为膝上型计算机600b,被实现为机架服务器系统600c的一部分,或者被实现为机器人100。
110.本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件、和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,耦接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。
111.这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
112.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,例如fpga(现场可编程门阵列)或asic(专用集成电路)。作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦接以从一个或多个大容量存储设备接收数据
或将数据传输到一个或多个大容量存储设备或两者。然而,计算机不需要具有这样的设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
113.为了提供与用户的交互,本公开的一个或多个方面可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)、lcd(液晶显示器)监视器或触摸屏)以及可选的键盘和指点设备(例如,鼠标或轨迹球)的计算机上实现,用户可以通过该键盘和指点设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求而向用户的客户端设备上的网络浏览器发送网页。
114.已经描述了许多实施方式。然而,应该理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献