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

机器人通过楼梯的制作方法

2021-11-17 19:15:00 来源:中国专利 TAG:


1.本公开涉及机器人通过(negotiate)楼梯。


背景技术:

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


技术实现要素:

3.本公开的一个方面提供了一种通过楼梯的方法。该方法包括在数据处理硬件处接收关于机器人在有楼梯的环境中操纵的图像数据。这里,机器人包括两条腿或更多条腿。在机器人穿越楼梯之前,对于每个楼梯,该方法还包括由数据处理硬件基于接收的图像数据确定相应的步伐(step)区域。步伐区域为机器人的相应摆动腿的远端识别相应楼梯上的安全放置区域。同样在机器人穿越楼梯之前,该方法包括由数据处理硬件将机器人的重量分布向机器人的前部移位。当机器人穿越楼梯时,该方法还包括,对于每个楼梯,由数据处理硬件将机器人的相应摆动腿的远端移动到目标步伐位置,其中目标步伐位置在楼梯的相应步伐区域内。
4.本公开的实施方式可以包括一个或多个以下可选特征。在一些实施方式中,在机器人穿越楼梯之前,该方法还包括由数据处理硬件识别每个楼梯的对应碰撞区域。这里,碰撞区域对应于当机器人穿越楼梯时机器人的腿应该避开的相应楼梯的区域。在这些实施方式中的一些中,当机器人穿越楼梯时,该方法可以包括由数据处理硬件调节机器人质心相对于楼梯的表面的身体高度和机器人围绕沿着机器人身体限定的纵向轴线的俯仰(pitch),其中身体高度和俯仰的调节基于为每个楼梯识别的相应碰撞区域。在这些实施方式的其他中,当机器人穿越楼梯时,该方法可以包括由数据处理硬件识别机器人的每条腿的对应的腿运动学,并且由数据处理硬件调整机器人质心相对于楼梯的表面的身体高度和机器人围绕沿机器人的身体限定的纵向轴线的俯仰,其中身体高度和俯仰的调节基于为每个楼梯识别的相应碰撞区域和机器人每条腿的相应腿运动学。
5.在一些示例中,当将相应摆动腿的远端移动到目标位置时,该方法包括由数据处理硬件检测机器人的相应摆动腿的远端接触目标步伐位置处的相应楼梯,并且基于该检测,由数据处理硬件将机器人的相应摆动腿分类为站立腿。
6.在一些配置中,当将相应摆动腿的远端移动到目标步伐位置时,该方法包括由数据处理硬件检测机器人的后腿的膝关节接触机器人的身体后面的物体。基于该检测,该方法包括由数据处理硬件将后腿的膝关节向前移动到机器人的身体下方。
7.在一些实施方式中,当将相应摆动腿的远端移动到目标步伐位置时,该方法包括由数据处理硬件检测机器人的相应摆动腿和机器人的对侧站立腿之间的冲击。在这些实施方式中,基于检测到的冲击,该方法还包括由数据处理硬件将机器人的相应摆动腿的远端从机器人的对侧站立腿移开到调整后的步伐位置,其中调整后的步伐位置在楼梯的相应步伐区域内并且相对于目标步伐位置移动。
8.在一些配置中,当将相应摆动腿的远端移动到目标步伐位置时,该方法包括由数据处理硬件检测导致机器人不稳定的机器人的相应摆动腿的绊倒(trip)条件。在这些配置中,基于检测到的绊倒条件,该方法还包括由数据处理硬件抬升相应摆动腿的远端。
9.可选地,在机器人穿越楼梯之前,该方法还包括由数据处理硬件选择用于以固定节奏穿越楼梯的运动控制器,其中该固定节奏基于为每个楼梯确定的相应步伐区域。为每个楼梯确定的对应步伐区域可以与对应楼梯的踏板部分相关联。在一些示例中,当将机器人的相应摆动腿的远端移动到目标步伐位置时,该方法可以包括由数据处理硬件将站立腿的远端定位到后楼梯,其中后楼梯位于与当机器人正在上楼梯时相应摆动腿的目标步伐位置相关联的楼梯下方或者当机器人正在下楼梯时与相应摆动腿的目标步伐位置相关联的楼梯上方之一处。这里,机器人的相应摆动腿的远端的运动和机器人的后腿的远端的运动可以以固定的节奏发生。
10.本公开的另一方面提供了一种用于通过楼梯的机器人。该机器人包括身体、联接到身体并被配置成穿越具有楼梯的环境的两条或多条腿、以及与两条或多条腿通信的运动控制器。运动控制器包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当指令在数据处理硬件上执行时,使得数据处理硬件执行操作。这些操作包括接收关于机器人在有楼梯的环境中操纵的图像数据。在机器人穿越楼梯之前,对于每个楼梯,操作还包括基于接收的图像数据确定相应的步伐区域。步伐区域为机器人的相应摆动腿的远端识别相应楼梯上的安全放置区域。同样在机器人穿越楼梯之前,操作包括将机器人的重量分布向机器人的前部移位。当机器人穿越楼梯时,对于每个楼梯,操作还包括将机器人的相应摆动腿的远端移动到目标步伐位置,其中目标步伐位置在楼梯的相应步伐区域内。
11.该方面可能包括一个或多个以下可选特征。在一些实施方式中,在机器人穿越楼梯之前,操作还包括识别每个楼梯的对应碰撞区域。这里,碰撞区域对应于当机器人穿越楼梯时机器人的腿应该避开的相应楼梯的区域。在这些实施方式中,当机器人穿越楼梯时,操作可以包括调节机器人的质心相对于楼梯的表面的身体高度和机器人围绕沿着机器人的身体限定的纵向轴线的俯仰,其中身体高度和俯仰的调节基于为每个楼梯识别的相应碰撞区域。在这些实施方式中的其他中,当机器人穿越楼梯时,操作可以包括识别机器人的每条腿的对应的腿运动学,以及调节机器人的质心相对于楼梯的表面的身体高度和机器人围绕沿着机器人的身体限定的纵向轴线的俯仰,其中身体高度和俯仰的调节基于为每个楼梯识别的对应的碰撞区域和机器人的每条腿的对应的腿运动学。
12.在一些示例中,当将相应摆动腿的远端移动到目标位置时,操作包括检测机器人的相应摆动腿的远端接触目标步伐位置处的相应楼梯,并且基于该检测,将机器人的相应摆动腿分类为站立腿。
13.在一些配置中,当将相应摆动腿的远端移动到目标步伐位置时,操作包括检测机器人的后腿的膝关节接触机器人的身体后面的物体。基于该检测,操作包括在机器人的身
体下方向前移动后腿的膝关节。
14.在一些实施方式中,当将相应摆动腿的远端移动到目标步伐位置时,操作包括检测机器人的相应摆动腿和机器人的对侧站立腿之间的冲击。在这些实施方式中,基于检测到的冲击,操作还包括将机器人的相应摆动腿的远端从机器人的对侧站立腿移开到调整后的步伐位置,其中调整后的步伐位置在楼梯的相应步伐区域内并且相对于目标步伐位置移位。
15.在一些配置中,当将相应摆动腿的远端移动到目标步伐位置时,操作包括检测导致机器人不稳定的机器人相应摆动腿的绊倒条件。在这些配置中,基于检测到的绊倒条件,操作还包括抬升相应摆动腿的远端。
16.可选地,在机器人穿越楼梯之前,操作还包括选择用于以固定节奏穿越楼梯的运动控制器,其中固定节奏基于为每个楼梯确定的对应的步伐区域。为每个楼梯确定的对应步伐区域可以与对应楼梯的踏板部分相关联。在一些示例中,当将机器人的相应摆动腿的远端移动到目标步伐位置时,操作可以包括将站立腿的远端定位到后楼梯,其中后楼梯位于当机器人正在上楼梯时与相应摆动腿的目标步伐位置相关联的楼梯下方或者当机器人正在下楼梯时与相应摆动腿的目标步伐位置相关联的楼梯上方之一处。这里,机器人的相应摆动腿的远端的运动和机器人的后腿的远端的运动可以以固定的节奏发生。
17.本公开的一个或多个实施方式的细节在附图和以下描述中阐述。从说明书和附图以及权利要求中,其他方面、特征和优点将是显而易见的。
附图说明
18.图1a是机器人环境中示例机器人的透视图。
19.图1b是图1a的机器人的系统的示例布置的示意图。
20.图1c是在图1a的机器人环境内的机器人的示例传感器系统的示意图。
21.图2a和2b是机器人在机器人环境中穿越地形时示例身体规划器的示意图。
22.图3a

3k是机器人在机器人环境中穿越楼梯时的图1a的机器人的透视图。
23.图4是当图1a的机器人穿越机器人环境时楼梯跟踪器的示意图。
24.图5是机器人穿越机器人环境的操作的示例布置。
25.图6是可用于实现这里描述的系统和方法的示例计算设备的示意图。
26.不同附图中相同的附图标记表示相同的元件。
具体实施方式
27.当腿式机器人在环境中操纵时,机器人可能会遇到需要精确腿部运动和足部放置(即远端放置)的地形(例如人造结构)。为了提供精确的腿部运动和足部放置,当机器人的系统识别不同类型的地形时,机器人的运动控制系统可以约束机器人的运动来穿越地形,以防止错误,甚至是小错误,这可能导致机器人的灾难性问题。例如,当人类穿越楼梯时,这项任务需要一定程度的协调(例如,眼睛到脚的协调)。没有协调,人可能会失足、滑倒、绊倒或摔倒在楼梯上。机器人可能会遇到同样的不幸,但缺乏自然的协调。因此,机器人需要系统和方法来协调精确的腿部运动。
28.图1a是机器人100的环境10的示例。环境10通常是指与某种类型的地形相关联的
空间区域,该地形包括楼梯20、20a

n或类似楼梯的地形,机器人100可以根据穿越系统110穿越这些地形。穿越系统110负责在环境10周围协调和/或移动机器人100。当机器人100穿越楼梯20或类似楼梯的地形并在环境10周围移动时,穿越系统110可以分析地形,规划机器人100的运动轨迹(例如,利用路径生成器130、步伐规划器140、身体规划器150),和/或指示机器人100执行各种运动(例如,利用控制器120)。穿越系统110可以使用机器人100的各种系统来尝试成功穿越环境10,同时避免碰撞和/或对机器人100或机器人的环境10的损害。
29.楼梯20、20a

n通常是指一组多于一个的楼梯20(即一组n个楼梯20),其设计为用于跨越垂直距离。为了跨越垂直距离,楼梯20a

n通常在一俯仰内(或俯仰线)在给定的垂直高度上升中延伸一水平距离。每个楼梯20传统上包括踏板22和竖板24。楼梯20的踏板22指的是楼梯20的被踩踏的水平部分,而竖板24指的是楼梯20在每个踏板22之间的垂直部分。每个楼梯20的踏板22跨越从楼梯20的外边缘到楼梯20之间的竖板24测量的踏板深度“d”。对于住宅、商业或工业结构,出于安全目的,一些楼梯20还包括突缘26作为建筑规范的一部分。如图1a所示,突缘26是踏板22的一部分,其突出于踏板22下方的竖板24之上。例如,突缘26a是踏板22a的一部分,并且突出到竖板24a之上。
30.楼梯状地形更一般地指在一定距离内高度变化的地形。就海拔变化而言,楼梯状地形可能类似于楼梯(例如,随着海拔升高而倾斜的俯仰或随着海拔降低而倾斜的俯仰)。然而,对于楼梯状地形,踏板22和竖板24的轮廓并不明显。相反,楼梯状地形可以指具有踏板状部分的地形,该踏板状部分允许机器人具有足够的牵引力来放置站立肢体,并且顺序地或同时地使用前肢体在该地形内的相邻垂直障碍物(类似于竖板)上上升或下降。例如,楼梯状地形可能包括碎石、倾斜的岩石爬坡(scramble)、受损或恶化的传统楼梯等。
31.机器人100包括身体102,身体102具有基于运动的结构,例如联接到身体102的腿104a

d,腿104a

d使得机器人100能够在环境10周围移动。尽管图1a描绘了具有四条腿104a

d的四足机器人,但是机器人100可以包括任何数量的腿或基于运动的结构(例如,具有两条腿的两足或人形机器人),其提供了在环境10内穿越地形的手段。为了穿越地形,每个腿104具有接触地形表面的远端106。换句话说,腿104的远端106是机器人100使用的腿104的端部,以在机器人100移动期间枢转、放置或通常提供牵引。例如,腿104的远端106对应于机器人100的脚。
32.在一些实施方式中,如图1b所示,穿越系统110包括至少一个控制器120、路径生成器130、步伐定位器140和身体规划器150。穿越系统110被配置成与至少一个传感器系统160和感知系统200通信。穿越系统110使用诸如机器人100的数据处理硬件172和/或存储器硬件174的硬件170来执行操作和其他功能。在一些示例中,硬件170是机器人100的中心,使得机器人100的各种系统可以共享硬件170(例如,穿越系统110、传感器系统160、感知系统200和/或冲击检测器300)的使用。在一些配置中,机器人100的一个或多个系统(例如,穿越系统110、控制器120、传感器系统160、感知系统200和/或冲击检测器300等。)具有它们自己的专用硬件(例如,与机器人100的硬件170通信)。控制器120被配置成基于来自机器人100的系统(例如,穿越系统110、感知系统200、冲击检测器300等)的输入或反馈来控制机器人100在环境10周围穿越的运动。这可以包括机器人100的姿态和/或行为之间的移动。例如,控制器120控制不同的脚步模式、腿模式、身体运动模式或视觉系统感测模式。这里,控制器120被配置为与机器人100的数据处理硬件172和/或存储硬件174通信,以执行从机器人100的
系统(例如,穿越系统110、感知系统200、冲击检测器300等)提供的运动。
33.在一些示例中,控制器120包括多个控制器120,其中每个控制器120具有固定的节奏。固定节奏指的是腿104的步伐或摆动阶段的固定定时。例如,控制器120指示机器人100以特定频率(例如,每250毫秒、350毫秒的步伐)移动腿104(例如,走一步)。利用多个控制器120,其中每个控制器120具有固定的节奏,机器人100可以通过在控制器120之间切换来体验可变的定时。在一些实施方式中,当机器人100穿越环境10时,机器人100连续切换/选择固定节奏控制器120(例如,每3毫秒重新选择一控制器120)。
34.穿越系统110可以基于控制器120的步伐规划来选择控制器120。穿越系统110可以基于节奏(即,为给定控制器编程的运动步速)和至少一个操纵命令为每个控制器120生成步伐规划,以在环境10周围移动机器人100。如果基于控制器120的节奏在环境10周围的地形中不存在碰撞区域220,则步伐规划指的是对应于机器人100将行走的位置(即,腿104的远端106的放置位置)的无约束足部放置的地图(称为无约束地图)。给定步伐规划,穿越系统110将步伐规划与由感知系统200生成的约束地图202进行比较。基于该比较,穿越系统110选择其步伐规划违反约束地图202内识别的最少量约束的控制器120(即,需要最少量偏差来实现约束地图202的步伐规划)。通过选择具有最小偏差的控制器120,穿越系统110可以确保机器人100需要最少的调整来避免碰撞区域220(或目标步伐区域220)。
35.在一些实施方式中,穿越系统110基于步伐规划和约束地图202之间的关系对每个控制器120进行评分,并选择具有最佳分数的控制器120。例如,穿越系统110选择具有最低分数的控制器120,该最低分数对应于具有最小偏差的步伐规划的控制器120,以实现约束地图202。在一些示例中,除了步伐规划和约束地图202之间的关系之外,分数对应于基于控制器120的软约束或条件的成本函数。穿越系统110还可以配置有在评分和/或选择之前排除特定控制器120的条件。条件的一些示例包括基于摆动脚的位置是否可以可实现与地形的期望接触,或者在穿越过程中是否需要特定的步伐高度。在一些配置中,成本函数将权重应用于不同的条件,其中步伐规划和约束地图之间的偏差是最重要的条件。
36.在一些示例中,存储器硬件174在机器人100上本地存储穿越系统110的移动或移动约束。在其他示例中,这些移动或约束由穿越系统110远程存储和/或访问。例如,穿越系统110通过网络180与远程系统190通信。远程系统190可以是服务器或基于云的环境,其包括远程资源192,例如远程数据处理硬件194和远程存储器硬件196。在一些实施方式中,使用远程资源192在远程系统190上存储和/或处理移动或穿越约束,并通过网络180将其传送到机器人100的穿越系统110和/或控制器120。在其他示例中,与穿越系统110相关的不同输出被远程(例如,经由远程系统190)和本地(例如,经由存储器硬件174)处理和/或存储。
37.传感器系统160包括一个或多个传感器162、162a

n。传感器162可以包括视觉/图像传感器、惯性传感器(例如惯性测量单元(imu))、力传感器和/或运动传感器。传感器162的一些示例包括摄像机,例如立体摄像机、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器。在一些示例中,传感器162具有定义对应于传感器162的感测范围或区域的相应视场fv。例如,图1a描绘了机器人100的视野f
v
。每个传感器162可以是可枢转的和/或可旋转的,使得传感器162可以例如围绕一个或多个轴(例如,相对于接地面g的x轴、y轴或z轴)改变视场f
v

38.当用传感器162测量视场f
v
时,传感器系统160生成对应于视场f
v
的传感器数据164
(也称为图像数据)。在一些示例中,传感器数据164是对应于由三维体积图像传感器162生成的三维体积点云的图像数据。附加地或替代地,当机器人100在环境10周围操纵时,传感器系统160收集机器人100的姿态数据,该姿态数据包括惯性测量数据(例如,由imu测量的)。在一些示例中,姿态数据包括关于机器人100的运动学数据和/或方位数据。利用传感器数据164,感知系统200可以为环境10周围的地形生成地图212(或约束地图202)。
39.由传感器系统160收集的传感器数据164,例如与环境10相关的图像数据、姿态数据、惯性数据、运动学数据等可以被传送到机器人100的穿越系统110(例如,数据处理硬件172和存储器硬件172)。在一些示例中,传感器系统160收集并存储传感器数据164(例如,在远程资源192的存储器硬件174或存储器硬件196中)。在其他示例中,传感器系统160实时收集传感器数据164并处理传感器数据164,而不存储原始(即,未处理的)传感器数据164。在其他示例中,穿越系统110和/或远程资源162存储处理后的传感器数据164和原始传感器数据164。
40.当机器人100在环境10周围操纵时,传感器系统160收集与环境10的地形相关的传感器数据164。例如,图1a描绘了当机器人100站在楼梯20的平台顶部上时,传感器系统160收集关于楼梯20的传感器数据164。如图1c所示,楼梯20的结构可能导致传感器数据164被遮挡(即,不完整的传感器数据164)。例如,当向上或向下看楼梯20时,传感器系统160不能详细观察整个楼梯20。在传统楼梯20的情况下,这通常是因为踏板22之前或之后的竖板24在视觉上阻挡了楼梯20的踏板22的部分。有了这些障碍物,传感器系统160不能收集障碍物区域的实际传感器数据164。这又导致遮挡区域的传感器数据164中的间隙。
41.参考图1b,路径生成器130被配置为确定机器人100的水平运动。例如,水平运动指的是机器人100的平移和/或偏航。路径生成器130基于传感器数据164确定机器人100周围的环境10内的障碍物。路径生成器130将障碍物传送给步伐规划器140,使得步伐规划器140可以识别机器人100的腿104的脚放置(例如,放置机器人100的腿104的远端106的位置)。步伐规划器140使用来自感知系统200(例如,区域220、230)的输入来生成脚的位置(即,机器人100应该迈步的位置)。
42.在一些示例中,感知系统200包括地图生成器210,其基于关于环境10的地形的传感器数据164生成地图212。在一些实施方式中,地图生成器210生成不完整地图212,并被配置为基于传感器数据164的性质来填充传感器数据164的间隙。换句话说,感知系统200的地图生成器210从为可视地形t
v
收集的传感器数据164中推断关于障碍地形的细节(也称为推断地形t
i
)。基于传感器数据164,地图生成器210被编程为假设缺失的传感器数据164对应于平滑地形或平坦地形。当传感器数据164指示邻近远处物体的近处物体时,地图生成器210假设由于环境10内传感器系统160的遮挡而出现这种远近对比。当地图生成器210假设发生遮挡时,地图生成器210通过将传感器数据164的间隙映射为平坦地形来填充这些间隙。相反,当传感器数据164没有指示远近对比时,地图生成器210假设缺失的传感器数据164是由于传感器系统160的视觉不佳造成的,并将缺失的传感器数据164映射为平滑地形。一般来说,由楼梯20引起的遮挡具有指示远近对比的传感器数据164,使得地图生成器210将楼梯20的障碍地形映射为平坦的。参考图1c,地图生成器210将由竖板24a

c引起的楼梯20a

g的障碍细节映射为踏板22a

c的平坦部分(即,由于遮挡而生成平坦的推断地形t
i
)。
43.参考图2a,基于由地图生成器210从传感器数据164生成的地图212,感知系统200
为机器人100(例如,为机器人100的穿越系统110执行)生成约束地图202。感知系统200通常将受约束地图202或受约束地图202的部分(例如,碰撞/非碰撞区域220、230)与穿越系统110(例如,穿越系统110的步伐定位器140)进行通信。步伐定位器140指的是机器人100的轨迹规划器(也称为运动规划),其被配置为规划在穿越环境10时避免碰撞的运动轨迹。利用地图212,感知系统200确定识别机器人100在楼梯20上的安全放置区域的步伐区域220。腿104的远端106可以放置在步伐区域220内,并且减少和/或消除腿104的一部分和楼梯20的结构之间的干涉的可能性。例如,图2a示出了七个楼梯20a

g的步伐区域220、220a

g。在步伐区域220之外,机器人100的腿104的一部分有与楼梯20的结构碰撞的风险。在一些实施方式中,当机器人100走得太靠近竖板24时,机器人100在爬或下楼梯20时有使腿104的一部分撞击在楼梯20的一部分上的风险(例如,竖板24或踏板22的突缘26)。例如,图2a描绘了机器人100的腿104d在对应于其胫骨的区域具有碰撞c。这里,当机器人100下楼梯20并弯曲机器人100的后腿104d的关节j时,碰撞c发生在楼梯20的竖板24上。
44.在一些示例中,步伐区域220的外侧太靠近楼梯20的边缘,使得腿104的远端106在该区域中的放置将导致机器人100的腿104滑出楼梯20。通过基于传感器数据164确定步伐区域220,感知系统200帮助机器人100成功地穿越楼梯20或楼梯状的地形(例如,具有最小的问题或没有碰撞)。机器人100的碰撞c通常是一个问题,因为碰撞c可能阻止机器人100穿越楼梯20或楼梯状地形,当机器人100正在执行任务或行进到目的地时引起计时问题,损坏楼梯20,和/或在行进期间损坏机器人100(例如,机器人100从楼梯20上掉下)。
45.在一些实施方式中,感知系统200为每个楼梯20确定至少一个碰撞区域230(例如,碰撞区域230,230a

f)。碰撞区域230指的是当机器人100穿越楼梯20、20a

n时机器人100的腿104应该避开的楼梯20的区域。换句话说,在碰撞区域230中,机器人100的腿104的一部分可能或不可避免地将与楼梯20的结构发生碰撞。在一些示例中,感知系统200确定碰撞区域230(即,无步伐区域)而不是步伐区域220,并且机器人100接收指令以避免碰撞区域230以穿越楼梯20。在其他示例中,感知系统200确定步伐区域220和碰撞区域230(即,区域220、230)。
46.在一些配置中,感知系统200在穿越楼梯20之前确定步伐区域220和/或碰撞区域230。附加地或替代地,感知系统200可以在穿越楼梯20时(例如,连续实时地)确定步伐区域220和/或碰撞区域230。例如,当机器人100遇到并穿越楼梯20时,感知系统200连续确定步伐区域220和/或碰撞区域230。感知系统200是否在行进之前或期间确定步伐区域220和/或碰撞区域230可以取决于机器人100的传感器系统160和/或其他系统(例如,穿越系统110)的设计能力和/或处理能力。
47.在一些示例中,感知系统200考虑机器人100在穿越楼梯20之前的姿势和/或姿态。例如,机器人100可以向前(即,传感器系统160的前传感器面向或感测横向方向t
d
)或向后(即,传感器系统160的前传感器面向与横向方向t
d
相反的方向)上或下楼梯20。这里,感知系统200识别机器人100是向前还是向后穿越楼梯20,以便确定步伐区域220和/或碰撞区域230。当向前下楼梯20时,由于机器人100的腿104的结构(例如,腿104的关节j的弯曲),在每个楼梯20的边缘附近可能存在狭窄的步伐区域220。作为向前和向后的对比示例,当机器人100向后穿越楼梯20时,感知系统200基于机器人100的腿104的结构来确定步伐区域220对应于踏板22的中间50

70%。换句话说,当感知系统200识别机器人的方位(例如,姿势和/或
姿态)时,步伐区域220和/或碰撞区域230可以变化,以考虑机器人100在确定的方位上的与楼梯20的结构相关的方位和限制。
48.感知系统200可以基于来自传感器数据164的地形图212和/或机器人100的运动学来确定步伐区域220和/或碰撞区域230(也称为区域220、230)。在一些示例中,感知系统200确定地图212内的高度不连续性对应于地面陡峭的区域(例如,竖板24或踏板22的边缘)。这些区域可以被指定为碰撞区域230。感知系统200还可以使用运动学来确定区域220、230。例如,感知系统200考虑机器人100的行进速度(例如,机器人100的质心速度)和/或机器人100的行进方向t
d
(即,行进方向)来确定区域220、230。附加地或替代地,感知系统200可以将传感器数据164差的区域指定为碰撞区域230。
49.在一些示例中,在穿越楼梯20之前或同时,机器人100朝着机器人100的前部(例如,朝着前腿104a

b)移位机器人100的重量分布。当机器人100穿越楼梯20时,相对于腿104的远端106向前移位机器人100的重量可以减少腿104与楼梯20的潜在碰撞。例如,图2a描绘了机器人100从楼梯20a

g下来。这里,图2b示出了向前移位机器人100的重量允许小腿(例如,腿104a

b)变得更加垂直或直立,并且大腿(例如,后腿104c

d)变得更加水平。换句话说,运动学上,当相对于腿104的远端106(例如,脚)向前移位时,机器人100的质心com导致机器人100的前腿104a

b比机器人100的后腿104c

d上更多重量。换句话说,机器人100的质量分布朝向机器人100的前部,并且前腿104a

b在它们各自的远端106a

b经受垂直力的增加。图2b示出了质心com已经从初始位置co
minitial
移位到朝向横向方向t
d
移位的移位位置com
shift
。通过这种移位,图2b示出,根据虚线,后腿104d之一将避免与楼梯20的碰撞。在一些示例中,机器人100的控制器120在质心动力学方面起作用。这里,利用这种类型的功能,身体规划器150指示机器人100的控制器120相对于远端106向前移位质心com,以便穿越楼梯20,如图2b所示。
50.在一些示例中,身体规划器150被配置为根据穿越系统110确定机器人100的高度h
com
和俯仰p
com
,作为机器人100的控制的一部分。这里,机器人100的高度h
com
对应于机器人100的质心com和楼梯20之间的距离(例如,如图2a所示的质心com下方的踏板22的表面)。机器人100的俯仰p
com
通常指的是机器人100相对于身体102的中心沿着机器人100的身体102的纵向轴线a
l
的旋转(例如,如图2a所示)。换句话说,调节机器人100的俯仰使机器人100的身体102的前部(或身体102的后部)绕机器人100的身体102的中心朝向楼梯20或远离楼梯20旋转。当机器人100穿越楼梯20时,身体规划器150和/或控制器120可以基于为一个或多个楼梯20识别的相应碰撞区域230来调整机器人100的高度和俯仰。身体规划器150可以基于输入来确定机器人100的高度h
com
和俯仰p
com
,所述输入为诸如来自步伐规划器140的地形图212(或约束地图202)和脚步位置(例如,为每个楼梯20识别的区域220、230)以及一组约束240。在一些实施方式中,为了确定机器人100的高度h
com
和俯仰p
com
,身体规划器150是二次编程轨迹规划器,其被配置为基于所述输入来确定满足所述约束240的机器人100的最佳轨迹。例如,身体规划器150是后退水平控制器。在一些配置中,约束240与机器人100的物理条件和/或楼梯地形相关。例如,身体规划器150接收约束240,例如高度约束。高度约束的一个这样的示例是约束240,其指示机器人100(例如,机器人100的身体)不能处于防止机器人100接触机器人100下方的表面的高度(即,防止机器人100的远端106接触楼梯20)。身体规划器150接收的高度约束的另一个示例是防止机器人100(例如,机器人100的腿104)与楼梯
20碰撞的最小高度。换句话说,机器人100的身体102不能离楼梯20太近(例如,太低),以至于在楼梯20和机器人100之间发生碰撞。在任一情况下,约束240可以基于机器人100的运动学来确定。例如,身体规划器150可以基于运动学(例如,对应于腿104的运动学)确定机器人100的腿104的一个或多个远端106接触相应楼梯20的表面区域。类似地,当身体规划器150确定身体102的最小高度的约束240以防止碰撞c时,最小高度可以由机器人100的运动学确定。
51.为了示出,当机器人100穿越楼梯20时,身体规划器150可以识别机器人100的每条腿104的运动学。每个腿104的这些运动学(例如,腿104相对于腿104的关节j的弯曲或伸展)允许身体规划器150确定身体102相对于每个楼梯20的高度,其可以与腿104相关联(例如,相应楼梯20在每个腿104下方或者由腿104的远端106接触)。通过识别腿104的运动学,身体规划器150可以确定身体102的高度调节和/或俯仰调节是否会防止一个或多个腿104接触楼梯20(即,满足机器人100的高度约束)。例如,当高度调节或俯仰调节防止腿104接触楼梯20时,不能到达楼梯20的腿104可能具有与楼梯20碰撞c的增加的风险,或者导致机器人100不平衡的增加的风险。在一些示例中,除了确定机器人100的高度调节或俯仰调节是否满足高度约束之外,当身体规划器150调节身体102的高度h
com
和/或机器人100的俯仰p
com
时,身体规划器150确保腿104仍然位于安全区域(例如,远端106的位置位于步伐区域220而不是碰撞区域230)。换句话说,身体规划器150可以基于机器人100的腿104所处的区域220、230(例如,步伐区域220或碰撞区域230)并基于机器人100的每条腿104的运动学来调整身体102的高度h
com
和/或机器人100的俯仰p
com

52.此外或可替代地,身体规划器150可以接收对应于身体规划器150试图满足的等式约束的成本,但是在其他约束的权衡下可能无法满足。这里,例如,身体规划器150接收身体102的臀部相对于腿104的一个或多个远端106的期望高度(例如,相对于机器人100的脚)。身体规划器150的其他约束可以包括机器人100的加速度,例如最小或最大加速度。在一些实施方式中,身体规划器150规划满足机器人100的设计约束或结构约束的轨迹。例如,身体规划器150规划考虑机器人100的力量或机器人100的操作速度的轨迹。在一些示例中,身体规划器150规划与机器人100的速度、质心com的位置和/或加速度参数一致的轨迹。一旦身体规划器150确定了轨迹,身体规划器150可以将轨迹传送给控制器120以供执行。在一些配置中,当机器人100穿越环境10时,身体规划器150不断地为控制器120传送轨迹和/或更新轨迹。
53.参考图3a

3i,机器人100还可以包括冲击检测器300。冲击检测器300被配置成检测机器人100与环境10的冲击310(例如,与楼梯20的碰撞c)或与机器人100本身的冲击(例如,前腿104a和后腿104c之间的碰撞c)。基于该冲击310,冲击检测器300可以为穿越系统110(例如,控制器120)和/或身体规划器150生成响应320。在一些实施方式中,冲击检测器300检测冲击310,并通过机器人100的穿越系统110(例如,控制器120)传递对冲击的响应320。在一些示例中,响应320指示机器人100以特定运动对冲击310做出反应。在其他示例中,响应320指示机器人100在没有特定运动反应的情况下继续穿越环境10(例如,继续运动)。这些响应320之间的差异取决于冲击检测器300检测到的冲击310的类型。
54.为了感测冲击310,冲击检测器300可以利用机器人100的传感器系统160。冲击检测器300可以使用传感器系统160的传感器162的任意组合来检测冲击310,例如接近传感
器、视觉/图像传感器、惯性传感器、力传感器、运动传感器等。在一些示例中,冲击检测器300使用传感器数据164以及机器人100的运动学来确定在机器人100的运动期间是否发生冲击310。
55.当机器人100将腿104的远端106移动到步伐区域220内的目标步伐位置时(即,也在碰撞区域230之外),冲击检测器300被配置为感测冲击310。在一些示例中,冲击检测器300检测到腿104的远端106接触楼梯20的相应目标步伐位置(即,在目标步伐位置实现触地)。例如,远端106接触作为楼梯20的目标步伐位置的踏板22的一部分(例如,在步伐区域220中)。基于该检测到的冲击310,冲击检测器300生成响应320,以将在相应目标步伐位置与楼梯20接触的腿104分类为站立腿104
st
。换句话说,当成功触地发生时,向目标步伐位置移动的腿104(即,摆动腿)变成站立腿104
st
。为了说明,图3a和3b示出了机器人100穿越楼梯20的顺序。在顺序的第一框架中,机器人100(在图3a中显示为机器人100a)具有作为摆动腿104
sw
的前腿104a和作为站立腿104
st
的相对前腿104b。当摆动腿104a、104
sw
触地并产生冲击310时(如图3b中机器人100b的第二框架所示),冲击检测器300将原始站立腿104b、104
st
的分类改变为摆动腿104b、104
sw

56.摆动腿104
sw
指的是在不与环境10的表面接触的情况下运动(即摆动)的腿104。相反,站立腿104
st
指的是放在环境10的表面(即与其接触)以平衡和支撑摆动腿104
sw
的运动。当机器人100移动摆动腿104
sw
时,通常控制器120意图使摆动腿104
sw
沿着不受阻碍的运动路径移动到目标步伐位置,使机器人100能够穿越环境10。如果摆动腿104
sw
遇到阻碍摆动腿104
sw
的运动的障碍物可能会出现问题,因为障碍物可能导致规划运动的偏差,这可能例如导致机器人100失去平衡(即,绊倒和/或跌倒)。
57.在一些示例中,控制器120在摆动阶段或站立阶段完成之前分别改变摆动腿104
sw
和/或站立腿104
st
的分类。通过在其阶段完成之前改变腿104的分类,控制器120可以补偿延迟或防止命令延迟(或运动延迟)以提供机器人100的平滑运动。换言之,控制器120可以尝试同步站立腿104
st
的抬起和摆动腿104
sw
的触地。例如,控制器120在着地之前将摆动腿104
sw
分类为站立腿104
st
。类似地,控制器120可以在相应腿104的任何运动之前将当前站立腿104
st
归类为摆动腿104
sw
。在一些示例中,控制器120等待机器人100的两个摆动腿104
sw
触地,然后同时抬起两个先前的站立腿104
st
。在这些示例中,这可以发生以帮助机器人100保持平衡(例如,当机器人100以类似小跑的步伐/节奏穿越楼梯20时)。
58.在一些实施方式中,例如在图3c中,当机器人100在摆动阶段抬起腿104(例如,显示为后腿104d、104
sw
)进行运动时,腿104的膝关节j
k
相对于髋关节j
h
向后移动(即,腿104联接到机器人100的身体102)。例如,摆动阶段包括偏心运动和同心运动,在偏心运动中,腿104被拉向或抬起朝向机器人100的身体102,在同心运动中,腿104远离机器人100的身体102朝向触地(例如,抵靠诸如楼梯20的踏板22的表面)延伸。当膝关节j
k
向后移动时(例如,在偏心运动期间),腿104可能有与机器人100后面的物体碰撞c的风险。换句话说,当膝关节j
k
向后移动时,腿104(例如,在膝关节j
k
处)可能与机器人100后面的物体产生冲击310,例如像壁或楼梯20的竖板24这样的垂直物体。例如,机器人100站在楼梯20的平台上,壁在机器人100后面,后腿104c

d的摆动运动撞击壁。这里,冲击检测器300检测与机器人100后面的地形的冲击310,并产生响应320以向前移动膝盖(即,膝关节j
k
)远离机器人100后面的地形。否则,如果机器人100继续抬起腿104,膝关节j
k
可能在机器人100后面的物体上表现出
更大的力。在壁作为机器人100后面的物体的情况下,继续抬起腿104甚至可能将膝关节j
k
嵌入机器人100后面的壁中,从而对壁或机器人100造成损坏。
59.在一些配置中,当机器人100移动时,机器人100的腿104与对侧腿104
c
发生冲击310。例如,在摆动阶段,摆动腿104
sw
撞击对侧站立腿104
c
。对侧腿104
c
指的是关于机器人100的矢状面ps的机器人100的身体102的相对侧上的腿104。矢状面p
s
是将身体102分成左右两半的解剖平面。关于四足机器人100,两条前腿104a

b关于机器人100的矢状面p
s
彼此相对(即,对侧),而类似地,两条后腿104c

d关于机器人100的矢状面p
s
彼此相对(即,对侧)。对于双足机器人100,两条腿104总是处于对侧关系。
60.如图3d和3e所示,当腿104与对侧腿104
c
发生冲击310时,冲击检测器300检测到该冲击310,并且可以根据冲击310的类型改变其响应320。在一些示例中,基于检测到的冲击310,冲击检测器300产生响应320,以将摆动腿104
sw
或摆动腿104
sw
的远端106从对侧站立腿104
c
移开。换句话说,响应320将摆动腿104
sw
移位到调整后的步伐位置,而不是摆动腿104
sw
瞄准远端106在目标步伐位置的触地。这里,调整后的步伐位置在楼梯20的步伐区域220内(即,碰撞区域230之外),但是相对于原始目标步伐位置移位,以便抵消与对侧腿104
c
的冲击310。在某些配置中,调整后的步伐位置是全新的目标步伐位置。
61.在一些示例中,由于冲击310,对应于步伐区域220或碰撞区域230外部的步伐位置可能不可用作响应320的调整后的步伐位置。在这些情况下,冲击检测器300和/或感知系统200可以确定调整后的步伐位置,其最小化与地形或机器人本身进一步冲击310的可能性。例如,调整后的步伐位置可以在碰撞区域230内,但是在碰撞区域230的具有比碰撞区域230的其他部分更低的碰撞c概率的区域内(例如,靠近碰撞区域230的边缘)。在一些实施方式中,感知系统200可以预先确定或在冲击310时确定碰撞区域230的碰撞概率分布,使得冲击检测器300基于碰撞概率分布生成具有调整的步伐位置的响应320,该调整的步伐位置最小化进一步的冲击。在一些示例中,利用概率分布,基于与碰撞c的可接受概率或置信水平相对应的阈值来选择调整后的步伐位置。换句话说,阈值可以表示存在碰撞区域230的一些区域(例如,子区域)对于补救情况可能是可接受的,而碰撞区域230的其他区域即使对于补救情况也太危险。例如,在一些补救情况下,与腿104的远端106移动到碰撞区域230的不太危险的区域内的调整的步伐位置相比,冲击310可能对机器人100具有更大的风险。更具体地,碰撞区域230中可能导致掠射(glancing)冲击的区域对于补救情况来说是可接受的,而碰撞区域230中导致机器人100完全离开楼梯20的区域永远是不可接受的。附加地或替代地,感知系统200可以根据机器人100在特定区域中可能发生的一定类型的冲击310的风险来加权或分类碰撞区域230的区域。这可以允许机器人100考虑碰撞区域230的具有高风险但冲击310可能性低的区域。
62.在如图3d所示的一些实施方式中,当冲击310导致腿104交叉其对侧腿104
c
时(例如,示出为前腿104a交叉另一对侧前腿104
bc
),冲击检测器300产生响应320以解开交叉的腿104。例如,响应320可以指示摆动腿104
sw
反转其运动路径以解开交叉腿104并避免与对侧腿104
c
进一步接触。在一些配置中,响应320是两部分响应,使得冲击检测器300首先检测冲击310,并指示摆动腿104
sw
向前或向后移动(例如,取决于摆动腿104
sw
是交叉在站立腿104
st
的前面还是站立腿104
st
的后面),然后指示摆动腿104
sw
横向移动而不交叉所述腿104。如果响应320指示摆动腿104
sw
采取另一运动路径(例如,首先在机器人100的身体102上横向移动腿
104以试图抵消交叉),摆动腿104
sw
可能绊倒机器人100或进一步与对侧站立腿104
c
、104
st
碰撞。此外,如果响应320没有生成调整后的步伐位置,当站立腿104
st
变成摆动腿104
sw
时,摆动腿104
sw
可以在阻止站立腿104
st
随后运动的位置触地。
63.在其他实施方式中,如图3e所示,当冲击310导致腿104(例如,前摆动腿104a、104
sw
)撞击但不交叉其对侧腿104
c
时,冲击检测器300生成摆动腿104
sw
远离对侧腿104
c
移动的响应320。这里,冲击检测器300确定冲击310没有导致对侧腿104
c
的交叉(例如,摆动腿104
sw
撞击对侧腿104c的内部)。当与对侧腿104
c
(例如,对侧腿104
bc
)的冲击310没有导致交叉时,冲击检测器300具有更多的响应选项,即在哪里移动摆动腿104
sw
作为调整后的目标位置来抵消冲击310。例如,这里,在机器人100的身体102上横向移动摆动腿104
sw
可能不会导致腿104之间的进一步冲击。在一些配置中,响应320导致摆动腿104
sw
从对侧腿104
c
处的位置移动到矢状面p
s
的摆动腿侧上的调整后的目标位置区域220。
64.在一些示例中,图3f示出了摆动腿104
sw
(例如,示为前腿104b)与物体o发生冲击310,摆动腿104
sw
需要翻越(up and over)摆动以继续其穿越路径(即,可能绊倒机器人100的冲击310)。换句话说,冲击310指示可能导致机器人100不稳定的绊倒条件。当冲击检测器300检测到该冲击310时,冲击检测器300可以基于摆动腿104
sw
的摆动阶段生成不同的响应320。当冲击检测器300确定摆动腿104
sw
处于摆动阶段的早期时(例如,摆动腿正经历朝向机器人100的身体102的同心运动),冲击检测器300生成响应320以进一步抬升摆动腿104
sw
的远端106(即,增加远端106相对于原始抬升表面或平面的高度)。当冲击检测器300确定摆动腿104
sw
在摆动阶段的较晚时(例如,摆动腿104
sw
正经历朝向触地位置的偏心运动),冲击检测器300生成响应320以使摆动腿104
sw
的远端106立即触地。这些响应320最小化了机器人100实际上从指示绊倒条件的冲击310中跌落或失去平衡的可能性。
65.在一些示例中,冲击检测器300检测冲击310,但是不生成导致规划外运动(即,基于冲击310的反应运动)的响应320。换句话说,即使机器人100的至少一条腿104经历冲击310,冲击检测器300也(a)不对该冲击310生成响应320,或者(b)生成响应320以继续原始运动路径。在一些示例中,在冲击310之后,如果穿越系统110(例如,控制器120)在阈值时间段内没有接收到响应320,则穿越系统110继续移动,就好像冲击310没有发生一样。在其他示例中,在冲击310之后,穿越系统110被配置为在继续进一步运动之前等待响应320,使得冲击检测器300生成占位符(placeholder)响应320,诸如“无响应”,或明确指示机器人100继续原始运动路径的响应320。
66.图3g是冲击检测器300检测腿104的上部(例如,对应于腿104的大腿)对机器人100的身体102的冲击310的示例。例如,图3g示出了前腿104b对机器人100的身体102生成冲击310。这里,即使存在大腿对机器人100的身体102的冲击310,冲击310也不会导致基于冲击310引起反作用运动的响应320。
67.作为另一个示例,图3h示出了当腿104抬起离开表面(例如楼梯20的踏板22)时,冲击检测器300检测腿104的远端106(例如前腿104a的远端106a)的冲击310。例如,当腿104在摆动阶段的早期从站立腿104
st
过渡到摆动腿104sw时,腿104(例如,摆动腿104a、104
sw
)的抬起产生冲击310(例如,机器人100的远端106a或脚摩擦(scuffing)表面)。当站立腿104
st
的远端106变得至少部分嵌入楼梯状地形中时,在楼梯状地形上也可能发生抬起擦地,使得当站立腿104
st
随后开始摆动阶段时,将相应腿104从部分嵌入中移除的向上运动引起冲击
310。当冲击检测器300检测到冲击310对应于腿104的远端106的抬起擦地时,冲击检测器300不基于冲击310产生反作用运动的响应320。这里,冲击检测器300可能不会产生反作用运动,因为摆动腿104
sw
在抬起擦地之后将继续向上移动,并且可能自然地越过引起冲击310的障碍物。
68.在又一示例中,如图3i所示,冲击检测器300检测机器人100的腿104(例如后腿104d)的膝关节j
k
对机器人100下方的地形的冲击310。这里,冲击检测器300不基于冲击310产生反作用运动的响应320,因为这种类型的冲击310通常是掠射碰撞。例如,当机器人100正在下楼梯20并且机器人100的身体102太低时,摆动腿104
sw
在行进方向t
d
上向前摆动,并且膝关节j
k
夹住摆动腿104
sw
打算摆动经过的楼梯20(示为楼梯20a)。因为这通常是掠射冲击310,并且摆动腿104
sw
将在掠射冲击之后继续摆动,所以反应运动的响应320对于机器人100成功穿越楼梯20通常是不必要的。这可能由于机器人100的身体102的高度和腿104的运动学的组合而发生。换句话说,腿104可以被配置成使得膝关节j
k
在相应腿104的摆动阶段的位置期间笔直向下。在摆动阶段期间,利用该膝关节j
k
位置,膝关节j
k
可以夹住楼梯20的拐角(例如,楼梯20的踏板22或突缘26的拐角)。
69.在一些示例中,为了帮助机器人100穿越楼梯20或楼梯状地形,身体规划器150指示控制器120将摆动腿104
sw
的膝关节j
k
定位成远离机器人100的矢状面p
s
。例如,图3j示出了远离机器人100的矢状面p
s
和远离腿104的中立位置(例如,第一轴线a1的横向外侧)定位的膝关节j
k
。换句话说,当机器人100的腿104通常垂直于地平面(例如,楼梯20的踏板22的表面)时,机器人100的腿104通常处于中立位置,使得膝关节j
k
通常在髋关节j
h
下方对准,以试图均匀分布在远端106处的腿104上经受的任何力,并最小化关节j
k
,j
h
经受的扭矩。这里,图3j将前站立腿104b、104
st
描绘为中立位置,因为髋关节j
h
和膝关节j
k
沿着第二轴线a2对准。通过将摆动腿104
sw
的膝关节j
k
定位成远离机器人100的矢状面p
s
,与摆动腿104
sw
相关联的膝关节j
k
可能不太可能引起碰撞c,从而导致冲击检测器300的响应320以及与移动路径的潜在偏差,以横穿楼梯20或楼梯状地形。
70.在一些示例中,如图3k所示,机器人100在穿越楼梯20时具有前腿104
l
和后腿104
t
。在这些示例中,机器人100可以爬上或爬下楼梯20,使得在四足机器人的情况下,前腿104a

b之一和后腿104c

d之一基本上彼此一致地移动。例如,前腿104a

b在与机器人100的身体102的相对侧上的后腿104c

d相似的时间移动,使得机器人100以爬行方式移动以穿越楼梯20。在一些示例中,前腿104
l
指的是最初移动以上或下楼梯20的腿104,而后腿104
t
指的是当机器人100穿越楼梯20时在时间上跟随前腿104
l
的腿104。由于前腿104a

b和后腿104c

d可以一致地移动,每组腿104(例如,前组和后组)具有一前腿104
l
和一后腿104
t
。在一些示例中,当机器人100穿越楼梯20时,前腿104
l
由初始摆动腿104
sw
确定,而后腿104
t
对应于初始站立腿104
st
。在一些配置中,当将前腿104
l
(或摆动腿104
sw
)的远端106移动到楼梯20的目标步伐位置时,机器人100将后腿104
t
的远端106定位到后步伐位置,该后步伐位置位于前腿104
l
的楼梯20下方(如果上楼梯)或上方(如果下楼梯)的后楼梯20的相应步伐区域220内。例如,图3k描绘了当机器人正在上楼梯20时,在第一楼梯20a处的前腿104a、104
l
和在第一楼梯20a下方的第二楼梯20b处的后腿104b、104
t
。在所示的示例中,与后腿104
t
所处的后楼梯20相关联的第二楼梯20b邻近于与前腿104
l
的目标步伐位置相关联的第一楼梯20a。然而,在其他示例中,一个或多个中间楼梯20可以存在于与前腿104
l
的目标步伐位置相关联
的前楼梯20和与后腿104
t
的后步伐位置相关联的后楼梯20之间。例如,参考图1a,具有较浅深度d的踏板22和/或具有较短高度h的竖板24的楼梯20可以允许前腿104
l
(或摆动腿104
sw
)在移动到目标步伐位置时越过一个或多个楼梯,使得一个或多个中间楼梯20存在于与前腿104
l
的目标步伐位置相关联的前楼梯20和与后腿104
t
的后步伐位置相关联的后楼梯20之间。
71.一般来说,机器人100可以不包括关于环境10中的地形结构的许多假设。在没有假设的情况下,机器人100的系统分析传感器数据164以确定环境10中的地形类型。这种方法对于有噪声的传感器数据164或者更广义地说因为存在大量的地形可能性可能是有问题的。在楼梯20的情况下,楼梯20通常包括已知的形状,例如基于建筑规范、人体工程学原理或其他建筑传统的踏板22、竖板24和突缘26。在一些配置中,机器人100利用楼梯20的已知形状,并且包括如图4所示的楼梯跟踪器400。楼梯跟踪器400是机器人100的系统,其利用了楼梯20呈现一致结构的假设。基于楼梯20的结构假设,楼梯跟踪器400被配置成接收传感器数据164,并试图将其对楼梯20的假设与传感器数据164相符合。当楼梯20的结构假设符合传感器数据164时,楼梯跟踪器400将对应于传感器数据164的地形识别为楼梯20。在一些示例中,当楼梯跟踪器400在传感器数据164内识别楼梯20时,楼梯跟踪器400继续从传感器数据164确定关于楼梯20的更多细节。这些细节可以包括楼梯20的精确方位(例如,相对于机器人100)、每个楼梯20的深度“d”、每个楼梯20的高度“h”等。图4描绘了传感器数据164的点云(例如,来自立体摄像机),其中一组楼梯20强加在传感器数据164上。这里,楼梯跟踪器400通过使用楼梯20存在于传感器数据164内的假设,识别出传感器数据164具有类似于楼梯结构的俯仰的点云模式。该示例示出了楼梯跟踪器400可能有利于识别楼梯20,即使环境10具有噪声传感器数据164。
72.图5是通过楼梯20的方法500的示例。在操作502,方法500接收关于机器人100在具有楼梯20的环境10中操纵的图像数据164。机器人100包括两条或多条腿104。在操作504,方法500在机器人100穿越楼梯20之前执行操作504a和操作504b。在操作504a,方法500基于接收的图像数据164为每个楼梯20确定相应的步伐区域220。步伐区域220为机器人100的相应摆动腿104
sw
的远端106识别相应楼梯20上的安全放置区域。在操作504b处,方法500朝着机器人100的前部移位机器人100的重量分布。在操作506处,当机器人100穿越楼梯20时,对于每个楼梯20,方法500将机器人100的相应摆动腿104
sw
的远端106移动到目标步伐位置。目标步伐位置在楼梯20的相应步伐区域220内。
73.图6是可用于实现机器人的系统(例如,穿越系统110、控制器120、感知系统200、冲击检测器300、楼梯跟踪器400等)的示例计算设备600和本文中描述的方法(例如方法500)的示意图。计算设备600旨在表示各种形式的数字计算机,例如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。这里所示的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实施方式。
74.计算设备600包括处理器610、存储器620、存储设备630、连接到存储器620和高速扩展端口650的高速接口/控制器640、以及连接到低速总线670和存储设备630的低速接口/控制器660。组件610、620、630、640、650和660中的每一个使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器610可以处理用于在计算设备600内执行
的指令,包括存储在存储器620或存储设备630上的指令,以在外部输入/输出设备上显示图形用户界面(gui)的图形信息,例如联接到高速接口640的显示器680。在其他实施方式中,可以酌情使用多个处理器和/或多条总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备600,每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
75.存储器620在计算设备600内非过渡地存储信息。存储器620可以是计算机可读介质、易失性存储单元或非易失性存储单元。非暂时性存储器620可以是用于临时或永久存储程序(例如,指令顺序)或数据(例如,程序状态信息)以供计算设备600使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如,通常用于固件,例如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。
76.存储设备630能够为计算设备600提供大容量存储。在一些实施方式中,存储设备630是计算机可读介质。在各种不同的实施方式中,存储设备630可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或者设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含指令,其当被执行时,执行一种或多种方法,例如上述方法。信息载体是计算机或机器可读介质,例如存储器620、存储设备630或处理器610上的存储器。
77.高速控制器640管理计算设备600的带宽密集型操作,而低速控制器660管理较低带宽密集型操作。这种职责分配只是示例性的。在一些实施方式中,高速控制器640联接到存储器620、显示器680(例如,通过图形处理器或加速器)以及可以接受各种扩展卡(未示出)的高速扩展端口650。在一些实施方式中,低速控制器660联接到存储设备630和低速扩展端口690。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口690可以例如通过网络适配器联接到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪或网络设备,例如交换机或路由器。
78.如图所示,计算设备600可以以多种不同的形式实施。例如,它可以实施为标准服务器600a,或者在一组这样的服务器600a中多次实施为膝上型计算机600b,或者实施为机架服务器系统600c的一部分。
79.这里描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用或通用的,被联接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。
80.这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实施。如这里所使用的,术语“机器可读介质”和“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(pld)),包括接收机器指令作为机器可读信号的机
器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
81.本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路来执行,例如fpga(现场可编程门阵列)或asic(专用集成电路)。举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和一个或多个用于存储指令和数据的存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地联接以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传送到这些设备或两者。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和和cdrom和dvd

rom磁盘。处理器和存储器可由专用逻辑电路补充或合并到专用逻辑电路中。
82.为了提供与用户的交互,本公开的一个或多个方面可以实施在计算机上,该计算机具有用于向用户显示信息的显示设备例如crt(阴极射线管)、lcd(液晶显示器)监视器或触摸屏以及可选的键盘和定点设备,例如鼠标或轨迹球,用户可以通过它们向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户客户端设备上的网络浏览器。
83.已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下可以进行各种修改。因此,其他实施方式在以下权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献