CN109154827A - 机器人车辆的定位 - Google Patents
机器人车辆的定位 Download PDFInfo
- Publication number
- CN109154827A CN109154827A CN201780031482.9A CN201780031482A CN109154827A CN 109154827 A CN109154827 A CN 109154827A CN 201780031482 A CN201780031482 A CN 201780031482A CN 109154827 A CN109154827 A CN 109154827A
- Authority
- CN
- China
- Prior art keywords
- robot
- terrestrial reference
- sample set
- candidate
- mapping
- 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.)
- Granted
Links
- 230000009466 transformation Effects 0.000 claims abstract description 93
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000013507 mapping Methods 0.000 claims description 150
- 238000001514 detection method Methods 0.000 claims description 57
- 230000003287 optical effect Effects 0.000 claims 1
- 230000002093 peripheral effect Effects 0.000 claims 1
- 239000000523 sample Substances 0.000 description 119
- 238000005070 sampling Methods 0.000 description 47
- 238000004891 communication Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 20
- 230000004888 barrier function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000004807 localization Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003716 rejuvenation Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000012491 analyte Substances 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000013074 reference sample Substances 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 241000566146 Asio Species 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000010981 turquoise Substances 0.000 description 1
- WDQKVWDSAIJUTF-GPENDAJRSA-N via protocol Chemical compound ClCCNP1(=O)OCCCN1CCCl.O([C@H]1C[C@@](O)(CC=2C(O)=C3C(=O)C=4C=CC=C(C=4C(=O)C3=C(O)C=21)OC)C(=O)CO)[C@H]1C[C@H](N)[C@H](O)[C@H](C)O1.C([C@H](C[C@]1(C(=O)OC)C=2C(=C3C([C@]45[C@H]([C@@]([C@H](OC(C)=O)[C@]6(CC)C=CCN([C@H]56)CC4)(O)C(=O)OC)N3C=O)=CC=2)OC)C[C@@](C2)(O)CC)N2CCC2=C1NC1=CC=CC=C21 WDQKVWDSAIJUTF-GPENDAJRSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0234—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0272—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/162—Mobile manipulator, movable base with manipulator arm mounted on it
-
- 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/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Electromagnetism (AREA)
- Optics & Photonics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
一种示例方法,包括基于来自机器人上的至少一个传感器的传感器数据确定相对于机器人的多个候选地标的位置。该方法还包括确定多个样本集,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。该方法还包括为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换。该方法还包括将为每个样本集确定的变换应用于多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量。该方法还包括基于与每个样本集相关联的内点的数量从多个样本集中选择样本集。该方法还包括基于所选择的样本集来估计机器人的姿势。
Description
相关申请的交叉引用
本申请要求2016年12月23日提交的美国专利申请NO.15/390,460的优先权,其全部内容通过引用并入本文。
背景技术
仓库可以用于由各种不同类型的商业实体存储货物,包括制造商、批发商和运输业务。示例性储存的商品可包括原材料、零件或组件、包装材料和成品。在某些情况下,仓库可以配备装载平台,以允许货物装载到运货卡车或其他类型的车辆上或从其卸载。仓库还可以使用多排托盘架以允许存储托盘、包含堆叠的箱子或其他物体的扁平运输结构。另外,仓库可以使用机器或车辆来提升和移动货物或货物托盘,例如起重机和叉车。可以使用人工操作员来操作机器、车辆和其他设备。在一些情况下,一个或多个机器或车辆可以是由计算机控制***引导的机器人设备(“机器人”)。计算机控制***可以相对于分布在整个仓库中的标记来定位一个或多个机器人。对机器人进行定位可以允许计算机控制***将一个或多个机器人导航通过仓库。
发明内容
示例***和方法可以帮助估计机器人在机器人的环境内的姿势。机器人的环境可以包括地标。可以映射地标的位置。***可以允许机器人基于其相对于映射地标的姿势而在环境内定位自身。为了定位机器人,机器人可以包括传感器,其从地标接收指示地标的位置的信号。然而,并非所有接收到的信号都将来自映射地标。因此,可以将来自接收到的信号的每个检测视为候选地标。***可以审查候选地标以确定哪些对应于映射地标,并且基于被确定为映射地标的候选地标来确定机器人的姿势。***可以采样候选地标的多个子集和对应的映射地标。***可以确定候选地标的子集到对应的映射地标匹配的每个采样子集的变换。变换可以应用于所有候选地标。变换的候选地标与相邻的映射地标之间的在内点距离阈值内的距离可以被认为是“内点”。内点可以指示所应用的变换是否准确地表示机器人的姿势。产生更多数量的内点的样本集更可能准确地表示机器人的姿势。可以从多个子集中选择一个这样的样本集。然后,可以基于所选择的样本集来估计机器人的姿势。
在一个示例中,提供了一种方法,其包括基于来自机器人上的至少一个传感器的传感器数据确定与机器人相关的多个候选地标的位置。该方法还包括确定多个样本集,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。该方法还包括为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换。该方法还包括将为每个样本集确定的变换应用于多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量。该方法还包括基于与每个样本集相关联的内点的数量从多个样本集中选择样本集。该方法还包括基于所选择的样本集来估计机器人的姿势。
在另一示例中,提供了一种***,其包括机器人,联接到机器人的至少一个传感器,一个或多个处理器,以及非暂时性计算机可读介质。该***还包括存储在非暂时性计算机可读介质上的程序指令,程序指令可由一个或多个处理器执行,以基于来自联接到机器人的所述至少一个传感器的传感器数据确定与机器人相关的多个候选地标的位置。程序指令还确定多个样本集,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。程序指令还为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换。程序指令还将为每个样本集确定的变换应用于多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量。程序指令还基于与每个样本集相关联的内点的数量从多个样本集中选择样本集。程序指令还基于所选择的样本集来估计机器人的姿势。
在另一示例中,提供了一种非暂时性计算机可读介质,其在其中存储有指令,当由移动机器人设备的控制***执行指令时,使得控制***执行功能。所述功能包括基于来自机器人上的至少一个传感器的传感器数据确定与机器人相关的多个候选地标的位置。所述功能还包括确定多个样本集,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。所述功能还包括为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换。所述功能还包括将为每个样本集确定的变换应用于多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量。所述功能还包括基于与每个样本集相关联的内点的数量从多个样本集中选择样本集。所述功能还包括基于所选择的样本集来估计机器人的姿势。
在另一示例中,提供了一种***,其包括用于基于来自机器人上的至少一个传感器的传感器数据确定与机器人相关的多个候选地标的位置的装置。该***还包括用于确定多个样本集的装置,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。该***还包括用于为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换的装置。该***还包括用于将为每个样本集确定的变换应用于多个候选地标的装置,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量。该***还包括用于基于与每个样本集相关联的内点的数量从多个样本集中选择样本集的装置。该***还包括用于基于所选择的样本集来估计机器人的姿势的装置。
前面的概述仅仅是说明性的,并不意图以任何方式进行限制。除了以上描述的说明性方面、实施例和特征之外,通过参考附图和以下详细描述和附图,进一步的方面、实施例和特征将变得明显。
附图说明
图1是根据示例实施例的***的框图。
图2描绘了根据示例实施例的用于操作一个或多个仓库的***。
图3示出了根据示例实施例的***。
图4示出了根据示例实施例的用于一个或多个机器人设备的机器人设备架构。
图5示出了根据示例实施例的用于一个或多个机器人设备的激光扫面仪架构。
图6示出了根据示例实施例的在环境中导航的机器人。
图7示出了根据示例实施例的将检测与映射地标相关联的机器人。
图8是示出根据示例实施例的机器人控制***的模块的功能框图。
图9示出了根据示例实施例的机器人的映射环境。
图10示出了根据示例实施例的已经进行了多次检测的机器人。
图11A、11B、11C和11D示出了根据示例实施例的与候选地标的样本集和对应的映射地标相关联的内点的确定。
图12A、12B、12C和12D示出了根据示例实施例的与候选地标的另一样本集和对应的映射地标相关联的内点的确定。
图13A,13B,13C和13D示出了根据示例实施例的与候选地标的又一样本集和对应的映射地标相关联的内点的确定。
图14是根据示例实施例的方法的框图。
图15是根据示例实施例的另一方法的框图。
具体实施方式
本文描述了示例方法和***。本文描述的任何示例实施例或特征不一定被解释为比其他实施例或特征优选或有利。这里描述的示例实施例并不意味着限制。容易理解的是,所公开的***和方法的某些方面可以以各种各样的不同配置进行布置和组合,所有这些都在本文中考虑。
此外,附图中所示的特定布置不应被视为限制性的。应该理解,其他实施例可以更多或更少地包括给定图中所示的每个元件。此外,可以组合或省略所示出的元件中的一些。另外,示例实施例可以包括图中未示出的元件。
I.概述
示例实施例可以包括或以其他方式涉及可以用于估计机器人的环境内的机器人的姿势并且由此帮助机器人在环境中导航的方法和***。例如,机器人的一个或多个传感器可以通过从环境内的地标接收信号来检测地标。机器人可以基于所接收到的信号确定其相对于地标的位置。此外,可以映射环境中的地标的位置。机器人可以确定哪些映射地标对应于检测到的地标。机器人可以通过将其相对于检测到的地标的位置变换为其相对于对应的映射地标的位置来估计其在环境中的姿势。
在一些示例中,机器人可能接收或检测与地标无关的信号,或者错误表示地标的位置的信号。接收到的或检测到的这种类型的信号可以称为“错误检测”。错误检测可能导致机器人不准确地估计其在环境中的姿势,从而阻碍机器人有效地在环境中导航。例如,因为检测到的地标包括一个或多个错误检测,机器人可能错误地将某些映射地标与检测到的地标相关联。基于这种错误的关联,机器人可能错误地估计其在环境中的姿势并且可能无效地在环境中导航。
示例***和方法可以帮助同时估计机器人的姿势,同时滤除错误检测。为此,可以将检测到的地标视为候选地标,并且可以审查候选地标以确定它们中的哪些对应于映射地标,哪些对应于错误检测。
一些示例可以包括对候选地标的多个子集(例如,具有三个候选地标的子集)进行采样。然后,子集的每个采样候选地标可以与对应的映射地标配对。这个过程可有助于审查候选地标,因为一些采样子集将包括错误检测而其他子集则将不包括错误检测。可以单独评估每个采样子集。这些示例还可以包括确定要应用于每个子集的候选地标的变换。变换可以将每个子集的采样候选地标与对应的映射地标匹配,使得在采样的候选地标与对应的映射地标之间存在最小距离。使用候选地标的子集和对应的映射地标可以减少确定变换所需的计算。
一些示例可以进一步包括确定与每个采样子集相关联的内点的数量。针对每个采样子集确定的变换可以应用于所有候选地标。采样子集的内点的数量可以基于变换的候选地标与相邻的映射地标之间的距离。例如,可以将变换的候选地标与相邻的映射地标(例如,最接近的映射地标)之间的距离与内点阈值距离进行比较。与相邻的映射地标的距离小于或等于内点阈值距离的变换的候选地标可以被称为“内点”。与相邻的映射地标的距离大于阈值的变换的候选地标可以被称为“外点”。内点可以指示变换的子集将关联的候选地标与相邻的映射地标准确地匹配,而外点可以指示相反内容。不包括错误检测的采样子集更有可能产生使候选地标与相邻的映射地标准确匹配的变换,并且进而会产生更多的内点。因此,确定内点的数量可以帮助审查候选地标,因为更多数量的内点可以对应于具有很少或没有错误检测的采样子集,而更多数量的外点可以对应于包括一个或多个错误检测的子集。
在一些示例中,可以迭代地对候选地标的子集和对应的映射地标进行采样。这些示例可以包括确定与每个采样子集相关联的内点的数量,以及选择具有最大数量的内点的子集。在其他示例中,可以选择具有满足或超过内点阈值的相关联的内点数量的第一迭代采样子集。在选择了子集之后,可以使用与该子集相关联的内点的变换来估计机器人的姿势。因为内点可以用于确定哪些子集包括错误检测,并且还可以用于估计机器人的姿势,所以本文描述的方法和***可以同时估计机器人的姿势和滤除错误检测。
进一步的示例可以包括确定姿势估计置信度。姿势估计置信度可以基于与子集相关联的内点与候选地标的总数量的比率。接近1的比率可以指示非常少的错误检测,而接近零的比率可以指示存在许多错误检测。
在更进一步的示例中,可以获得指示机器人的初始姿势估计的先验信息。例如,初始姿势估计可以指示机器人在时间(t1)处于坐标(x,y)处。在这些示例中,机器人可以部分地基于机器人的初始姿势估计来对候选地标的子集和对应的映射地标进行采样。例如,可以从最接近坐标(x,y)的映射地标中选择对应的映射地标。
现在将详细参考在附图中示出的各种实施例。在以下详细描述中,阐述了许多具体细节以便提供对本公开和所描述的实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践本公开。在其他情况下,没有详细描述众所周知的方法、过程和组件以及电路,以免不必要地模糊实施例的各方面。
II.机器人设备的***设计
图1是根据示例实施例的***100的框图。***100包括规划***110和机器人设备120。规划***110可以包括非机载规划器112,其可以协调在环境中操作的一个或多个机器人设备的运动。非机载规划器112可包括路线图规划器114。非机载规划器112和/或路线图规划器114可以生成用于机器人设备(例如机器人设备120)在环境中操作时跟随的一个或多个异步路径116。
路线图、原型图或表示环境的其他路线图,例如下面在图3的上下文中讨论的原型图300可以被接收、确定或以其他方式提供到规划***110、非机载规划器112和/或路线图规划器114。异步路径116可以是基于路线图、原型图或其他路线图的一个或多个路径。例如,如果路线图、原型图或其他路线图具有连接多个交叉点的多个边缘,则可以根据多个边缘和/或多个交叉点来指定异步路径116。
在一些示例中,机器人设备120可以是能够跟随路径的任何一个或多个转向车辆。例如,机器人设备120可以包括机载软件130和/或硬件150。机载软件130可包括以下中的一个或多个:定位子***132,障碍物检测子***134,测距子***136,路径跟随子***138和轨迹跟随子***142。定位子***132可用于定位机器人设备,即,确定机器人设备在环境中的位置。定位子***132可以生成机器人设备和/或其他物体的位置估计,位置估计可以用于定位机器人设备、帮助机器人设备跟随路径(例如异步路径116)和/或辅助机器人设备跟随轨迹,例如轨迹140。一旦生成位置估计,定位子***132就可以向路径跟踪子***138提供位置估计。
异步路径或简称路径可以是非时变规划或指示机器人设备120如何从起点SP行进到终点EP的其他信息;即,(异步)路径不考虑时间。相反,轨迹可以包括针对规划时间间隔机器人设备120可以跟随的转向角度和牵引马达速度的值。
规划时间间隔可以是机器人设备被引导或被规划以跟随路径、路线和/或行程的持续时间。在一些实施例中,规划时间间隔可以是预定的时间量;例如,五秒,一秒,0.2秒,0.1秒。具体地,可以基于指定规划时间间隔的值的用户输入来确定预定的规划时间间隔。在其他实施例中,可以基于一个或多个其他值来确定规划时间间隔;例如,缝合时间(stitch time),与统一的边缘(或路径)花费相关联的时间,沿轨迹行进的估计时间。用于确定规划时间间隔和规划时间间隔的值的其他技术也是可行的。
然后,可以使用一个或多个轨迹来描述机器人设备120如何能够以时变方式从起点SP行进到终点EP。在一些实施例中,轨迹还可以在规划时间间隔内提供关于除转向角度和牵引马达速度之外的其他变量的值的信息,例如但不限于机器人设备120的其他运动变量(例如,速度和加速度)和机器人设备120的致动器位置。
作为示例,将汽车从“家”位置驱动到“工作”位置的路径可以包括街道的有序列表,控制实体(例如人或自主车辆的控制设备)可以使用街道的有序列表来将汽车从家驱动到工作。在该示例中,从家到工作的轨迹可以涉及一个或多个指令,其指定控制实体可以用于将汽车从家驱动到工作的速度和/或加速度。在一些示例中,轨迹可以考虑交通、障碍物、天气和其他时间敏感的条件;例如,从家到工作的轨迹可以指示控制实体“在20MPH或以下时右转10秒”、“加速到55MPH并且直线行驶3分钟”、“在30秒内减速至20MPH”、“在20MPH或以下时左转10秒”等。在一些实施例中,轨迹可以沿途改变;例如,以考虑障碍物、路径变化等。
障碍物检测子***134可以确定一个或多个障碍物是否阻挡机器人设备120的路径和/或轨迹。这些障碍物的示例可以包括但不限于托盘、可能从托盘上掉下来的物体、机器人设备以及在环境中工作的操作人员。如果检测到障碍物,则障碍物检测子***134可以向路径跟随子***138提供指示障碍物检测的一个或多个通信。指示障碍物检测的所述一个或多个通信可以包括关于由障碍物检测子***134检测到的一个或多个障碍物的一个或多个位置的位置信息和/或关于由障碍物检测子***134检测到的一个或多个障碍物的识别信息。测距子***136可以使用数据,例如来自伺服驱动器152的数据,来估计机器人设备120随时间的位置的一个或多个变化。
路径跟随子***138和/或轨迹跟随子***142可以充当机器人设备120上的规划器。该机载规划器可以基于由定位子***132提供的位置估计来跟随一个或多个路径,例如异步路径116。
路径跟踪子***138可以接收异步路径116、来自定位子***132的位置估计输入、关于来自障碍物检测子***134的一个或多个障碍物的一个或多个位置的位置信息和/或关于来自测距子***136的一个或多个位置变化的信息,并产生一个或多个轨迹140作为输出。
硬件150可包括伺服驱动器152和/或马达154。伺服驱动器152可包括一个或多个伺服机构和相关的电气设备。在一些示例中,伺服驱动器152可包括一个或多个电子放大器,用于为一个或多个伺服机构供电和/或监控来自(多个)伺服机构的反馈信号。伺服驱动器152可以从机载软件130接收控制信号,例如轨迹144,并且可以向(多个)伺服机构提供电流以产生与控制信号成比例的运动。在一些实施例中,伺服驱动器152可以将从(多个)伺服机构接收到的状态信息与轨迹144所命令的预期状态进行比较。然后,伺服驱动器152可以调节所提供的电流的电压频率或脉冲宽度,以校正接收到的状态信息和预期状态之间的偏差。在其他实施例中,伺服驱动器152可以向机载软件130提供诸如反馈信号和/或位置相关信息的信息。
一个或多个马达154可以是伺服驱动器152的(多个)伺服机构的一部分或全部。例如,马达154可以使用由伺服驱动器152提供的电流来产生机械力以驱动机器人设备120的一部分或全部;例如,马达154可以提供力以推进机器人设备120和/或驱动机器人设备120的一个或多个效应器。
可以关于路线图来执行环境内的机器人设备的路径规划,例如包括室内设置和/或室外设置的环境,室内设置例如仓库、办公楼或家,室外设置例如公园、停车场或院子,路线图是代理(agent)(例如机器人设备)可以跟随的路径的连接图。使用路线图来规划环境中的代理路线而不是采用自由空间方法可以减少总规划状态空间,从而使大规模多代理协调易于处理。此外,路线图的使用可以使操作员能够直观地控制允许机器人设备导航的区域。
路线图生成可以首先涉及生成原型图,其指示车道的粗略位置和行进方向。在一些示例中,原型图可以是指示机器人设备的车道和行进方向的定向图。在其他示例中,可以基于环境的绘图或地图手动生成原型图。
图2描绘了根据示例实施例的用于操作一个或多个仓库的***200。***200包括仓库管理***210、规划***110和机器人设备220。仓库管理***210可以接收与仓库相关联的一个或多个物流请求212;例如,在仓库中存储一个或多个物品的请求和/或从仓库运送一个或多个物品的请求。仓库管理***210可以将物流请求212转换成一个或多个动作214,其中动作214可以包括但不限于将一个或多个指定代理移动到一个或多个指定位置的“移动到”动作,以及将一个或多个物品运送到一个或多个指定位置的“运输”动作。在一些示例中,动作214可以包括{代理ID,目的地}形式的去-到命令,但是其他动作也是可行的,诸如“移动托盘”。这些通常可以分解为移动到命令,但是(移动到拾取位置,移动到放置位置)。
规划***110包括非机载规划器112和执行器220。非机载规划器112可以接收动作214作为输入,并为仓库中操作的一个或多个代理(例如,多个机器人设备)生成一个或多个协调路径216,以执行动作214。协调路径216可以是用于仓库中的所有代理的协调动作规划的一部分,以满足物流请求212。协调动作规划可以考虑代理的优先序;例如,如果预期机器人设备RD1和RD2二者几乎同时到达某一点,则机器人设备中的一个可以优先于另一个,例如机器人设备RD1等待机器人设备RD2通过该点(或相反亦然)。执行器220可以接收协调路径216并生成非冲突子路径222以引导机器人设备120完成协调动作规划中的其部分以执行动作214来完成物流请求212。
如上面在图2中所示,包括非机载规划器112和执行器220的规划***110可以与机器人设备120通信。在一些实施例中,机器人设备可以是叉车;例如,任何职业安全和健康管理局(OSHA)1级或3级动力工业卡车。在其他实施例中,规划***110可以包括使用位于“云”(例如,一个或多个联网计算设备)中和/或位于与机器人设备120共同定位的房屋的某处的一个或多个联网计算设备来执行的软件。
图3示出了根据示例实施例的***300,其包括物流接口310、仓库管理***210和使用网络318连接的一个或多个机器人设备120。物流接口310可以经由网络318向仓库管理***210提供关于物体(例如托盘)和/或机器人设备到仓库管理***210的移动的库存任务指令。示例库存任务可以是将包含类型B的物品的托盘A移动到位置C。
仓库管理***210可以从物流接口310接收库存任务指令并生成一个或多个任务/作业指令(例如,指示机器人设备A将托盘B从位置C移动到位置D的指令)和/或用于控制(多个)机器人设备120执行库存任务指令的规划。任务/作业指令和/或规划可包括关于一个或多个路径和/或一个或多个轨迹的信息,其中(多个)任务/作业指令、(多个)规划、路径和轨迹/多个轨迹由仓库管理***210的规划***110使用在图1和图2的上下文中讨论的技术生成。
例如,仓库管理***210可以是使用一个或多个计算设备运行并存储数据的集中控制服务器;例如,服务器计算设备。为了执行这些任务,仓库管理***210可以包括WMS中间件,并且可以提供用户接口以提供对用于监视和管理***300的工具的访问。WMS中间件和/或仓库管理***210的其他组件可以使用一个或多个应用程序编程接口(API),例如协议转换API,用于在任务/作业指令(例如,指示机器人设备A将托盘B从位置C移动到位置D的指令)到机器人设备路径、姿势和/或轨迹之间的转换;库存任务和任务/作业指令之间的转换;以及API之间的转换。
由仓库管理***210提供的用户接口可以为***300提供一个或多个用户接口功能,包括但不限于:监控机器人设备120,例如,呈现与一个或多个机器人设备的位置、电池状态、充电状态等有关的数据;使得能够生成和发送(多个)库存任务指令、(多个)任务/作业指令、(多个)规划、(多个)路径和/或轨迹/多个轨迹到(多个)机器人设备120中的一个或多个;以及浏览、更新、删除和/或***与一个或多个仓库地图、托盘、网络和/或规划***(例如,规划***110,仓库管理***210和/或物流接口310)相关的数据。
在一些实施例中,仓库管理***210可以在物流接口310和(多个)机器人设备120之间以及两个或更多个机器人设备120之间路由通信,并且管理一个或多个机载***,例如在一个或多个机器人设备120上的机载***320。在其他实施例中,仓库管理***210可以存储、生成、读取、写入、更新和/或删除与***300相关的数据,例如但不限于:关于由一个或多个机器人设备120完成任务/作业指令的数据;关于(多个)机器人设备120中的一些或全部的位置和/或姿势的数据,包括指示机器人设备被初始化/启动时所在位置的数据;与人类动作、事件分析和/或调试的一个或多个审计跟踪相关的数据;以及状态跟踪的数据。在其他实施例中,仓库管理***210可以包括与(多个)机器人设备120和一个或多个适配器通信的中央消息路由器/持久性管理器。一个或多个适配器中的每一个可以提供对仓库管理***210可用的***300的数据和/或通信的访问,并且可以包括但不限于:用于上述用户接口的用户接口服务适配器,使万维网(WWW)/因特网能够访问关于***300的信息的Web内容服务适配器,消息代理适配器和/或充当API和/或WMS之间的通信之间的中介的WMS适配器。
图3示出了一个或多个机器人设备120中的每一个可以包括以下中的一个或多个:机载***320,网络交换机330,车辆控制器332,可编程逻辑控制器(PLC)334,一个或多个设备传感器338,以及一个或多个驱动器340。
机载***320可以是用于机器人规划的计算和传感器包,其被配置为安装到机器人设备120中并与机器人设备120一起使用,其中机载***320可以包括机载传感器322和一个或多个规划/执行处理器324。图3还示出了机载***320,其被配置为使用网络交换机330以(经由网络318)至少与规划***110、设备传感器338和/或与机器人设备120的一个或多个致动器通信。
机载***320可以负责以下中的一个或多个:机器人设备120的定位,用以执行规划和/或沿着由仓库管理***210提供的路径和/或轨迹行进的局部轨迹的生成,生成对驱动器340的命令以跟随一个或多个(局部)轨迹,生成用于控制机器人设备120的(多个)致动器的命令,以及向仓库管理***210报告姿势、状态和/或其他信息。
机载传感器322可包括一个或多个导航激光器、激光扫描仪、相机和/或用于导航和/或控制机载***320的其他传感器。例如,(多个)机器人设备120中的机器人设备可以包括一个或多个激光扫描仪,例如由德国Waldkirch的SICK AG、日本大阪的HOKUYOAUTOMATIC CO.LTD和/或日本大阪的KEYENCE公司提供的一个或多个激光扫描仪。激光扫描仪可以用于沿着机器人设备的行进方向以及沿着机器人设备的侧面、角落和/或后面的障碍物检测和/或避让。激光扫描仪还可用于使用基于反射器的定位来定位机器人设备。在一些实施例中,相机和/或其他传感器可用于代替激光扫描仪或与激光扫描仪一起用于障碍物检测、障碍物避免和/或定位。
(多个)规划/执行处理器324可包括至少连接到机载传感器322的一个或多个计算机处理器。(多个)规划/执行处理器324可以从机载传感器322读取数据,生成局部轨迹和/或命令到(多个)驱动器340以移动机器人设备120,并与仓库管理***210通信。局部轨迹可以是机器人设备120在起始姿势处开始并且在某个时间到达结束姿势的轨迹。在一些示例中,可以隐含地指定起始姿势;例如,起始姿势可以是机器人设备120的当前姿势,因此局部轨迹可以基于其起始姿势是机器人设备120的当前姿势的假设。
(多个)规划/执行处理器324可以使用组件框架。组件框架可以是多线程作业调度和消息传递***,其基于用于配置为提供机器人设备120的一致异步模型的输入/输出(I/O)和信令的软件库(例如由弗吉尼亚州Onancock的boost.org提供的“boost::asio”和“boost::signals2”软件库)构建。组件框架能够实现软件组件(或模块)之间的通信,使得软件组件可以以线程安全的方式并行执行。
组件框架可以包括以下中的一个或多个:状态机组件、定位组件、规划组件和轨迹跟踪组件。状态机组件可以管理机器人设备120的状态以用于车辆初始化、车辆命令和故障处理。状态机组件可以使用确定性有限自动机或其他状态机来管理机器人设备的状态。
定位组件可以从车辆传感器读取数据并且集成机器人设备120的先前状态信息以确定机器人设备120的姿势。车辆传感器数据可以指示由车辆传感器检测到的一个或多个地标/兴趣点。替代地,来自车辆传感器的数据可能需要处理,使得定位组件基于车辆传感器数据检测一个或多个地标/兴趣点。可以相对于一个或多个检测到的地标/兴趣点(例如托盘或其他物体)确定姿势。规划组件可以从仓库管理***210接收一个或多个目标,并确定机器人设备120的局部轨迹以实现那些目标。在一些实施例中,局部轨迹可以是机器人设备120将在预定时间量内跟随的短期轨迹;例如,100毫秒、200毫秒、500毫秒、1秒、5秒。轨迹跟随组件可以接收由规划组件生成的局部轨迹,并生成用以沿着局部轨迹行进的驱动控制指令。然后将驱动控制指令中继到驱动器340,驱动器340控制牵引马达和机器人设备120的其他致动器。
网络交换机330可以实现(多个)机器人设备120的通信。这些通信可以包括但不限于机载***320和机器人设备120的其余部分之间的通信;例如,设备传感器338和驱动器340,以及经由网络318与仓库管理***210的通信。例如,网络交换机330可以通过以太网和/或到有线网络的其他(多个)有线通信接口和/或通过Wi-FiTM和/或到无线网络的其他(多个)无线通信接口实现基于传输控制协议/网际协议(TCP/IP)的通信,例如台湾省新台北市的PLANET技术公司的PLANET Ethernet Switch。
在一些实施例中,(多个)机器人设备120和规划***110之间的通信可以包括远程过程调用(RPC)。远程过程调用可以允许通过规划***110的软件调用驻留在一个或多个机器人设备120上的软件过程、方法和/或功能,反之亦然。远程过程调用可以基于通信协议,例如TCP/IP、超文本传输协议(HTTP)(例如HTTP 1.0和/或HTTP 2.0)、和/或其他通信协议。部分或全部远程过程调用可以包括加密数据;可以使用安全套接字层(SSL)、传输层安全性(TLS)和/或一个或多个其他加密算法和/或协议来加密这样的数据。在使用加密数据的实施例中,诸如专用认证机构之类的一个或多个认证机构可以验证用于加密和/或解密加密数据的一个或多个证书。认证机构可以使用访问控制列表(ACL)来控制对一个或多个证书的访问。远程过程调用可以使用请求/响应协议和/或双向流协议来进行与RPC相关的通信。在双向流传输协议用于RPC相关通信的实施例中,单个长寿命RPC可用于实现双向流传输协议。
车辆控制器332和/或可编程逻辑控制器334可以为(多个)机器人设备120提供电气和传感器管理功能。电气和传感器管理功能可以包括但不限于用于电负载控制、照明控制、传感器控制、传感器和/或开关信号处理以及电源管理的功能。车辆主控器336可以提供用于控制(多个)机器人设备320的一个或多个致动器(例如提升设备)的功能。
(多个)设备传感器338可包括一个或多个传感器,其可提供与控制和/或操作机器人设备120相关的数据。数据可以提供关于(多个)机器人设备120的环境的信息,例如但不限于定位信息、位置估计和映射数据。例如,(多个)设备传感器338可包括一个或多个激光器(例如,二维(2D)激光器,安全激光器,激光扫描仪),相机(例如,飞行时间(ToF)相机,红绿蓝(RGB)相机,热像仪),电子传感器,接近传感器,导航设备和位置传感器。
(多个)驱动器340可包括一个或多个驱动器控制器和/或致动器,其提供用于移动(多个)机器人设备120的功能。驱动控制器可以引导驱动致动器以控制(多个)机器人设备120的移动。驱动致动器可包括一个或多个牵引马达、电驱动器、液压驱动器和气动驱动器。
图4示出了根据示例实施例的(多个)机器人设备120的机器人设备架构400。(多个)机器人设备120的机器人设备架构400可以包括软件。该软件可以包括用于定位410的软件,用于托盘姿势估计器412的软件,与状态机414相关的软件,用于规划器跟随器416的软件,用于组件框架420的软件和用于操作***430的软件。该软件可以由一个或多个硬件规划/执行处理器324执行。(多个)机器人设备120和其他设备之间的通信可以使用网络网关440和/或网络交换机330来执行。例如,网络网关440可以用于与(多个)机器人设备120中的机器人设备无线通信以及在(多个)机器人设备120中的机器人设备内进行无线通信,并且网络交换机330可以用于与(多个)机器人设备120中的机器人设备以及在(多个)机器人设备120中的机器人设备内进行有线通信。机器人设备架构400还包括附加硬件,诸如上面在图3的上下文中讨论的(多个)设备传感器338和(多个)驱动器340。在一些实施例中,机器人设备架构400可以包括一个或多个相机,包括但不限于ToF相机450和RGB相机452,其中一个或多个相机可以包括一个或多个静态相机和/或一个或多个视频相机。
图5示出了根据示例实施例的(多个)机器人设备120的激光扫描仪架构500。在一些实施例中,(多个)设备传感器338中的一些或全部可以是由激光扫描仪架构500示出的激光器和激光扫描仪。
激光扫描仪架构500可包括激光器510、512、520、522,激光扫描器524,协议转换器526,网络交换机330和机载***320。激光器510、512、520和522可位于(多个)机器人设备120的固定位置;例如,激光器510可以位于机器人设备的前部,激光器512可以位于机器人装置的后部,激光器520可以位于机器人设备的左前角,并且激光器522可以位于机器人设备的右前角。激光器510、512、520、522和/或激光扫描仪524可以提供信息以在环境内定位机器人设备。在一些实施例中,激光器510、512、520、522和/或激光扫描仪524可以发射光,光从一个或多个反射器反射——反射光可以由一个或多个激光传感器检测,并且机器人设备可以基于检测反射光所用的持续时间定位在环境中。特别是在这些实施例中,激光器510、512、520、522和/或激光扫描仪524中的一些或全部可包括一个或多个激光传感器,用于检测反射的激光。然后,激光器510、512、520、522和/或激光扫描仪524中的一些或全部可以生成数据,包括但不限于与激光器相关的数据(例如,激光器的维护数据),与由激光器发射的光有关的数据,和与(多个)激光传感器检测反射激光所用的一个或多个持续时间有关的数据。
如图5所示,一些激光器(例如激光器520、522和激光扫描仪524)可以直接连接到网络交换机330,而其他激光器(例如激光器510、512)可以经由协议转换器526连接到网络交换机330。协议转换器526可以将激光器(例如激光器510和/或512)所使用的通信协议转换为网络交换机330使用的通信协议;例如,从基于RS-422的通信协议转换为基于以太网的通信协议。然后,激光器510、512、520、522和激光扫描仪524可以经由网络交换机330和可能的协议转换器526向机载***320发送数据和从机载***320接收命令。
在一些实施例中,(多个)机器人设备120可以经受一个或多个故障条件。这些故障条件和相关恢复策略的示例描述于下表1中。
表1
III.机器人设备在环境中的定位
图6示出了根据示例实施例的在环境中导航的机器人。可估计机器人600的位置和取向,并且机器人可相应地在环境中导航。机器人的位置和取向可以被称为机器人的“姿势”。可以基于机器人的一个或多个传感器602接收到的信号606来估计机器人的姿势。所接收到的信号可以与遍布环境分布的地标604相关联。例如,信号可以由放置在仓库中的各个位置的逆向反射标记反射。在该示例中,机器人可以包括光测距和检测(LIDAR)单元,其将光发射到机器人周围的区域,并且定位在机器人周围的区域中的逆向反射器可以将光反射回到机器人以由机器人的一个或多个传感器进行检测。
在一些示例中,接收到的信号可以指示地标相对于机器人的位置。此外,可以预先确定环境中的地标的位置。例如,可以映射地标。将所接收到的信号与对应的映射地标匹配可以允许推断出机器人在环境中的姿势。例如,机器人可以将检测到的地标与映射地标匹配以确定其在地图上的位置。此外,可以预先确定与环境内的障碍物610相关的地标的位置。例如,也可以映射障碍物的位置。机器人可进行运动608以在环境内导航,同时基于估计的姿势和障碍物的预定位置来避开障碍物。
图7示出了根据示例实施例的将检测与映射地标相关联的机器人。来自候选地标712的检测信号706可以由机器人700的一个或多个传感器702接收。信号可以指示候选地标相对于机器人的位置。可以变换候选地标以与映射地标704匹配。可以在候选地标和映射地标之间形成关联714,其导致变换的候选地标与映射地标之间的最小距离。例如,可以使用诸如迭代最近点(ICP)方法的最小均方法来形成关联714。可以基于候选地标和映射地标之间的关联714来变换和旋转候选地标。可以通过类似地平移和旋转机器人来推断机器人的姿势。
图8是示出根据示例实施例的机器人控制***的模块的功能框图。机器人控制***可以包括作为机载感测模块800的一部分的一个或多个传感器。传感器可以提供指示机器人的轮测距仪808的数据。传感器还可以包括导航扫描仪810。导航扫描仪810可以被配置为从机器人的环境中的候选地标接收信号。
机器人控制***的姿势估计模块802可以指示机器人相对于环境中的映射地标的位置和取向。姿势估计模块802可以包括基于来自机载感测模块800的输入而执行功能的软件。例如,每当导航扫描仪810执行扫描时,来自机载感测模块的传感器数据可以由姿势估计模块802处理,以确定机器人在环境中的当前位置和取向。姿势估计模块802的姿势跟踪/细化块812和全局定位块814表示处理步骤,而姿势块816、置信度/准确度块818和初始姿势估计块820表示处理块812和814的输出。
姿势估计模块802可以以两种模式操作。在第一模式中,姿势估计模块802可以具有机器人的初始姿势估计820,并且姿势跟踪/估计块812可以更新初始姿势估计820。姿势跟踪/细化812可结合初始姿势估计820利用轮测距仪808和来自导航扫描仪810的数据来识别机器人相对于候选地标的位置。姿势跟踪/细化块812可以将候选地标与接近初始姿势估计820的特定映射地标相关联。姿势估计模块802还可以提供基于关联的姿势估计816、以及姿势估计的置信度/准确度818。置信度/准确度818可以指示初始姿势估计是足够的,或者它需要进一步细化。同样在第一模式中,由姿势跟踪/细化块812确定的姿势816和置信度/准确度818可以用在后处理模块804中以确定机器人的细化姿势估计。同时,可以跳过全局定位块814。此外,在姿势跟踪/细化812期间导出的姿势估计816可以被视为机器人的初始姿势估计820,以用于随后的姿势估计。
在第二模式中,姿势估计模块802可以不具有机器人在环境中的位置的初始指示。换句话说,可能尚未确定初始姿势估计820。在第二模式中,姿势估计模块802可以利用全局定位814而不是姿势跟踪/细化812来确定机器人的姿势。全局定位块814可以测试跨越机器人的整个环境的候选地标与映射地标之间的关联。全局定位块814还可以输出姿势估计816和置信度/准确度818。同样在第二模式中,由全局定位块814确定的姿势816和置信度/准确度818可以用在后处理模块804中,以确定机器人的细化姿势估计。此外,在全局定位814期间导出的姿势估计816可被视为机器人的初始姿势估计820,以用于随后的姿势估计。
后处理模块804可以用于细化从姿势跟踪/细化或全局定位导出的姿势估计。后处理模块可以执行姿势估计和定位模块的置信度/准确度以及机载感测模块的轮测距仪的融合外推822。在融合外推期间,当存在高置信度/准确度时,细化姿势估计可以更多地依赖于由定位模块提供的估计姿势。相反,当存在低置信度/准确度时,细化姿势估计可更多地依赖于轮测距仪。此外,后处理模块可以基于所提供的置信度/准确度和细化姿势估计来提供地图更新824。例如,地图更新可以基于细化的姿势估计来更新映射地标的位置。在其他示例中,地图更新可以更新与用于生成细化姿势估计的映射地标相关联的统计信息。
由图8的机器人控制***执行的每个功能可以周期性地执行。例如,导航扫描仪810可以以8Hz执行扫描,而轮测距仪808可以以100Hz进行更新。作为另一示例,姿势估计模块的处理块812和814可以以8Hz从机载感测模块接收数据,并且可以以8Hz产生姿势816和置信度/准确度818。不同的频率也是可行的。
图9示出了根据示例实施例的机器人的映射环境。生成机器人的姿势估计可以依赖于环境内的地标的预定位置。例如,映射地标902可以对应于地图上的第一坐标(x1,y1),映射地标904可以对应于第二坐标(x2,y2),映射地标906可以对应于第三坐标(x3,y3),并且映射地标908可以对应于第四坐标(x4,y4)。在该示例中,仅x和y轴可能是相关的,因为映射地标可以分布在基本水平的标记平面上。例如,仓库中的每个逆向反射器可以定位在地板上方5英尺的高度(对应于z轴)。在其他示例中,映射地标可以对应于地图上的坐标范围。例如,坐标范围可以对应于各种地标的尺寸。在其他示例中,映射地标可以对应于(3-D)地图上的三维(3-D)坐标。表示映射地标的位置的其他方式也是可行的。
在一些示例实施例中,映射地标可以是逆向反射标记,其被配置为将光反射回到光源。在这样的示例中,机器人可以包括光测距和检测(LIDAR)单元,其被配置为向机器人周围的区域发光。逆向反射标记可以将来自LIDAR单元的信号反射回到机器人。机器人可以包括机器人的一个或多个传感器,其可以被配置为从逆向反射标记接收反射信号并检测标记相对于机器人的位置。
图10示出了根据示例实施例的已经进行了多个检测的机器人。生成机器人的姿势估计可以进一步依赖于由机器人1000的一个或多个传感器1002检测到的信号1006。在一个示例中,信号可以与候选地标1012、1014、1016、1018和1020相关联。信号可以指示候选地标相对于机器人的位置。例如,候选地标1012可以对应于相对于机器人1000的半径(r1)和相对于机器人1000的角度(α1),候选地标1014可以对应于半径(r2)和角度(α2),候选地标1016可以对应于半径(r3)和角度(α3),候选地标1018可以对应于半径(r4)和角度(α4),候选地标1020可以对应于半径(r5)和角度(α5)。在其他示例中,候选地标可以由相对于机器人1000的笛卡尔坐标表示。表示候选地标相对于机器人的位置的其他方式也是可行的。
在一些示例中,候选地标的位置可以由机器人的至少一个传感器确定。也就是说,传感器可以接收指示候选地标的位置的信号。传感器可以生成表示接收到的信号的传感器数据,并且可以基于传感器数据确定候选地标的位置。然后,机器人的控制***可以从传感器接收候选地标的位置。在其他示例中,至少一个传感器可以生成原始传感器数据,并且机器人的一个或多个处理器可以处理原始传感器数据以确定候选地标的位置。例如,处理器可以识别来自机器人上的传感器的信号,该信号具有大于强度阈值的强度。在其他示例中,远离机器人的处理器可以基于传感器数据来检测候选地标的位置。其他确定候选地标位置的方法也是可行的。
候选地标可以对应于或可以不对应于映射地标。例如,候选地标1012、1014、1016和1018可以对应于映射地标(例如,图9的映射地标902、904、906和908),而候选界标1020可以对应于错误检测。错误检测可能使得难以将候选地标与对应的映射地标匹配,因此可能妨碍机器人的准确姿势估计。以下示例实施例描述了审查候选地标以实现准确姿势估计的方法。
图11A、11B、11C和11D示出了根据示例实施例的与候选地标的样本集和对应的映射地标相关联的内点的确定。图11A示出了机器人的映射环境。映射地标1102、1104、1106和1108具有预定位置。图11B示出了已经进行了多个检测的机器人。检测对应于候选地标1112、1114、1116、1118和1120。在示例实施例中,确定样本集,其包括候选地标1112、1114和1120,以及对应的映射地标1102、1104和1106。在本示例中,已经对三个候选地标进行了采样。但是,也可以使用不同数量的采样地标。例如,采样地标的数量可以涉及候选地标总数量的百分比。
在一些实施例中,可以伪随机地执行对候选地标的采样。在其他实施例中,可以以有序的方式执行对候选地标的采样。例如,可以以相对于机器人的角度的顺序执行对候选地标的采样。在其他示例中,可以以相对于机器人的半径的顺序执行对候选地标的采样。在其他示例中,可以伪随机地选择第一候选地标,并且可以基于与第一候选地标的接近度来对其他候选地标进行采样。在其他示例中,可以基于期望的几何形状来选择候选地标。例如,可以对最类似等腰三角形的候选地标进行采样。在另一示例中,可以对最类似线的候选地标进行采样。其他采样候选地标的方法也是可行的。
在一些实施例中,可以以与采样的候选地标类似的方式选择对应的映射地标。在其他实施例中,可以对形成与采样的候选地标相似的几何形状的对应的映射地标进行采样。在本示例中,采样的映射地标1102、1104和1006最类似于由采样的候选地标1112、1114和1120形成的几何形状。对对应的映射地标进行采样的其他方式也是可行的。
在一些实施例中,可以确定若干样本集,每个样本集包括候选地标和对应的映射地标的不同组合。可以审查每个样本集以确定哪些样本集充分地表示机器人的姿势。
图11C示出了基于已应用于所有候选地标的样本集确定的变换。可以为样本集确定将候选地标的采样子集与对应的映射地标相关联的变换。例如,变换可以平移和旋转候选地标,以便最小化采样的候选地标与对应的映射地标之间的距离。在该示例实施例中,采样的候选地标1112、1114和1120已被取向为最小化与对应的映射地标1104、1106和1102的总距离。诸如迭代最近点(ICP)算法的最小二乘法可以实现这种匹配。任何类似的算法可以适当地将候选地标的采样子集与对应的映射地标匹配。其他变换也是可行的。
虽然可以基于候选地标的采样子集和对应的映射地标来确定变换,但是可以将变换应用于所有候选地标。在本示例中,除了采样的候选地标之外,还将变换应用于非采样的候选地标1116和1118。
一旦将确定的变换应用于候选地标,就可以确定变换的候选地标与相邻的映射地标之间的距离。在应用变换之后,与特定变换的候选地标对应的相邻的映射地标可以是最接近的映射地标。在一些示例中,每个映射地标可以仅用作到一个变换的候选地标的相邻映射地标(例如,单个映射地标不能将多个候选地标限定为内点)。在该示例中,映射地标1102是变换的候选地标1120的相邻的映射地标,映射地标1104是变换的候选地标1112的相邻的映射地标,并且映射地标1106是变换的候选地标1114的相邻的映射地标。
该变换大体上可以指示机器人1100的潜在姿势。变换的候选地标与相邻的地标之间的距离可以指示变换是否呈现可行的姿势。例如,可以确定与变换相关联的内点的数量。
图11D示出了根据示例实施例的与变换的候选地标相关联的多个内点的数量。可以基于内点距离阈值来确定每个内点。内点距离阈值可以指示变换的候选地标是否与任何映射地标充分匹配。在本示例中,内点距离阈值由半径1130、1132和1134表示,其分别环绕变换的候选地标1120、1112和1114。在相邻的映射地标的阈值距离内的任何变换的候选地标可以被认为是内点。在本示例中,变换的候选地标1112、1114和1120可以被认为是内点。图11D中未描绘的是候选地标1116和1118,其不被视为内点。图11D中未描绘的是映射地标1108,其不在任何变换的候选地标的内点距离阈值内。
包括错误检测的采样子集可能导致不能充分表示机器人姿势的变换。在本示例中,候选地标1112、1114、1116和1118分别对应于映射地标,而候选地标1120对应于错误检测。图11C和11D示出了因为采样子集包括错误检测而不充分表示机器人姿势的变换的示例实施例。
在本示例中,从五个变换的候选地标确定三个内点。换句话说,根据变换,可以认为五个候选地标中有三个已经充分匹配。可以确定五个候选地标中的具有内点的三个不对应于可行的变换,这进而不表示机器人的可行姿势。其他因素可有助于确定变换不可行。在图11A-D中,例如,没有一个非采样的候选地标与内点相关联。可能常见的是变换的采样候选地标与内点相关联,因为所确定的变换旨在将采样的候选地标与对应的映射地标最佳地匹配。因此,在确定变换的可行性时,可以给予非采样候选地标是否与内点相关联更多权重。在确定内点数量不足的示例中,可以对其他候选地标和对应的映射地标进行采样,可以变换其他候选地标,并且可以确定与其他候选地标相关联的多个内点。
图12A、12B、12C和12D示出了根据示例实施例的与候选地标的另一样本集和对应的映射地标相关联的内点的确定。图12A示出了与图11A所示的机器人相同的映射环境。类似地,图12B示出了已进行与图12B所示相同的检测的机器人。然而,图12A和12B描绘了不同的样本集。在本示例中,候选地标1214、1216和1218以及对应的映射地标1204、1206和1208被采样。图12C示出了从应用于所有候选地标的样本集确定的变换。在本示例中,基于采样的候选地标1214、1216和1218以及对应的映射地标1204、1206和1208确定变换。该变换也应用于非采样的地标1212和1220。图12D示出了与地图地标匹配的变换的候选地标相关联的多个内点。采样候选地标1214、1216和1218是内点,因为它们对应于相邻的映射地标1204、1206和1208,其在采样候选地标的半径1234、1236和1238内。非采样候选地标1212也是内点,因为相邻的映射地标1202在候选地标1212的半径1232内。
图12D示出了包括五个候选地标中的四个内点的示例实施例。可以确定五个候选地标中的具有内点的四个对应于可行的变换,这进而表示机器人的可行姿势。可以进行该确定,因为总共有四个采样和相邻地标1202、1204、1206和1208。因此,在本示例中确定四个内点指示了使候选地标与每个相关的映射地标充分匹配的变换。其他因素可能有助于确定变换是否可行。在图12D中,例如,一个非采样的候选地标与内点相关联。非采样候选地标与内点相关联可能是重要的,因为源自一个或多个错误检测的变换不太可能允许内点与非采样候选地标相关联,如图11A-11D所示。
图12A-12D示出了仅包括对应于映射地标的候选地标的采样子集可以导致充分表示机器人姿势的变换。虽然图11A-11D示出了远离任何映射地标的错误检测如何能够使得变换不充分,一些示例可以包括接近映射地标的错误检测。
图13A、13B、13C和13D示出了根据示例实施例的与候选地标的又一样本集和对应的映射地标相关联的内点的确定。图13A示出了与图11A和12A所示的机器人相同的映射环境。然而,图13B示出了已经进行了两次附加检测(候选地标1320和1322)和已经丢失了检测(图11B/12B的候选地标1120/1220)的机器人。本示例示出了当机器人1300改变其在环境内位置和取向时,它可能检测到额外的错误检测。例如,候选地标1312、1314、1316和1318可以分别对应于映射地标1302、1304、1306和1308,而候选地标1320和1322可以对应于错误检测。这与图11A-D和12A-D中所示的示例形成对比,图11A-D和12A-D中的每个示例仅包括在机器人的不同位置和取向上(图11B/12B中的1100/1200)的一个错误检测(图11B/12B的候选地标1120/1220)。
图13C示出了从应用于所有候选地标的样本集确定的变换。在本示例中,样本集包括候选地标1314、1322和1316,以及对应的映射地标1304、1306和1308。图13D示出了变换产生四个内点。具体地,采样的候选地标1314、1322和1316分别与相邻的映射地标1304、1306和1308匹配,使得相邻的映射地标落在半径1334、1342和1336内。另外,非采样的候选地标1312与相邻的映射地标1302匹配,使得相邻的映射地标1302落在半径1332内。因此,图13D示出了候选地标的采样子集可以产生看似可行的变换,尽管包括错误检测(例如候选地标1322)。图13C-D还示出使用错误检测的变换可以指示机器人的略微偏移的姿势估计。不准确的姿势估计可能导致机器人在环境中无效地导航。
可以采取若干措施来减轻诸如图13A-D中所示的场景的负面影响。例如,可以减小内点距离阈值。这样,即使接近映射地标的错误检测通常也不会产生与不包括错误检测的采样子集相同数量的内点。此外,即使当错误检测产生这种变换时,姿势也将偏移到比例如图13C所示的偏移更小的程度。在本示例中,可以减小内点距离阈值,使得变换的候选地标1312不产生内点。即使如此,减小内点距离阈值仍然可以允许由错误检测引起的偏移姿势估计。
此外,尽管包括错误检测的样本集可以产生可行的变换,但是不一定要选择该样本集来估计机器人的姿势。可以替代地选择另一个更合适的采样子集。例如,当两个或更多个样本集产生相同数量的内点时,可以选择具有到映射地标的最小净距离的变换样本集。例如,图12D中描绘的变换可能优于图13D中描绘的变换,因为候选地标/映射地标对1212/1202、1214/1204、1216/1206和1218/1208之间的距离小于1312/1302、1314/1304、1322/1306和1316/1308之间的距离。在另外的示例中,可以将产生相同数量的内点的样本集彼此迭代地进行比较。每次迭代可以减小内点距离阈值,直到一个样本集具有比其他样本集更多的内点。
一旦选择了样本集,就可以基于该样本集确定机器人的姿势估计。在一些示例中,可以直接应用已经为样本集确定的变换以确定估计的机器人姿势。在其他示例中,可以使用与所选样本集相关联的所有内点来确定细化变换。然后可以应用细化变换以产生更准确的机器人姿势估计。姿势估计的其他示例也是可行的。
一些示例还可以包括确定与采样子集相关联的姿势估计置信度。姿势估计置信度通常可以与和候选地标的总数量进行比较的、所确定的与采样子集相关联的内点的数量相关。例如,姿势估计置信度可以基于所确定的内点的数量与候选地标的总数量的比率。在该示例中,接近1的比率将指示准确姿势估计的高可能性。相反,接近零的比率将表明准确姿势估计的低可能性。
在一些示例中,可以在确定细化姿势估计时考虑姿势估计置信度。例如,具有高姿势估计置信度的所选择的采样子集可以是细化姿势估计的主要贡献者。具有低姿势估计置信度的所选择的采样子集可以是细化姿势估计的次要贡献者。例如,细化姿势估计可以从轮测距仪得到,而不是从所选择的样本集得出。以这种方式,完成姿势估计可以使人联想到卡尔曼滤波。
其他示例可以包括确定与采样子集相关联的姿势估计的准确度。准确度可以基于与机器人的过去姿势估计相关的统计信息。例如,可以为每个映射地标确定协方差矩阵。协方差矩阵可以包括过去姿势估计的位置和取向。与协方差矩阵匹配不佳的姿势估计可能不如符合协方差矩阵的姿势估计准确。例如,基于图13A-13D中的样本集的姿势估计可能不符合用于映射地标1306的协方差矩阵,同样,从图12A-12D的样本集导出的姿势估计不符合用于映射地标1206的协方差矩阵。这可能发生,因为机器人1300的姿势包括两个错误检测(候选地标1320和1322),其可以偏移姿势估计,而机器人1200仅包括一个错误检测(候选地标1220)。在一些示例中,可以选择被认为比另一个样本集更准确的样本集,即使两个样本集产生相同数量的内点。在其他示例中,可以以与针对姿势估计置信度描述的非常相似的方式基于所确定的姿势估计准确度来细化姿势估计。
图14是根据示例实施例的可用于估计机器人的环境内的机器人的姿势的方法的框图。在一些示例中,该方法可以作为***的一部分来执行。例如,块1400可以由机器人的一个或多个传感器结合执行存储在非暂时性计算机可读介质上的程序指令的一个或多个处理器来执行。在该示例中,机器人的一个或多个传感器可以从多个候选地标接收信号,而执行的程序指令可以基于接收到的信号确定候选地标相对于机器人的位置。一个或多个处理器可以执行程序指令以还执行块1402、1404、1406、1408和1410中包括的功能。
在其他示例中,该方法可以作为计算***的一部分来执行。在这些示例中,非暂时性计算机可读介质可以存储可由一个或多个处理器执行的指令,以使计算***执行该方法的块。
在这些示例中,一个或多个处理器和非暂时性计算机可读介质可以远程执行块。在其他示例中,一个或多个处理器和非暂时性计算机可读介质可以在机器人处执行该方法。在其他示例中,该方法的一些部分可以远程执行,而其他部分可以在机器人处执行。
可以执行该方法的块1400,以基于来自机器人上的至少一个传感器的传感器数据确定与机器人相关的多个候选地标的位置。例如,机器人的一个或多个传感器可以接收信号。信号可以来自机器人环境中的地标或来自环境中的其他物体。可以确定地标和物体的位置。每个检测可以被视为候选地标。
可以执行该方法的块1402以确定多个样本集,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。例如,确定多个样本集可以包括基于多个候选地标相对于机器人的位置从多个候选地标中为每个样本集选择三个候选地标。样本集还可以包括三个对应的映射地标。
在另一示例中,确定多个样本集可以包括基于机器人的初始姿势估计来识别在对应的映射地标的对应阈值(correspondence threshold内的候选地标,其中每个样本集包括所识别的候选地标的子集和对应的映射地标。例如,具有初始姿势估计为(x1,y1)和取向α1的机器人可以检测相对于机器人的位置处的候选地标。机器人还可以具有测距数据。可以基于初始姿势估计和测距数据来推断机器人的一般姿势。可以相应地推断候选地标在环境中的位置。可以搜索环境的地图以确定在候选地标的推断位置的对应阈值内的映射地标。在对应阈值内的候选地标和映射地标可以形成对应对。可以从对应关系对确定样本集。
可以执行该方法的块1404以为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换。该变换可以使用诸如ICP算法的最小均方算法来将样本集的采样候选地标与对应的映射地标匹配。
可以执行该方法的块1406以将每个样本集的变换应用于多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量。可以确定变换的多个候选地标与相邻的映射地标之间的距离。具有在内点距离阈值内的相邻映射地标的变换的候选地标可以被认为是内点。
可以执行该方法的块1408,以基于与每个样本集相关联的内点的数量从多个样本集中选择样本集。可以选择多个样本集中具有最大数量的内点的样本集。在其他示例中,可以选择多个样本集中产生预定数量的内点的第一样本集。
可以执行该方法的块1410以基于所选择的样本集来估计机器人的姿势。可以使用针对所选择的样本集的所确定的变换来估计姿势。在其他示例中,基于与所选择的样本集相关联的所有内点的细化变换可以用于达到更高精确度。
图15是根据示例实施例的可用于估计机器人的环境内的机器人的姿势的另一方法的框图。图15所示的方法也可以由***或计算机***以与上面关于图14描述的方式非常相同的方式来执行。
可以执行该方法的块1500,以基于来自机器人上的至少一个传感器的传感器数据确定相对于机器人的多个候选地标的位置。
可以执行该方法的块1502以确定多个样本集,其中每个样本集包括多个候选地标的子集和多个对应的映射地标。
可以执行该方法的块1504,以从多个样本集中选择样本集。从多个样本集中选择样本集可以基于多个样本集的顺序。例如,在块1504处,该方法可以选择如块1502所确定的每个样本集。
可以执行该方法的块1506以为所选择的样本集确定将来自子集的候选地标与对应的映射地标相关联的变换。该变换可以使用诸如ICP算法的最小均方算法来将样本集的采样候选地标与对应的映射地标匹配。
可以执行该方法的块1508以将所选择的样本集的变换应用于多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与所选择的样本集相关联的内点的数量。
可以执行该方法的块1510,以将与所选择的样本集相关联的内点的数量与内点阈值进行比较。例如,内点阈值可以是预定数量,并且可以将与块1504的所选择的样本集相关联的内点数量与阈值进行比较。在其他示例中,内点阈值可以是预定百分比,并且可以将与块1504的所选择的样本集相关联的内点相对于候选地标的总数量的百分比与阈值百分比进行比较。块1510可以充当该方法中的三元运算符。例如,确定满足阈值可以具有一个结果,而确定不满足阈值可以具有另一个结果。
当内点的数量不满足或超过内点阈值时,该方法的块1512表示块1510的结果。这导致执行块1504,并选择不同的样本集。因此,该方法涉及顺序地确定每个样本集的内点数量,直到确定其中一个样本集具有满足或超过内点阈值的内点数量。
当内点数量满足或超过内点阈值时,该方法的块1514表示块1510的结果。这导致执行块1516。
可以执行该方法的块1516以与先前描述的方式非常相同的方式基于所选择的样本集估计机器人的姿势。
本公开不受在本申请中描述的用于作为各个方面的说明的特定实施例的限制。对于本领域技术人员来说显而易见的是,在不脱离本发明的精神和范围的情况下可以进行许多修改和变化。根据前面的描述,除本文列举的那些之外,在本公开的范围内的功能上等同的方法和设备对于本领域技术人员将是显而易见的。这样的修改和变化旨在落入所附权利要求的范围内。
上述详细描述参考附图描述所公开的***、装置和方法的各种特征和功能。在附图中,相似的符号通常标识相似的组件,除非另有说明。并未和附图中描述的示例实施例并不意味着限制。可以使用其它实施例,并且可以进行其它改变,而不脱离本文给出的主题的精神和范围。将容易理解的是,如本文整体上描述并且在附图中示出的本发明的各方面可以以各种各样的不同配置布置、取代、组合、分离和设计,在本文中所有这些都被明确地设想。
表示信息处理的块可对应于可被配置为执行本文描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的块可对应于程序代码(包括相关数据)的模块、段或一部分。程序代码可以包括可由处理器执行的一个或多个指令,用于实现该方法或技术中的特定逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,例如包括磁盘或硬盘驱动器或其他存储介质的存储设备。
计算机可读介质还可以包括例如诸如寄存器存储器、处理器高速缓存和随机存取存储器(RAM)等短时间内存储数据的计算机可读介质。计算机可读介质还可以包括用于在更长时间段内存储程序代码和/或数据的非暂时计算机可读介质,例如诸如只读存储器(ROM)、光盘或磁盘、压缩盘只读存储器(CD-ROM)等。计算机可读介质也可以是任何其它易失性或非易失性存储***。计算机可读介质可以被认为是例如计算机可读存储介质或有形存储设备。
而且,表示一个或多个信息传输的块可对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以是在不同物理设备中的软件模块和/或硬件模块之间。
图中所示的具体布置不应视为限制。应该理解,其他实施例可以更多或更少地包括给定图中所示的每个元件。此外,可以组合或省略所示出的元件中的一些。另外,示例实施例可以包括图中未示出的元件。
虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文公开的各个方面和实施例是为了说明的目的,而不是限制性的,其真实范围由所附权利要求指示。
Claims (20)
1.一种方法,包括:
基于来自机器人的至少一个传感器的传感器数据确定相对于机器人的多个候选地标的位置;
确定多个样本集,其中每个样本集包括所述多个候选地标的子集和多个对应的映射地标;
为每个样本集确定来自子集的候选地标到对应的映射地标相关联的变换;
将为每个样本集确定的变换应用于所述多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量;
基于与每个样本集相关联的内点的数量从多个样本集中选择样本集;和
基于所选择的样本集来估计机器人的姿势。
2.根据权利要求1所述的方法,还包括基于估计的姿势在机器人的环境内导航机器人。
3.根据权利要求1所述的方法,其中,确定所述多个样本集包括基于机器人的初始姿势估计来识别在对应的映射地标的对应距离阈值内的候选地标,其中,每个样本集包括所识别的候选地标的子集和对应的映射地标。
4.根据权利要求1所述的方法,还包括基于所确定的与所选择的样本集相关联的内点数量与所述多个候选地标中的候选地标的总数量的比率来确定与估计的姿势相关联的姿势估计置信度。
5.根据权利要求1所述的方法,还包括部分地基于轮测距仪来细化机器人的估计姿势。
6.根据权利要求1所述的方法,还包括确定估计姿势的准确度,其中,确定准确度包括将姿势估计与表示过去姿势估计的统计数据进行比较。
7.根据权利要求1所述的方法,其中,从多个样本集中选择样本集包括顺序地确定每个样本集的内点数量,直到确定样本集中的一个具有满足或超过内点阈值的内点数量。
8.根据权利要求1所述的方法,其中,确定所述多个样本集包括:
为每个样本集选择第一对应映射地标;和
基于随后的对应映射地标相对于所选择的第一对应映射地标的位置,为每个样本集选择随后的对应映射地标。
9.根据权利要求1所述的方法,其中,确定相对于机器人的多个候选地标的位置包括从机器人的至少一个传感器接收位置。
10.根据权利要求1所述的方法,其中,确定相对于机器人的多个候选地标的位置包括识别来自机器人的所述至少一个传感器的、强度大于强度阈值的信号。
11.根据权利要求1所述的方法,还包括:
确定将与所选择的样本集相关联的内点与来自多个映射地标的相邻的映射地标相关联的细化变换;和
基于细化变换估计机器人的姿势。
12.根据权利要求1所述的方法,其中,确定所述多个样本集包括基于多个候选地标相对于机器人的位置从多个候选地标中为每个样本集选择三个候选地标。
13.根据权利要求1所述的方法,其中,为每个样本集确定将来自样本集的候选地标与对应的映射地标相关联的变换包括估计来自样本集的候选地标的偏移位置和取向,以与对应的映射地标匹配。
14.一种***,包括:
机器人;
联接到机器人的至少一个传感器;
一个或多个处理器;
非暂时性计算机可读介质;和
存储在非暂时性计算机可读介质上的程序指令,并且所述程序指令可由一个或多个处理器执行,以便:
基于来自联接到机器人的所述至少一个传感器的传感器数据确定相对于机器人的多个候选地标的位置;
确定多个样本集,其中每个样本集包括所述多个候选地标的子集和多个对应的映射地标;
为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换;
将为每个样本集确定的变换应用于所述多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量;
基于与每个样本集相关联的内点的数量从多个样本集中选择样本集;和
基于所选择的样本集来估计机器人的姿势。
15.根据权利要求14所述的***,还包括联接到机器人的光检测和测距(LIDAR)单元,其中,LIDAR单元被配置为向机器人周围的区域发射光信号以检测所述多个候选地标。
16.根据权利要求14所述的***,其中,映射地标表示逆向反射标记。
17.根据权利要求16所述的***,其中,联接到机器人的所述至少一个传感器被配置为从位于机器人周围区域中的逆向反射标记接收反射信号。
18.一种非暂时性计算机可读介质,在其中存储有可由一个或多个处理器执行的指令,以使计算***执行功能,所述功能包括:
基于来自机器人上的至少一个传感器的传感器数据确定相对于机器人的多个候选地标的位置;
确定多个样本集,其中每个样本集包括所述多个候选地标的子集和多个对应的映射地标;
为每个样本集确定将来自子集的候选地标与对应的映射地标相关联的变换;
将为每个样本集确定的变换应用于所述多个候选地标,以基于变换的多个候选地标与多个相邻的映射地标之间的距离来确定与每个样本集相关联的内点的数量;
基于与每个样本集相关联的内点的数量从多个样本集中选择样本集;和
基于所选择的样本集来估计机器人的姿势。
19.根据权利要求18所述的非暂时性计算机可读介质,还在其中存储有地标位置的地图,其中所述功能还包括:
基于地标位置的地图为每个样本集确定多个对应的映射地标。
20.根据权利要求18所述的非暂时性计算机可读介质,还在其中存储有与对应的映射地标相关联的统计信息,其中,所述统计信息涉及机器人的过去姿势估计,其中,所述功能还包括:
确定姿势估计的准确度,其中,确定准确度包括将与所选择的样本集相关联的姿势估计与统计信息进行比较。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/390,460 US10866102B2 (en) | 2016-12-23 | 2016-12-23 | Localization of robotic vehicles |
US15/390,460 | 2016-12-23 | ||
PCT/US2017/068206 WO2018119404A1 (en) | 2016-12-23 | 2017-12-22 | Localization of robotic vehicles |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109154827A true CN109154827A (zh) | 2019-01-04 |
CN109154827B CN109154827B (zh) | 2021-05-11 |
Family
ID=61006364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780031482.9A Active CN109154827B (zh) | 2016-12-23 | 2017-12-22 | 机器人车辆的定位 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10866102B2 (zh) |
EP (1) | EP3559772B1 (zh) |
JP (1) | JP6811258B2 (zh) |
KR (1) | KR102148593B1 (zh) |
CN (1) | CN109154827B (zh) |
WO (1) | WO2018119404A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111307035A (zh) * | 2020-02-20 | 2020-06-19 | 北京天智航医疗科技股份有限公司 | 光学定位*** |
CN113075923A (zh) * | 2019-12-18 | 2021-07-06 | 财团法人工业技术研究院 | 移动载具及其状态估测与感测融合切换方法 |
CN113493175A (zh) * | 2020-03-19 | 2021-10-12 | 三菱重工业株式会社 | 运算装置、车辆、装卸***、运算方法及记录介质 |
US11442136B2 (en) * | 2018-05-30 | 2022-09-13 | Here Global B.V. | Collecting or triggering collecting positioning data for updating and/or generating a positioning map |
CN115277742A (zh) * | 2022-02-23 | 2022-11-01 | 智能清洁设备控股有限公司 | 用于管理机器人的***和方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010630B2 (en) * | 2017-04-27 | 2021-05-18 | Washington University | Systems and methods for detecting landmark pairs in images |
US10860750B2 (en) * | 2017-06-15 | 2020-12-08 | Sap Se | Model driven layout design for robotics warehouse |
JP7243110B2 (ja) * | 2018-10-02 | 2023-03-22 | ソニーグループ株式会社 | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに荷物受け取り支援システム |
KR102325333B1 (ko) * | 2019-04-19 | 2021-11-12 | 한국전자통신연구원 | 이동체 자율주행을 위한 인공표식 기반의 위치인식 방법 및 이를 위한 장치 |
CN112388621B (zh) * | 2019-08-13 | 2023-04-07 | 京东科技信息技术有限公司 | 对接装置、移动机器人和对接装置的对接方法 |
CN110487263A (zh) * | 2019-08-15 | 2019-11-22 | 北京致行慕远科技有限公司 | 可移动设备的坐标获取方法及装置 |
US11958183B2 (en) | 2019-09-19 | 2024-04-16 | The Research Foundation For The State University Of New York | Negotiation-based human-robot collaboration via augmented reality |
CN110780276B (zh) * | 2019-10-29 | 2024-06-04 | 杭州海康机器人股份有限公司 | 一种基于激光雷达的托盘识别方法、***和电子设备 |
GB2588650A (en) * | 2019-10-30 | 2021-05-05 | Triple Lidar Tech Ltd | Crane device provided with data |
US11891067B2 (en) * | 2019-12-11 | 2024-02-06 | Electronics And Telecommunications Research Institute | Vehicle control apparatus and operating method thereof |
CN111222225B (zh) * | 2019-12-20 | 2023-08-29 | 浙江欣奕华智能科技有限公司 | 一种机器人中传感器位姿的确定方法及装置 |
US11426871B1 (en) * | 2020-06-02 | 2022-08-30 | Amazon Technologies, Inc. | Automated robotic floor map generation |
US20220057225A1 (en) * | 2020-08-18 | 2022-02-24 | International Business Machines Corporation | Landmark determination |
JP7459732B2 (ja) | 2020-09-08 | 2024-04-02 | 株式会社豊田自動織機 | 自己位置推定システム |
CN114527742A (zh) * | 2020-11-06 | 2022-05-24 | 株式会社东芝 | 自动行驶车及其控制方法、输送装置及其控制方法 |
KR20230053314A (ko) * | 2021-10-14 | 2023-04-21 | 삼성전자주식회사 | 로봇, 로봇 시스템 및 그 제어 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080027591A1 (en) * | 2006-07-14 | 2008-01-31 | Scott Lenser | Method and system for controlling a remote vehicle |
CN101228477A (zh) * | 2005-07-28 | 2008-07-23 | 微软公司 | 全景图像的实时预览 |
US20110150348A1 (en) * | 2009-12-17 | 2011-06-23 | Noel Wayne Anderson | Automated tagging for landmark identification |
WO2012040644A1 (en) * | 2010-09-24 | 2012-03-29 | Evolution Robotics, Inc. | Systems and methods for vslam optimization |
WO2014020317A1 (en) * | 2012-07-30 | 2014-02-06 | Sony Computer Entertainment Europe Limited | Localisation and mapping |
CN103582803A (zh) * | 2011-06-14 | 2014-02-12 | 克朗设备有限公司 | 共享与自动化工业车辆相关联的地图数据的方法和装置 |
CN103782247A (zh) * | 2011-09-07 | 2014-05-07 | 克朗设备有限公司 | 用于使用预先安置的物体定位工业车辆的方法和装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6690134B1 (en) | 2001-01-24 | 2004-02-10 | Irobot Corporation | Method and system for robot localization and confinement |
EP1331537B1 (en) | 2002-01-24 | 2005-08-03 | iRobot Corporation | Method and system for robot localization and confinement of workspace |
JP4448497B2 (ja) | 2006-03-23 | 2010-04-07 | 本田技研工業株式会社 | 移動体の自己位置検出装置および位置検出システム |
KR100919944B1 (ko) | 2007-03-19 | 2009-10-01 | 주식회사 유진로봇 | 이동로봇의 맵 생성 시스템 및 맵 생성방법 |
KR101214143B1 (ko) | 2008-12-22 | 2012-12-20 | 한국전자통신연구원 | 이동체의 위치 및 방향 인식 장치 및 그 방법 |
JP5182762B2 (ja) * | 2009-05-09 | 2013-04-17 | 国立大学法人福井大学 | 2次元図形マッチング方法 |
US9684989B2 (en) * | 2010-06-16 | 2017-06-20 | Qualcomm Incorporated | User interface transition between camera view and map view |
JP2012083855A (ja) | 2010-10-07 | 2012-04-26 | Toyota Motor Corp | 物体認識装置及び物体認識方法 |
GB201116960D0 (en) * | 2011-09-30 | 2011-11-16 | Bae Systems Plc | Monocular camera localisation using prior point clouds |
WO2013071190A1 (en) * | 2011-11-11 | 2013-05-16 | Evolution Robotics, Inc. | Scaling vector field slam to large environments |
KR20140108828A (ko) * | 2013-02-28 | 2014-09-15 | 한국전자통신연구원 | 카메라 트래킹 장치 및 방법 |
WO2017020317A1 (zh) * | 2015-08-06 | 2017-02-09 | 秦玲娟 | 根据不同密码显示不同信息的方法和取款机 |
US10025886B1 (en) * | 2015-09-30 | 2018-07-17 | X Development Llc | Methods and systems for using projected patterns to facilitate mapping of an environment |
US10761541B2 (en) * | 2017-04-21 | 2020-09-01 | X Development Llc | Localization with negative mapping |
US10697779B2 (en) * | 2017-04-21 | 2020-06-30 | X Development Llc | Landmark placement for localization |
-
2016
- 2016-12-23 US US15/390,460 patent/US10866102B2/en active Active
-
2017
- 2017-12-22 EP EP17832451.3A patent/EP3559772B1/en active Active
- 2017-12-22 KR KR1020187034361A patent/KR102148593B1/ko active IP Right Grant
- 2017-12-22 WO PCT/US2017/068206 patent/WO2018119404A1/en unknown
- 2017-12-22 CN CN201780031482.9A patent/CN109154827B/zh active Active
- 2017-12-22 JP JP2018561064A patent/JP6811258B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101228477A (zh) * | 2005-07-28 | 2008-07-23 | 微软公司 | 全景图像的实时预览 |
US20080027591A1 (en) * | 2006-07-14 | 2008-01-31 | Scott Lenser | Method and system for controlling a remote vehicle |
US20110150348A1 (en) * | 2009-12-17 | 2011-06-23 | Noel Wayne Anderson | Automated tagging for landmark identification |
WO2012040644A1 (en) * | 2010-09-24 | 2012-03-29 | Evolution Robotics, Inc. | Systems and methods for vslam optimization |
CN103582803A (zh) * | 2011-06-14 | 2014-02-12 | 克朗设备有限公司 | 共享与自动化工业车辆相关联的地图数据的方法和装置 |
CN103782247A (zh) * | 2011-09-07 | 2014-05-07 | 克朗设备有限公司 | 用于使用预先安置的物体定位工业车辆的方法和装置 |
WO2014020317A1 (en) * | 2012-07-30 | 2014-02-06 | Sony Computer Entertainment Europe Limited | Localisation and mapping |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11442136B2 (en) * | 2018-05-30 | 2022-09-13 | Here Global B.V. | Collecting or triggering collecting positioning data for updating and/or generating a positioning map |
CN113075923A (zh) * | 2019-12-18 | 2021-07-06 | 财团法人工业技术研究院 | 移动载具及其状态估测与感测融合切换方法 |
CN113075923B (zh) * | 2019-12-18 | 2024-04-12 | 财团法人工业技术研究院 | 移动载具及其状态估测与感测融合切换方法 |
CN111307035A (zh) * | 2020-02-20 | 2020-06-19 | 北京天智航医疗科技股份有限公司 | 光学定位*** |
CN113493175A (zh) * | 2020-03-19 | 2021-10-12 | 三菱重工业株式会社 | 运算装置、车辆、装卸***、运算方法及记录介质 |
CN115277742A (zh) * | 2022-02-23 | 2022-11-01 | 智能清洁设备控股有限公司 | 用于管理机器人的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6811258B2 (ja) | 2021-01-13 |
EP3559772B1 (en) | 2021-03-24 |
KR102148593B1 (ko) | 2020-08-27 |
EP3559772A1 (en) | 2019-10-30 |
WO2018119404A1 (en) | 2018-06-28 |
US10866102B2 (en) | 2020-12-15 |
CN109154827B (zh) | 2021-05-11 |
JP2019537078A (ja) | 2019-12-19 |
KR20190003969A (ko) | 2019-01-10 |
US20180180421A1 (en) | 2018-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154827A (zh) | 机器人车辆的定位 | |
CN109154662A (zh) | 使用负映射的定位 | |
US11373395B2 (en) | Methods and systems for simultaneous localization and calibration | |
KR102342152B1 (ko) | 환경 맵 생성 및 정렬을 위한 방법 및 시스템 | |
EP3610284B1 (en) | Determination of localization viability metrics for landmarks | |
US20190196480A1 (en) | Planning Robot Stopping Points to Avoid Collisions | |
US9823081B2 (en) | Vehicle passenger identification | |
CN109196435A (zh) | 稀疏网络下的多代理协调 | |
US20200103915A1 (en) | Determining Changes in Marker Setups for Robot Localization | |
US20180306591A1 (en) | Aisle-based Roadmap Generation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |