CN115702445A - 用于楼梯跟踪器的感知和适应 - Google Patents
用于楼梯跟踪器的感知和适应 Download PDFInfo
- Publication number
- CN115702445A CN115702445A CN202180040480.2A CN202180040480A CN115702445A CN 115702445 A CN115702445 A CN 115702445A CN 202180040480 A CN202180040480 A CN 202180040480A CN 115702445 A CN115702445 A CN 115702445A
- Authority
- CN
- China
- Prior art keywords
- stair
- robot
- edge
- height
- sensor data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006978 adaptation Effects 0.000 title abstract description 4
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000001514 detection method Methods 0.000 claims description 189
- 238000012545 processing Methods 0.000 claims description 46
- 230000015654 memory Effects 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 16
- 230000007704 transition Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000005484 gravity Effects 0.000 claims description 7
- 230000002547 anomalous effect Effects 0.000 claims description 5
- 238000009408 flooring Methods 0.000 claims description 4
- 238000007670 refining Methods 0.000 claims description 3
- 210000002414 leg Anatomy 0.000 description 65
- 230000008447 perception Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 28
- 210000002683 foot Anatomy 0.000 description 17
- 238000003860 storage Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012417 linear regression Methods 0.000 description 5
- 229920000642 polymer Polymers 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 210000004394 hip joint Anatomy 0.000 description 4
- 210000001503 joint Anatomy 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000005021 gait Effects 0.000 description 3
- 210000000629 knee joint Anatomy 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002902 bimodal effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 210000001364 upper extremity Anatomy 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000000544 articulatio talocruralis Anatomy 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 210000003194 forelimb Anatomy 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000009439 industrial construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000007790 scraping Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/10—Simultaneous control of position or course in three dimensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Chemical & Material Sciences (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Combustion & Propulsion (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Geometry (AREA)
- Manipulator (AREA)
Abstract
一种用于楼梯跟踪器(200)的感知和适应的方法(400)接收楼梯(20)附近的机器人(100)的传感器数据(134)。对于楼梯的每个楼梯,该方法在第一时间步长(ti)基于传感器数据(134)检测相应楼梯的边缘(26)。该方法还通过将来自第一时间步长的检测边缘与第二时间步长的替代检测边缘(224)进行比较来确定检测边缘(212)是否是最可能的楼梯边缘候选(222),第二时间步长出现在第一时间步长之后。当检测边缘是最可能的楼梯边缘候选时,该方法还基于关于检测边缘的传感器数据高度来定义相应楼梯的高度。该方法还生成包括具有在相应定义的高度的相应的边缘的楼梯的楼梯模型(202)。
Description
技术领域
本公开涉及用于楼梯模式的感知和适应。
背景技术
机器人通常被定义为可重新编程的多功能机械手,其被设计成通过可变的编程移动来移动材料、零件、工具或专用设备,用于执行任务。机器人可以是物理锚定的操纵器(例如,工业机器人手臂)、在环境中移动的移动机器人(例如,使用腿、轮子或基于牵引的机构)、或者操纵器和移动机器人的某种组合。机器人用于各种行业,包括例如制造、运输、危险环境、勘探和医疗保健。因此,机器人穿越具有需要各种协调腿部移动的障碍或特征的环境的能力为这些行业提供了额外的好处。
发明内容
本公开的一个方面提供了用于感知和适应楼梯跟踪器的方法。该方法包括在数据处理硬件处接收用于楼梯附近的机器人的传感器数据。对于楼梯的每个楼梯,该方法包括由数据处理硬件在第一时间步长基于传感器数据检测楼梯的相应楼梯的边缘。对于楼梯的每个楼梯,该方法还包括由数据处理硬件通过将来自第一时间步长的检测边缘与第二时间步长的替代检测边缘进行比较来确定检测边缘是否是最可能的楼梯边缘候选。第二时间步长出现在第一时间步长之后。当检测边缘是最可能的楼梯边缘候选时,该方法包括由数据处理硬件基于关于检测边缘的传感器数据高度来定义相应楼梯的高度。该方法还包括由数据处理硬件生成楼梯模型,该楼梯模型包括具有在相应定义的高度的相应边缘的楼梯。
本公开的实施方式可以包括一个或多个以下可选特征。在一些实施方式中,对于楼梯的每个楼梯,该方法包括由数据处理硬件在第三时间步长基于传感器数据估计楼梯的相应楼梯的检测边缘的末端处的墙壁位置。在该实施方式中,该方法还包括由数据处理硬件通过将来自第三时间步长的估计的墙壁位置与第四时间步长的替代墙壁位置进行比较来确定估计的墙壁位置是否是最可能的墙壁位置候选,第四时间步长发生在第三时间步长之后。当估计的墙壁位置是最可能的墙壁位置候选时,该方法还包括由数据处理硬件将估计的墙壁位置定义为在相应楼梯的末端的相应墙壁位置,该相应墙壁位置指定机器人在穿越楼梯时的边界。同样在该实施方式中,生成楼梯模型包括在楼梯的每个楼梯的相应定义的墙壁位置处生成一个或多个墙壁。这里,用于估计墙壁位置的第三时间步长可以与用于检测楼梯的相应楼梯的边缘的第一时间步长重合。在一些示例中,定义相应楼梯的高度包括从传感器数据的点云中识别出现在检测边缘周围的点,并且基于从存在于检测边缘周围的点云中识别出的点的平均高度来定义相应楼梯的高度。
在一些配置中,在第一时间步长检测楼梯的相应楼梯的边缘包括从传感器数据的点云中识别出现在目标检测框内的点,目标检测框位于相对于楼梯的先前识别的楼梯的位置。这里,在第一时间步长,检测楼梯的相应楼梯的边缘可以包括使用检测列,在朝向机器人的向上方向上并相对于机器人的重力轴成一定角度地遍历目标检测框内出现的来自传感器数据的点云的所识别的点,检测列基于目标检测框的列增量遍历目标检测框。在使用检测列遍历目标检测框内的识别点时,该方法可以包括确定检测列是空集。这里,该方法还可以包括将检测列的最近非空集合的一个或多个相应点识别为沿着楼梯的相应楼梯的边缘的一个或多个点,该一个或多个相应点在检测列的单元内,该单元在检测列内具有最大高度并且最朝向机器人。该方法还可以包括从使用检测列识别的一个或多个相应点生成初始边缘线,移除与初始边缘线相关联的异常传感器数据,以及一旦使用最小二乘拟合移除异常传感器数据,就从初始边缘线的一个或多个相应点生成细化边缘线。可以使用最小平方拟合来生成初始边缘线。
在一些实施方式中,当相应的台阶是最靠近楼梯的支撑表面的楼梯的第一台阶时,在第一时间步长检测楼梯的相应楼梯的边缘包括基于机器人的脚与支撑表面接触的高度对传感器数据的点云中的点进行分类。在该实施方式中,被分类的点是相对于机器人的脚的高度在第一高度范围的地面点和相对于机器人的脚的高度在第二高度范围的第一台阶点,第二高度范围大于第一高度范围。
在一些示例中,机器人最初位于楼梯顶部。这里,对于对应于楼梯的顶部楼梯的相应边缘的地板边缘,该方法可以包括通过数据处理硬件将传感器数据分类为高度分类,每个高度分类对应于沿着平行于机器人重力轴的轴的高度,并且将传感器数据相对于机器人下方的地板的高度分类,该地板包括地板边缘。此外,对于对应于楼梯的顶部楼梯的相应边缘的地板边缘,该方法可以包括由数据处理硬件基于传感器数据的部分之间的高度分类的变化来识别沿着地板边缘的多个点,该变化被定义为(i)从被分类为地板高度的传感器数据到缺失的传感器数据的一部分的第一转变,或者(ii)从被分类为地板高度的传感器数据到被分类为低于地板高度的传感器数据的第二转变。对于对应于楼梯的顶部楼梯的相应边缘的地板边缘,该方法还可以包括由数据处理硬件生成与沿着地板边缘的多个点的直线拟合。这里,检测楼梯的顶部楼梯的地板边缘可以检测与沿着地板边缘的多个点拟合的线作为检测边缘。该方法可以包括由数据处理硬件将相应的高度分类与表示分类的传感器数据的二维(2D)图像空间内的每个像素相关联。这里,识别沿着地板边缘的多个点包括搜索2D图像空间的每个像素以寻找高度分类的变化。该方法可以包括通过从多个点中移除异常点来改进对沿着地板边缘的多个点的直线拟合。
本公开的另一方面提供了一种机器人。该机器人包括主体和连接到该主体并被配置为穿越环境的两条或更多条腿。机器人还包括与机器人通信的楼梯建模系统。该建模系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行时,这些指令使得数据处理硬件执行操作。这些操作包括接收楼梯附近的机器人的传感器数据。对于楼梯的每个楼梯,操作包括基于传感器数据在第一时间步长检测楼梯的相应楼梯的边缘。对于楼梯的每个楼梯,操作还包括通过将来自第一时间步长的检测边缘与在第二时间步长的替代检测边缘进行比较来确定检测边缘是否是最可能的楼梯边缘候选,第二时间步长出现在第一时间步长之后。对于楼梯的每个楼梯,当检测边缘是最可能的楼梯边缘候选时,操作包括基于关于检测边缘的传感器数据高度来定义相应楼梯的高度。对于楼梯的每个楼梯,操作还包括生成楼梯模型,该楼梯模型包括具有在相应定义的高度的相应边缘的楼梯。
这个方面可以包括一个或多个以下可选特征。在一些配置中,对于楼梯的每个楼梯,操作包括基于传感器数据在第三时间步长估计楼梯的相应楼梯的检测边缘的末端处的墙壁位置,并且通过将来自第三时间步长的估计的墙壁位置与第四时间步长的替代墙壁位置进行比较来确定估计的墙壁位置是否是最可能的墙壁位置候选,第四时间步长发生在第三时间步长之后。在该配置中,当估计的墙壁位置是最可能的墙壁位置候选时,操作包括将估计的墙壁位置定义为在相应楼梯的末端的相应墙壁位置,该相应墙壁位置指定机器人在穿越楼梯时的边界。此外,在该配置中,生成楼梯模型包括在楼梯的每个楼梯的相应定义的墙壁位置处生成一个或多个墙壁。这里,用于估计墙壁位置的第三时间步长可以与用于检测楼梯的相应楼梯的边缘的第一时间步长重合。在一些示例中,定义相应楼梯的高度包括从传感器数据的点云中识别出现在检测边缘周围的点,并且基于从存在于检测边缘周围的点云中识别出的点的平均高度来定义相应楼梯的高度。
在一些实施方式中,在第一时间步长检测楼梯的相应楼梯的边缘包括从传感器数据的点云中识别出现在目标检测框内的点,目标检测框位于相对于楼梯的先前识别的楼梯的位置。这里,在第一时间步长,检测楼梯的相应楼梯的边缘可以包括使用检测列,在朝向机器人的向上方向上并相对于机器人的重力轴成一定角度地遍历目标检测框内出现的来自传感器数据的点云的所识别的点,检测列基于目标检测框的列增量遍历目标检测框。当使用检测列遍历目标检测框内的识别点时,操作可以包括确定检测列是空集。此外,在第一时间步长,检测楼梯的相应楼梯的边缘可以包括将检测列的最近非空集合的一个或多个相应点识别为沿着楼梯的相应楼梯的边缘的一个或多个点,该一个或多个相应点在检测列的单元内,该单元在检测列内具有最大高度并且最朝向机器人。操作还可以包括从使用检测列识别的一个或多个相应点生成初始边缘线,移除与初始边缘线相关联的异常传感器数据,以及一旦使用最小二乘拟合移除异常传感器数据,就从初始边缘线的一个或多个相应点生成细化边缘线。可以使用最小平方拟合来生成初始边缘线。
在一些示例中,当相应的台阶是最靠近楼梯的支撑表面的楼梯的第一台阶时,在第一时间步长检测楼梯的相应楼梯的边缘包括基于机器人的脚与支撑表面接触的高度对传感器数据的点云中的点进行分类。在该示例中,这些点被分类为相对于机器人的脚的高度在第一高度范围的地面点和相对于机器人的脚的高度在第二高度范围的第一台阶点,第二高度范围大于第一高度范围。
在一些配置中,机器人最初位于楼梯顶部。这里,操作可以包括,对于对应于楼梯的顶部楼梯的相应边缘的地板边缘,将传感器数据分类为高度分类,每个高度分类对应于沿着平行于机器人重力轴的轴的高度,并且将传感器数据相对于机器人下方的地板的高度分类,该地板包括地板边缘。这里,操作还可以包括基于传感器数据的部分之间的高度分类的变化来识别沿着地板边缘的多个点,该变化被定义为(i)从被分类为地板高度的传感器数据到缺失传感器数据的一部分的第一转变,或者(ii)从被分类为地板高度的传感器数据到被分类为低于地板高度的传感器数据的第二转变,并且生成沿着地板边缘的多个点的线拟合。检测楼梯的顶部楼梯的地板边缘可以检测与沿着地板边缘的多个点的直线拟合作为检测边缘。可选地,操作可以包括将相应的高度分类与表示分类的传感器数据的二维(2D)图像空间内的每个像素相关联,并且识别沿着地板边缘的多个点可以包括搜索2D图像空间的每个像素以寻找高度分类的变化。操作可以包括通过从多个点中移除异常点来细化对沿着地板边缘的多个点的直线拟合。
在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。根据说明书和附图以及权利要求,其他方面、特征和优点将变得显而易见。
附图说明
图1A是站在楼梯平台顶部的示例机器人的透视图。
图1B是图1A的机器人的示例系统的示意图。
图2A和2B是用于图1A的机器人的示例楼梯跟踪器的示意图。
图2C-2I是用于图1A的机器人的示例楼梯上升跟踪器的示意图。
图2J-2U是用于图1A的机器人的示例楼梯下降跟踪器的示意图。
图3A-3E是用于图1A的机器人的示例楼梯监管器的示意图。
图4是用于生成楼梯模型的方法的示例操作布置的流程图。
图5是基于融合的建模和感知地形控制机器人的方法的示例操作布置的流程图。
图6是可用于实现本文描述的系统和方法的示例计算设备的示意图。
不同附图中相同的参考符号表示相同的元件。
具体实施方式
当腿式机器人在环境中操纵时,机器人可能会遇到需要精确的腿部移动和足部放置(即,远端放置)的地形(例如,人造结构)。为了提供精确的腿部移动和足部放置,当机器人的系统识别不同类型的地形时,机器人的移动控制系统可以约束机器人的移动以穿越地形,以防止错误,甚至是小错误,其可能导致机器人的灾难性问题。例如,当人类穿越楼梯时,该任务需要一定程度的协调(例如,眼到脚的协调)。没有协调,人可能会失足、滑倒、绊倒或跌倒在楼梯上。机器人可能遭遇同样的不幸,但缺乏天生的协调性。因此,机器人需要系统和方法来协调精确的腿部移动。
图1A是机器人100的环境10的示例。环境10通常指的是与某种类型的地形相关联的空间区域,包括机器人100(例如,使用如图1B所示的控制系统170)可以穿越的楼梯20,20a-n或类似楼梯的地形。机器人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顶部的平台上。此外,一组楼梯20可以被限制在一个或多个墙壁28和/或栏杆之间。在一些示例中,墙壁28包括踢脚板(例如,踏板22端部的类似踢脚板的结构或滑道)或纵梁。在工业楼梯20不是完全封闭的情况下,工业楼梯20包括用作踢脚板的纵梁(例如,金属纵梁)。
楼梯状地形通常是指在一定距离内高度变化的地形。就高度的变化而言,楼梯状地形可能类似于楼梯(例如,具有高度增益的倾斜坡度或具有高度损失的下降坡度)。然而,对于类似楼梯的地形,踏板22和竖板24的轮廓并不明显。相反,楼梯状地形可以指具有踏板状部分的地形,该踏板状部分允许机器人具有足够的牵引力来放置站立肢,并且顺序地或同时地使用前肢在地形内的相邻垂直障碍物(类似于升降器)上上升或下降。例如,楼梯状地形可能包括碎石、倾斜的岩石攀爬物、损坏或劣化的传统楼梯等。
参考图1A,机器人100包括主体110,其具有基于移动的结构,诸如连接到主体110的腿120a-d,使得机器人100能够在环境10中移动。在一些示例中,每条腿120是可铰接结构,使得一个或多个关节J允许腿120的构件122移动。例如,每条腿120包括将腿120的上部构件122、122U连接到主体110的髋关节JH和将腿120的上部构件122U连接到腿120的下部构件122L的膝关节JK。对于碰撞检测,髋关节JH可以进一步分解为在机器人100的正面平面(即,在X方向轴AX和Z方向轴AZ的方向上延伸的X-Z平面)中发生的被表示为“JHx”的髋关节JH的外展-内收旋转,以及在机器人100的矢状平面(即,在Y方向轴AY和Z方向轴AZ的方向上延伸的Y-Z平面)中发生的被表示为“JHy”的髋关节JH的屈曲-伸展旋转。尽管图1A描绘了具有四条腿120a-d的四足机器人,但是机器人100可以包括任何数量的腿或基于移动的结构(例如,具有两条腿的两足或人形机器人),其提供了在环境10内穿越地形的部件。
为了穿越地形,每条腿120具有接触地形的表面12(即,牵引表面)的远端124。换句话说,腿120的远端124是机器人100使用的腿120的端部,以在机器人100移动期间枢转、放置或通常提供牵引力。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,但是腿120的远端124包括踝关节JA,使得远端124可相对于腿120的下部构件122L进行关节移动。
机器人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方向轴AX和Y方向轴AY的方向上延伸而跨越X-Y平面。地平面指的是支撑表面12,其中机器人100的腿120的远端124可以产生牵引力以帮助机器人100在环境10中移动。机器人100的另一个解剖平面是横跨机器人100的主体110延伸的正面平面(例如,从机器人100的具有第一条腿120a的左侧到机器人100的具有第二条腿120b的右侧)。正面平面通过在X方向轴AX和Z方向轴AZ的方向上延伸而跨越X-Z平面。
当腿式机器人围绕环境10移动时,机器人的腿120经历步态周期。通常,当腿120触地或接触支撑面12时,步态周期开始,当同一条腿120再次接触地面12时,步态周期结束。这里,触地也被称为脚步,其定义了基于移动的结构120的远端124与支撑表面12接触的点或位置。步态周期可以主要分为两个阶段,摆动阶段和站立阶段。在摆动阶段期间,腿120执行(i)从支撑表面12抬离(有时也称为脚趾离地和站立阶段与摆动阶段之间的过渡),(ii)在腿120的膝关节JK处弯曲,(iii)腿120的膝关节JK伸展,以及(iv)触地(或脚步)回到支撑表面12。这里,处于摆动阶段的腿120被称为摆动腿120SW。随着摆动腿120SW进行摆动阶段120SW的移动,另一条腿120执行站立阶段。站立阶段是指腿120的远端124(例如,脚)在支撑表面12上的时间段。在站立阶段期间,腿120执行(i)触发从摆动阶段到站立阶段的过渡的初始支撑表面接触,(ii)腿120阻尼支撑表面接触的负载响应,(iii)当对侧腿(即摆动腿120SW)抬起并摆动到平衡位置时的中间站立支撑(大约摆动阶段的中途),以及(iv)从当机器人的COM在腿120上方时直到对侧腿120接触到支撑表面12的终端站立支撑。这里,处于站立阶段的腿120被称为站立腿120ST。
为了围绕环境10进行操纵,机器人100包括具有一个或多个传感器132、132a-n(例如,示为第一传感器132、132a和第二传感器132、132b)的传感器系统130。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(IMU))、力传感器和/或运动学传感器。传感器132的一些示例包括相机,诸如立体相机、扫描光探测和测距(LIDAR)传感器或扫描激光探测和测距(LADAR)传感器。在一些配置中,机器人100包括在机器人100的主体110的前端(即,机器人100的头部邻近机器人100的前腿120a-b)作为传感器132的两个立体相机,以及在机器人100的主体110的后端邻近机器人100的后腿120c-d作为传感器132的一个立体相机。在一些示例中,传感器132具有定义对应于传感器132的感测范围或区域的对应视场FV。例如,图1A描绘了机器人100的视场FV。每个传感器132可以是可枢转的和/或可旋转的,使得传感器132可以例如围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场FV。
参考图1A和1B,在一些实施方式中,传感器系统130包括耦合到关节J的传感器132。在一些示例中,这些传感器132耦合到操作机器人100的关节J的马达(例如,传感器132、132a-b)。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动态134、134JD。作为基于关节的传感器数据134收集的关节动态134JD可包括关节角度(例如,上部构件122U相对于下部构件122L)、关节速度(例如,关节角速度或关节角加速度)、和/或在关节J处经历的关节扭矩(也称为关节力)。这里,由一个或多个传感器132生成的基于关节的传感器数据134可以是原始传感器数据、被进一步处理以形成不同类型的关节动态134JD的数据、或两者的某种组合。例如,传感器132测量关节位置(或耦合在关节J处的构件122的位置),并且机器人100的系统执行进一步的处理以从位置数据导出速度和/或加速度。在其他示例中,传感器132被配置为直接测量速度和/或加速度。
当利用传感器132测量视场FV时,传感器系统130生成对应于视场FV的传感器数据134(也称为图像数据)。在一些示例中,传感器数据134是对应于由三维体积图像传感器132生成的三维体积点云的图像数据。附加地或替代地,当机器人100在环境10周围操纵时,传感器系统130收集机器人100的姿态数据,该姿态数据包括惯性测量数据(例如,由IMU测量)。在一些示例中,姿态数据包括关于机器人100的运动学数据和/或方位数据,例如,关于机器人100的腿120的关节J或其他部分的运动学数据和/或方位数据。利用传感器数据134,机器人100的感知系统180可以生成关于环境10的地形的地图182。
当机器人100在环境10周围操纵时,传感器系统130收集与环境10的地形和/或机器人100的结构(例如,机器人100的关节动力学和/或里程计)相关的传感器数据134。例如,图1A描绘了站在作为机器人100的环境10的一组楼梯20的平台(即,水平支撑表面)上的机器人100。这里,传感器系统130收集关于楼梯组20的传感器数据134。当传感器系统130收集传感器数据134时,计算系统140被配置为存储、处理传感器数据134和/或将传感器数据134传送给机器人100的各种系统(例如,控制系统170、感知系统180、楼梯跟踪器200和/或楼梯监管器300)。为了执行与传感器数据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的处理可以聚焦于控制机器人100,而感知系统180的处理聚焦于解释由传感器系统130收集的传感器数据134。例如,这些系统170、180并行执行它们的处理,以确保机器人100在环境10中的准确、流畅的移动。
在一些示例中,控制系统170包括至少一个控制器172、路径生成器174、步定位器176和主体规划器178。控制系统170可以被配置为与机器人100的至少一个传感器系统130和任何其他系统(例如,感知系统180、楼梯跟踪器200和/或楼梯监管器300)通信。控制系统170使用硬件140执行操作和其他功能。控制器172被配置为基于来自机器人100的系统(例如,控制系统170、感知系统180、楼梯跟踪器200和/或楼梯监管器200)的输入或反馈来控制机器人100在环境10中来回移动。这可以包括机器人100的姿态和/或行为之间的移动。例如,控制器172控制不同的脚步模式、腿模式、主体移动模式或视觉系统感测模式。
在一些示例中,控制器172包括多个控制器172,其中每个控制器172具有固定的节奏。固定的节奏指的是腿120的迈步或摆动阶段的固定的定时。例如,控制器172指示机器人100以特定的频率(例如,每250毫秒、350毫秒等一步)移动腿120(例如,迈出一步)。对于多个控制器172,其中每个控制器172具有固定的节奏,机器人100可以通过在控制器172之间切换来体验可变的定时。在一些实施方式中,当机器人100穿越环境10时,机器人100连续切换/选择固定节奏控制器172(例如,每三毫秒重新选择控制器170)。
在一些实施方式中,控制系统170包括专用于特定控制目的的专用控制器172。例如,控制系统170可以包括一个或多个楼梯控制器172,其专用于规划和协调机器人的移动以穿越一组楼梯20。例如,楼梯控制器172可以确保摆动腿120SW的步径保持摆动高度,以越过楼梯20的竖板24和/或边缘26。其他专业控制器172可以包括路径生成器174、步定位器176和/或主体规划器178。参考图1B,路径生成器174被配置为确定机器人100的水平移动。例如,水平移动指的是机器人100的平移(即,在X-Y平面中的移动)和/或偏转(即,围绕Z方向轴AZ的旋转)。路径生成器174基于传感器数据134确定机器人100周围的环境10中的障碍物。路径生成器174将障碍物通信给步定位器176,使得步定位器176可以识别机器人100的腿120的足部放置(例如,放置机器人100的腿120的远端124的位置)。步定位器176使用来自感知系统180的输入(例如,地图182)生成足部放置(即,机器人100应该迈步的位置)。主体规划器178(很像步定位器176)接收来自感知系统180的输入(例如,地图182)。一般而言,主体规划器178被配置为调整机器人100的主体110的动态(例如,旋转,诸如俯仰或偏航和/或COM的高度),以成功地在环境10周围移动。
感知系统180是机器人100的系统,其帮助机器人100在具有各种障碍物的地形中更精确地移动。当传感器132收集机器人100周围空间(即,机器人的环境10)的传感器数据134时,感知系统180使用传感器数据134来形成环境10的一个或多个地图182。一旦感知系统180生成地图182,感知系统180还被配置为向地图182添加信息(例如,通过将传感器数据134投影到预先存在的地图上)和/或从地图182移除信息。
在一些示例中,由感知系统180生成的一个或多个地图182是地面高度地图182、182a、无步地图(no step map)182、182b和主体障碍物地图182、182c。地面高度地图182a是指由感知系统180基于来自体素地图的体素生成的地图182。在一些实施方式中,地面高度地图182a起作用,使得在地图182的网格内的每个X-Y位置(例如,被指定为地面高度地图182a的单元),地面高度地图182a指定高度。换句话说,地面高度地图182a传达了在水平面中的特定X-Y位置处,机器人100应该以特定高度行走。
无步地图182b通常指的是定义不允许机器人100踏步的区域的地图182,以便告知机器人100何时机器人100可以在特定的水平位置(即,X-Y平面中的位置)踏步。在一些示例中,非常类似于主体障碍物地图182c和地面高度地图182a,无步地图182b被划分成单元网格,其中每个单元表示机器人100周围的环境10中的特定区域。例如,每个单元是3厘米见方的。为了便于说明,每个单元存在于环境10中的X-Y平面内。当感知系统180生成无步地图182b时,感知系统180可以生成布尔值图,其中该布尔值图标识无步区域和踏步区域。无步区域指的是一个或多个单元中存在障碍物的区域,而踏步区域指的是一个或多个单元中感觉不到障碍物存在的区域。感知系统180进一步处理布尔值地图,使得无步地图182b包括带符号的距离字段。这里,无步地图182b的带符号距离字段包括到障碍物边界的距离(例如,到无步区域244边界的距离)和到障碍物边界的向量v(例如,定义到无步区域244边界的最近方向)。
主体障碍物地图182c通常确定机器人100的主体110是否可能与机器人100在X-Y平面中的位置重叠。换句话说,主体障碍物地图182c为机器人100识别障碍物,以指示机器人100通过在环境10中的位置重叠是否存在与附近或相同位置的障碍物碰撞或潜在损坏的风险。作为机器人100的主体110的障碍物地图,机器人100的系统(例如,控制系统170)可以使用主体障碍物地图182c来识别与机器人100相邻或最接近的边界,以及识别移动机器人100的方向(例如,最优方向)以避开障碍物。在一些示例中,很像其他地图182,感知系统182根据单元网格(例如,X-Y平面的网格)生成主体障碍物地图182c。这里,主体障碍物地图182c内的每个单元包括距障碍物的距离和指向作为障碍物的最近单元(即,障碍物的边界)的向量。
由于机器人100基于由机器人100周围的一个或多个传感器132捕获的传感器数据134的一些解释在环境10周围导航,所以出现了环境10内的某些类型的结构可能例行地导致差的传感器数据134的情况。不幸的是,即使当差的传感器数据134存在时,机器人100仍可能试图在环境10内导航和/或执行任务。一种经常导致差的传感器数据134的结构类型是楼梯20。这尤其成问题,因为楼梯20在商业和住宅上都是相当常见的结构特征。此外,用于楼梯导航的差的传感器数据134可能是灾难性的,因为楼梯通常也需要精确的腿部移动和足部放置。由于从协调的角度来看,楼梯可能是难以导航的特征,所以差的传感器数据134可能显著增加导航挑战。
由于各种原因,传感器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(诸如立体相机)可能产生差的传感器数据134。例如,立体相机的具体功能是试图找到两个不同图像的、是真实世界中的同一对象的一部分,并使用视差来确定该对象的距离。然而,基于从上到下观察时楼梯的重复线,传感器132更有可能与同一对象不匹配,从而产生差的传感器数据134。这对于工业楼梯或有格栅的楼梯尤其常见,因为格栅引入了传感器132能够不匹配的更多重复线。虽然不是所有的楼梯都装有栅栏,但是这给机器人100的导航带来了问题,因为机器人100可能经常被部署在工业环境10中。尽管这些情况不会出现在每种类型的楼梯上,但是努力爬上一种类型的楼梯并爬下另一种类型的楼梯的机器人100可能会限制机器人的通用性和鲁棒性。
为了试图解决这些传感器数据问题中的一些,机器人100使用称为楼梯跟踪器200的系统来检测和跟踪楼梯20的特征。楼梯跟踪器200允许机器人100通过具有较低维度的模型来理解不明确的数据。参考图2A和2B,在一些实施方式中,楼梯跟踪器200被配置为接收传感器数据134并输出楼梯模型202。模型202可以包括某种形式的楼层高度和一系列楼梯20。这里,楼梯20是具有方向、位置和在任一方向上的范围的线段。模型202通常可以假设楼梯20是水平约束的,并且包括最小/最大上升和最小/最大延伸。替代地,斜率可以被限制为最小/最大值。
为了生成模型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在未来时间步长ti+1期间保持楼梯20的实际特征的最优表示。换句话说,当传感器系统130捕获传感器数据134时,楼梯跟踪器200以特定频率接收传感器数据134。检测器210基于来自第一时间步长t1的传感器数据134和来自先前时间步长t1-1的集合传感器数据134,在第一时间步长t1确定检测特征212。检测器210将检测特征212通信给检测跟踪器220,并且当检测跟踪器220处不存在主要检测时,检测跟踪器220将检测特征212建立为跟踪检测222(也称为主要检测)或初始检测。换句话说,当检测跟踪器220没有跟踪与从检测器210接收的检测特征212相对应的楼梯特征时,检测跟踪器212在第一时间步长t1使用检测特征212初始化对该楼梯特征的跟踪过程。例如,图2B示出了检测跟踪器220在第一时间步长t1将楼梯20的边缘26的第一检测特征212,212e1识别为被跟踪的检测222。在第一时间步长t1之后的第二时间步长t2,楼梯跟踪器200接收在第二时间步长t2和/或在第一时间步长t1和第二时间步长t2之间的时间段期间生成的传感器数据134作为最近的传感器数据134。使用最近的传感器数据134,检测器210在稍后的时间ti+1生成另一个检测特征212。例如,检测器210在第二时间步长t2为楼梯20的边缘26生成第二检测特征212,212e2。
为了执行其跟踪过程,当检测跟踪器220接收第二检测特征212,2122时,检测跟踪器220确定在第二时间步长t2接收的第二检测特征2122是否类似于来自第一时间步长t1的第一检测特征2121(现在是跟踪的检测222)。当第一和第二检测特征212相似时,检测跟踪器220将第一和第二检测特征212合并在一起,以更新跟踪的检测222。这里,在合并操作期间,检测跟踪器220可以使用平均(例如,由检测特征212中的置信误差加权的加权平均)将检测特征212与跟踪的检测222合并在一起。当第二检测特征2122不类似于第一检测特征2121时,检测跟踪器220确定对于对应于第二检测特征2122的楼梯特征是否存在替代的被跟踪特征224(即,检测跟踪器220先前在检测特征212处被识别为替代的被跟踪特征224)。当替代的被跟踪特征224不存在时,检测跟踪器220在第二时间步长t2将第二检测特征2122确立为替代的被跟踪特征224。当替代的被跟踪特征224已经存在时,检测跟踪器220确定在第二时间步长t2的第二检测特征2122是否类似于现有的替代的被跟踪特征224。当在第二时间步长t2的第二检测特征2122类似于现有的替代的被跟踪特征224时,检测跟踪器220将在第二时间步长t2的第二检测特征2122与现有的替代的被跟踪特征224合并(例如,使用平均或加权平均)。当在第二时间步长t2的第二检测特征2122不类似于现有的替代的被跟踪特征224时,检测跟踪器200可生成与在第二时间步长t2的第二检测特征2122相等的另一替代的被跟踪特征224。在一些示例中,检测跟踪器220被配置为跟踪和/或存储多个替代检测224。
通过结合检测器210使用检测跟踪器220的跟踪过程,楼梯跟踪器200可以检查每个检测,以防止楼梯跟踪器200不利地依赖于检测。换句话说,随着机器人100不断地收集关于其自身的传感器数据134(例如,以15Hz的频率),依赖于来自传感器数据134的快照的单次检测可能导致楼梯20的特征的实际位置不准确。例如,机器人100可以在第一时间和第二时间之间移动或改变其姿态P,从而为楼梯20的先前被遮挡、部分被遮挡或总体上捕捉不良的区域生成传感器数据134。这里,在第一时间仅执行单次检测的系统可能遭受不完整的传感器数据134,并且不准确地检测特征。相比之下,通过在一段时间内基于楼梯跟踪器200可用的最近传感器数据134持续跟踪每个检测,楼梯跟踪器200为检测到的楼梯特征(例如,主要检测和替代检测)生成双峰概率分布。利用楼梯20的特征的双峰概率分布,楼梯跟踪器200能够生成楼梯20的特征的准确表示,以包括在楼梯模型202中。此外,该检测和跟踪过程容许在对应于任意差的传感器数据134的任何特定时刻的检测,因为该检测被跟踪并随时间与其他检测进行平均(例如,可能基于更好数据的检测或基于多次检测的更大数据集合的检测)。因此,尽管单个检测在任何时刻都可能出现噪声,但是检测跟踪器220的合并和替换交换操作随着时间的推移发展了楼梯特征的准确表示。
然后,这些楼梯特征可以被结合到楼梯模型202中,楼梯模型202由楼梯跟踪器200生成并通信到机器人100的各种系统(例如,控制机器人100穿越楼梯20的系统)。在一些配置中,一旦被跟踪特征222已经被检测器210检测到并且被检测跟踪器220跟踪了一些迭代次数,楼梯跟踪器200就将被跟踪特征222结合到楼梯模型202中。例如,当检测跟踪器220已经跟踪相同的特征达三到五个检测/跟踪周期时,楼梯跟踪器200将该特征的跟踪检测222(即,已经更新了多个检测周期的检测)结合到楼梯模型202中。换句话说,楼梯检测器200确定被跟踪的检测222已经在检测和跟踪过程中成熟为楼梯20的特征的最可能候选。
当传感器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(反之亦然)。
参考图2C-2I,楼梯上升跟踪器200a包括检测器210,210a和检测跟踪器220,220a。这里,检测器210a和检测跟踪器220a具有如前所述的功能,使得检测器210a被配置为检测一个或多个楼梯20(例如,边缘26或墙壁28)的特征,并且检测跟踪器220a被配置为跟踪检测特征212,以确保基于楼梯上升跟踪器200的建模技术和机器人100捕获的当前传感器数据134,检测特征212保持楼梯20的实际特征的准确表示。然而在一些示例中,检测器210a和检测跟踪器220a还包括专用于登上一组楼梯20的附加或替代操作。
在一些示例中,例如图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存在于相对于第一楼梯20a的第一检测边缘212,212e1显示为虚线矩形目标检测框的检测区域AD中。
参考图2E,在一些实施方式中,基于检测区域AD内的传感器数据134,检测器210a将检测区域AD划分成分段(例如,定义像素宽的检测列的柱状分段),并且递增地遍历检测区域AD的每个分段。当在朝向机器人100的方向D(例如,朝向楼梯20的实际边缘26可能存在的方向)上搜索检测区域AD的分段时,检测器210a识别在检测区域AD的分段内在该方向D上最远的传感器数据134的点。在一些示例中,为了确定搜索方向D上的最远点,检测器210a顺序地搜索检测区域AD的每个分段,直到搜索分段是空集,并且将空集之前的搜索分段中的一个或多个点识别为沿着楼梯20的边缘26的一个或多个点。例如,搜索分段内具有最大高度(例如,z坐标高度)的一个或多个点对应于边缘点(例如,以红色示出)。
参考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执行跟踪过程。
不同于对其他楼梯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,CS1,和/或预期的第二楼梯分类C,CS2。在一些示例中,基于机器人100的脚124在地板上的假设,检测器210a首先通过地板高度分类CF对传感器数据134进行分类。检测器210a可以生成相对于所确定的楼层高度的其他分类C。这里,检测器210a使用其关于真实世界中楼梯通常有多高的先验知识来定义第一和第二楼梯相对于楼层高度的分类高度。
在一些配置中,基于分类C,检测器210a搜索如关于图2E所示的检测区域AD,以确定传感器数据134的边缘点。换句话说,为了从传感器数据134中检测第一楼梯20a的边缘点,检测器210a在假定对应于第一楼梯20a的高度(例如,基于对应于预期的第一楼梯分类C,CS1的高度)执行关于图2E描述的列搜索。在一些示例中,检测器210a被配置为对边缘点进行聚类,并合并任何看起来可能是同一楼梯20的一部分的聚类CL,除了聚类CL之间的间隙之外。在一些实施方式中,利用所识别和聚类的边缘点,检测器210确定所识别和聚类的边缘点是否指示被分类为第一楼梯分类CS1和第二楼梯分类CS2的传感器数据134之间的一致关系。这里,当所识别和聚类的边缘点描绘楼梯分类CS1、CS2并且定义第一组边缘点之上的第二组边缘点(例如,反映一个楼梯在另一个之上的实际楼梯)时,所识别和聚类的边缘点可以指示被分类为第一楼梯分类CS1和第二楼梯分类CS2的传感器数据134之间的一致关系。当这种情况发生时,楼梯上升跟踪器200a可确定底层传感器数据134最有可能对应于楼梯,并将其自身应用(或推荐其应用)到底层传感器数据134以检测特征。
基于传感器数据分类过程,检测器210a知道第一楼梯20,20a的大致位置。使用该近似位置,检测器210a可以精确楼梯20(例如,第一楼梯20a)的高度。例如,检测器210a基于近似位置选择可能对应于楼梯20的踏板22的传感器数据134的点,并对传感器数据134的所选点的高度进行平均。这里,检测器210a然后将所选点的平均高度定义为楼梯20的踏板22的精确高度(即,也称为楼梯20的高度)。当机器人100靠近楼梯20使得机器人100的传感器132在楼梯20上方时,检测器210a可以执行这种高度细化。
参考图2H,检测器210a被配置为生成被检测的墙壁212,212w作为检测特征212。在一些示例中,为了检测墙壁28,检测器210a首先估计一个或多个楼梯20的检测边缘212e的误差边界Eb,以定义墙壁28的搜索区域(即,检测区域AD)。这里,误差边界指的是检测边缘212e的置信容限。误差边界通常越靠近机器人100越小(即,边缘26的置信容限越紧),而越远离机器人100越大(即,边缘26的置信容限越松)。检测器210a估计误差边界Eb,因为检测器210a想要避免在检测期间意外地包括边缘点作为墙壁点。在图2H中,检测器210a估计第一方向(例如,示为沿x轴的第一误差边界Eba1)和第二方向(例如,示为沿z轴的第二误差边界Eba2)上的每个楼梯20(例如,示为第一楼梯20a和第二楼梯20b)的误差边界Eb。检测器210a然后将搜索区域或检测区域AD定义为至少部分由误差边界Eb界定的区域。例如,第一检测区域AD1跨越从第一楼梯20a到第二楼梯20b的误差边界Eb的误差边界Eb,以搜索与第一楼梯20a的范围相交的一个或多个墙壁28,第二检测区域AD2跨越从第二楼梯20b到第三楼梯20c(部分示出)的误差边界Eb的误差边界Eb,以搜索与第二楼梯20a的范围相交的一个或多个墙壁28。通过使用这种误差边界方法,检测器210a试图防止边缘26的有噪声的传感器数据134的部分与墙壁检测212w混淆。
参照图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的误差边界。
参考图2J-2U,楼梯跟踪器200可以被配置为楼梯下降跟踪器200,200b,其包括上升楼梯跟踪器200a或普通楼梯跟踪器200的附加或替代功能。这里,下降楼梯跟踪器200b的功能特定于机器人100下降楼梯20以及机器人100在下降期间如何感知传感器数据134的场景。当下楼梯20时,由于传感器132的特定限制,一个或多个传感器132可能产生不准确的传感器数据134。
此外,在一些示例中,在楼梯下降期间,机器人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。
对于下降的楼梯,楼梯的大部分可能不在机器人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)。
楼梯下降跟踪器200b包括检测器210,210b和检测跟踪器220,220b。这里,楼梯下降跟踪器200b的检测器210b和检测跟踪器220b可以以类似于楼梯跟踪器200和/或楼梯上升跟踪器200a的检测器210和检测跟踪器210的方式运行。即,检测器210b被配置为检测一个或多个楼梯20的特征(例如,边缘26或墙壁28),并且检测跟踪器220b被配置为跟踪检测特征212,以确保基于楼梯下降跟踪器200的建模技术和机器人100捕获的当前传感器数据134,检测特征212保持楼梯20的实际特征的准确表示。
在一些实施方式中,楼梯下降跟踪器200b的检测器210b从传感器系统130接收传感器数据134,并生成检测特征212。当机器人100接近一组下降的楼梯20时,检测器210b用于确定对应于地板边缘26f的检测边缘212,212e。一旦检测器210b确定了检测边缘212e,检测跟踪器220b监测到该检测边缘212e在未来的时间步长中仍然是地板边缘26f的最优表示。
参考图2K-2P,在一些配置中,楼梯下降跟踪器200b的检测器210b对接收到的传感器数据134执行进一步的处理,以便生成检测边缘212,212e作为检测特征212。例如,检测器210b接收传感器数据134,并根据高度对传感器数据134进行分类。这里,传感器数据134的点的高度对应于Z轴(即,平行于机器人100的重力轴的轴)上的高度。在一些示例中,检测器210b的分类过程将传感器数据134的每个点分类为高度分类C,其对应于机器人100周围的地板C的高度CF、地板C上方的高度CAF或地板C下方的高度CBF。不幸的是,由于如何感测环境10或传感器132的能力,传感器数据134可能经常具有传感器数据134中缺失的间隙或部分。为了帮助检测器210b的进一步处理,检测器210b可以执行形态学扩展以填充传感器数据134内的间隙。例如,扩张过程识别传感器数据134内的间隙,并通过扩展与所识别的间隙相邻的传感器数据134来填充所识别的间隙。
利用分类的传感器数据134,检测器210b可以进一步被配置为基于三维传感器数据134对二维图像空间执行进一步的处理(例如,如图2L所示)。在二维图像空间中,图像空间的每个像素Px可以表示或对应于传感器数据134的高度分类C。换句话说,对于每个像素Px,检测器210b确定对应于图像空间中的相应像素位置的分类传感器数据是否已经被分类为楼层分类CF、楼层分类CAF或楼层分类CBF。利用表示传感器数据134的图像空间,检测器210b可以通过分析图像空间的像素Px来确定检测边缘212e。
在一些示例中,诸如图2M,一旦检测器210b将高度分类与图像空间的像素Px相关联,检测器210b被配置为搜索图像空间以识别可能对应于地板边缘26e的潜在像素Px。在一些实施方式中,检测器210b使用某个预定义宽度的搜索列(例如,像素宽的列)来搜索图像空间。例如,图像空间被分成列,并且对于每一列,检测器210b搜索像素Px之间的高度分类C的变化。换句话说,在搜索期间,当像素Px对应于楼层分类CF时,检测器210b将像素Px识别为楼层边缘像素Px、Pxf,该楼层分类CF后面是对应于丢失的传感器数据134或某个阈值量的楼层下传感器数据134(即,具有楼层下分类CBF)的后续像素Px。在一些配置中,检测器210b从图像空间的底部开始执行列宽搜索,其中像素Px包括楼层分类CF,并在相应的列中向上搜索。
通过分析图像空间来确定检测边缘212e,检测器210b可以避免与在三维空间中搜索传感器数据134相关联的潜在问题。例如,当检测器210b试图检测地板边缘26f时,传感器数据134可以表现为高-低-高-低的交替高度模式(例如,其中高对应于地板分类CF,低对应于地板下分类CBF)。然而,在传感器数据134的一种配置中,地板边缘26f实际上位于第一组高传感器数据134内,但是第三组高传感器数据134可能混淆检测器210b,导致检测器210b将地板边缘26f解释为存在于第三组高传感器数据134中。在具有相同模式的传感器数据134的对比配置中,地板边缘26f可能实际上存在于第三组高传感器数据134中,但是第一组和第三组之间的第二组低传感器数据134可能混淆检测器210b,导致检测器210b检测第一组高传感器数据134中的地板边缘26f。因为传感器数据134可能具有这些不一致性,所以检测器210b的特征检测可能发生在二维空间而不是三维空间中。
如图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不使用最小二乘拟合(例如,基于岭回归的拟合),而是使用基于损失函数绝对值最小化的拟合(例如,基于套索回归的拟合)。通过使用具有基于例如Lasso回归的拟合的第二线L2,检测器210b可以拟合线L,以更适当地反映传感器数据134的部分看起来准确地定义了地板边缘26f的地方(例如,地板分类CF的聚类非常接近于地板分类CBF的聚类或者传感器数据134之间的窄间隙),而传感器数据134的其他部分缺乏地板边缘26f的准确定义(即,缺少数据并且对于机器人100周围的3D空间具有大的感知间隙)。相比之下,最小二乘拟合线通常不考虑这些细微差别,而是简单地构建穿越缺失数据134的间隙中间的线L。换句话说,与基于损失函数绝对值最小化的拟合相比,最小二乘拟合线受异常值的影响更大。
在一些示例中,检测器210b确定误差216或误差值,以指示检测边缘212e相对于实际边缘26(例如,地板边缘26f)的准确度(或置信度)。这里,为了确定误差216,检测器210b可以使用用于构建线L的点的数量(例如,识别的地板边缘像素Pxf的数量)、地板和生成的线L的点之间的距离的测量值(即,地板12和生成的线L之间的间隙的大小)、和/或线L的拟合(即,表示线L上的点的一致性的度量)作为输入。在一些实施方式中,误差216指示距离误差和旋转误差(例如,偏航误差)。这里,在图2P中,检测器210b描绘了有序的距离条,这是误差计算过程的视觉图示。
检测器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)。
为了生成楼梯模型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迭代地重复该过程,以确定机器人100的每一侧是否存在墙壁28。在一些配置中,当得分满足预定得分阈值时,检测器210b检测到墙壁28存在(即,确定墙壁28的检测特征212,212w)。在一些示例中,检测器210b基于得分阈值的0.5至2倍的值来建立误差界限Eb1,2。一旦检测器210b在特定时间步长ti生成被检测的墙壁212w,检测器210b将该检测特征212传递给检测跟踪器220b,以对该墙壁特征执行跟踪过程。
附加地或替代地,当使用楼梯下降跟踪器200b时,检测器210b确定一组楼梯20内的楼梯20的宽度,并假设该宽度对于该组内的所有楼梯20是恒定的。在一些配置中,检测器210b在一个水平方向上搜索传感器数据134,并且基于在该水平方向上被检测的墙壁212w和机器人100的已知位置,检测器210b推测相对墙壁28的被检测的墙壁212w的位置。这些方法可以与楼梯上升跟踪器200a形成对比,楼梯上升跟踪器200a识别楼梯20的每一端的宽度。
参考图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。
在一些示例中,检测器210b基于单一维度,即对应于传感器数据134内的点的高度位置的z坐标,对传感器数据134进行聚类。如前所述,高度或z坐标指的是沿着z轴AZ(即,平行于机器人100的重力轴)的坐标位置。为了基于高度位置对传感器数据134进行聚类,检测器210b基于高度对传感器数据134的点进行排序,识别高度顺序内的峰值(例如,与三角形核进行卷积),并基于所识别的峰值对传感器数据134的点进行分组。换句话说,当基于高度对传感器数据134的点进行排序时,检测器210b识别出存在高度范围的带(例如,对应于楼梯结构的离散高度间隔)。在具有三个楼梯20的楼梯中,高度范围可以对应于第一楼梯20,20a的第一踏板高度,第二楼梯20,20b的第二踏板高度,以及第三楼梯20,20c的第三踏板高度。通过识别这些高度增量或峰值,检测器210能够聚集传感器数据134的点。检测器210b可以根据需要合并聚类C1,以改进其对聚类C1的分组。在一些配置中,高度聚类Cl经历与其他检测特征212相同的检测和跟踪过程。
在一些实施方式中,聚类Cl还包括聚类置信度,该聚类置信度指示相应聚类的高度对应于楼梯20(例如,楼梯20的踏板22)的置信度。例如,在图2R中,每个聚类Cl由具有指示检测器对聚类Cl的置信度的直径或大小的球体可视地表示。在一些配置中,聚类Cl中的置信度基于聚类Cl中的点的数量(例如,统计地增加高度正确对应于楼梯20的可能性)。作为示例,图2R示出了由于第三聚类Cl3的直径被表示为小于其他聚类Cl,所以检测器210b在第三聚类Cl、Cl3中不如其他聚类Cl有把握。当机器人100随着楼梯下降跟踪器200b的操作而下降楼梯20时,检测器210b可以包括脚步信息FS,FS1-4,其识别机器人100成功踏上楼梯的位置。通过包括脚步信息FS,检测器210b可以改进其聚类置信度。换句话说,由于楼梯20本质上以不连续的高度间隔出现,成功的脚步FS意味着在该脚步高度处或附近的聚类Cl是正确的;导致检测器210b显著增加与聚类C1相关联的置信度。例如,对于第一楼梯20,20a处的第一脚步FS,FS1和第二楼梯20,20b处的第二脚步FS,FS2,检测器210b可以确定第一楼梯20a和第二楼梯20b之间的高度间隔,并将该间隔应用于聚类Cl以更新聚类置信度。例如,检测器210b增加了存在于第一楼梯20a和第二楼梯20b之间的高度间隔的整数倍的高度处的聚类Cl的聚类置信度。在一些示例中,检测器210b仅在聚类Cl出现在机器人100成功踏上楼梯的楼梯20的位置处或附近时增加聚类Cl的置信度。
当检测楼梯特征时,检测器210b可以检测单个楼梯20的边缘26作为检测特征212,就像它检测地板边缘26f一样。换句话说,检测器210b可以将传感器数据134或传感器数据134的聚类Cl分类为楼梯踏板C,CT(类似于地板分类CF)和楼梯踏板C,CBT之下(类似于地板下分类CBF)。这里,图2T示出了已经被分类为楼梯踏板分类CT和楼梯踏板分类CBT以下的传感器数据134。基于与楼梯20的踏板22相关的传感器数据134的分类,检测器210b可以被配置为对分类的传感器数据执行一维搜索或二维搜索(例如,像地板边缘的检测)以检测楼梯20的边缘26。当检测器210b执行一维搜索时,检测器210b搜索传感器数据134的一维高度信息,并假设边缘26平行于检测到的地板边缘212,212e,该地板边缘212,212e是在机器人100最初接近下降的楼梯20时由楼梯下降跟踪器200b的检测和跟踪过程预先确认的。通过执行二维搜索和边缘检测,与一维搜索不同,检测器210b能够检测楼梯20的弯曲组,其边缘26不一定平行于楼梯内楼梯20的其他边缘26。在一些配置中,检测器210b使用多模态或混合搜索方法,其中检测器210b首先尝试基于二维搜索生成楼梯20的检测边缘212,212e,但是如果传感器数据134是问题或者如果检测器210b确定其对于二维搜索的检测边缘212e的置信度不满足搜索置信度阈值,则回复到一维搜索。
上升和下降之间的一个区别在于,由于一组楼梯20的重复性质,下降必须经常处理差的传感器数据134。非常频繁的是,下降时或下降之前的传感器数据134可能随着时间和空间的变化而一直很差。由于差的传感器数据134的高可能性,检测器210b被配置为假设一些高度聚类Cl对应于楼梯的真实楼梯20,而其他不对应;同时在实际楼梯中也可能存在不对应于传感器数据134的任何聚类C1的楼梯20。基于这些假设,检测器210b为由检测器210b识别的聚类Cl生成所有可能的楼梯对齐AL。这里,楼梯对齐AL指的是楼梯20的潜在序列,其中该序列的每个楼梯20处于特定的高度间隔,该高度间隔可以对应于所识别的聚类CL。当生成所有可能的楼梯对齐AL时,检测器210b可以从楼梯对齐AL插入或移除潜在的楼梯。
为了说明,图2U描绘了检测器210b识别了四个聚类C1、Cl0-3。这里,在第一聚类C0和第二聚类C1之间存在大的高度差。这样,检测器210b生成对齐AL,其中潜在的楼梯(例如,描绘为S)位于第一聚类C0和第二聚类C1之间的某个高度处(例如,在第三高度h3处示出的潜在楼梯)。当评估所有可能的路线AL时,检测器210a可以确定路线AL内的潜在楼梯是否以反映实际楼梯的均匀间隔的高度间隔出现。在该示例中,在每个识别的聚类Cl处具有潜在楼梯的第一对齐AL,AL1不能在对应于第一聚类CL0和第二聚类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。在这些配置中,得分可以结合其他基于检测或跟踪的信息,诸如聚类置信度、形成聚类的点数和/或先前跟踪和确认的楼梯检测。
尽管图2R-2U示出了检测器210b检测多于一个楼梯20的过程,但是检测器210可以在该多楼梯检测过程中间歇地识别楼梯特征(例如,边缘26)。当这发生时,这些检测特征212可以被传递到检测跟踪器220b,并且随后被结合到楼梯模型202中。附加地或替代地,由该多楼梯检测过程执行的不同操作可以被修改或消除,但是仍然导致检测器210b检测到特征212。例如,该过程发生以检测单个楼梯20或楼梯20的一部分。在另一个示例中,检测器210b不利用脚步信息FS。
参考图3A-3E,在一些实施方式中,机器人100包括楼梯监管器300。机器人100的系统能够以几种不同的方式处理楼梯穿越。例如,机器人100可以根据感知系统180、楼梯跟踪器200(例如,在楼梯模式中),或者结合楼梯跟踪器200使用感知系统180来导航楼梯20。由于这些选项,楼梯监管器300被配置为管理使用这些方法中的哪一个和/或何时使用它们,以便优化机器人100的导航和操作。这里,通过在来自感知系统180的地图182和来自楼梯跟踪器200的楼梯模型202之间执行合并操作,楼梯监管器300的使用还可以帮助最小化实现一个选项相对于另一个选项的特定弱点。一般来说,楼梯监管器300包括主体障碍物合并器310、无步合并器320、地面高度分析器330和查询接口340。在一些配置中,楼梯监管器300的一个或多个功能可以在机器人100的其他系统中执行。例如,图3A将查询界面340描绘为控制系统170内的虚线框,因为其功能可以并入控制系统170。
继续参考图3A,在一些配置中,楼梯监管器300与控制系统170、感知系统180和楼梯跟踪器200通信。楼梯监管器300从感知系统180接收地图182,从楼梯跟踪器200接收楼梯模型202。利用这些输入,楼梯监管器300建议控制系统170何时应该使用来自楼梯跟踪器200的信息、来自感知系统180的信息或两者的某种组合来导航楼梯20。例如,楼梯监管器300的每个合并组件310、330可以被配置为将楼梯模型202的各方面与感知系统180的一个或多个地图182合并(例如,形成增强的楼梯模型或增强的感知地图)。在一些示例中,楼梯监管器300将所得的合并地图通信给控制系统170,以使控制系统170能够基于这些合并地图中的一个或多个(例如,增强的无步地图332和/或增强的主体障碍物地图312)来控制机器人100的操作。除了接收这些合并的地图,控制系统170还可以分别从楼梯跟踪器200和感知系统180接收未修改的楼梯模型202和地面高度地图182。
参考图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有多密集,和/或障碍物内的其他特征是否类似噪声或固体对象(例如,填充率)。
当感知系统180识别出其感知(即,映射)和楼梯跟踪器200的楼梯模型202之间的差异时,如果机器人100处于格栅地板模式,则该差异通常被忽略。这里,格栅地板可能会给机器人的传感器132带来问题,从而影响感知系统180的感知。因此,如果机器人100主动参与格栅地板模式,楼梯监管器300被配置为信任楼梯跟踪器200而不是感知系统180的识别,因为楼梯跟踪器200已经被专门设计用于具有较差传感器数据134的场景,诸如格栅地板。
参考图3C,在一些配置中,楼梯监管器300的地面高度分析器320被配置为识别楼梯模型202中应该被地面高度地图182a的高度数据覆盖的位置。为了识别这些位置,分析器320接收地面高度地图182a,并在地图182a内的楼梯位置处或附近搜索地面高度地图182a,以确定地面高度地图182a的分段的高度是否超过相应位置的楼梯的高度。在一些示例中,地面高度分析器330包括高度阈值322或其他形式的标准322(例如,类似于主体障碍物合并器310的标准314),使得地面高度分析器320确定地面高度地图182a内的高度满足高度阈值322或其他形式的标准322。在一些配置中,当分析器320识别出楼梯模型202中应该被来自地面高度地图182a的高度数据覆盖的位置时,分析器320生成指示符324,并将该指示符324与楼梯模型202相关联,以指示楼梯模型202在该特定位置被覆盖。在一些示例中,分析器320将指示符与包括该位置的楼梯模型202的楼梯20相关联,而不是为楼梯模型202内的特定位置生成指示符324。这里,指示符324可以不包括楼梯模型202如何被覆盖(例如,在什么高度覆盖楼梯模型202),而仅仅是模型202实际上被覆盖(例如,在特定楼梯20上的某个位置)。该指示可以起作用,使得无论何时查询接口340想要知道关于位置的信息,它都不需要查询地面高度地图182a和楼梯模型202。相反,查询接口340可以仅查询楼梯模型202,并且在少数情况下,被告知存在覆盖;因此必须随后查询地面高度地图182a。在一些实施方式中,当分析器320确定楼梯模型202内应当被地面高度地图182a的高度数据覆盖的位置时,分析器320扩展该位置处的特征,以便在对应于高度数据的对象/障碍物的精确位置周围包括安全容差。
参考图3D,在一些示例中,楼梯监管器300的无步合并器330被配置为合并无步地图182b和楼梯模型202以形成修改的无步地图332。为了形成修改的无步地图332,无步合并器330在修改的无步地图332中生成无步区域,其对应于楼梯模型202的一些特征附近的区域。例如,对于每个楼梯20的边缘26上方和下方的特定距离,无步合并器330在修改的楼梯图332中不生成踏步区域,并且在墙壁28的特定距离内不生成踏步区域。
此外,无步合并器330在修改的楼梯图332中楼梯模型202被地面高度地图182a覆盖的位置处不生成踏步区域。例如,无步合并器330识别对应于覆盖O的楼梯模型202的每个楼梯20。基于该确定,无步合并器330将每个识别的楼梯20分成分段或条(例如,指定宽度的垂直列),并确定哪些条包括覆盖O。例如,图3D示出了五个楼梯20,20a-e中的第二楼梯20,20b和第四楼梯20d,每个具有覆盖O(例如,第一覆盖O,O1和第二覆盖O,O2)。然后,具有覆盖O的每个条可以被无步合并器330指定为无步区域。在一些示例中,无步合并器330将无步区域扩展为容差或缓冲,以确保机器人100的脚124和机器人100的结构的任何其他部分都不会意外地与对象碰撞。
在一些实施方式中,诸如图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。
在一些配置中,机器人100的操作者或用户命令或激活机器人100的楼梯模式。当机器人100处于楼梯模式时,楼梯跟踪器200变为活动的(即,从非活动状态)。利用主动楼梯跟踪器200,当环境中的一组楼梯20被检测和跟踪时,楼梯监管器300可以执行其功能。在一些实施方式中,楼梯跟踪器200总是活动的(即,不必从非活动状态变为活动状态),并且总是活动的楼梯跟踪器200确定机器人100是否应该进入楼梯模式(例如,利用楼梯监管器300)。
当楼梯跟踪器200激活时,机器人100可以被限制其行进速度。在一些示例中,机器人100的速度被约束为检测到的楼梯的平均斜率或实际斜率的函数。在一些实施方式中,主动楼梯跟踪器200使得机器人100能够选择速度限制,以使机器人的步幅长度与检测到的楼梯的步长匹配(例如,每个楼梯台阶生成一个脚步)。例如,当楼梯跟踪器200激活时,控制系统170可以被配置为选择具有节奏的控制器172,以实现每个楼梯台阶一个脚步。附加地或替代地,当楼梯跟踪器200活动时,楼梯跟踪器200可以具有相关联的专门楼梯控制器,该控制器已经针对速度、节奏、步幅长度等方面进行了优化。
在一些示例中,当楼梯跟踪器200激活时,机器人100参与避障调谐。例如,当楼梯跟踪器200指示机器人100实际上在楼梯上时,机器人100可以改变其执行避障的方式。当障碍物约束存在时,通常基于沿障碍物边界的直线进行避障。这里,这条直线的方向可能很重要,尤其是在潜在的受限环境中,诸如楼梯。因此,当楼梯跟踪器200激活并且楼梯上的障碍物看起来类似于楼梯的墙壁时,机器人100可以将墙壁障碍物的方位重新定义为平行于楼梯的方向(即,非常像楼梯墙壁通常平行于楼梯的方向)。这使得在楼梯20上避障稍微容易一些。
在一些实施方式中,当楼梯跟踪器200激活时,楼梯跟踪器200应用或导致应用特定于楼梯的步长定位约束。例如,步长定位约束对应于试图防止机器人100相对于对侧腿120一次跨上或跨下一级以上楼梯20的软约束。这里,软约束指的是机器人100被敦促遵守的约束,但是允许在极端或重要条件下违反该约束(例如,满足硬约束)。另一种形式的步长定位约束可以是识别何时切换给定楼梯20处的触地位置太晚的约束。利用楼梯的简化几何形状,机器人100的系统可以计算何时切换楼梯触地位置为时已晚。为了执行该分析,机器人100可以使用四个潜在的约束来限制摆动腿120SW的脚124的当前位置上方的楼梯20和下方的楼梯20的边缘。在每个时间步长,机器人100检查摆动腿120SW是否能够基于摆动腿120SW的当前位置和速度以及触地前剩余的时间来清除这四个潜在的约束。如果在特定时间步长,不可能清除这四个潜在约束,机器人100引入硬约束,定义改变楼梯触地位置为时已晚。
可选地,当楼梯跟踪器200激活时,机器人100的控制系统170可以提供一种形式的车道辅助,使得机器人100穿越楼梯的中心。当机器人100的操作者使用遥控器(例如,利用操纵杆)来驱动机器人100时,车道辅助特征可以用于自动驱动机器人100朝向楼梯的中心;消除了某种形式的潜在操作员错误。然而,使用车道辅助,如果操作员实际上提供了一个驱动机器人远离中心的输入,车道辅助就会让位于这些手动控制。例如,当用户命令与车道辅助功能相反时,车道辅助特征完全关闭。
楼梯跟踪器200还可以帮助防止当摇摆腿120SW接触楼梯20的边缘26时发生的悬崖刮擦。例如,单独使用感知系统180,楼梯20的几何形状相当复杂,因为感知系统180使用三厘米分辨率的块。当主要使用楼梯跟踪器200或者将其与感知系统180结合使用时,楼梯的几何形状可以被简化,使得可以在距离楼梯20的边缘26的阈值距离处实现对摆动腿120SW提升越过楼梯20的上升部分26和边缘26的控制,以防止悬崖刮擦。
图4是用于生成楼梯模型的方法的示例操作布置的流程图。在操作402处,方法400接收楼梯20附近的机器人100的传感器数据134。对于楼梯20的每个楼梯20,方法400执行操作404a-c。在操作404a处,方法400在第一时间步长t1基于传感器数据134检测相应楼梯20的边缘26。在操作404b处,方法400通过将来自第一时间步长ti的检测边缘212与第二时间步长ti+1的替代检测边缘224进行比较,确定检测边缘212是否是最可能的楼梯边缘候选222。这里,第二时间步长ti+1出现在第一时间步长ti之后。在操作404c处,当检测边缘212是最可能的楼梯边缘候选222时,方法400基于关于检测边缘212的传感器数据高度来定义相应楼梯20的高度。在操作406处,方法400生成包括楼梯20的楼梯模型202,楼梯20的相应边缘26处于相应的限定高度。
图5是基于融合的建模和感知地形控制机器人的方法的示例操作布置的流程图。在操作502处,方法500接收关于机器人100的环境10的传感器数据134。在操作504处,方法500基于对应于接收的传感器数据134的体素生成一组地图182。该组地图182包括机器人100的地面高度地图182a和移动限制地图182。移动限制地图182识别环境10内的、机器人100应该避免进入的非法区域。在操作506处,方法500基于传感器数据134为环境10内的一组楼梯20生成楼梯模型202。在操作508处,方法500合并楼梯模型202和移动限制地图182,以生成增强的楼梯地图。在操作510处,方法500基于增强的楼梯地图或地面高度地图182a控制机器人100穿越环境10。
图6是示例计算设备600的示意图,该示例计算设备600可用于实现本文中描述的系统(例如,控制系统170、感知系统180、楼梯跟踪器200和楼梯监管器300)和方法(例如,方法400、500)。计算设备600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里所示的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实施。
计算设备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,每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器620在计算设备600内非临时性地存储信息。存储器620可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器620可以是用于临时或永久存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备600使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备630能够为计算设备600提供大容量存储。在一些实施方式中,存储设备630是计算机可读介质。在各种不同的实现中,存储设备630可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或者设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含指令,当被执行时,这些指令执行一种或多种方法,诸如上述的那些方法。信息载体是计算机或机器可读介质,诸如存储器620、存储设备630或处理器610上的存储器。
高速控制器640管理计算设备600的带宽密集型操作,而低速控制器660管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实现中,高速控制器640耦合到存储器620、显示器680(例如,通过图形处理器或加速器),并且耦合到高速扩展端口650,高速扩展端口650可以接受各种扩展卡(未示出)。在一些实现中,低速控制器660耦合到存储设备630和低速扩展端口690。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口690可以通过例如网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的网络设备。
如图所示,计算设备600可以以多种不同的形式实现。例如,它可以被实现为标准服务器600a或在一组这样的服务器600a中多次、实现为膝上型计算机600b、实现为机架式服务器系统600c的一部分或实现为机器人100。
这里描述的系统和技术的各种实现可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些不同的实现可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现,该可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器可以是专用或通用的,被耦合以从存储系统接收数据和指令,以及向存储系统发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如此处所使用的,术语“机器可读介质”和“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路来执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以及可选的键盘和指示设备,例如鼠标或轨迹球,用户可以通过该指示设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。
已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式也在以下权利要求的范围内。
Claims (24)
1.一种方法(400),包括:
在数据处理硬件(610)处接收楼梯(20)附近的机器人(100)的传感器数据(134);
对于所述楼梯(20)的每个楼梯(20):
由所述数据处理硬件(610)在第一时间步长(ti)基于所述传感器数据(134)检测所述楼梯的相应楼梯(20)的边缘(26);
由所述数据处理硬件(610)通过将来自所述第一时间步长(ti)的检测边缘(212)与在第二时间步长(ti)的替代检测边缘(224)进行比较来确定所述检测边缘(212)是否是最可能的楼梯边缘候选(222),所述第二时间步长(ti)发生在所述第一时间步长(ti)之后;以及
当所述检测边缘(212)是最可能的楼梯边缘候选(222)时,由所述数据处理硬件(610)基于关于所述检测边缘(212)的传感器数据高度来定义所述相应楼梯(20)的高度;以及
由所述数据处理硬件(610)生成包括具有相应的定义的高度的相应的边缘的楼梯(20)的楼梯模型(202)。
2.根据权利要求1所述的方法(400),还包括:
对于所述楼梯(20)的每个楼梯(20):
由所述数据处理硬件(610)在第三时间步长(ti)基于所述传感器数据(134)估计所述楼梯(20)的所述相应楼梯(20)的所述检测边缘(212)的末端处的墙壁位置;
由所述数据处理硬件(610)通过将来自所述第三时间步长(ti)的估计的墙壁位置(212,212w)与第四时间步长(ti)的替代墙壁位置进行比较来确定所述估计的墙壁位置(212,212w)是否是最可能的墙壁位置候选(222),所述第四时间步长(ti)发生在所述第三时间步长(ti)之后;以及
当所述估计的墙壁位置(212,212w)是最可能的墙壁位置候选(222)时,由所述数据处理硬件(610)将所述估计的墙壁位置(212,212w)定义为在所述相应楼梯(20)的末端处的相应墙壁位置,所述相应墙壁位置指定所述机器人(100)在穿越所述楼梯(20)时的边界,以及
其中,生成所述楼梯模型(202)包括在所述楼梯(20)的每个楼梯(20)的相应定义的墙壁位置处生成一个或多个墙壁(28)。
3.根据权利要求1或2中任一项所述的方法(400),其中,用于估计所述墙壁位置的所述第三时间步长(ti)与用于检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)的所述第一时间步长(ti)重合。
4.根据权利要求1-3中任一项所述的方法(400),其中,定义所述相应楼梯(20)的所述高度包括:
从所述传感器数据(134)的点云中识别存在于所述检测边缘(212)周围的点;以及
基于来自所述点云的、存在于所述检测边缘(212)周围的识别的点的平均高度来定义所述相应楼梯(20)的所述高度。
5.根据权利要求1-4中任一项所述的方法(400),其中,在所述第一时间步长(ti)检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(212)包括从所述传感器数据(134)的点云中识别出现在目标检测框(AD)内的点,所述目标检测框(AD)位于相对于所述楼梯(20)的先前识别的楼梯(20)的位置。
6.根据权利要求5所述的方法(400),其中,在所述第一时间步长(ti)检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)包括:
使用检测列,在朝向所述机器人(100)的向上方向(D)上并相对于所述机器人(100)的重力轴成角度地遍历来自所述传感器数据(134)的所述点云的所述识别的点,所述检测列基于所述目标检测框(AD)的柱增量遍历所述目标检测框(AD);
在使用所述检测列遍历所述目标检测框(AD)内的所述识别的点时,确定所述检测列是空集;以及
将所述检测列的最近非空集合的一个或多个相应点识别为沿着所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)的一个或多个点,所述一个或多个相应点在所述检测列的单元内,所述单元在所述检测列内具有最大高度并且最朝向所述机器人(100)。
7.根据权利要求6所述的方法(400),还包括:
从使用所述检测列识别的所述一个或多个相应点生成初始边缘线(L),所述初始边缘线(L)是使用最小二乘拟合生成的;
移除与所述初始边缘线(L)相关联的异常传感器数据(134);以及
一旦使用最小二乘拟合去除了所述异常传感器数据(134),就从初始边缘线(L)的一个或多个相应点生成细化边缘线(L)。
8.根据权利要求1-7中任一项所述的方法(400),还包括:
当所述相应台阶(20)是所述楼梯(20)的最靠近所述楼梯(20)的支撑表面的第一台阶(20)时,在所述第一时间步长(ti)检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)包括基于所述机器人(100)的脚(124)与所述支撑表面(12)接触的高度对所述传感器数据(134)的点云中的点进行分类,点被分类为:
相对于所述机器人(100)的所述脚(124)的所述高度在第一高度范围的地面点,以及
相对于所述机器人(100)的所述脚(124)的所述高度在第二高度范围的第一台阶点,第二高度范围大于第一高度范围。
9.根据权利要求1-7中任一项所述的方法(400),其中,所述机器人(100)最初位于所述楼梯(20)的顶部。
10.根据权利要求9所述的方法(400),还包括,对于对应于所述楼梯(20)的顶部楼梯(20)的相应边缘(26)的地板边缘(26f):
由所述数据处理硬件(610)将所述传感器数据(134)分类为高度分类(C),每个高度分类(C)对应于沿着平行于所述机器人(100)的重力轴的轴的高度,并且对所述传感器数据(134)相对于所述机器人(100)下方的地板(12)的高度进行分类,地板(12)包括地板边缘(26f);
由所述数据处理硬件(610)基于所述传感器数据(134)的部分之间的高度分类(C)的变化来识别沿着所述地板边缘(26f)的多个点,所述变化被定义为(i)从被分类为地板高度的传感器数据(134)到缺失传感器数据(134)的部分的第一转变,或者(ii)从被分类为地板高度的传感器数据(134)到被分类为低于所述地板高度的传感器数据(134)的第二转变;以及
由所述数据处理硬件(610)生成与沿着所述地板边缘(26f)的多个点的直线拟合,以及
其中,检测所述楼梯(20)的所述顶部楼梯(20)的所述地板边缘(26f)将沿着所述地板边缘(26f)的所述多个点的所述直线拟合检测为所述检测边缘(212)。
11.根据权利要求10所述的方法(400),还包括:
由所述数据处理硬件(610)将相应的高度分类(C)与表示分类的传感器数据(134)的二维(2D)图像空间内的每个像素(Px)相关联,以及
其中,识别沿着所述地板边缘(26f)的所述多个点包括针对高度分类(C)的上述变化搜索所述2D图像空间的每个像素(Px)。
12.根据权利要求9-11中任一项所述的方法(400),还包括通过从所述多个点中移除异常点来细化对沿着所述地板边缘(26f)的所述多个点的所述直线拟合。
13.一种机器人(100),包括:
主体(110);
两条或更多条腿(120),耦合到所述主体(120)并且被配置为穿越环境(10);以及
楼梯建模系统(200),与所述机器人(100)通信,所述建模系统(200)包括数据处理硬件(610)和与所述数据处理硬件(610)通信的存储器硬件(620),所述存储器硬件(620)存储指令,当在所述数据处理硬件(610)上执行时,所述指令使所述数据处理硬件(610)执行包括以下的操作:
接收楼梯(20)附近的机器人(100)的传感器数据(134);
对于所述楼梯(20)的每个楼梯(20):
在第一时间步长(ti)基于所述传感器数据(134)检测所述楼梯的相应楼梯(20)的边缘(26);
通过将来自所述第一时间步长(ti)的检测边缘(212)与在第二时间步长(ti)的替代检测边缘(224)进行比较来确定所述检测边缘(212)是否是最可能的楼梯边缘候选(222),所述第二时间步长(ti)发生在所述第一时间步长(ti)之后;以及
当所述检测边缘(212)是最可能的楼梯边缘候选(222)时,基于关于所述检测边缘(212)的传感器数据高度来定义所述相应楼梯(20)的高度;以及
生成包括具有相应的定义的高度的相应的边缘的楼梯(20)的楼梯模型(202)。
14.根据权利要求13所述的机器人(100),其中,所述操作还包括:
对于所述楼梯(20)的每个楼梯(20):
在第三时间步长(ti)基于所述传感器数据(134)估计所述楼梯(20)的所述相应楼梯(20)的所述检测边缘(212)的末端处的墙壁位置;
过将来自所述第三时间步长(ti)的估计的墙壁位置(212,212w)与第四时间步长(ti)的替代墙壁位置进行比较来确定所述估计的墙壁位置(212,212w)是否是最可能的墙壁位置候选(222),所述第四时间步长(ti)发生在所述第三时间步长(ti)之后;以及
当所述估计的墙壁位置(212,212w)是最可能的墙壁位置候选(222)时,将所述估计的墙壁位置(212,212w)定义为在所述相应楼梯(20)的末端处的相应墙壁位置,所述相应墙壁位置指定所述机器人(100)在穿越所述楼梯(20)时的边界,以及
其中,生成所述楼梯模型(202)包括在所述楼梯(20)的每个楼梯(20)的相应定义的墙壁位置处生成一个或多个墙壁(28)。
15.根据权利要求13或14中任一项所述的机器人(100),其中,用于估计所述墙壁位置的所述第三时间步长(ti)与用于检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)的所述第一时间步长(ti)重合。
16.根据权利要求13-15中任一项所述的机器人(100),其中,定义所述相应楼梯(20)的所述高度包括:
从所述传感器数据(134)的点云中识别存在于所述检测边缘(212)周围的点;以及
基于来自所述点云的、存在于所述检测边缘(212)周围的识别的点的平均高度来定义所述相应楼梯(20)的所述高度。
17.根据权利要求13-16中任一项所述的机器人(100),其中,在所述第一时间步长(ti)检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(212)包括从所述传感器数据(134)的点云中识别出现在目标检测框(AD)内的点,所述目标检测框(AD)位于相对于所述楼梯(20)的先前识别的楼梯(20)的位置。
18.根据权利要求17所述的机器人(100),其中,在所述第一时间步长(ti)检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)包括:
使用检测列,在朝向所述机器人(100)的向上方向(D)上并相对于所述机器人(100)的重力轴成角度地遍历来自所述传感器数据(134)的所述点云的所述识别的点,所述检测列基于所述目标检测框(AD)的柱增量遍历所述目标检测框(AD);
在使用所述检测列遍历所述目标检测框(AD)内的所述识别的点时,确定所述检测列是空集;以及
将所述检测列的最近非空集合的一个或多个相应点识别为沿着所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)的一个或多个点,所述一个或多个相应点在所述检测列的单元内,所述单元在所述检测列内具有最大高度并且最朝向所述机器人(100)。
19.根据权利要求18所述的机器人(100),还包括:
从使用所述检测列识别的所述一个或多个相应点生成初始边缘线(L),所述初始边缘线(L)是使用最小二乘拟合生成的;
移除与所述初始边缘线(L)相关联的异常传感器数据(134);以及
一旦使用最小二乘拟合去除了所述异常传感器数据(134),就从初始边缘线(L)的一个或多个相应点生成细化边缘线(L)。
20.根据权利要求13-19中任一项所述的机器人(100),其中,所述操作还包括:
当所述相应台阶(20)是所述楼梯(20)的最靠近所述楼梯(20)的支撑表面的第一台阶(20)时,在所述第一时间步长(ti)检测所述楼梯(20)的所述相应楼梯(20)的所述边缘(26)包括基于所述机器人(100)的脚(124)与所述支撑表面(12)接触的高度对所述传感器数据(134)的点云中的点进行分类,点被分类为:
相对于所述机器人(100)的所述脚(124)的所述高度在第一高度范围的地面点,以及
相对于所述机器人(100)的所述脚(124)的所述高度在第二高度范围的第一台阶点,第二高度范围大于第一高度范围。
21.根据权利要求13-19中任一项所述的机器人(100),其中,所述机器人(100)最初位于所述楼梯(20)的顶部。
22.根据权利要求21所述的机器人(100),其中,所述操作还包括,对于对应于所述楼梯(20)的顶部楼梯(20)的相应边缘(26)的地板边缘(26f):
将所述传感器数据(134)分类为高度分类(C),每个高度分类(C)对应于沿着平行于所述机器人(100)的重力轴的轴的高度,并且对所述传感器数据(134)相对于所述机器人(100)下方的地板(12)的高度进行分类,地板(12)包括地板边缘(26f);
基于所述传感器数据(134)的部分之间的高度分类(C)的变化来识别沿着所述地板边缘(26f)的多个点,所述变化被定义为(i)从被分类为地板高度的传感器数据(134)到缺失传感器数据(134)的部分的第一转变,或者(ii)从被分类为地板高度的传感器数据(134)到被分类为低于所述地板高度的传感器数据(134)的第二转变;以及
生成与沿着所述地板边缘(26f)的多个点的直线拟合,以及
其中,检测所述楼梯(20)的所述顶部楼梯(20)的所述地板边缘(26f)将沿着所述地板边缘(26f)的所述多个点的所述直线拟合检测为所述检测边缘(212)。
23.根据权利要求22所述的机器人(100),其中,所述操作还包括:
将相应的高度分类(C)与表示分类的传感器数据(134)的二维(2D)图像空间内的每个像素(Px)相关联,以及
其中,识别沿着所述地板边缘(26f)的所述多个点包括针对高度分类(C)的上述变化搜索所述2D图像空间的每个像素(Px)。
24.根据权利要求21-23中任一项所述的机器人(100),其中,所述操作还包括通过从所述多个点中移除异常点来细化对沿着所述地板边缘(26f)的所述多个点的所述直线拟合。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063013677P | 2020-04-22 | 2020-04-22 | |
US63/013,677 | 2020-04-22 | ||
US16/877,721 | 2020-05-19 | ||
US16/877,721 US11599128B2 (en) | 2020-04-22 | 2020-05-19 | Perception and fitting for a stair tracker |
PCT/US2021/025302 WO2021216264A1 (en) | 2020-04-22 | 2021-04-01 | Perception and fitting for a stair tracker |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115702445A true CN115702445A (zh) | 2023-02-14 |
Family
ID=76971397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180040480.2A Pending CN115702445A (zh) | 2020-04-22 | 2021-04-01 | 用于楼梯跟踪器的感知和适应 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11599128B2 (zh) |
EP (1) | EP4139835A1 (zh) |
KR (1) | KR20230006507A (zh) |
CN (1) | CN115702445A (zh) |
WO (1) | WO2021216264A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599128B2 (en) | 2020-04-22 | 2023-03-07 | Boston Dynamics, Inc. | Perception and fitting for a stair tracker |
US11548151B2 (en) | 2019-04-12 | 2023-01-10 | Boston Dynamics, Inc. | Robotically negotiating stairs |
US20230415343A1 (en) | 2022-06-23 | 2023-12-28 | Boston Dynamics, Inc. | Automatically trasitioning a robot to an operational mode optimized for particular terrain |
Family Cites Families (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61257375A (ja) | 1985-05-07 | 1986-11-14 | Mitsubishi Heavy Ind Ltd | 脚型移動機械の制御方法 |
JPH0780422B2 (ja) | 1986-10-29 | 1995-08-30 | マツダ株式会社 | 自動車のサンル−フ装置 |
JP3176701B2 (ja) | 1992-04-15 | 2001-06-18 | 本田技研工業株式会社 | 移動体の現在位置認識処理装置 |
US5416393A (en) | 1992-05-20 | 1995-05-16 | Honda Giken Kogyo Kabushiki Kaisha | Legged mobile robot foot structure |
JP3024023B2 (ja) | 1992-05-22 | 2000-03-21 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
JP3278467B2 (ja) | 1992-08-18 | 2002-04-30 | 本田技研工業株式会社 | 移動ロボットの制御装置 |
JP3321943B2 (ja) | 1993-12-17 | 2002-09-09 | 株式会社デンソー | 燃料蒸散防止機構用異常検出装置 |
JP3330710B2 (ja) | 1993-12-30 | 2002-09-30 | 本田技研工業株式会社 | 移動ロボットの位置検知および制御装置 |
JP3662996B2 (ja) | 1996-01-25 | 2005-06-22 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
JP3626303B2 (ja) | 1996-12-18 | 2005-03-09 | 本田技研工業株式会社 | 脚式移動ロボットの足底接地位置検出装置 |
JP3621808B2 (ja) | 1997-06-20 | 2005-02-16 | 本田技研工業株式会社 | 脚式移動ロボットの足平接地状態把握装置 |
FR2773339B1 (fr) | 1998-01-06 | 2000-01-28 | Commissariat Energie Atomique | Appareil stabilise par un gyroscope, et notamment un robot bipede |
JP2000153476A (ja) | 1998-09-14 | 2000-06-06 | Honda Motor Co Ltd | 脚式移動ロボット |
JP4225969B2 (ja) | 2002-04-26 | 2009-02-18 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置および足跡決定装置 |
JP2003340763A (ja) | 2002-05-24 | 2003-12-02 | Mitsubishi Heavy Ind Ltd | 2足歩行ロボットの階段昇降方法及び2足歩行ロボット |
US7127326B2 (en) | 2002-11-15 | 2006-10-24 | Iguana Robotics, Inc. | Certain principles of biomorphic robots including foot placement selection using non-geometric visual properties |
JP2004181600A (ja) | 2002-12-05 | 2004-07-02 | Sony Corp | 脚式移動ロボット |
US7653216B2 (en) | 2003-12-23 | 2010-01-26 | Carnegie Mellon University | Polyhedron recognition system |
JP4636016B2 (ja) * | 2004-03-17 | 2011-02-23 | ソニー株式会社 | 平面検出装置、平面検出方法、及び平面検出装置を搭載したロボット装置 |
JP4618247B2 (ja) | 2004-03-17 | 2011-01-26 | ソニー株式会社 | ロボット装置及びその動作制御方法 |
JP4479372B2 (ja) | 2004-06-25 | 2010-06-09 | ソニー株式会社 | 環境地図作成方法、環境地図作成装置、及び移動型ロボット装置 |
US7380618B2 (en) | 2005-02-22 | 2008-06-03 | Gamma Two, Inc. | Stair climbing platform apparatus and method |
US7878276B2 (en) | 2005-07-08 | 2011-02-01 | H. Phillip Limbacher, Jr. | Ambulatory vehicle |
WO2007099511A2 (en) | 2006-03-03 | 2007-09-07 | Syddansk Universitet | Programmable robot and user interface |
US8843244B2 (en) | 2006-10-06 | 2014-09-23 | Irobot Corporation | Autonomous behaviors for a remove vehicle |
US8626472B2 (en) | 2006-07-21 | 2014-01-07 | James C. Solinsky | System and method for measuring balance and track motion in mammals |
KR101074494B1 (ko) | 2009-02-17 | 2011-10-17 | 동아대학교 산학협력단 | 이족 인간형 로봇의 계단 오르기를 위한 최적 궤적 설계 방법 |
KR101064638B1 (ko) | 2009-02-17 | 2011-09-15 | 동아대학교 산학협력단 | 이족 인간형 로봇의 계단 내려오기를 위한 최적 궤적 설계 방법 |
US9020639B2 (en) | 2009-08-06 | 2015-04-28 | The Regents Of The University Of California | Multimodal dynamic robotic systems |
US8457830B2 (en) | 2010-03-22 | 2013-06-04 | John R. Goulding | In-line legged robot vehicle and method for operating |
WO2012086604A1 (ja) | 2010-12-24 | 2012-06-28 | 住友重機械工業株式会社 | 清掃装置 |
JP5623362B2 (ja) | 2011-09-28 | 2014-11-12 | 本田技研工業株式会社 | 段差部認識装置 |
KR20130049029A (ko) | 2011-11-03 | 2013-05-13 | 삼성전자주식회사 | 보행 로봇 및 그 제어 방법 |
KR101820299B1 (ko) | 2011-11-23 | 2018-03-02 | 삼성전자주식회사 | 3차원 데이터 영상의 계단 인식 방법 |
JP2013237126A (ja) | 2012-05-15 | 2013-11-28 | Nsk Ltd | 歩容データの作成装置及び歩容データの作成方法 |
US9764468B2 (en) | 2013-03-15 | 2017-09-19 | Brain Corporation | Adaptive predictor apparatus and methods |
CN103273984A (zh) | 2013-06-18 | 2013-09-04 | 辰星(天津)自动化设备有限公司 | 仿四足动物爬楼机器人 |
CN103273985B (zh) | 2013-06-18 | 2015-07-08 | 辰星(天津)自动化设备有限公司 | 一种四足爬楼梯机器人机构 |
JP6071815B2 (ja) * | 2013-09-06 | 2017-02-01 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
JP6068302B2 (ja) | 2013-09-13 | 2017-01-25 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
JP6071839B2 (ja) | 2013-10-22 | 2017-02-01 | 本田技研工業株式会社 | 脚式移動ロボットの制御システム |
US9849926B2 (en) | 2014-07-23 | 2017-12-26 | Boston Dynamics, Inc. | Predictively adjustable hydraulic pressure rails |
NL2013355B1 (en) * | 2014-08-22 | 2016-09-23 | Handicare Stairlifts B V | Method and system for designing a stair lift rail assembly. |
US10081098B1 (en) | 2014-08-25 | 2018-09-25 | Boston Dynamics, Inc. | Generalized coordinate surrogates for integrated estimation and control |
US9387896B1 (en) | 2014-08-25 | 2016-07-12 | Google Inc. | Slip avoidance |
US9895804B1 (en) | 2014-08-26 | 2018-02-20 | Boston Dynamics, Inc. | Failure mode |
GB2529847B (en) | 2014-09-03 | 2018-12-19 | Dyson Technology Ltd | A mobile Robot with Independently Adjustable Light Sources |
JP6228097B2 (ja) | 2014-10-06 | 2017-11-08 | 本田技研工業株式会社 | 移動ロボット |
US9446518B1 (en) | 2014-11-11 | 2016-09-20 | Google Inc. | Leg collision avoidance in a robotic device |
US9704043B2 (en) | 2014-12-16 | 2017-07-11 | Irobot Corporation | Systems and methods for capturing images and annotating the captured images with information |
US9538702B2 (en) | 2014-12-22 | 2017-01-10 | Irobot Corporation | Robotic mowing of separated lawn areas |
US9499218B1 (en) | 2014-12-30 | 2016-11-22 | Google Inc. | Mechanically-timed footsteps for a robotic device |
US9630319B2 (en) | 2015-03-18 | 2017-04-25 | Irobot Corporation | Localization and mapping using physical features |
US9594377B1 (en) | 2015-05-12 | 2017-03-14 | Google Inc. | Auto-height swing adjustment |
US9561592B1 (en) | 2015-05-15 | 2017-02-07 | Google Inc. | Ground plane compensation for legged robots |
DE102016221270B4 (de) | 2015-11-30 | 2019-03-21 | Ford Global Technologies, Llc | Mobile Transportvorrichtung, Fahrzeug und Verfahren zum Bewegen einer mobilen Transportvorrichtung |
US9868210B1 (en) | 2015-12-30 | 2018-01-16 | Google Inc. | Methods and systems for planning a body position of a robotic device |
US10179619B1 (en) | 2016-03-30 | 2019-01-15 | Schaft Inc. | Robotic foot sensor |
US10414318B2 (en) | 2016-04-28 | 2019-09-17 | Rakkatec Oy | Arrangement for optimizing load position in relation to transportation vehicle |
CN106547206B (zh) | 2016-06-29 | 2019-08-06 | 中南大学 | 一种基于脚力估计算法的多足机器人动态稳定性定量判定方法 |
US9989970B1 (en) | 2016-08-03 | 2018-06-05 | X Development Llc | Systems and methods for robots having an adjustable multi-wheel |
US20180035606A1 (en) | 2016-08-05 | 2018-02-08 | Romello Burdoucci | Smart Interactive and Autonomous Robotic Property Maintenance Apparatus, System, and Method |
WO2018035320A1 (en) | 2016-08-18 | 2018-02-22 | The Trustees Of The University Of Pennsylvania | Systems and methods for controlling robotic behaviors |
WO2018158248A2 (de) | 2017-03-02 | 2018-09-07 | RobArt GmbH | Verfahren zur steuerung eines autonomen,mobilen roboters |
CN109215044B (zh) * | 2017-06-30 | 2020-12-15 | 京东方科技集团股份有限公司 | 图像处理方法和系统、存储介质和移动系统 |
CN107943021B (zh) | 2017-10-19 | 2021-03-30 | 布法罗机器人科技(成都)有限公司 | 一种自适应上下楼梯控制系统和方法 |
DE102017127180A1 (de) | 2017-11-17 | 2019-05-23 | RobArt GmbH | Bodenbearbeitung mittels eines autonomen mobilen Roboters |
US11049236B2 (en) * | 2017-11-17 | 2021-06-29 | Kodak Alaris Inc. | Automated in-line object inspection |
US20190325763A1 (en) | 2018-04-22 | 2019-10-24 | Intel Corporation | Real and virtual collision-free movement of autonomous vehicles in mixed-reality environments |
CN109202901A (zh) | 2018-08-29 | 2019-01-15 | 厦门理工学院 | 一种双足机器人爬楼梯步态规划方法、装置及机器人 |
US11287826B2 (en) | 2018-10-12 | 2022-03-29 | Boston Dynamics, Inc. | Terrain aware step planning system |
US11548151B2 (en) | 2019-04-12 | 2023-01-10 | Boston Dynamics, Inc. | Robotically negotiating stairs |
US11599128B2 (en) | 2020-04-22 | 2023-03-07 | Boston Dynamics, Inc. | Perception and fitting for a stair tracker |
US11416003B2 (en) | 2019-08-06 | 2022-08-16 | Boston Dynamics, Inc. | Constrained mobility mapping |
US20210323618A1 (en) | 2020-04-20 | 2021-10-21 | Boston Dynamics, Inc. | Identifying Stairs from Footfalls |
US20210331754A1 (en) | 2020-04-22 | 2021-10-28 | Boston Dynamics, Inc. | Stair Tracking for Modeled and Perceived Terrain |
-
2020
- 2020-05-19 US US16/877,721 patent/US11599128B2/en active Active
-
2021
- 2021-01-25 US US17/157,500 patent/US11073842B1/en active Active
- 2021-04-01 EP EP21720650.7A patent/EP4139835A1/en active Pending
- 2021-04-01 CN CN202180040480.2A patent/CN115702445A/zh active Pending
- 2021-04-01 KR KR1020227040320A patent/KR20230006507A/ko active Search and Examination
- 2021-04-01 WO PCT/US2021/025302 patent/WO2021216264A1/en unknown
-
2023
- 2023-01-03 US US18/149,588 patent/US20230143315A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230006507A (ko) | 2023-01-10 |
WO2021216264A1 (en) | 2021-10-28 |
US11073842B1 (en) | 2021-07-27 |
US11599128B2 (en) | 2023-03-07 |
US20210333804A1 (en) | 2021-10-28 |
US20230143315A1 (en) | 2023-05-11 |
EP4139835A1 (en) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11660752B2 (en) | Perception and fitting for a stair tracker | |
US20210331754A1 (en) | Stair Tracking for Modeled and Perceived Terrain | |
US11416003B2 (en) | Constrained mobility mapping | |
CN115702445A (zh) | 用于楼梯跟踪器的感知和适应 | |
JP7219812B2 (ja) | 地形を意識したステッププランニングシステム | |
JP4618247B2 (ja) | ロボット装置及びその動作制御方法 | |
US20170153646A1 (en) | Apparatus of controlling movement of mobile robot mounted with wide angle camera and method thereof | |
US20210323618A1 (en) | Identifying Stairs from Footfalls | |
Le et al. | Autonomous floor and staircase cleaning framework by reconfigurable sTetro robot with perception sensors | |
Wahrmann et al. | Vision-based 3d modeling of unknown dynamic environments for real-time humanoid navigation | |
US20240174310A1 (en) | Stair Tracking for Modeled and Perceived Terrain | |
CN117813183A (zh) | 检测负障碍 | |
Syed et al. | Autonomous staircase navigation system for multi-floor tasks | |
Sugawara et al. | Walking characteristics extraction and behavior patterns estimation by using similarity with human motion map | |
Cockrell | Using the XBOX Kinect to detect features of the floor surface | |
CN117314854A (zh) | 一种机器人的悬崖检测方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |