首页> 中国专利> 从脚步中识别台阶

从脚步中识别台阶

摘要

一种识别台阶(20)的方法包括接收机器人(100)的多个脚步位置(128)。每个相应的脚步位置指示机器人的腿(120)接触支撑表面(12)的位置。该方法还包括确定多个候选脚步位置对(212),其中候选脚步位置对包括第一和第二候选脚步位置。该方法还包括基于第一候选脚步位置的高度将第一候选脚步位置聚类到第一聚类组(222),以及基于第二候选脚步位置的高度将第二候选脚步位置聚类到第二聚类组。该方法还包括通过将每个聚类组表示为对应的台阶并基于每个相邻聚类组之间的相应中点(MP)描绘每个台阶来生成台阶模型(202)。

著录项

  • 公开/公告号CN115667061A

    专利类型发明专利

  • 公开/公告日2023-01-31

    原文格式PDF

  • 申请/专利权人 波士顿动力公司;

    申请/专利号CN202180040462.4

  • 发明设计人 A.科莫罗斯基;

    申请日2021-03-18

  • 分类号B62D57/024;B62D57/032;

  • 代理机构北京市柳沈律师事务所;

  • 代理人戚乐

  • 地址 美国马萨诸塞州

  • 入库时间 2023-06-19 18:27:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-01-31

    公开

    国际专利申请公布

说明书

技术领域

本公开涉及从脚步(footfall)中识别台阶。

背景技术

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

发明内容

本公开的一个方面提供了一种从脚步中识别台阶的方法。该方法包括在数据处理硬件处接收穿越环境的机器人的多个脚步位置。这里,每个相应的脚步位置指示机器人的腿接触机器人下方的支撑表面的位置。该方法还包括由数据处理硬件基于多个脚步位置确定多个候选脚步位置对。候选脚步位置对包括相应的第一候选脚步位置和相应的第二候选脚步位置。该方法还包括由数据处理硬件基于相应的第一候选脚步位置的高度将相应的第一候选脚步位置聚类到第一相应的聚类组。该方法还包括由数据处理硬件基于相应的第二候选脚步位置的高度将相应的第二候选脚步位置聚类到第二相应的聚类组。该方法还包括由数据处理硬件通过将每个聚类组表示为机器人环境中的一组台阶中的对应台阶并且基于每个相邻聚类组之间的相应的中点描绘每个台阶来生成台阶模型。

本公开的实现方式可以包括一个或多个以下可选特征。在一些示例中,该方法还可以包括对于由相应的第一脚步位置和多个脚步位置中与相应的第一脚步位置在位置上相邻的相应的第二脚步位置定义的每对相邻的脚步位置,由数据处理硬件确定相应的第一脚步位置和相应的第二脚步位置之间的垂直距离是否满足台阶高度阈值,该台阶高度阈值对应于台阶竖板的高度。在一些配置中,该方法还包括由数据处理硬件确定相应的第一脚步位置和相应的第二脚步位置之间的水平距离是否满足台阶深度阈值,其中该台阶深度阈值对应于台阶踏板的深度。可选地,当(i)垂直距离满足台阶高度阈值并且(ii)水平距离满足台阶深度阈值时,该方法还包括由数据处理硬件将相应的一对相邻的脚步位置识别为多个候选脚步位置对中的相应的一个。

在一些实现方式中,多个聚类组指示台阶模型的方位,该方位对应于一组台阶在环境内上升或下降的矢量方向。这里,在针对多个候选对的每个候选脚步位置对将相应的第一脚步位置和相应的第二脚步位置中的每一个聚类到相应的聚类组之后,该方法可包括由数据处理硬件在相应的聚类组中识别第一聚类组和与第一聚类组相邻的第二聚类组,所识别的第一和第二聚类组各自可以包括一个或多个相应的候选脚步位置。该方法还包括由数据处理硬件确定第一聚类组中的一个或多个候选脚步位置中的相应的第一候选脚步位置和第二聚类组中的一个或多个候选脚步位置中的相应的第二候选脚步位置,相应的第一候选脚步位置与相应的第二候选脚步位置相隔最小水平距离,以及由数据处理硬件在第一聚类组中所识别的相应的第一候选脚步位置和第二聚类组中所识别的相应的第二候选脚步位置之间的水平中点处为台阶模型生成台阶边缘。可选地,多个聚类组指示台阶模型的方位,该方位对应于一组台阶在环境内上升或下降的矢量方向,以及台阶边缘在垂直于多个聚类组的方位的矢量方向的方向上延伸。

此外,该方法可以包括由数据处理硬件将台阶模型通信传输到控制系统,用于机器人在自主驱动模式下导航由台阶模型表示的台阶。该方法还包括,在生成台阶模型之后,当机器人穿越环境时,由数据处理硬件检测机器人正在接近由台阶模型表示的位置,以及由数据处理硬件将机器人定向到台阶模型的方位,该方位对应于一组台阶在环境内上升或下降的矢量方向。在一些示例中,定向机器人可以包括引导机器人上的传感器来面向由台阶模型定义的矢量方向。该方法可以包括由数据处理硬件用台阶模型来扩充环境的感知地图。在一些实现方式中,机器人是四足机器人。

本公开的另一方面提供了一种被配置为从脚步中识别台阶的机器人。该机器人包括身体、耦接到身体并且被配置为穿越环境的两条或更多条腿、以及与机器人通信的台阶建模系统。建模系统包括数据处理硬件和与数据处理硬件通信的存储器硬件,该存储器硬件存储指令,该指令在数据处理硬件上执行时使数据处理硬件执行操作。该操作包括接收穿越环境的两条或更多条腿的多个脚步位置,每个相应的脚步位置指示机器人的两条或更多条腿之一接触机器人下方的支撑表面的位置。该操作还包括基于多个脚步位置确定多个候选脚步位置对,每个候选脚步位置对包括相应的第一候选脚步位置和相应的第二候选脚步位置。对于多个候选脚步位置对中的每个候选脚步位置对,该操作还包括基于相应的第一候选脚步位置的高度,将相应的第一候选脚步位置聚类到第一相应的聚类组,以及基于相应的第二候选脚步位置的高度,将相应的第二候选脚步位置聚类到第二相应的聚类组。该操作还包括通过将每个聚类组表示为机器人环境中的一组台阶中的对应台阶并且基于每个相邻聚类组之间的相应的中点描绘每个台阶来生成台阶模型。

本公开的实现方式可以包括一个或多个可选特征。在一些实现方式中,对于由相应的第一脚步位置和多个脚步位置中与相应的第一脚步位置在位置上相邻的相应的第二脚步位置定义的每对相邻的脚步位置,该操作包括确定相应的第一脚步位置和相应的第二脚步位置之间的垂直距离是否满足台阶高度阈值,该台阶高度阈值对应于台阶竖板的高度。该操作还包括确定相应的第一脚步位置和相应的第二脚步位置之间的水平距离是否满足台阶深度阈值,该台阶深度阈值对应于台阶踏板的深度,以及当(i)垂直距离满足台阶高度阈值并且(ii)水平距离满足台阶深度阈值时,将相应的一对相邻的脚步位置识别为多个候选脚步位置对中的相应的一个。

在一些示例中,多个聚类组指示台阶模型的方位,该方位对应于一组台阶在环境内上升或下降的矢量方向。在一些配置中,在针对多个候选对的每个候选脚步位置对将相应的第一脚步位置和相应的第二脚步位置中的每一个聚类到相应的聚类组之后,该操作还包括在相应的聚类组中识别第一聚类组和与第一聚类组相邻的第二聚类组。在这些示例中,所识别的第一和第二聚类组各自可以包括一个或多个相应的候选脚步位置。这里,该操作还可以包括确定第一聚类组中的一个或多个候选脚步位置中的相应的第一候选脚步位置和第二聚类组中的一个或多个候选脚步位置中的相应的第二候选脚步位置。附加地或替代地,该操作还可以包括相应的第一候选脚步位置与相应的第二候选脚步位置相隔最小水平距离,以及在第一聚类组中所识别的相应的第一候选脚步位置和第二聚类组中所识别的相应的第二候选脚步位置之间的水平中点处为台阶模型生成台阶边缘。

在一些配置中,多个聚类组指示台阶模型的方位,其中该方位对应于一组台阶在环境内上升或下降的矢量方向。这里,台阶边缘在垂直于多个聚类组的方位的矢量方向的方向上延伸。该操作还可以包括将台阶模型通信传输到控制系统,用于机器人在自主驱动模式下导航由台阶模型表示的台阶。该操作还可以包括,在生成台阶模型之后,当机器人穿越环境时,检测机器人正在接近由台阶模型表示的位置,以及将机器人定向到台阶模型的方位,该方位对应于一组台阶在环境内上升或下降的矢量方向。定向机器人可以包括引导机器人上的传感器来面向由台阶模型定义的矢量方向。可选地,操作可以包括用台阶模型来增强环境的感知地图。在一些示例中,两条腿或更多条腿可以包括定义四足机器人的四条腿。

本公开的一个或多个实现方式的细节在附图和以下说明中阐述。根据说明书和附图以及权利要求书,其他方面、特征和优点将变得显而易见。

附图说明

图1A是站在楼梯的平台顶部的示例机器人的透视图。

图1B是图1A的机器人的示例系统的示意图。

图1C是图1A的机器人穿越的示例环境的透视图。

图2A-图2C是图1A的机器人的示例台阶检测器的示意图。

图3是用于从脚步中识别台阶的方法的示例操作布置的流程图。

图4是可用于实现本文描述的系统和方法的示例计算设备的示意图。

不同附图中相同的参考符号表示相同的元件。

具体实施方式

当有腿机器人在环境周围操纵时,机器人可能会遇到需要精确的腿移动和脚放置(即,远端放置)的地形(例如,人造结构)。为了提供精确的腿移动和脚放置,当机器人的系统识别不同类型的地形时,机器人的移动控制系统可以约束机器人的移动以穿越该地形,以便防止可能导致机器人的灾难性问题的错误,甚至是小错误。例如,当人类穿越台阶时,该任务需要一定程度的协调(例如,眼到脚的协调)。没有协调,人可能会失足、滑动、绊倒或跌倒在台阶上。机器人可能遇到同样的不幸,但缺乏天生的协调性。因此,机器人需要系统和方法来协调精确的腿移动。

图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的损坏。

台阶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上方凸出。一组台阶20可以在平台或支撑表面12之前或包括平台或支撑表面12(例如,水平支撑表面)。例如,平台是指在一组台阶20的顶部或在台阶20之间的位置的水平平台或支撑表面12。例如,在台阶20的方向改变的地方或者在特定数量的台阶20之间(即,连接两个楼层的一段台阶20)出现平台。图1A示出了机器人100站在一组台阶20顶部的平台上。

类似台阶的地形更一般地是指高度在一定距离上变化的地形。类似台阶的地形在海拔变化方面可能类似于台阶(例如,随着海拔的增加而倾斜的坡度或随着海拔的下降而下降的坡度)。然而,对于类似台阶的地形,踏板22和竖板24的轮廓并不明显。相反,类似台阶的地形可以指具有类似踏板的部分的地形,该类似踏板的部分允许机器人具有足够的抓地力来植入站立肢,并且顺序地或同时地使用前肢在该地形内的相邻垂直障碍物(类似于竖板)上上升或下降。例如,类似台阶的地形可能包括碎石、倾斜的岩石攀爬物、损坏或恶化的传统台阶等。

参考图1A,机器人100包括身体110,身体110具有基于运动(locomotion)的结构,例如耦接到身体110的腿120a-d,使得机器人100能够在环境10周围移动。在一些示例中,每条腿120是可铰接结构,使得一个或多个关节J准许腿120的构件122移动。例如,每条腿120包括将腿120的上部构件122、122

为了穿越地形,每条腿120具有接触地形表面12(即抓地表面)的远端124。换句话说,腿120的远端124是机器人100使用的腿120的端部,以在机器人100的运动期间枢转、植入或通常提供抓地力。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,腿120的远端124包括踝关节J

机器人100具有沿着重力方向的垂直重力轴(例如,显示为Z方向轴A

当有腿机器人在环境10周围移动时,机器人的腿120经历步态周期。通常,当腿120触地或接触支撑表面12时,步态周期开始,并且当同一条腿120再次接触支撑表面12时,步态周期结束。在此,触地也被称为定义了基于运动的结构120的远端124落入与支撑表面12接触的点或位置的脚步。步态周期可以主要分为两个阶段,摆动阶段和站立阶段。在摆动阶段期间,腿120执行(i)从支撑表面12抬离(有时也称为脚趾离开以及站立阶段和摆动阶段之间的过渡),(ii)腿120的膝关节J

为了在环境10周围操纵,机器人100包括具有一个或多个传感器132、132a-n(例如,示为第一传感器132、132a和第二传感器132、132b)的传感器系统130。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(IMU))、力传感器和/或运动学(kinematic)传感器。传感器132的一些示例包括相机,例如立体相机、扫描光检测和测距(LIDAR)传感器或扫描激光检测和测距(LADAR)传感器。在一些配置中,机器人100在机器人100的身体110的前端(即,机器人100的头部,与机器人100的前腿120a-b相邻)处包括作为传感器132的两个立体相机,以及在机器人100的身体110的后端(与机器人100的后腿120c-d相邻)处包括作为传感器132的一个立体相机。在一些示例中,传感器132具有定义对应于传感器132的感测范围或区域的(一个或多个)对应视场F

参考图1A和1B,在一些实现方式中,传感器系统130包括连接到关节J的(一个或多个)传感器132。在一些示例中,这些传感器132耦接到操作机器人100的关节J的马达(例如,传感器132、132a-b)。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动力学134、134

当用传感器132勘测视野F

当机器人100在环境10周围操纵时,传感器系统130收集与环境10的地形和/或机器人100的结构(例如,机器人100的关节动力学和/或里程计)相关的传感器数据134。例如,图1A描绘了站在作为机器人100的环境10的一组台阶20的平台(即,水平支撑表面)上的机器人100。这里,传感器系统130收集关于一组台阶20的传感器数据134。当传感器系统130收集传感器数据134时,计算系统140被配置成存储、处理和/或向机器人100的各种系统(例如,控制系统170、感知系统180、里程计系统190和/或台阶建模器200)传送传感器数据134。为了执行与传感器数据134相关的计算任务,机器人100的计算系统140包括数据处理硬件142和存储器硬件144。数据处理硬件142被配置为执行存储在存储器硬件144中的指令,以执行与机器人100的活动(例如,移动和/或基于移动的活动)相关的计算任务。一般来说,计算系统140指的是数据处理硬件142和/或存储器硬件144的一个或多个位置。

继续参考图1A和1B,在一些示例中,计算系统140是位于机器人100上的本地系统。当位于机器人100上时,计算系统140可以是集中式的(即,在机器人100上的单个位置/区域,例如,机器人100的身体110)、分散式的(即,位于机器人100周围的各个位置处)、或者两者的混合式组合(例如,其中大多数集中式硬件和少数分散式硬件)。为了说明一些差异,分散式计算系统140可以允许处理发生在活动位置处(例如,在移动腿120的关节的马达处),而集中式计算系统140可以允许中央处理中枢与位于机器人100上的不同位置处的系统进行通信(例如,与移动腿120的关节的马达通信)。

附加地或可替代地,计算系统140包括远离机器人100的计算资源。例如,计算系统140可以经由网络150与远程系统160(例如,远程计算机/服务器或基于云的环境)通信。非常类似于计算系统140,远程系统160包括远程计算资源,例如远程数据处理硬件162和远程存储器硬件164。这里,传感器数据134或其他经处理的数据(例如,由计算系统140在本地处理的数据)可以存储在远程系统160中,并且可以被计算系统140访问。在一些示例中,计算系统140被配置成利用远程资源162、164作为计算资源142、144的扩展,使得计算系统140的资源可以驻留在远程系统160的资源上。

在一些实现方式中,如图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收集的传感器数据134。例如,这些系统170、180并行进行它们的处理,以确保机器人100在环境10中的精确的流畅运动。

在一些示例中,控制系统170包括至少一个控制器172、路径生成器174、步伐定位器176和身体规划器178。控制系统170可以被配置成与机器人100的至少一个传感器系统130和任何其他系统(例如,感知系统180、里程计系统190和/或台阶建模器200)通信。控制系统170使用硬件140执行操作和其他功能。控制器172被配置成基于来自机器人100的系统(例如,控制系统170、感知系统180、里程计系统190和/或台阶建模器200)的输入或反馈来控制机器人100移动以在环境10周围穿越。这可以包括机器人100的姿势和/或行为之间的移动。例如,控制器172控制不同的脚步步伐模式、腿模式、身体移动模式或视觉系统感测模式。

在一些示例中,控制器172包括多个控制器172,其中每个控制器172具有固定的节奏。固定的节奏指的是腿120的步伐或摆动阶段的固定的时序。例如,控制器172指示机器人100以特定频率(例如,每250毫秒、350毫秒等一步)移动腿120(例如,走一步)。利用多个控制器172,其中每个控制器172具有固定的节奏,机器人100可以通过在控制器172之间切换来经受可变的时序。在一些实现方式中,当机器人100穿越环境10时,机器人100连续切换/选择固定的节奏控制器172(例如,每3毫秒重新选择控制器170)。

在一些实现方式中,控制系统170包括专用于特定控制目的的专业控制器172。例如,控制系统170可以包括一个或多个台阶控制器172,其专用于规划和协调机器人的移动以穿越一组台阶20。例如,台阶控制器172可以确保摆动腿120

感知系统180是机器人100的用于帮助机器人100在具有各种障碍物的地形中更精确地移动的系统。当传感器132收集机器人100周围的空间(即,机器人的环境10)的传感器数据134时,感知系统180使用传感器数据134来形成环境10的一个或多个地图182。一旦感知系统180生成地图182,感知系统180还被配置为(例如,通过将传感器数据134投射到预先存在的地图上)向地图182添加信息和/或从地图182移除信息。

进一步参考图1B,里程计系统190被配置成测量机器人100在世界参考系(例如,环境10)内的位置以及机器人100在该世界参考系中移动的速度。换句话说,里程计系统190生成里程计信息192作为机器人100相对于世界参考系的特征的一个或多个估计(例如,测量)。在一些示例中,里程计系统190从诸如IMU(例如,(一个或多个)加速度计和/或(一个或多个)陀螺仪)的传感器132接收传感器数据134。利用传感器数据134,里程计系统190可以基于以下假设生成里程计信息192:当腿120的远端124与地面12接触并且不滑动时,远端124是静止的。通过将该假设与传感器数据134组合,里程计系统190生成关于机器人相对于世界参考系(例如,环境10)的运动的里程计信息192。换句话说,里程计系统190考虑了运动学和惯性测量,以产生关于机器人100相对于世界参考系的估计。

在一些配置中,机器人100被配置成自主地穿越环境10。例如,机器人100具有自主模式,当(例如,由机器人100的操作者)使用时,允许机器人100的(一个或多个)系统操作机器人100在环境10周围移动和/或在环境10内执行动作,而无需来自外部源(例如,通过向机器人100提供输入来操作或监督机器人100的实体)的进一步输入。为了使用自主模式,机器人100首先使用感知系统180勘测环境10以生成一个或多个地图182。换句话说,在自主模式之前,机器人100进行映射过程以收集将被自主或半自主穿越的环境10的传感器数据134。在一些示例中,操作者手动驱动机器人100(即,通过用户输入移动机器人100)(例如,使用远程控制器172)穿过环境10。通过机器人100首先收集其在环境10中的周围环境,映射过程向机器人100的系统提供环境上下文,以使得系统能够自主地操作机器人100。

一般来说,映射过程将机器人100校准到环境10中的特征;允许机器人100在映射过程之后具有自主或半自主操作的能力。这里,半自主指的是机器人100独立于外部输入执行某些任务(例如,专门任务)的能力。例如,机器人100具有机器人100能够在没有外部输入的情况下穿越台阶的台阶模式,或者机器人100以独立的方式包装或打开箱子的码垛模式。在一些配置中,机器人100的操作者表明(例如,开启机器人100的模式)他或她希望自主或半自主地操作机器人100(例如,用于专门的自主活动)。一旦机器人100接收到这样的表明,与机器人100相关联的系统可以提示操作者执行初始映射过程,如果机器人100之前没有执行过该过程的话。

在初始映射过程期间,机器人100试图识别环境10中的特定特征。这些特征之一是台阶20。特别地,台阶20是可能影响机器人在环境10中导航的特征。例如,当机器人100遇到台阶20时,台阶20可能对机器人100造成突然的危险。如果机器人100从上方接近台阶20,并且事先不知道台阶20的存在,则机器人100可能没有太多时间来确定突然感知到的海拔下降对于机器人100导航来说是否实际上是安全的。例如,机器人100在走廊导航时突然接近走廊的末端,并且首先感知到台阶20从垂直于走廊末端的门口上升/下降。由于传感器132不能看穿墙壁,走廊的墙壁会使直接离开走廊的台阶20对机器人100来说似乎是不可见的,直到机器人100位于台阶20的前面。取决于机器人100的步态和/或接近速度,机器人100作出的对台阶20进行导航的突然决策对于机器人100和/或其周围环境可能是有问题和/或危险的。

相反,如果机器人100知道它正在接近台阶20,机器人100可以准备对导航台阶20;增加机器人成功导航台阶20的能力。换句话说,机器人100可以定位其身体110、腿120或结构,以改善对台阶20的导航。例如,当机器人100接近台阶20时,它可以改变其传感器132的角度或高度,以增加其感知台阶20的能力(例如,避免潜在的遮挡)。机器人100可以利用其传感器132向上、向下窥视,和/或改变其身体高度以优化其对台阶结构的感知。在一些示例中,机器人100被配置成以特定的方位或姿势P(例如,对准)导航台阶20,使得机器人100使与台阶20本身的结构碰撞最小化。作为一个示例,机器人100向后下台阶(例如,首先抬起头和后腿120)以防止其运动结构120的关节与台阶20的竖板24碰撞。这里,为了向后下台阶20,机器人100可能需要转身。在一些实现方式中,机器人100可以被配置为使其自身相对于台阶20居中,以便在机器人100上/下台阶20时为机器人100提供最大的横向空间。当初始映射过程识别环境10中的台阶20时,可以预先规划用于提高机器人100导航台阶20的能力的这些特定对准中的每一个。

在一些配置中,机器人100能够自动为机器人100使用台阶模式。例如,当机器人100至少知道环境10内台阶20的大致位置时,当机器人100邻近台阶20或在台阶20的阈值距离内时,机器人100激活台阶模式。在一些实现方式中,机器人100被配置为当基于初始映射过程,机器人100意识到机器人100不在台阶20的特定范围内时,防止或警告用户或操作者使用台阶模式。通过仅在台阶20临近时(例如,在阈值距离/范围内)选择性地激活台阶模式,机器人100可以节省处理资源(例如,CPU使用率)和/或智能地使用计算资源。例如,机器人100意识到机器人100不需要检测台阶20,并且针对环境10中的其他特征优化其检测。

参考图1A-图1C,当机器人100经历初始映射过程时,机器人100在环境10中建立路点Wp、Wp

脚步128,很像足迹,是指机器人100的运动结构120的远端124接触支撑表面12的空间位置。脚步128也可互换地称为脚步位置。在一些示例中,脚步128对应于机器人100的腿120的脚124的触地。因为脚步128包括环境10中发生触地的空间位置,所以脚步128包括坐标/里程计信息以识别环境10中的位置。对应于脚步128的位置信息可以是相对位置信息(例如,相对于路点Wp或环境10中的其他特征的位置)或全球位置信息。例如,脚步128具有相对于全球世界参考系的三维坐标位置(例如,对应于x、y、z位置)。

当机器人100在初始映射过程期间穿越环境10时出现脚步128,机器人100的系统(例如,传感器系统130、感知系统180和/或里程计系统190)能够确定脚步128发生并存储脚步128(例如,在脚步128之时关于脚步128和/或机器人100的位置/接触信息)。在一些示例中,每当机器人100的脚124接触支撑表面12时,机器人100的一个或多个传感器132将该接触检测为脚步128。在一些实现方式中,机器人100的系统(例如,感知系统180和/或里程计系统190)通过查询来自接触检测传感器132(例如,测量机器人100的腿/脚120、124处经受的力的传感器132)的传感器数据134来记录脚步128,以确定在查询之时机器人100的特定脚124是否与支撑表面12接触。当传感器132指示特定脚124确实与支撑表面12接触时,机器人100的系统确定接触的位置(例如,在世界参考系中)并将该信息与脚步128一起存储。例如,感知系统180将脚步128存储在与初始映射过程期间生成的地图182的边E相关联的数据结构中。

图1C示出了在执行初始映射过程期间由感知系统180生成的环境10的初始地图182。这里,机器人100在上升两组台阶20和下降两组台阶20的环路中被驱动。当机器人100在初始映射过程期间在环境10内的环路中移动时,机器人100的系统确定发生的脚步128。在该示例中,该组脚步128、128a-n与路点Wp、Wp

参考图2A-图2C,台阶检测器200包括候选识别器210和台阶识别器220。候选识别器210被配置成确定被定义为脚步128的候选对212的一对脚步128。候选对212指的是位置邻近的两个脚步128,它们具有指示台阶20的结构的空间关系。换句话说,识别器210被配置成识别两个脚步128,其垂直和水平间距看起来对应于机器人100的脚124从第一台阶20a移动到第二台阶20b以越过竖板24。因为实际上机器人100将其脚124从第一台阶20a的踏板22a越过竖板24移动到第二台阶20b的踏板22b(在第一台阶20a的上方或下方),所以这种移动模式将反映在脚步128的模式中。因此,识别器210配置有设置成对应于阈值距离(例如,垂直距离和水平距离的阈值)的参数集,该阈值距离是台阶结构和/或机器人100的腿120的移动模式的典型。

在一些实现方式中,参数包括台阶高度阈值214和台阶深度阈值216。当识别脚步128的候选对212时,识别器210在将脚步128分类为候选对212之前确定脚步128是否满足每个阈值214、216。例如,识别器210可以以任何顺序确定脚步128是否满足这些阈值214、216(例如,首先是台阶高度阈值214,然后是台阶深度阈值216,反之亦然)。为了确定两个脚步128是否满足这些阈值214、216,识别器210确定每个脚步128的定位位置(例如,x、y、z坐标位置)并确定每个脚步128之间的距离(例如,相对于每个坐标-Δx,Δy,Δz)。这里,高度(例如,垂直距离)通常指沿着平行于机器人100的重力轴的轴在z方向上的测量值(例如,Δz),而深度(例如,水平距离)指在垂直于机器人100的重力轴发生的XY平面中的测量值(例如,Δx或Δy)。利用潜在候选对的每个脚步128之间的距离,识别器210将这些距离与适当的阈值214、216进行比较。例如,识别器210将脚步128之间的高度距离测量值与台阶高度阈值214进行比较,并将脚步128之间的深度距离测量值与台阶深度阈值216进行比较。

在一些配置中,台阶高度阈值214对应于特定台阶高度最小值204

类似地,由于运动限制和/或步态限制的范围,存在特定的高度,机器人100在没有更有力的移动(例如,跳跃)的情况下不能跨过该高度。换句话说,机器人100具有最大摆动高度,该最大摆动高度确保其脚124越过该高度以下的物体。这样,大于该高度(即,台阶高度最大值204

参考图2B,当识别器210评估潜在的候选脚步对128时,在一般意义上,识别器210确定位置上彼此靠近的脚步128(例如,被示为第一脚步128、128a和第二脚步128、128b)是否满足阈值214、216,同时还确定另一个脚步128是否不会使作为候选对212的脚步对128、128a-b无效。例如,尽管两个脚步128可能彼此靠近,但是第三个脚步128可能出现在两个脚步128之间。例如,图2B在右上角示出了识别器210利用两个脚步128之间的虚线部分(例如,被示为灰色阴影椭圆)来评估潜在的候选对128a-b。这里,在这两个脚步128a-b之间不存在中间脚步128。然而在其他描绘的示例(例如,标记为1-6)中,诸如第三示例,在由识别器210评估的两个脚步128之间存在中间脚步128;使该对脚步128作为候选对212无效。在一些示例中,识别器210试图通过对彼此最邻近的脚步128执行候选对确定(例如,基于坐标位置)来最好地缓解潜在候选对之间的中间无效脚步128的问题。在图2B中,用较暗的框勾勒出的示例指的是识别器210已经确定为候选对212的脚步128,而用虚线框勾勒出的示例是识别器210确定为不是候选对212的潜在候选对。这里,第二个示例不能满足台阶高度阈值214。第三个示例具有中间脚步128。第六个示例是关于相邻脚步128的第三示例的评估,但是潜在候选对不满足任何阈值214、216(并且低于台阶高度最小值204

台阶检测器200还包括台阶识别器220。台阶识别器220被配置成基于脚步128的候选对212,确定对应于候选对212的脚步128的台阶20。换句话说,检测器200的识别器210的任务是基于位置数据识别出现在台阶20的踏板22上的脚步128,而识别器220随后被配置成基于对应于候选对212的脚步128的聚类为台阶模型202建模每个台阶20。通过这种方法,识别器210用作过滤掉可能不存在在台阶20上的脚步128的过滤器的形式,并且识别器220基于剩余的过滤后的脚步数据来构建模型202。

参考图2C,台阶识别器220被配置成识别候选对212的每个脚步128对应于一组台阶20上的相邻台阶20。换句话说,候选对212的第一脚步128出现在第一台阶20a上,而候选对212的第二脚步128出现在(例如,在第一台阶20a之上或之下的)第二台阶20b上。利用该信息,识别器220被配置成对从识别器210传送的候选对212的脚步128进行聚类。在一些示例中,识别器220基于对应于每个脚步128的高度(例如,z坐标)来聚类脚步128。例如,识别器220对候选对212中在彼此特定高度公差内的每个脚步128进行聚类。在一些示例中,识别器220确定对应于候选对212的所有脚步128的平均高度间隔。例如,在三个台阶20a-c的示例中,识别器220识别候选对212的所有脚步128内的三个高度带(例如,三个离散的高度范围间隔);对应于第一台阶20a的第一带,对应于第二台阶20b的第二带,以及对应于第三台阶20c的第三带。根据该识别,识别器220将每个带定义为对应于模型202的台阶20的聚类组222。这里,识别器220为每个聚类组222生成模型202的台阶20。当识别器220从每个聚类组222生成模型202的台阶20时,识别器220可以将模型202中的台阶20定义为存在于对应于给定聚类组222内所有脚步128的平均高度的z坐标高度处。通过在聚类组222的平均高度处定义模型202的台阶20,识别器220有助于确保在脚步生成期间由于脚接触而导致的台阶结构中的一些屈曲(flexion)不会导致台阶20的踏板22的顶表面的实际z高度的不准确性。

一旦来自候选对212的脚步128由聚类组222定义,识别器220就已经确立了它认为台阶20的踏板22的顶表面位于哪里,但是台阶模型202仍然缺少模型202中每个台阶20之间的某种形式的水平轮廓。在一些示例中,识别器220将每个台阶20的边缘26定义为一个聚类组222变为其相邻聚类组222的地方。例如,图2C将第一线224、224a描绘为模型202在第一聚类组222、222a和第二聚类组222b之间的台阶边缘26。在一些实现方式中,识别器220通过聚类组222之间的中点来定义线224的位置。这里,识别器220识别聚类组222中与第二相邻聚类组222中的脚步128最邻近的脚步128。例如,图2C以比第一聚类组222a和第二聚类组222b中的其余部分更暗的轮廓示出了两个最邻近的脚步128。尽管这两个脚步128可以对应于不同的候选对212,但是第一聚类组222a中的脚步128最接近(例如,在XY位置)第二聚类组222b中的脚步128。这样,识别器220基于这两个脚步128之间的中点(例如,被示为中点MP)来定义该线。例如,对应于模型202中的第二台阶20b的边缘26的第一线224a穿越中点MP。

在一些配置中,模型202为模型202的台阶20指定方位。换句话说,模型202定义了模型202的台阶20的矢量方向V

图3是根据脚步128识别台阶20的方法的示例操作布置的流程图。在操作302,方法300接收多个脚步位置128,其指示机器人100的腿120接触机器人100下方的支撑表面12的位置。在操作304,方法300基于多个脚步位置128来确定多个候选脚步位置对212。这里,每个候选脚步位置对212包括相应的第一候选脚步位置212、212a和相应的第二候选脚步位置212、212b。操作306包括针对多个候选对212的每个候选脚步位置对212的第一操作306a和第二操作306b。在操作306a,方法300基于相应的第一候选脚步位置128、128a的高度将相应的第一候选脚步位置128、128a聚类到第一相应的聚类组222、222a。在操作306b,方法300基于相应的第二候选脚步位置128、128b的高度将相应的第二候选脚步位置128、128b聚类到第二相应的聚类组222、222b。在操作308,方法300通过将每个聚类组222表示为机器人环境10中的一组台阶20、20a-n中的对应台阶20,并基于每个相邻聚类组222之间的相应的中点MP描绘每个台阶20,来生成台阶模型202。

图4是可用于实现本文中描述的系统和方法的示例计算设备400的示意图。计算设备400旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里所示的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实现方式。

计算设备400包括处理器410(例如,数据处理硬件142、162)、存储器420(例如,存储器硬件144、164)、存储设备430、连接到存储器420和高速扩展端口450的高速接口/控制器440、以及连接到低速总线470和存储设备430的低速接口/控制器460。组件410、420、430、440、450和460中的每一个使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器410可以处理用于在计算设备400内执行的指令,包括存储在存储器420中或存储设备430上的指令,以在外部输入/输出设备(例如耦接到高速接口440的显示器480)上显示图形用户界面(GUI)的图形信息。在其他实现方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备400,每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器420在计算设备400内非暂时性地存储信息。存储器420可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器420可以是用于临时或永久存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备400使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。

存储设备430能够为计算设备400提供大容量存储。在一些实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备,或者设备阵列,包括存储区域网络或其他配置中的设备。在附加的实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,当运行时,这些指令执行一个或多个方法,例如上面所描述的那些方法。信息载体是计算机或机器可读介质,例如存储器420、存储设备430或处理器410上的存储器。

高速控制器440管理计算设备400的带宽密集型操作,而低速控制器460管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器440耦接到存储器420、显示器480(例如,通过图形处理器或加速器),并且耦接到高速扩展端口450,高速扩展端口450可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器460耦接到存储设备430和低速扩展端口490。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口490可以通过例如网络适配器耦接到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪或诸如交换机或路由器的网络设备。

如图所示,计算设备400可以以多种不同的形式实施。例如,它可以被实施为标准服务器400a或者在一组这样的服务器400a中多次实现为膝上型计算机400b、机架式服务器系统400c的部分或者机器人100的部分。

本文所描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些不同的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用或通用的,其被耦接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向其发送数据和指令。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实施。如本文所使用的,术语“机器可读介质”和“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中所描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行。举例来说,适于运行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦接到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括举例来说半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。

为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以及可选的键盘和定点设备,例如鼠标或轨迹球,用户可以通过其向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。

已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式也在以下权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号