CN117769691A - 基于路点的导航地图的拓扑处理 - Google Patents

基于路点的导航地图的拓扑处理 Download PDF

Info

Publication number
CN117769691A
CN117769691A CN202280053483.4A CN202280053483A CN117769691A CN 117769691 A CN117769691 A CN 117769691A CN 202280053483 A CN202280053483 A CN 202280053483A CN 117769691 A CN117769691 A CN 117769691A
Authority
CN
China
Prior art keywords
robot
edges
series
route
candidate replacement
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
Application number
CN202280053483.4A
Other languages
English (en)
Inventor
M·J·克林根史密斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boston Dynamics Inc
Original Assignee
Boston Dynamics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Boston Dynamics Inc filed Critical Boston Dynamics Inc
Publication of CN117769691A publication Critical patent/CN117769691A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0248Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2134Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
    • G06F18/21345Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis enforcing sparsity or involving a domain transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • G06F18/21355Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis nonlinear criteria, e.g. embedding a manifold in a Euclidean space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2132Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on discrimination criteria, e.g. discriminant analysis
    • G06F18/21322Rendering the within-class scatter matrix non-singular
    • G06F18/21326Rendering the within-class scatter matrix non-singular involving optimisations, e.g. using regularisation techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

计算机实现的方法(1000)的操作包括获得包括一系列路点和一系列边的环境的拓扑图(1002)。每个边拓扑地连接对应的一对相邻路点。边表示机器人的可穿过路线。操作包括使用拓扑图和由机器人捕获的传感器数据来确定(1004)一个或多个候选替代边。每个候选替代边潜在地连接未由边之一连接的对应的一对路点。对于每个相应候选替代边,操作包括使用传感器数据确定(1006)机器人是否可以穿过相应候选替代边而不与障碍物碰撞,并且当机器人可以穿过相应候选替代边时,将相应候选替代边确认(1008)为相应替代边。操作包括使用非线性优化和确认的替代边来更新(1010)拓扑图。

Description

基于路点的导航地图的拓扑处理
相关申请的交叉引用
本申请根据35U.S.C.§119(e)要求2021年6月4日提交的美国临时申请63/202,286的优先权。在先申请的公开内容被认为是本申请的公开内容的一部分,并且通过引用整体并入本文。
技术领域
本公开涉及用于导航地图的拓扑处理。
背景技术
机器人设备在受约束的环境导航以执行各种任务或功能。为了导航通过这些受约束的环境,机器人设备可以识别障碍物。基于障碍物的识别,机器人设备可以在不接触障碍物的情况下在受约束的环境导航。
发明内容
本公开的一个方面提供了一种计算机实现的方法,该方法在由数据处理硬件执行时使数据处理硬件执行操作。所述操作包括获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边。所述一系列路线边中的每个路线边拓扑地连接所述一系列路线路点中的对应的一对相邻路线路点。所述一系列路线边表示机器人通过环境的可穿过路线。操作包括使用拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边。一个或多个候选替代边中的每一个候选替代边连接一系列路线路点中的未由一系列路线边之一连接的对应的一对路线路点。操作包括使用由机器人捕获的传感器数据确定机器人可以穿过一个或多个候选替代边中的候选替代边。操作包括基于确定机器人可以穿过一个或多个候选替代边中的候选替代边,将一个或多个候选替代边中的候选替代边确认为替代边。操作包括使用替代边更新拓扑图。
在一些实施方案中,所述操作进一步包含使用由所述机器人捕获的里程计数据记录所述一系列路线路点和所述一系列路线边。一系列路线路点中的一个或多个路线路点可以与由机器人捕获的相应的一组传感器数据相关联。在一些示例中,确定一个或多个候选替代边包括使用拓扑图确定局部嵌入,并确定一系列路线路点中的第一路线路点与一系列路线路点中的第二路线路点之间的总路径长度小于第一阈值距离,候选替代边连接第一路线路点和第二路线路点,以及确定局部嵌入中的距离小于第二阈值距离。操作可以包括:基于确定第一路线路点和第二路线路点之间的总路径长度小于第一阈值距离并且确定局部嵌入中的距离小于第二阈值距离,生成相应路线路点和另一路线路点之间的候选替代边。
在一些实施方式中,确定机器人可以穿过候选替代边包括基于传感器数据对准算法的输出确定机器人可以穿过候选替代边。传感器数据对准算法可以包括迭代最近点算法、特征匹配算法、正态分布变换算法、密集图像对准算法或图元(primitive)对准算法中的至少一个。在一些情况下,确定机器人可以穿过候选替代边可以包括使用拓扑图确定局部嵌入,并且基于对局部嵌入执行的路径碰撞检查算法的输出来确定机器人可以穿过候选替代边。路径碰撞检查算法可以包括使用扫掠线算法和局部嵌入来执行圆形扫掠。在一些示例中,确定一个或多个候选替代边包括使用基准标记来确定局部嵌入。
在一些实现中,使用替代边更新拓扑图包括将一系列路线路点中的一个或多个路线路点与度量位置相关联。使用替代边更新拓扑图可以包括使用稀疏非线性优化来优化嵌入。在一些示例中,使用替代边更新拓扑图包括细化拓扑图以生成度量一致的细化拓扑图。
本公开的另一方面提供了一种系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。所述存储器硬件存储指令,所述指令当在所述数据处理硬件上执行时使所述数据处理硬件执行操作。所述操作包括获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边。所述一系列路线边中的每个路线边拓扑地连接所述一系列路线路点中的对应的一对相邻路线路点。所述一系列路线边表示机器人通过环境的可穿过路线。操作包括使用拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边。一个或多个候选替代边中的每一个候选替代边连接一系列路线路点中的未由一系列路线边之一连接的对应的一对路线路点。操作包括使用由机器人捕获的传感器数据确定机器人可以穿过一个或多个候选替代边中的候选替代边。操作包括基于确定机器人可以穿过一个或多个候选替代边中的候选替代边,将一个或多个候选替代边中的候选替代边确认为替代边。操作包括使用确认的替代边来更新拓扑图。
在一些实施方案中,所述操作进一步包含使用由所述机器人捕获的里程计数据记录所述一系列路线路点和所述一系列路线边。一系列路线路点中的一个或多个相应路线路点可以与由机器人捕获的相应传感器数据集相关联。在一些示例中,确定一个或多个候选替代边包括使用拓扑图确定局部嵌入,并确定一系列路线路点中的第一路线路点与一系列路线路点中的第二路线路点之间的总路径长度小于第一阈值距离,候选替代边连接第一路线路点和第二路线路点,以及确定局部嵌入中的距离小于第二阈值距离。操作可以包括:基于确定第一路线路点和第二路线路点之间的总路径长度小于第一阈值距离并且确定局部嵌入中的距离小于第二阈值距离,生成相应路线路点和另一路线路点之间的候选替代边。
在一些实施方式中,确定机器人可以穿过候选替代边包括基于传感器数据对准算法的输出确定机器人可以穿过候选替代边。传感器数据对准算法可以包括迭代最近点算法、特征匹配算法、正态分布变换算法、密集图像对准算法或图元对准算法中的至少一个。在一些情况下,确定机器人可以穿过候选替代边可以包括使用拓扑图来确定局部嵌入,基于对局部嵌入执行的路径碰撞检查算法的输出来确定机器人可以穿过候选替代边。路径碰撞检查算法可以包括使用扫掠线算法和局部嵌入来执行圆形扫掠。在一些示例中,确定一个或多个候选替代边包括使用基准标记来确定局部嵌入。
在一些实现中,使用确认的替代边更新拓扑图包括将一系列路线路点中的一个或多个路线路点与度量位置相关联。可选地,使用确认的替代边来更新拓扑图可以包括使用稀疏非线性优化来优化嵌入。在一些示例中,使用确认的替代边更新拓扑图包括细化拓扑图以生成度量一致的细化拓扑图。
本公开的又一方面提供了一种计算机实现的方法,该方法在由数据处理硬件执行时使数据处理硬件执行操作。所述操作包括获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边。操作包括使用拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边。此外,操作包括使用由机器人捕获的传感器数据确定机器人可以穿过一个或多个候选替代边中的候选替代边。
在一些实现中,一系列路线边中的一个或多个路线边拓扑地连接一系列路线路点中的对应的一对相邻路线路点。一系列路线边可以表示机器人通过环境的一个或多个可穿过路线。在一些示例中,一个或多个候选替代边中的每一个潜在地连接未由一系列路线边之一连接的对应的一对路线路点。
在一些实施方式中,基于确定机器人可以穿过候选替代边,候选替代边被确认为替代边。操作还可以包括使用替代边更新拓扑图。
本公开的附加方面提供了一种系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。所述存储器硬件存储指令,所述指令当在所述数据处理硬件上执行时使所述数据处理硬件执行操作。所述操作包括获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边。操作包括使用拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边。此外,操作包括使用由机器人捕获的传感器数据确定机器人可以穿过一个或多个候选替代边中的候选替代边。
在一些实现中,一系列路线边中的一个或多个路线边拓扑地连接一系列路线路点中的对应的一对相邻路线路点。一系列路线边可以表示机器人通过环境的一个或多个可穿过路线。在一些示例中,一个或多个候选替代边中的每一个潜在地连接未由一系列路线边之一连接的对应的一对路线路点。
在一些实施方式中,基于确定机器人可以穿过候选替代边,候选替代边被确认为替代边。操作还可以包括使用替代边更新拓扑图。
在另一方面,公开了一种机器人。机器人包括计算系统,该计算系统被配置为存储环境的拓扑图,该环境的拓扑图包括由一系列路线边拓扑连接的一系列路线路点,该一系列路线边指示机器人通过环境的可穿过路线。机器人还包括被配置为捕获传感器数据的传感器。计算系统被配置为基于拓扑图和传感器数据生成一个或多个候选替代边。在某些实施方式中,计算系统还被配置为基于传感器数据验证机器人可以穿过一个或多个候选替代边,并且基于一个或多个候选替代边更新拓扑图。在某些实施方式中,机器人还包括多个关节,并且计算系统还被配置为基于更新的拓扑图控制多个关节中的一个或多个以使机器人移动通过环境。
在附图和下面的描述中阐述了本公开的一个或多个实施方式的细节。其他方面、特征和优点将从说明书和附图以及权利要求书中显而易见。
附图说明
图1A是用于在环境导航的示例机器人的示意图。
图1B是用于导航图1A的机器人的导航系统的示意图。
图2是导航系统的示例性部件的示意图。
图3A是拓扑图的示意图。
图3B是拓扑图的示意图。
图4是示例性拓扑图和候选替代边的示意图。
图5A是候选替代边的确认的示意图。
图5B是候选替代边的确认的示意图。
图6A是大环路闭合的示意图。
图6B是小环路闭合的示意图。
图7A是度量不一致的拓扑图的示意图。
图7B是度量一致的拓扑图的示意图。
图8A是度量不一致的拓扑图的示意图。
图8B是度量一致的拓扑图的示意图。
图9是与蓝图对准的嵌入的示意图。
图10是用于基于路点的导航地图的自动拓扑处理的方法的操作的示例布置的流程图。
图11是可以用于实现本文描述的系统和方法的示例计算设备的示意图。
各附图中相同的附图标记表示相同的元件。
具体实施方式
自主和半自主机器人可以配备有复杂的地图构建、定位和导航系统。这些系统可以利用导航图,并且为了使机器人准确定位,机器人可以依赖于这些导航图是准确的。然而,由于里程计漂移、定位误差等,导航图的拓扑(例如,路点之间的关系)可能是不准确的。依赖于算子来消除图拓扑的歧义是容易出错且困难的。用于基于传感器数据校正导航图拓扑的自动化算法将是有利的。
本文的实施方式涉及用于验证拓扑图(例如,路点和连接路点的一个或多个边的地图)是一致的(例如,图形上机器人可到达的任何两个地方通过路径连接)并且拓扑图不包含机器人不可穿过的边(例如,路径)的系统和方法。这些实施方式通过例如允许机器人采取通过其环境的较短路径并允许合并相关传感器数据以进行定位来改善机器人导航性能。
参考图1A和图1B,在一些实施方式中,机器人100包括主体110,主体110具有一个或多个基于运动的结构,诸如耦合到主体110的腿120a-120d,腿120a-120d使得机器人100能够在围绕机器人100的环境30内移动。在一些示例中,腿120的全部或一部分是可铰接结构,使得一个或多个关节J允许腿120的构件122移动。例如,在所示实施例中,腿120的全部或一部分包括将腿120的上构件122、122U耦合到主体110的髋关节JH和将腿120的上构件122U耦合到腿120的下构件122L的膝关节JK。尽管图1A描绘了具有四条腿120a-120d的四足机器人,但是机器人100可以包括任何数量的腿或基于机车的结构(例如,具有两条腿的双足或类人机器人,或一条或多条腿的其他布置),其提供穿过环境30内的地形的手段。
为了穿过地形,腿120的全部或一部分可以具有接触地形表面(例如,牵引表面)的远端124。换句话说,腿120的远端124是腿120的由机器人100用于在机器人100的移动期间枢转、放置(plant)或通常提供牵引力的端部。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,但是腿部的远端包括踝关节,使得远端相对于腿部的下部构件是可铰接的。
在所示的示例中,机器人100包括用作机器人操纵器的臂126。臂126可以被配置为围绕多个自由度移动,以便接合环境30的元素(例如,环境30内的物体)。在一些示例中,臂126包括一个或多个构件128,其中构件128通过关节J耦合,使得臂126可以围绕(一个或多个)关节J枢转或旋转。例如,在具有多于一个构件128的情况下,臂126可以被配置成延伸或缩回。为了说明示例,图1描绘了具有三个构件128的臂126,三个构件128对应于下部构件128L、上部构件128U和手构件128H(也称为末端执行器)。这里,下部构件128L可以围绕邻近主体110定位的第一臂关节JA1旋转或枢转(例如,臂126连接到机器人100的主体110的位置)。下部构件128L在第二臂关节JA2处耦合到上部构件128U,并且上部构件128U在第三臂关节JA3处耦合到手构件128H。在一些示例中,诸如图1A,手构件128H是机械夹持器,其包括可移动爪和固定爪,该可移动爪和固定爪被配置为执行环境30内的元件的不同类型的抓取。在所示的示例中,手构件128H包括固定的第一爪和可移动的第二爪,其通过将物体夹持在爪之间来抓握物体。可移动爪被配置成相对于固定爪移动,以在夹持器的打开位置和夹持器的闭合位置(例如,围绕物体闭合)之间移动。在一些实施方式中,臂126另外包括第四关节JA4。第四关节JA4可以位于下部构件128L与上部构件128U的耦合附近,并且用于允许上部构件128U相对于下部构件128L扭转或旋转。换句话说,第四关节JA4可以用作类似于第三关节JA3的扭转关节或邻近手构件128H的臂126的腕关节。例如,作为扭转关节,耦合在关节J处的一个构件可以相对于耦合在关节J处的另一构件移动或旋转(例如,耦合在扭转关节处的第一构件是固定的,而耦合在扭转关节处的第二构件旋转)。在一些实施方式中,臂126在机器人100的主体110上的插座处连接到机器人100。在一些配置中,插座被配置为连接器,使得臂126取决于臂126是否需要用于特定操作而附接到机器人100或从机器人100拆卸。
机器人100具有沿着重力方向的垂直重力轴(例如,示出为Z方向轴AZ)和质心CM,质心CM是对应于机器人100的所有部件的平均位置的位置,其中部件根据它们的质量被加权(例如,机器人100的分布质量的加权相对位置总和为零的点)。机器人100还具有基于CM的相对于垂直重力轴AZ(例如,相对于重力的固定参考系)的姿态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平面。地平面是指地表面14,其中机器人100的腿120的远端124可以产生牵引力以帮助机器人100在环境30内移动。机器人100的另一解剖平面是跨机器人100的主体110延伸的额状平面(例如,从具有第一腿120a的机器人100的右侧到具有第二腿120b的机器人100的左侧)。额状面通过在x方向轴AX和z方向轴AZ的方向上延伸而跨越X-Z平面。
为了在环境30内操纵或使用臂126执行任务,机器人100包括具有一个或多个传感器132,132a-132n的传感器系统130。例如,图1A示出了安装在机器人100的头部处(靠近邻近前腿120a-120b的机器人100的前部)的第一传感器132,132a、安装在机器人100的第二腿120b的臀部附近的第二传感器132,132b、与安装在机器人100的主体110的一侧上的传感器132之一对应的第三传感器132,132c、安装在机器人100的第四腿120d的臀部附近的第四传感器132,132d以及安装在机器人100的臂126的手构件128H处或附近的第五传感器132,132e。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(IMU))、力传感器和/或运动传感器。例如,传感器132可以包括相机(例如,立体相机)、飞行时间(TOF)传感器、扫描光检测和测距(LIDAR)传感器或扫描激光检测和测距(LADAR)传感器中的一个或多个。在一些示例中,传感器132具有限定对应于传感器132的感测范围或区域的(一个或多个)对应视场FV。例如,图1A描绘了机器人100的第一传感器132、132a的视场FV。每个传感器132可以是可枢转的和/或可旋转的,使得传感器132例如围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场FV。在一些示例中,多个传感器132可以聚集在一起(例如,类似于第一传感器132a)以拼接比任何单个传感器132更大的视场FV。在多个传感器132围绕机器人100放置的情况下,传感器系统130可以具有围绕垂直轴和/或水平轴的机器人100的周围环境的360度视图或接近360度视图。
当利用传感器132(参见例如图1B)勘测视场FV时,传感器系统130生成对应于视场FV的传感器数据134(例如,图像数据)。传感器系统130可以利用安装在机器人100的主体110上或附近的传感器132(例如,传感器132a、132b)生成视场FV。传感器系统可以附加地和/或替代地利用安装在臂126的手构件128H处或附近的传感器132(例如,传感器132c)来生成视场FV。一个或多个传感器132捕获定义机器人100的环境30内的区域的三维点云的传感器数据134。在一些示例中,传感器数据134是对应于由三维体积图像传感器132生成的三维体积点云的图像数据。附加地或替代地,当机器人100在环境30内操纵时,传感器系统130收集机器人100的姿态数据,其包括惯性测量数据(例如,由IMU测量)。在一些示例中,姿态数据包括关于机器人100的运动学数据和/或取向数据,例如,关于机器人100的腿120或臂126的关节J或其他部分的运动学数据和/或取向数据。利用传感器数据134,机器人100的各种系统可以使用传感器数据134来定义机器人100的当前状态(例如,机器人100的运动学的当前状态)和/或机器人100的环境30的当前状态。换句话说,传感器系统130可以将传感器数据134从一个或多个传感器132传送到机器人100的任何其他系统,以便辅助该系统的功能。
在一些实施方式中,传感器系统130包括耦接到关节J的(一个或多个)传感器132。此外,这些传感器132可以耦接到操作机器人100的关节J的马达M(例如,传感器132)。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动力学。被收集为基于关节的传感器数据134的关节动力学可以包括关节角度(例如,上部构件122U相对于下部构件122L或手构件126H相对于臂126或机器人100的另一构件)、关节速度、关节角速度、关节角加速度和/或在关节J处经历的力(也称为关节力)。由一个或多个传感器132生成的基于关节的传感器数据可以是原始传感器数据、被进一步处理以形成不同类型的关节动力学的数据、或两者的某种组合。例如,传感器132测量关节位置(或在关节J处耦合的构件122或128的位置),并且机器人100的系统执行进一步处理以从位置数据导出速度和/或加速度。在其他示例中,传感器132被配置为直接测量速度和/或加速度。
参考图1B,当传感器系统130收集传感器数据134时,计算系统140存储、处理传感器数据134和/或将传感器数据134传送到机器人100的各种系统(例如,控制系统170、导航系统200、拓扑优化器250和/或远程控制器10)。为了执行与传感器数据134相关的计算任务,机器人100的计算系统140包括数据处理硬件142和存储器硬件144。数据处理硬件142被配置为执行存储在存储器硬件144中的指令,以执行与机器人100的活动(例如,移动和/或基于移动的活动)相关的计算任务。一般而言,计算系统140是指数据处理硬件142和/或存储器硬件144的一个或多个位置。
在一些示例中,计算系统140是位于机器人100上的本地系统。当位于机器人100上时,计算系统140可以是集中式的(例如,在机器人100上的单个位置/区域中,例如,机器人100的主体110)、分散式的(例如,位于机器人100周围的各个位置处)或两者的混合组合(例如,包括大部分集中式硬件和少数分散式硬件)。为了说明一些差异,分散式计算系统140可以允许处理在活动位置处(例如,在移动腿部120的关节的电机处)发生,而集中式计算系统140可以允许中央处理中枢与位于机器人100上的各个位置处的系统通信(例如,与移动腿部120的关节的电机通信)。
附加地或替代地,计算系统140包括远离机器人100定位的计算资源。例如,计算系统140经由网络180与远程系统160(例如,远程服务器或基于云的环境)通信。非常类似于计算系统140,远程系统160包括远程计算资源,诸如远程数据处理硬件162和远程存储器硬件164。这里,传感器数据134或其他经处理的数据(例如,由计算系统140本地处理的数据)可以存储在远程系统160中,并且可以由计算系统140访问。在另外的示例中,计算系统140被配置为利用远程资源162、164作为计算资源142、144的扩展,使得计算系统140的资源驻留在远程系统160的资源上。在一些示例中,拓扑优化器250在机器人本地的数据处理硬件142上执行,而在其他示例中,拓扑优化器250在远离机器人100的数据处理硬件162上执行。
在一些实施方式中,如图1A和图1B所示,机器人100包括控制系统170。控制系统170可以被配置为与机器人100的系统通信,例如至少一个传感器系统130、导航系统200和/或拓扑优化器250。控制系统170可以使用硬件140执行操作和其他功能。控制系统170包括被配置为控制机器人100的至少一个控制器172。例如,控制器172基于来自机器人100的系统(例如,传感器系统130和/或控制系统170)的输入或反馈来控制机器人100的移动以穿过环境30。在另外的示例中,控制器172控制机器人100的姿态和/或行为之间的移动。至少一个控制器172可以负责控制机器人100的臂126的移动,以便臂126使用手构件128H执行各种任务。例如,至少一个控制器172控制手构件128H(例如,夹持器)以操纵环境30中的对象或元素。例如,控制器172在朝向固定爪的方向上致动可移动爪以闭合夹持器。在其他示例中,控制器172在远离固定爪的方向上致动可移动爪以闭合夹持器。
控制系统170的给定控制器172可以通过控制围绕机器人100的一个或多个关节J的移动来控制机器人100。在一些配置中,给定控制器172是具有编程逻辑的软件或固件,该编程逻辑控制至少一个关节J或操作或耦合到关节J的马达M。软件应用(软件资源)可以指代使计算设备执行任务的计算机软件。例如,控制器172控制施加到关节J的力的量(例如,关节J处的扭矩)。作为可编程控制器172,控制器172控制的关节J的数量对于特定控制目的是可缩放的和/或可定制的。控制器172可以控制机器人100的单个关节J(例如,控制单个关节J处的扭矩)、多个关节J或一个或多个构件128的致动(例如,手构件128H的致动)。通过控制一个或多个关节J、致动器或马达M,控制器172可以协调机器人100的所有不同部分(例如,主体110、一个或多个腿120、臂126)的移动。例如,为了执行具有一些移动的行为,控制器172可以被配置为控制机器人100的多个部分的移动,例如两个腿120a-120b、四个腿120a-120d或与臂126组合的两个腿120a-120b。在一些示例中,控制器172被配置为基于对象的控制器,其被设置为执行用于与可交互对象交互的特定行为或行为集合。
继续参考图1B,操作者12(在本文中也称为用户或客户端)可以经由远程控制器10与机器人100交互,远程控制器10与机器人100通信以执行动作。例如,操作者12经由无线通信网络16向机器人100发送命令174(经由控制系统170执行)。另外,机器人100可以与遥控器10通信以在遥控器10的用户界面190(例如,UI 190)上显示图像。例如,UI 190被配置为显示对应于一个或多个传感器132的三维视场FV的图像。在遥控器10的UI 190上显示的图像是与机器人100的环境30内的区域的传感器数据134的三维点云(例如,视场FV)相对应的二维图像。也就是说,在UI 190上显示的图像可以是对应于一个或多个传感器132的三维视场FV的二维图像表示。
现在参考图2,机器人100(例如,数据处理硬件142)执行导航系统200,以使机器人100能够导航环境30。传感器系统130包括一个或多个传感器132(例如,图像传感器、LIDAR传感器、LADAR传感器等),其可以各自捕获视场FV内的机器人100周围的环境30的传感器数据134。例如,一个或多个传感器132可以是一个或多个相机。传感器系统130可以通过调整视角或通过平移和/或倾斜(独立地或经由机器人100)一个或多个传感器132来移动视场FV,以在任何方向上移动视场FV。在一些实施方式中,传感器系统130包括多个传感器132(例如,多个相机),使得传感器系统130捕获机器人100周围的大致360度的视场。
在图2的示例中,导航系统200包括接收地图数据210(例如,表示机器人100要导航的区域中的静态障碍物的位置的高级导航数据)的高级导航模块220。在一些情况下,地图数据210包括图形地图222。在其他情况下,高级导航模块220生成图形地图222。图形地图222可以包括机器人100要穿过的给定区域的拓扑图。高级导航模块220可以在图形地图222上获得(例如,从远程系统160或远程控制器10或拓扑优化器250)和/或生成一系列路线路点(如图3A和图3B所示)以用于导航路线212,其绘制从起始位置(例如,机器人100的当前位置)到目的地的围绕大的和/或静态障碍物的路径。路线边可以连接相应的相邻路线路点对。在一些示例中,路线边基于里程数据(例如,来自运动传感器或图像传感器的里程数据,以确定机器人的位置随时间的变化)记录路线路点之间的几何变换。路线路点310和路线边312可以表示机器人100从起始位置到目的地位置遵循的导航路线212。
如下面更详细讨论的,在一些示例中,高级导航模块220从拓扑优化器250接收地图数据210、图形地图222和/或经优化的图形地图222。在一些示例中,拓扑优化器250是导航系统200的一部分,并且在机器人100本地或远程执行。
在一些实施方式中,高级导航模块220在大于10米的规模上产生导航路线212(例如,导航路线212可以包括距机器人100大于10米的距离)。导航系统200还包括局部导航模块230,其可以从传感器系统130接收导航路线212和图像或传感器数据134。局部导航模块230使用传感器数据134可以生成障碍物地图232。障碍物地图232可以是以机器人为中心的地图,其基于传感器数据134映射机器人100附近(例如,在阈值距离内)的障碍物(静态和/或动态障碍物)。例如,虽然图形地图222可以包括与走廊的墙壁的位置有关的信息,但是障碍物地图232(当机器人100穿过环境30时由传感器数据134填充)可以包括关于在原始记录期间不存在的放置在走廊中的一堆箱子的信息。障碍物地图232的大小可以取决于传感器132的操作范围和可用计算资源两者。
局部导航模块230可以生成步骤计划240(例如,使用A*搜索算法),该步骤计划240绘制机器人100的各个步骤(或其他移动)的全部或一部分,以沿着导航路线212从机器人100的当前位置导航到下一个路线路点310。使用步骤计划240,机器人100可以操纵通过环境30。局部导航模块230可以基于捕获的传感器数据134使用障碍物网格地图来获得机器人100到下一路线路点310的路径。在一些示例中,局部导航模块230在与传感器132的操作范围(例如,四米)相关的范围上操作,该范围通常小于高级导航模块220的规模。
现在参考图3A,在一些示例中,拓扑优化器250获得环境30的图形图222(例如,拓扑图)。例如,拓扑优化器250从导航系统200(例如,高级导航模块220)接收图形地图222或从地图数据210和/或传感器数据134生成图形地图222。图形地图222包括一系列路线路点310a-310n和一系列路线边320a-320n。一系列路线边320a-320n中的每个路线边拓扑地连接一系列路线路点310a-310n中的对应的一对相邻路线路点。每个路线边表示机器人100通过机器人环境的可穿过路线。地图还可以包括表示一个或多个障碍物330的信息,障碍物330标记机器人可能无法穿过的边界(例如,墙壁和静态物体)。在一些情况下,图形地图222可以不包括关于路线路点之间的空间关系的信息。当机器人在环境导航时,机器人可以使用由机器人捕获的里程数据来记录一系列路线路点310a-310n和一系列路线边320a-320n。机器人可以在路线路点的全部或一部分处记录传感器数据,使得路线路点的全部或一部分与由机器人捕获的相应传感器数据集(例如,点云)相关联。在一些实施方式中,图形地图222包括与一个或多个基准标记350相关的信息。一个或多个基准标记350可以对应于放置在机器人的感测场内的物体,机器人可以将该物体用作固定参考点。一个或多个基准标记350可以是机器人100能够容易识别的任何物体,诸如环境的固定或静止物体或特征或具有可识别图案或特征的物体。例如,基准标记350可以包括条形码、QR码或供机器人识别的其他图案、符号和/或形状。
在一些情况下,机器人可以沿着有效路线边导航,并且可以不沿着未经由有效路线边链接的路线路点之间导航。因此,一些路线路点可以位于(例如,度量地、地理上、物理上等)阈值距离(例如,5米、3米等)内,而图形地图222没有反映路线路点之间的路线边。在图3A的示例中,路线路点310a和路线路点310b在阈值距离(例如,物理空间(例如,现实)、欧几里得空间、笛卡尔空间和/或度量空间中的阈值距离)内,但是当从路线路点310a导航到路线路点310b时,机器人可以由于缺少连接路线路点310a、310b的路线边而导航整个系列的路线边320a-320n。因此,机器人可基于图形地图222确定路线路点310a、310b之间不存在直接可穿过路径。拓扑图222可以表示全局(例如,绝对位置)和/或局部位置中的路线路点310,其中路线路点的位置相对于一个或多个其他路线路点来表示。路线路点可以被分配笛卡尔坐标或度量坐标,诸如3D坐标(x、y、z平移)或6D坐标(x、y、z平移和旋转)。
现在参考图3B,在一些实施方式中,拓扑优化器250使用拓扑图222和由机器人捕获的传感器数据来确定一个或多个候选替代边320Aa,320Ab。一个或多个候选替代边320Aa、320Ab中的每一个可以连接一系列路线路点310a-310n中的对应一对,该一系列路线路点310a-310n可以不通过一系列路线边320a-320n之一连接。如下面更详细讨论的,对于相应候选替代边320Aa,320Ab的全部或一部分,拓扑优化器250可以使用由机器人捕获的传感器数据来确定机器人是否可以在不与障碍物330碰撞的情况下穿过相应候选替代边320Aa,320Ab。基于拓扑优化器250确定机器人100可以在不与障碍物330碰撞的情况下穿过相应的候选替代边320Aa、320Ab,拓扑优化器250可以将相应的候选边320Aa和/或320Ab确认为相应的替代边。在一些示例中,在确认替代边和/或将替代边添加到拓扑图222之后,拓扑优化器250使用非线性优化(例如,找到非线性成本函数的最小值)使用从确认的替代边收集的信息来更新拓扑图222。例如,拓扑优化器250可以将确认的替代边添加并细化到拓扑图222,并使用由替代边提供的附加信息来优化在空间(例如,欧几里得空间和/或度量空间)中的地图的嵌入,如下面更详细讨论的。将地图嵌入空间中可以包括将坐标(例如,6D坐标)分配给一个或多个路线路点。例如,将地图嵌入空间中可以包括分配以米为单位的坐标(x1,y1,z1)与以弧度为单位的旋转(r1,r2,r3)。在一些情况下,路线路点的全部或一部分可以被分配为坐标集。优化嵌入可以包括找到一个或多个路线路点的坐标,使得拓扑图222的一系列路线路点310a-310n全局一致。在一些示例中,拓扑优化器250实时优化拓扑图222(例如,当机器人收集传感器数据时)。在其他示例中,拓扑优化器250在机器人收集传感器数据的全部或一部分之后优化拓扑图222。
在该示例中,优化的拓扑图2220包括若干替代边320Aa、320Ab。替代边320Aa、320Ab之一或多个(诸如替代边320Aa)可以是“大”环路闭合(例如,通过使用一个或多个基准标记350)的结果,而其他替代边320Aa、320Ab(诸如替代边320Ab)可以是“小”环路闭合(例如,通过使用里程数据)的结果。在一些示例中,拓扑优化器250使用传感器数据来对准在数据中捕获的视觉特征(例如,基准标记350)作为参考以确定候选环闭合。应当理解,拓扑优化器250可以从任何传感器数据中提取特征(例如,非视觉特征)以进行对准。例如,传感器数据可以包括雷达数据、声学数据等。例如,拓扑处理器可以使用包括特征(例如,具有超过或匹配阈值唯一性值的唯一性值)的任何传感器数据。
现在参考图4,在一些实现中,对于一个或多个路线路点310,拓扑优化器使用拓扑图确定局部嵌入400(例如,路点相对于另一路点的嵌入)。例如,拓扑优化器可以表示一个或多个路线路点310相对于一个或多个其他路线路点310的位置或坐标,而不是全局地表示路线路点310的位置。局部嵌入400可以包括将该组路线路点310变换为度量空间中的一个或多个任意位置的函数。局部嵌入400可以补偿不知道“真实”或全局嵌入(例如,由于来自里程计误差的路线边中的误差)。在一些示例中,拓扑优化器使用基准标记来确定局部嵌入400。对于一个或多个路线路点310中的至少一个,拓扑优化器可以确定路线路点和另一个路线路点之间的总路径长度是否小于第一阈值距离410。在一些示例中,拓扑优化器可以确定局部嵌入400中的距离是否小于第二阈值距离,第二阈值距离可以与第一阈值距离410相同或不同。基于拓扑优化器确定路线路点和另一路线路点之间的总路径长度小于第一阈值距离410和/或局部嵌入400中的距离小于第二阈值距离,拓扑优化器可以生成路线路点和另一路线路点之间的候选替代边320A。
现在参考图5A,在一些示例中,拓扑优化器使用和/或应用路径碰撞检查算法(例如,路径碰撞检查技术)。例如,拓扑优化器可以通过使用扫掠线算法在局部嵌入400中执行候选备用边320A的圆形扫掠来使用和/或应用路径碰撞检查算法,以确定机器人是否可以在不与障碍物碰撞的情况下穿过相应的候选备用边320A。在一些示例中,与路线路点310的全部或一部分相关联的传感器数据包括带符号距离场。使用带符号距离场的拓扑优化器可以使用圆形扫掠算法或任何其他路径碰撞检查算法,以及局部嵌入400和候选替代边320A。如果基于带符号距离场和局部嵌入400,候选替代边320A经历碰撞(例如,与障碍物碰撞),则拓扑优化器可以拒绝候选替代边320A。
现在参考图5B,在一些示例中,拓扑优化器使用/应用传感器数据对准算法(例如,迭代最近点(ICP)算法、特征匹配算法、正态分布变换算法、密集图像对准算法、图元对准算法等)来确定机器人100是否可以在不与障碍物碰撞的情况下穿过相应的候选替代边320A。例如,拓扑优化器可以使用传感器数据对准算法,其中使用局部嵌入400作为算法的种子,机器人在两个相应的路线路点310处捕获两个相应的传感器数据集(例如,点云)。拓扑优化器可以使用传感器数据对准算法的结果作为候选替代边320A的新边变换。如果拓扑优化器确定传感器数据对准算法失败,则拓扑优化器可以拒绝候选替代边320A(例如,不将候选替代边320A确认为替代边)。
现在参考图6A,在一些实施方式中,拓扑优化器使用“大”环路闭合610L来确定一个或多个候选替代边320A。例如,拓扑优化器使用基准标记350进行嵌入,以通过将基准标记350与相应路线路点310的全部或一部分的传感器数据对准或相关来闭合大环路(例如,包括由对应路线边320连接的多个路线路点310的链的环路)。为了确定剩余的候选替代边320A,拓扑优化器可以使用“小”环路闭合610S来确定拓扑图的局部部分的候选替代边320A,该“小”环路闭合610S使用里程计数据。如图6B所示,在一些示例中,拓扑优化器通过执行多个小环路闭合610S来迭代地确定候选替代边320A,因为当添加新确认的替代边320A时,每个环路闭合可以添加附加信息。
现在参考图7A和图7B,拓扑图222(例如,由自主和半自主机器人使用的拓扑图)可能在度量上不一致。如果对于任何一对路线路点310,机器人可以遵循从该对的第一路线路点310到该对的第二路线路点310的路线边320的路径,则拓扑图222可以是度量一致的。例如,如果拓扑图222的每个路线路点310与一组坐标相关联,则拓扑图222可以是度量一致的,该组坐标与从另一个路线路点310到路线路点310的路线边320的每个路径一致。另外,对于嵌入中的一个或多个路径,第一路线路点310相对于第二路线路点310的结果位置/取向(反之亦然)可以与一个或多个其他路径的路线路点的相对位置/取向相同。当拓扑图222在度量上不一致时,嵌入可能会误导和/或低效地正确绘制。度量一致性可能受到导致里程漂移和定位误差的过程的影响。例如,虽然各个路线边320与准确度阈值相比可能是准确的,但是与准确度阈值相比,大量路线边320上的小误差随时间的累积可能不准确。
图7A的示意图700a示出了在度量上不一致的示例性拓扑图222,因为它包括导致多个可能的嵌入的不一致边(例如,由于里程计误差)。虽然路线路点310a、310b可以在度量上处于相同位置(或在度量上处于相同位置的特定阈值内),但是由于来自不同路线边320的里程计误差,拓扑图222可以包括在不同位置处的路线路点310a、310b,这可能导致拓扑图222在度量上不一致。
现在参考图7B,在一些实施方式中,拓扑优化器细化拓扑图222以获得度量一致的细化拓扑图222R。例如,示意图700b包括细化的拓扑图222R,其中拓扑优化器已经将来自嵌入中的路线边320的全部或一部分的贡献平均在一起。将来自路线边320的全部或一部分的贡献一起平均可以隐式地优化嵌入之间的平方误差和路线路点310与其相应的相邻路线路点310的隐含相对位置。拓扑优化器可以将度量上不一致的路线路点310a、310b合并或平均成单个度量上一致的路线路点310c。在一些实现中,拓扑优化器使用稀疏非线性优化来确定嵌入(例如,欧几里得嵌入)。例如,拓扑优化器可以识别路线路点310的全部或一部分的全局度量嵌入(例如,优化的全局度量嵌入),使得使用稀疏非线性优化为每个路线路点识别特定的一组坐标。图8A包括优化之前的示例性拓扑图222的示意图800a。拓扑图222在度量上是不一致的,并且人类观看者可能难以理解。相反,图8B包括基于拓扑优化器优化图8A的拓扑图222的细化拓扑图222R的示意图800b。细化的拓扑图222R可以在度量上一致(例如,所有或一部分路径可以在嵌入中拓扑交叉)并且可以对人类观看者看起来更准确。
现在参考图9,在一些示例中,拓扑优化器通过将一个或多个路线路点与特定度量位置相关联,使用确认的候选替代边的全部或一部分来更新拓扑图222。在图9的示例中,用户计算设备已经通过将基准标记350与蓝图900上的位置相关联来提供机器人的度量位置的“嵌入”(例如,锚定)。在没有所提供的嵌入的情况下,默认嵌入400a可能不与蓝图900对齐(例如,可能不与度量或物理空间对齐)。然而,基于所提供的嵌入,拓扑优化器可以生成与蓝图900对准的优化的嵌入400b。用户可以通过使用一个或多个基准标记350(或环境中的其他可区分特征)来嵌入或锚定或“固定”路点到嵌入。例如,用户可以向拓扑优化器提供数据以将一个或多个路线路点绑定到相应的特定位置(例如,度量位置、物理位置和/或地理位置)并优化剩余的路线路点和路线边。因此,拓扑优化器可以基于嵌入来优化剩余的路线路点。拓扑优化器可以使用连接两个路由路点的成本或各个路由路点上的嵌入或成本/约束。例如,拓扑优化器250可以通过在重力向量和“向上”向量之间的点积上添加成本来将路线路点嵌入的全部或一部分的重力向量约束为向上指向。
因此,本文的实现包括拓扑优化器,在一些示例中,拓扑优化器对生成的候选替代边执行里程计环路闭合(例如,小环路闭合)和基准环路闭合(例如,大环路闭合)两者。拓扑优化器可以通过例如使用带符号距离场执行碰撞检查以及使用视觉特征执行细化和拒绝采样来验证或确认候选替代边的全部或一部分。拓扑优化器可以基于确认的替代边迭代地细化拓扑图,并且使用给定确认的替代边的图的嵌入(例如,使用稀疏非线性优化)来优化拓扑图。通过协调环境的拓扑,机器人能够更有效地在障碍物和障碍物周围导航,并且能够消除应该自动拓扑连接的空间之间的定位的歧义。
图10是用于基于路点的导航地图的自动拓扑处理的方法1000的操作的示例性布置的流程图。计算机实现的方法1000在由数据处理硬件执行时使数据处理硬件执行操作。在操作1002处,方法1000包括获得环境的拓扑图,该拓扑图包括一系列路线路点和一系列路线边。一系列路线边中的每个路线边可以拓扑地连接一系列路线路点中的对应的一对相邻路线路点。所述一系列路线边可以表示机器人通过环境的可穿过路线。
在操作1004处,方法1000包括使用拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边。一个或多个候选替代边的全部或一部分可以潜在地连接可能不通过一系列路线边之一连接的对应的一对路线路点。在操作1006处,方法1000包括,对于一个或多个候选替代边的全部或一部分,使用由机器人捕获的传感器数据确定机器人是否可以在不与障碍物碰撞的情况下穿过相应的候选替代边。基于确定机器人可以穿过相应的候选替代边而不与障碍物碰撞,方法1000包括在操作1008处将相应的候选替代边确认为相应的替代边。在操作1010处,方法1000包括使用非线性优化来更新拓扑图,其中一个或多个候选替代边被确认为替代边。
图11是可以用于实现本文档中描述的系统和方法的示例计算设备1100的示意图。计算设备1100旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里示出的组件、它们的连接和关系以及它们的功能仅意在是示例性的,并不意在限制本文档中描述和/或要求保护的发明的实施方式。
计算设备1100包括处理器1110、存储器1120、存储设备1130、连接到存储器1120和高速扩展端口1150的高速接口/控制器1140、以及连接到低速总线1170和存储设备1130的低速接口/控制器1160。组件1110、1120、1130、1140、1150和1160中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器1110可以处理用于在计算设备1100内执行的指令,包括存储在存储器1120中或存储设备1130上的指令,以在外部输入/输出设备(诸如耦合到高速接口1140的显示器1180)上显示图形用户界面(GUI)的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备1100,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器1120将信息非暂时性地存储在计算设备1100内。存储器1120可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器1120可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备1100使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备1130能够为计算设备1100提供大容量存储。在一些实施方式中,存储设备1130是计算机可读介质。在各种不同的实施方式中,存储设备1130可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器1120、存储设备1130或处理器1110上的存储器。
高速控制器1140管理计算设备1100的带宽密集型操作,而低速控制器1160管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器1140耦合到存储器1120、显示器1180(例如,通过图形处理器或加速器),并且耦合到高速扩展端口1150,高速扩展端口1150可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器1160耦合到存储设备1130和低速扩展端口1190。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口1190可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或诸如交换机或路由器的联网设备。
计算设备1100可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器1100a,或者在一组这样的服务器1100a中多次实现,实现为膝上型计算机1100b,或者实现为机架服务器系统1100c的一部分。
本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的ASICs(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行。作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者可操作地耦合以从其接收数据或向其传输数据或两者。然而,计算机不需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏)以及可选地键盘和指示设备(例如,鼠标或轨迹球),用户可以通过该键盘和指示设备向计算机提供输入。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求将网页发送到用户的客户端设备上的网络浏览器。
已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。例如,虽然以给定顺序呈现过程或框,但是替代实施例可以以不同顺序执行具有步骤的例程,或者采用具有框的系统,并且可以删除、移动、添加、细分、组合和/或修改一些过程或框。这些过程或块中的每一个可以以各种不同的方式实现。此外,虽然过程或框有时被示出为串行执行,但是这些过程或框可以替代地并行执行,或者可以在不同时间执行。此外,可以组合上述各种实施例的元件和动作以提供进一步的实施例。实际上,本文描述的方法和系统可以以各种其他形式体现;此外,在不脱离本公开的精神的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。因此,其他实施方式在所附权利要求的范围内。

Claims (36)

1.一种计算机实现的方法,当由数据处理硬件执行时,使得所述数据处理硬件执行操作,所述操作包括:
获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边,所述一系列路线边中的每个路线边拓扑地连接所述一系列路线路点中的对应的一对相邻路线路点,所述一系列路线边表示机器人通过所述环境的可穿过路线;
使用所述拓扑图和由所述机器人捕获的传感器数据来确定一个或多个候选替代边,所述一个或多个候选替代边中的每一个连接所述一系列路线路点中的未由所述一系列路线边中的所述路线边之一连接的对应的一对路线路点;
使用由所述机器人捕获的所述传感器数据确定所述机器人能够穿过所述一个或多个候选替代边中的候选替代边;
基于确定所述机器人能够穿过所述一个或多个候选替代边中的所述候选替代边,将所述一个或多个候选替代边中的所述候选替代边确认为替代边;以及
使用所确认的替代边来更新所述拓扑图。
2.根据权利要求1所述的方法,其中所述操作进一步包括使用由所述机器人捕获的里程数据来记录所述一系列路线路点和所述一系列路线边。
3.根据权利要求1所述的方法,其中所述一系列路线路点中的一个或多个路线路点与由所述机器人捕获的相应的一组传感器数据相关联。
4.根据权利要求1所述的方法,其中,确定所述一个或多个候选替代边包括:
使用所述拓扑图确定局部嵌入;
确定所述一系列路线路点中的第一路线路点与所述一系列路线路点中的第二路线路点之间的总路径长度小于第一阈值距离,其中,所述候选替代边连接所述第一路线路点和所述第二路线路点;
确定所述局部嵌入中的距离小于第二阈值距离;以及
基于确定所述第一路线路点和所述第二路线路点之间的所述总路径长度小于所述第一阈值距离并且确定所述局部嵌入中的所述距离小于所述第二阈值距离来生成所述候选替代边。
5.根据权利要求1所述的方法,其中确定所述机器人能够穿过所述候选替代边包括基于传感器数据对准算法的输出确定所述机器人能够穿过所述候选替代边。
6.根据权利要求5所述的方法,其中,所述传感器数据对准算法包括迭代最近点算法、特征匹配算法、正态分布变换算法、密集图像对准算法或图元对准算法中的至少一个。
7.根据权利要求1所述的方法,其中,确定所述机器人能够穿过所述候选替代边包括:
使用所述拓扑图确定局部嵌入;以及
基于对所述局部嵌入执行的路径碰撞检查算法的输出来确定所述机器人能够穿过所述候选替代边。
8.根据权利要求7所述的方法,其中,所述路径碰撞检查算法包括使用扫掠线算法和所述局部嵌入来执行圆形扫掠。
9.根据权利要求1所述的方法,其中,确定所述一个或多个候选替代边包括:使用基准标记来确定局部嵌入。
10.根据权利要求1所述的方法,其中,使用所确认的替代边更新所述拓扑图包括将所述一系列路线路点中的一个或多个路线路点与度量位置相关联。
11.根据权利要求1所述的方法,其中,使用所确认的替代边来更新所述拓扑图包括使用稀疏非线性优化来优化嵌入。
12.根据权利要求1所述的方法,其中,使用所确认的替代边更新所述拓扑图包括细化所述拓扑图以生成度量一致的细化拓扑图。
13.一种系统,包括:
数据处理硬件;以及
存储器硬件,所述存储器硬件与所述数据处理硬件通信,所述存储器硬件存储指令,所述指令当在所述数据处理硬件上执行时使所述数据处理硬件执行操作,所述操作包括:
获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边,所述一系列路线边中的每个路线边拓扑地连接所述一系列路线路点中的对应的一对相邻路线路点,所述一系列路线边表示机器人通过所述环境的可穿过路线;
使用所述拓扑图和由所述机器人捕获的传感器数据来确定一个或多个候选替代边,所述一个或多个候选替代边中的每一个连接所述一系列路线路点中的未由所述一系列路线边中的所述路线边之一连接的对应的一对路线路点;
使用由所述机器人捕获的所述传感器数据确定所述机器人能够穿过所述一个或多个候选替代边中的候选替代边;
基于确定所述机器人能够穿过所述一个或多个候选替代边中的所述候选替代边,将所述候选替代边确认为替代边;以及
使用所确认的替代边来更新所述拓扑图。
14.根据权利要求13所述的系统,其中所述操作进一步包括使用由所述机器人捕获的里程数据来记录所述一系列路线路点和所述一系列路线边。
15.根据权利要求13所述的系统,其中所述一系列路线路点中的一个或多个路线路点与由所述机器人捕获的相应的一组传感器数据相关联。
16.根据权利要求13所述的系统,其中,确定所述一个或多个候选替代边包括:
使用所述拓扑图确定局部嵌入;
确定所述一系列路线路点中的第一路线路点与所述一系列路线路点中的第二路线路点之间的总路径长度小于第一阈值距离,其中,所述候选替代边连接所述第一路线路点和所述第二路线路点;
确定所述局部嵌入中的距离小于第二阈值距离;以及
基于确定所述第一路线路点和所述第二路线路点之间的所述总路径长度小于所述第一阈值距离并且确定所述局部嵌入中的所述距离小于所述第二阈值距离来生成所述候选替代边。
17.根据权利要求13所述的系统,其中确定所述机器人能够穿过所述候选替代边包括基于传感器数据对准算法的输出确定所述机器人能够穿过所述候选替代边。
18.根据权利要求17所述的系统,其中所述传感器数据对准算法包括迭代最近点算法、特征匹配算法、正态分布变换算法、密集图像对准算法或图元对准算法中的至少一个。
19.根据权利要求13所述的系统,其中确定所述机器人能够穿过所述候选替代边包括:
使用所述拓扑图确定局部嵌入;以及
基于对所述局部嵌入执行的路径碰撞检查算法的输出来确定所述机器人能够穿过所述候选替代边。
20.根据权利要求19所述的系统,其中,所述路径碰撞检查算法包括使用扫掠线算法和所述局部嵌入来执行圆形扫掠。
21.根据权利要求13所述的系统,其中,确定所述一个或多个候选替代边包括使用基准标记来确定局部嵌入。
22.根据权利要求13所述的系统,其中,使用所确认的替代边更新所述拓扑图包括将所述一系列路线路点中的一个或多个路线路点与度量位置相关联。
23.根据权利要求13所述的系统,其中,使用所确认的替代边来更新所述拓扑图包括使用稀疏非线性优化来优化嵌入。
24.根据权利要求13所述的系统,其中使用所确认的替代边更新所述拓扑图包括细化所述拓扑图以生成度量一致的细化拓扑图。
25.一种计算机实现的方法,当由数据处理硬件执行时,使得所述数据处理硬件执行操作,所述操作包括:
获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边;
使用所述拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边;以及
使用由所述机器人捕获的所述传感器数据确定所述机器人能够穿过所述一个或多个候选替代边中的候选替代边。
26.根据权利要求25所述的方法,其中,所述一系列路线边中的一个或多个路线边拓扑地连接所述一系列路线路点中的对应的一对相邻路线路点。
27.根据权利要求25所述的方法,其中所述一系列路线边表示所述机器人通过所述环境的一个或多个可穿过路线。
28.根据权利要求25所述的方法,其中,所述一个或多个候选替代边中的每一个候选替代边潜在地连接未由所述一系列路线边中的路线边之一连接的对应的一对路线路点。
29.根据权利要求25所述的方法,其中,基于确定所述机器人能够穿过所述候选替代边,所述候选替代边被确认为替代边。
30.根据权利要求29所述的方法,其中,所述操作还包括使用所述替代边更新所述拓扑图。
31.一种系统,包括:
数据处理硬件;以及
存储器硬件,所述存储器硬件与所述数据处理硬件通信,所述存储器硬件存储指令,所述指令当在所述数据处理硬件上执行时使所述数据处理硬件执行操作,所述操作包括:
获得环境的拓扑图,所述拓扑图包括一系列路线路点和一系列路线边;
使用所述拓扑图和由机器人捕获的传感器数据来确定一个或多个候选替代边;以及
使用由所述机器人捕获的所述传感器数据确定所述机器人能够穿过所述一个或多个候选替代边中的候选替代边。
32.根据权利要求31所述的系统,其中,所述一系列路线边中的一个或多个路线边拓扑地连接所述一系列路线路点中的对应的一对相邻路线路点。
33.根据权利要求31所述的系统,其中所述一系列路线边表示所述机器人通过所述环境的一个或多个可穿过路线。
34.根据权利要求31所述的系统,其中,所述一个或多个候选替代边中的每一个候选替代边潜在地连接未由所述一系列路线边中的路线边之一连接的对应的一对路线路点。
35.根据权利要求31所述的系统,其中,基于确定所述机器人能够穿过所述候选替代边,所述候选替代边被确认为替代边。
36.根据权利要求35所述的系统,其中,所述操作还包括使用所述替代边更新所述拓扑图。
CN202280053483.4A 2021-06-04 2022-06-02 基于路点的导航地图的拓扑处理 Pending CN117769691A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163202286P 2021-06-04 2021-06-04
US63/202,286 2021-06-04
PCT/US2022/072710 WO2022256815A1 (en) 2021-06-04 2022-06-02 Topology processing for waypoint-based navigation maps

Publications (1)

Publication Number Publication Date
CN117769691A true CN117769691A (zh) 2024-03-26

Family

ID=82482579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280053483.4A Pending CN117769691A (zh) 2021-06-04 2022-06-02 基于路点的导航地图的拓扑处理

Country Status (4)

Country Link
US (1) US20220390954A1 (zh)
EP (1) EP4348379A1 (zh)
CN (1) CN117769691A (zh)
WO (1) WO2022256815A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11747825B2 (en) 2018-10-12 2023-09-05 Boston Dynamics, Inc. Autonomous map traversal with waypoint matching
US10997448B2 (en) * 2019-05-15 2021-05-04 Matterport, Inc. Arbitrary visual features as fiducial elements
KR20220078563A (ko) 2019-08-06 2022-06-10 보스턴 다이나믹스, 인크. 중간 웨이포인트 생성기
CN115619900B (zh) * 2022-12-16 2023-03-10 中国科学技术大学 基于距离地图和概率路图的点云地图拓扑结构提取方法

Also Published As

Publication number Publication date
US20220390954A1 (en) 2022-12-08
EP4348379A1 (en) 2024-04-10
WO2022256815A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
CN117769691A (zh) 基于路点的导航地图的拓扑处理
JP7502409B2 (ja) 中間ウェイポイント生成器
Folkesson et al. Vision SLAM in the measurement subspace
CN113781582A (zh) 基于激光雷达和惯导联合标定的同步定位与地图创建方法
US20220388170A1 (en) Alternate Route Finding for Waypoint-based Navigation Maps
US20220390950A1 (en) Directed exploration for navigation in dynamic environments
EP3779357A1 (en) Localisation of a surveying instrument
CN112444246B (zh) 高精度的数字孪生场景中的激光融合定位方法
JP2009157430A (ja) 座標補正方法、座標補正プログラム、及び自律移動ロボット
Fossel et al. 2D-SDF-SLAM: A signed distance function based SLAM frontend for laser scanners
US20230278214A1 (en) Robot localization using variance sampling
CN116830061A (zh) 动态站点上的机器人自主的语义模型
CN113778096B (zh) 室内机器人的定位与模型构建方法及系统
Haddeler et al. Evaluation of 3D LiDAR sensor setup for heterogeneous robot team
Limoyo et al. Self-calibration of mobile manipulator kinematic and sensor extrinsic parameters through contact-based interaction
Roggeman et al. Embedded vision-based localization and model predictive control for autonomous exploration
CN117980761A (zh) 传感器阵列、用于构建磁图的系统和方法、以及基于磁图对移动设备进行本地化的系统和方法
Park et al. Topological direction-giving and visual navigation in large environments
US20240192695A1 (en) Anchoring based transformation for aligning sensor data of a robot with a site model
Dang et al. Visual-inertial odometry-enhanced geometrically stable icp for mapping applications using aerial robots
Li et al. Geodetic coordinate calculation based on monocular vision on UAV platform
Kumar Development of SLAM algorithm for a Pipe Inspection Serpentine Robot
US20220388174A1 (en) Autonomous and teleoperated sensor pointing on a mobile robot
Kelly et al. Simultaneous mapping and stereo extrinsic parameter calibration using GPS measurements
Arturo et al. Cooperative simultaneous localisation and mapping using independent rao–blackwellised filters

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