CN117795445A - 用于基于路径点的导航地图的备用路线发现 - Google Patents

用于基于路径点的导航地图的备用路线发现 Download PDF

Info

Publication number
CN117795445A
CN117795445A CN202280054378.2A CN202280054378A CN117795445A CN 117795445 A CN117795445 A CN 117795445A CN 202280054378 A CN202280054378 A CN 202280054378A CN 117795445 A CN117795445 A CN 117795445A
Authority
CN
China
Prior art keywords
route
alternate
robot
waypoint
edge
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
CN202280054378.2A
Other languages
English (en)
Inventor
G·B·梅雷韦瑟
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 CN117795445A publication Critical patent/CN117795445A/zh
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

一种由机器人的数据处理硬件执行的计算机实现的方法,使数据处理硬件执行包括获得路径点和边的拓扑地图的操作。每条边连接相邻的路径点。路径点和边表示机器人要遵循的导航路线。操作包括确定连接第一路径点和第二路径点的边被障碍物阻挡。操作包括使用图像数据和拓扑地图生成偏离路径点之一的一个或多个备用路径点。对于每个备用路径点,操作包括生成将备用路径点连接到路径点的备用边。操作包括调整导航路线以包括绕过障碍物的至少一个备用路径点和备用边。操作包括沿着将备用路径点连接到第一路径点的备用边将机器人从第一路径点导航到备用路径点。

Description

用于基于路径点的导航地图的备用路线发现
相关申请的交叉引用
本申请根据35U.S.C.§119(e)要求于2021年6月4日提交的美国临时申请63/202,288的优先权。该在先申请的公开内容被视为本申请公开内容的一部分,并通过引用以其全部内容并入本文。
技术领域
本公开涉及用于导航地图的备用路线发现。
背景技术
机器人设备导航受限环境以执行各种任务或功能。为了在这些受限环境中导航,机器人设备可以识别障碍物。基于障碍物的识别,机器人设备可以在不接触障碍物的情况下导航受限环境。
发明内容
本公开的一方面提供了一种计算机实现的方法,该计算机实现的方法在由机器人的数据处理硬件执行时使数据处理硬件执行操作。该操作包括获得拓扑地图,该拓扑地图包括表示机器人从起始位置到目的地位置要遵循的导航路线的一系列路线路径点。该操作包括从图像传感器接收机器人的环境的图像数据。该操作包括使用图像数据来确定将一系列路线路径点中的第一路线路径点连接到一系列路线路径点中的第二路线路径点的路线边至少部分地被障碍物阻挡。该操作包括使用图像数据和拓扑地图生成备用路径点和将备用路径点连接到第一路线路径点的备用边。该操作包括调整导航路线以包括备用路径点和备用边,备用路径点和备用边绕过至少部分被障碍物阻挡的路线边。
在一些实施方式中,该操作包括通过沿着将备用路径点连接到第一路线路径点的备用边移动机器人,将机器人从第一路线路径点导航到备用路径点。
在一些实施方式中,调整导航路线包括获得拓扑地图的一系列路线边中的每个路线边以及一个或多个备用边中的每个备用边的成本,以及使用总成本小于成本阈值的一个或多个路线边和/或备用边来确定从机器人的当前位置到目的地位置的路线。在一些实施例中,未被一个或多个障碍物至少部分阻挡的路线边可以具有小于备用边的成本的成本。在其他实施例中,至少部分被一个或多个障碍物阻挡的路线边可以具有大于或等于备用边的成本的成本。在一些示例中,备用路径点从一系列路线路径点的至少一个路线路径点偏移一偏移距离。偏移距离可以小于或等于图像传感器的操作范围。
在一些实施方式中,该操作还包括生成连接备用路径点和第二备用路径点的第二备用边。在一些示例中,该操作还包括确定连接备用路径点和第二备用路径点的第二备用边被阻挡,以及重新调整导航路线以包括第三备用路径点。重新调整的导航路线可以绕过第二备用边。
在一些实施例中,生成备用路径点包括使用折线缓冲算法来生成备用路径点。在一些示例中,生成备用路径点包括在机器人的当前位置的阈值距离内生成一个或多个备用路径点。
在一些实施方式中,拓扑地图指示环境内的一个或多个静态障碍物的一个或多个位置。在一些情况下,拓扑地图指示备用路径点的位置没有静态障碍物。
在一些示例中,生成备用路径点包括生成至少两个备用路径点,并且该至少两个备用路径点由相应的备用边连接。
本公开的另一方面提供了一种系统。该系统包括机器人的数据处理硬件和与数据处理硬件通信的存储器硬件。该存储器硬件存储指令,当该指令在数据处理硬件上执行时使数据处理硬件执行操作。该操作包括获得拓扑地图,该拓扑地图包括表示机器人从起始位置到目的地位置要遵循的导航路线的一系列路线路径点。该操作包括从图像传感器接收机器人的环境的图像数据。该操作包括使用图像数据来确定将一系列路线路径点中的第一路线路径点连接到一系列路线路径点中的第二路线路径点的路线边至少部分地被障碍物阻挡。该操作包括使用图像数据和拓扑地图生成备用路径点和将备用路径点连接到第一路线路径点的备用边。该操作包括调整导航路线以包括备用路径点和备用边,备用路径点和备用边绕过至少部分被障碍物阻挡的路线边。
在一些实施方式中,该操作包括通过沿着将备用路径点连接到第一路线路径点的备用边移动机器人,将机器人从第一路线路径点导航到备用路径点。
在一些实施方式中,调整导航路线包括获得拓扑地图的一系列路线边中的每个路线边以及一个或多个备用边中的每个备用边的成本,以及使用总成本小于成本阈值的一个或多个路线边和/或备用边来确定从机器人的当前位置到目的地位置的路线。在一些实施例中,未被一个或多个障碍物至少部分阻挡的路线边可以具有小于备用边的成本的成本。在其他实施例中,至少部分被一个或多个障碍物阻挡的路线边的成本可以具有大于或等于备用边的成本的成本。在一些示例中,备用路径点从一系列路线路径点的至少一个路线路径点偏移一偏移距离。偏移距离可以小于或等于图像传感器的操作范围。
在一些实施方式中,该操作还包括生成连接备用路径点和第二备用路径点的第二备用边。在一些示例中,该操作还包括确定连接备用路径点和第二备用路径点的第二备用边被阻挡,以及重新调整导航路线以包括第三备用路径点。重新调整的导航路线可以绕过第二备用边。
在一些实施例中,生成备用路径点包括使用折线缓冲算法生成备用路径点。在一些示例中,生成备用路径点包括在机器人当前位置的阈值距离内生成一个或多个备用路径点。
在一些实施方式中,拓扑地图指示环境内的一个或多个静态障碍物的一个或多个位置。在一些情况下,拓扑地图指示备用路径点的位置没有静态障碍物。
在一些示例中,生成备用路径点包括生成至少两个备用路径点,所述至少两个备用路径点由相应的备用边连接。
本公开的又一方面提供了一种计算机实现的方法,该计算机实现的方法在由机器人的数据处理硬件执行时使数据处理硬件执行操作。该操作包括获得拓扑地图,该拓扑地图包括表示机器人从起始位置到目的地位置要遵循的导航路线的一系列路线路径点。该操作包括从图像传感器接收机器人环境的图像数据。该操作包括使用图像数据来确定将一系列路线路径点中的第一路线路径点连接到一系列路线路径点中的第二路线路径点的路线边至少部分地被障碍物阻挡。该操作包括使用图像数据和拓扑地图生成备用路径点。该操作包括调整导航路线以包括备用路径点,备用路径点绕过至少部分被障碍物阻挡的路线边。
在一些实施方式中,拓扑地图的一系列路线边中的每个路线边连接一系列路线路径点中的对应的一对路线路径点。在一些实施例中,当机器人沿着导航路线导航时,发生一个或多个上述步骤。在一些示例中,生成将备用路径点连接到第一路线路径点的备用边。在一些实施方式中,该操作包括导航机器人。导航机器人可以包括沿着备用边移动机器人。
本公开的另一方面提供了一种系统。该系统包括机器人的数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当该指令在数据处理硬件上执行时使数据处理硬件执行操作。该操作包括获得拓扑地图,该拓扑地图包括表示机器人从起始位置到目的地位置要遵循的导航路线的一系列路线路径点。该操作包括从图像传感器接收机器人的环境的图像数据。该操作包括使用图像数据来确定将一系列路线路径点中的第一路线路径点连接到一系列路线路径点中的第二路线路径点的路线边至少部分地被障碍物阻挡。该操作包括使用图像数据和拓扑地图生成备用路径点。该操作包括调整导航路线以包括备用路径点,备用路径点绕过至少部分被障碍物阻挡的路线边。
在一些实施方式中,拓扑地图的一系列路线边中的每个路线边连接一系列路线路径点中的对应的一对路线路径点。在一些实施例中,当机器人沿着导航路线导航时,发生一个或多个上述步骤。在一些示例中,生成将备用路径点连接到第一路线路径点的备用边。在一些实施方式中,该操作包括导航机器人。导航机器人可以包括沿着备用边移动机器人。
本公开的一个或多个实施的细节在附图和以下说明中阐述。根据说明书和附图以及权利要求书,其他方面、特征和优点将变得显而易见。
附图说明
图1A是用于在环境中导航的示例机器人的示意图。
图1B是用于导航图1A的机器人的导航系统的示意图。
图2是导航系统的示例性部件的示意图。
图3A是机器人遇到障碍物的示意图。
图3B是机器人遇到障碍物的示意图。
图4A是机器人遇到障碍物并生成备用路径点以绕过障碍物的示意图。
图4B是机器人遇到障碍物并生成备用路径点以绕过障碍物的示意图。
图4C是机器人遇到障碍物并生成备用路径点以绕过障碍物的示意图。
图5A是示例性地图的示意图。
图5B是示例性地图的示意图。
图5C是示例性地图的示意图。
图6A是带有候选备用路径点的示例性地图的示意图。
图6B是带有候选备用路径点的示例性地图的示意图。
图6C是带有候选备用路径点的示例性地图的示意图。
图7A是使用折线缓冲算法生成备用路径点和备用边的示意图。
图7B是使用折线缓冲算法生成备用路径点和备用边的示意图。
图7C是使用折线缓冲算法生成备用路径点和备用边的示意图。
图7D是使用折线缓冲算法生成备用路径点和备用边的示意图。
图8是用于基于路径点的导航地图的备用路线发现处理方法的操作的布置示例的流程图。
图9是可用于实施本文所述系统和方法的示例计算设备的示意图。
各附图中相同的参考标记表示相同的元素。
具体实施方式
自主和半自主机器人可配备复杂的绘图、定位和导航系统。这些系统可利用导航图。导航图可以包括用于本地导航的障碍物地图。然而,用于本地导航的障碍物地图可能在大小、复杂性、障碍物地图提供的信息等方面受到限制。例如,可以根据感测范围阈值(如机器人的感测范围阈值)和/或为了提高效率、降低计算成本等对障碍物地图进行限制。此外,可以对障碍物地图进行限制,以将机器人限制为探索障碍物地图中的已记录的路径周围的特定已知安全区域,和/或防止机器人与障碍物地图进行振荡交互。因此,障碍物地图可能会导致机器人因障碍物地图而“卡”在障碍物上。
本文的实施方式针对的是以可验证安全的方式以附加的灵活性导航机器人以进行探索的系统和方法。该导航系统使机器人能够使用在特定区域添加图结构的自动后处理算法(例如,预测区域的可通过性超过或符合可通过性阈值的区域和/或观察到的区域部分超过或符合观察到的阈值的区域)来绕过多类障碍物(例如,确定性地)重新确定路线。机器人可基于添加的图结构识别一条或多条附加路径,机器人可采用这些路径避开标称路径内的阻塞。避开阻塞后,机器人可返回标称路径。因此,机器人可以以确定性的方式使用添加的图结构在运行时期间获得附加的导航灵活性,并且可以离线调整和验证添加的图结构。
参照图1A和1B,在一些实施方式中,机器人100包括具有一个或多个基于运动的结构的主体110,所述基于运动的结构诸如耦合到主体110的腿120a-d,该结构使机器人100能够在围绕机器人100的环境30内移动。在一些示例中,腿120的全部或部分是铰接结构,使得一个或多个关节J允许腿120的构件122移动。例如,在图示的实施例中,全部或部分腿120包括将腿120的上部构件122、122U耦接到主体110的髋关节JH和将腿120的上部构件122U耦接到腿120的下部构件122L的膝关节JK。虽然图1A描绘了具有四条腿120a-d的四足机器人,但机器人100可以包括任意数量的腿或基于动力的结构(例如,具有两条腿的双足机器人或仿人机器人,或一条或多条腿的其他布置),所述腿或基于动力的结构提供了穿越环境30内的地形的手段。
为了穿越地形,所有或部分腿120可具有接触地形表面(例如牵引表面)的远端124。此外,腿120的远端124可以是机器人100在机器人100的移动期间用于枢轴转动、放置或通常提供牵引力的腿120的末端。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未显示,腿的远端包括踝关节,使得远端相对于腿的下部构件进行铰接。
在所示示例中,机器人100包括用作机器人操纵器的臂126。臂126可以围绕多个自由度移动,以便与环境30的元素(例如,环境30中的对象)接合。在一些示例中,臂126包括一个或多个构件128,其中构件128通过关节J耦接,使得臂126可以关于关节J转动或旋转。例如,对于一个以上的构件128,臂126可以伸出或缩回。为了举例说明,图1描绘了带有三个构件128的臂126,分别对应于下部构件128L、上部构件128U和手部构件128H(也称为末端执行器)。这里,下部构件128L可以关于位于主体110附近(例如,臂126连接到机器人100的主体110的位置)的第一臂关节JA1旋转或枢转。下部构件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具有沿重力方向的垂直重力轴(例如,显示为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的正面平面(例如,从机器人100的具有第一腿120a的右侧到机器人100的具有第二腿120b的左侧)。正面平面通过在x方向轴AX和z方向轴AZ的方向上延伸来横跨X-Z平面。
为了在环境30内进行操作或使用臂126执行任务,机器人100包括具有一个或多个传感器132、132a-n的传感器系统130(也称为视觉系统)。例如,图1A示出了安装在机器人100头部(例如靠近机器人100邻近前腿120a-b的前部),第二传感器132、132b安装在机器人100的第二腿120b的臀部附近,第三传感器132、132c对应于安装在机器人100的主体110一侧的传感器132之一,第四传感器132、132d安装在机器人100的第四腿120d的臀部附近,第五传感器132、132e安装在机器人100的臂126的手部构件128H处或附近。传感器132可包括视觉/图像传感器、惯性传感器(例如惯性测量单元(IMU))、力传感器和/或运动传感器。例如,传感器132可包括一个或多个图像传感器(如照相机、立体照相机等)、飞行时间(TOF)传感器、扫描光探测和测距(LIDAR)传感器或扫描激光探测和测距(LADAR)传感器。在一些示例中,传感器132具有相应的视场Fv,定义了与传感器132相对应的传感范围或区域。例如,图1A描绘了机器人100的第一传感器132、132a的视场Fv。每个传感器132都可转动和/或旋转,使得例如传感器132围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场Fv。在一些示例中,多个传感器132可以集中在一起(例如,类似于第一传感器132a),以拼接出比任何单个传感器132更大的视场Fv。通过在机器人100周围放置多个传感器132,传感器系统130可以360度或接近360度地观察机器人100周围的垂直或水平轴。
当使用传感器132勘测视场Fv时(例如,参见图1B),传感器系统130生成与视场Fv相对应的传感器数据134(例如,图像数据)。传感器系统130可以通过安装在机器人100的主体110上或附近的传感器132(例如传感器132a、132b)生成视场Fv。传感器系统可以附加地和/或可替代地利用安装在臂126的手部构件128H上或附近的传感器132(例如传感器132c)来生成视场Fv。一个或多个传感器132捕获传感器数据134,该数据定义了机器人100的环境30内的区域的三维点云。在一些示例中,传感器数据134是与三维体积图像传感器132生成的三维体积点云相对应的图像数据。另外或替代地,当机器人100在环境30内移动时,传感器系统130收集机器人100的姿势数据,其包括惯性测量数据(例如,由IMU测量)。在一些示例中,姿势数据包括关于机器人100的运动学数据和/或方位数据,例如,关于机器人100的关节J或腿部120或臂126的其他部分的运动学数据和/或方位数据。利用传感器数据134,机器人100的各个系统可以使用传感器数据134来定义机器人100的当前状态(例如,机器人100的运动学的当前状态)和/或机器人100的环境30的当前状态。因此,传感器系统130可以将来自一个或多个传感器132的传感器数据134传送给机器人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存储、处理和/或传送到机器人100的各个系统(例如,控制系统170、导航系统200和/或远程控制器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的资源上。在一些示例中,远程系统160或远程资源162、164的至少一部分位于与机器人100通信的远程控制器10上。
在一些实施方式中,如图1B所示,机器人100包括控制系统170。控制系统170可以与机器人100的系统通信,例如至少一个传感器系统130和导航系统200。控制系统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或电机M,电机M可操作关节J或耦接到关节J。在一些示例中,软件应用可称为“应用”、“app”或“程序”。例如,控制器172可以控制施加到关节J上的力的大小(例如,关节J处的扭矩)。作为可编程控制器172,控制器172所控制的关节J的数量是可扩展和/或可定制的,以用于特定的控制目的。控制器172可以控制单个关节J(例如,控制单个关节J处的扭矩)、多个关节J或机器人100的一个或多个构件128的致动(例如,手部构件128H的致动)。通过控制一个或多个关节J、致动器或电机M,控制器172可以协调机器人100的所有不同部分(例如,主体110、一条或多条腿120、臂126)的移动。例如,为了执行具有一些移动的行为,控制器172可以控制机器人100的多个部分的移动,例如两条腿120a-b、四条腿120a-d,或两条腿120a-b与臂126的组合。在一些示例中,控制器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传感器等),每个成像传感器132都可以捕捉视场Fv内机器人100周围的环境30的传感器数据134。例如,一个或多个传感器132可以是一个或多个相机。传感器系统130可以通过调整视角或(独立地或通过机器人100)平移和/或倾斜一个或多个传感器132来在任何方向上移动视场Fv。在一些实施方式中,传感器系统130包括多个传感器132(例如多个相机),使得传感器系统130捕捉到机器人100周围大致360度的视场。
在图2的示例中,导航系统200包括高级导航模块220,该模块接收地图数据210(例如,表示机器人100要导航的区域中的静态障碍物位置的高级导航数据)。在一些情况下,地图数据210包括图形地图222。在其他情况下,高级导航模块220生成图形地图222。图形地图222可以包括机器人100要穿越的给定区域的拓扑地图。高级导航模块220可以获取(例如,从远程系统160或远程控制器10获取)和/或在图形地图222上生成一系列路线路径点310a、310b(如图3A和3B所示),用于导航路线212,该路线212可绘制从起始位置(例如,机器人100的当前位置)到目的地的围绕大型和/或静态障碍物的路径。路线边可连接相邻路线路径点的对应对。在一些示例中,路线边记录了基于里程测量数据的路线路径点之间的几何变换。路线路径点和路线边线可以表示机器人100从起始位置到目的地的导航路线212。
在一些示例中,高级导航模块220生成大于10米范围的导航路线212(例如,导航路线212可包括距离机器人100大于10米的距离)。导航系统200还包括本地导航模块230,该模块可以从传感器系统130接收导航路线212和图像或传感器数据134。本地导航模块230可使用传感器数据134生成障碍物地图232。障碍物地图232可以是以机器人为中心的地图,其基于传感器数据134绘制机器人100周围(例如,在阈值距离内)的障碍物(静态和/或动态障碍物)。例如,当图形地图222可以包括与走廊墙壁的位置相关的信息时,障碍物地图232(在机器人100穿越环境30时由传感器数据134填充)可以包括与放置在走廊上的一摞箱子相关的信息,这些箱子在原始记录期间并不存在。障碍物地图232的大小可以取决于传感器132(例如相机、LIDAR等)的操作范围和可用计算资源。
本地导航模块230可以生成步骤计划240(例如,使用A*搜索算法),该计划绘制了机器人100从机器人100的当前位置沿导航路线212导航到下一个路径点的所有或部分单独步骤(或其他移动)。利用步骤计划240,机器人100可以在环境30中穿行。本地导航模块230可以基于捕获的传感器数据134,使用障碍物网格图获取机器人100到下一个路径点的路径。在一些示例中,本地导航模块230在与传感器132的操作范围相关(例如四米)的范围操作,通常小于高级导航模块220的范围。
现在请参考图3A和图3B,在一些示例中,当机器人100尝试穿越导航路线时,导航系统会对机器人100施加一个或多个限制。例如,可以限制机器人100偏离组成导航路线的导航路线和/或路线路径点310a、310b或路线边312的距离不得超过阈值。当障碍物地图小于特定阈值时(例如,为了降低计算成本或由于传感器范围的原因),导航系统可以施加约束,将机器人在导航过程中的探索限制在导航路线附近的已知安全区域,并且例如防止与小障碍物地图尺寸的振荡交互。然而,这些约束可能会限制机器人导航绕过阻碍或阻挡导航路线的障碍物的能力。
示意图300a示出了机器人100在图形地图222上的位置。当机器人尝试沿着边312从第一路线路径点310a导航到第二路线路径点310b时,机器人的本地导航模块可对机器人100的探索施加边界约束320。边界约束320的大小和位置可以基于路线路径点310a、310b的位置、机器人的传感器的感测范围、机器人100的计算资源和/或图形地图222的大小和质量。在图3A的示例中,机器人100在向路径点310b导航时遇到了障碍物330。如图3A所示,障碍物330从边界框320的左侧延伸到边界框320的右侧。基于障碍物330的位置,机器人可能会被卡住。例如,由于机器人100无法在不违反由边界约束320施加的约束的情况下看到绕过障碍物330的路径,机器人可能会被卡住。现在参考图3B,示意图300b显示,在本示例中,在手动将机器人100向左驾驶后,有足够的空间绕过障碍物330。然而,由于约束(例如边界约束320),机器人100可能无法自主绕过障碍物330。
现在参考图4A,在一些示例中,导航系统200包括备用路径点生成器400。本地导航模块230可以获取机器人100的环境的传感器数据134(例如图像数据)。本地导航模块230可使用传感器数据134确定连接第一路线路径点310a和第二路线路径点310b的一系列路线边312a中的相应一条被障碍物330阻挡。例如,当机器人100沿着导航路线212从第一路线路径点310a导航到第二路线路径点310b时,本地导航模块230可以确定路线边被阻挡。在图4A的示例中,当机器人100通过沿着连接路线路径点310a和路线路径点310b的路线边312a穿行来导航导航路线212时,机器人100遇到了阻挡路线边312a的障碍物330。由于障碍物330与边界约束320的宽度(可对应于障碍物地图232的大小)相交,机器人100可能无法确定绕过障碍物330的路线,并可能保持在边界约束320内。
现在参考图4B,备用路径点生成器400可以接收传感器数据134(或传感器数据134的衍生物,例如障碍物地图232)和带有导航路线212A的图形地图222。备用路径点生成器400可使用传感器数据134和图形地图222生成一个或多个备用路径点310Aa、b,每个路径点与其中一个路线路径点310a、b之间的偏移距离为420。偏移距离420可以与传感器的操作范围相关联(例如,偏移距离小于传感器的操作范围,如图像传感器、LIDAR传感器、LADAR传感器等)。用户计算设备可提供指示偏移距离的信息。此外,偏移距离420可以基于多种因素,包括机器人100正在穿行的环境。在一些实施方式中,备用路径点生成器400可以使用来自一个或多个传感器的传感器数据134,这些传感器不同于用于捕捉与障碍物330和/或边界约束320相关的传感器数据134的原始传感器132。例如,机器人100可以主要在由相机捕捉的图像数据上操作,以减少计算资源。然而,备用路径点生成器400可以处理比图像传感器计算成本更高的长距离数据(例如,由诸如LIDAR传感器的不同传感器捕获的数据),使得备用路径点生成器400可以生成备用路径点310Aa、b和/或备用边312Aa、b、c,比备用路径点生成器400利用传感器数据134所能生成的更远离原始路线212A(当没有障碍物330时)。
对于全部或部分备用路径点310Aa、b,备用路径点生成器400可生成将备用路径点310Aa、b连接到相应路线路径点310a、b的相应备用边312Aa、b、c。在一些示例中,备用路径点生成器400确定全部或部分备用路径点310Aa、b与路线路径点310a、b之间的对应关系。对于全部或部分对应关系,如果机器人100确定从交替路径点310Aa、b到相应路线路径点310a、b的直线区域的可通过性大于阈值(例如,机器人100确定机器人可以穿越交替路径点310Aa、b到相应路线路径点310a、b的直线区域),则备用路径点生成器400生成备用边310Aa、b、c并确认备用路径点310Aa、b。在一些实施方式中,当机器人100确定从备用路径点310Aa、b到相应路线路径点310a、b的直线区域的可通过性低于特定阈值时,备用路径点生成器400可以调整备用路径点310Aa、b的位置(例如,在原位置的阈值距离内),并可再次评估路径。
在图4B的示例中,备用路径点生成器400可以生成备用路径点310Aa和310Ab。备用路径点310Aa通过备用边312Aa连接到路线路径点310a,备用路径点310Ab通过备用边312Ac连接到路线路径点310b。此外,备用路径点310Aa、310Ab通过备用边312Ab连接。
当所有或部分备用路径点310Aa、b满足以下标准之一时,备用路径点生成器400可在成对备用路径点310Aa、b之间生成备用边312Aa、b、c。当所有或部分备用路径点310Aa、b连接到同一路线路径点310a、b时,满足第一条标准。当所有或部分备用路径点310Aa、b连接到单条路线边312的末端时,满足第二条标准。当全部或部分备用路径点310Aa、b连接到两个路径点310a、b中的一个时,满足第三个标准,这两个路径点310a、b之间具有特定的路径长度(例如,长度低于或等于特定阈值的路径长度、正常路径长度等)。如果满足第三项标准,如下文详细讨论的那样,备用路径点生成器400可以增加相应备用边312Aa、b、c的成本,以保持对原始导航路线212的偏好。备用路径点生成器400可在全部或部分备用边312、312A上执行对路线边312执行的全部或部分可通过性检查。因此,备用路径点生成器400可以最大限度地减少任何备用边312Aa、b、c周围的允许空间区域与任何航线边312周围的允许空间区域重复的程度。因此,备用路径点生成器400可以基于传感器和/或计算约束,最小化边界约束320与备用边312Aa、b、c所建立的任何新边界约束的重叠。由于在播放时检测边是否不可穿越需要耗费大量时间,而且机器人100在尝试穿越被阻挡和/或被修改的区域时摔倒的风险也会增加,因此最小化重叠可能是重要的。由于备用边312Aa、b、c可能不会穿越多余的空间区域(或者穿越的多余空间量可能会减少),因此备用边312Aa、b、c可以最大化机器人可用的区域,而不重复潜在被阻挡的区域。
备用路径点生成器400可以调整导航路线212以包括绕过被障碍物330阻挡的路线边312的一个或多个备用路径点310a、b中的至少一个。如下文所详细讨论的,在一些实施方式中,备用路径点生成器400使用折线缓冲算法生成备用路径点310Aa、b。备用路径点生成器400可将一种或多种多段线缓冲算法应用于扁平化的二维地图(例如,图形地图222),以生成候选备用路径点310Aa、b。备用路径点生成器400可使用一种或多种约束和/或检查来评估候选备用路径点310Aa、b的全部或部分,以验证候选备用边的有效性。例如,备用路径点生成器400可通过签名的距离字段执行碰撞检查,执行地面高度变化检查,确定候选备用路径点310Aa、b所绕过的最大记录和/或标称路径长度,和/或检查与用户配置选项的兼容性(例如,用户可在一些情况下禁用备用路径点310Aa、b生成)。当候选备用路径点310Aa、b通过全部或部分检查和/或约束时,备用路径点生成器400可确认备用路径点310Aa、b,用于将其纳入图形地图222和/或调整后的导航路线212A。备用路径点生成器400可以对候选备用边312Aa、b、c执行类似的检查和评估,同时执行适当的附加检查(例如,确定备用边是否导致超过最大记录或标称路径长度)。
如图4C所示,本地导航模块230可以接收调整后的导航路线212A,并据此导航机器人100。调整后的导航路线212A可以包括一个或多个调整后的边界约束320A。以备用边312A为中心的附加边界约束320A可以使机器人100能够自由穿越备用边312Aa、b、c。备用路径点生成器400可以基于生成的备用路径点312Aa、b和/或备用边312Aa、b、c来生成新的边界约束320。调整后的导航路线212A包括备用路径点310Aa、310Ab,并且机器人100经由边312Aa导航到备用路径点310Aa,经由边312Ab导航到第二个备用路径点310Ab。本地导航模块230可以通过沿着将备用路径点310Aa、b连接到路线路径点310a的相应备用边312Aa、b、c穿越机器人100,将机器人100从路线路径点310a导航到包括在调整后的导航路线212A中的备用路径点310Aa、b。在此示例中,机器人100可利用备用路径点310Aa、b绕过障碍物330,并在路线路径点310b处返回原导航路线212。
在一些示例中,导航系统200确定(例如,在穿越障碍物330时)连接备用路径点310Aa、b和路线路径点310b或另一备用路径点310Aa、b、c的备用边312Aa、b、c被阻挡(例如,被阻挡路线路径点312的同一障碍物330或单独的障碍物330阻挡)。导航系统200可重新调整调整后的导航路线212A以包括一个或多个附加备用路径点310Aa、b。重新调整后的导航路线212A因此绕过被阻挡的备用边312Aa、b、c。
在一些实施方式中,路线路径点310a、b、备用路径点310Aa、b、路线边312和/或备用边312Aa、b、c的全部或部分与各自的成本相关联。导航系统200在确定导航路线212和调整后的导航路线212A时,可获取与全部或部分路径点310a、b、310Aa、b和/或边312、312Aa、b、c相关的成本。导航系统200可使用具有最低总成本的路线边312和备用边312Aa、b、c(以及或路径点310、310Aa、b)生成调整后的导航路线212A。在一些实施例中,路线边312比备用边312Aa、b、c具有更低的成本,以激励机器人100在绕过障碍物330后返回原始导航路线212(例如,在绕过障碍物330后尽快返回)。
现在参考图5A,示例性图形地图222a包括导航路线212,其填充有由路线边312连接的一系列路线路径点310。在一些示例中,图形地图222a是基于机器人在之前任务中捕获的传感器数据生成的。例如,机器人可以自主或半自主地(例如,至少部分由用户计算设备手动控制)穿越环境,同时执行同步定位和绘图(SLAM)。机器人在穿越环境时可以周期性或非周期性地“丢弃”路线路径点310。机器人可在全部或部分路线路径点310上捕获传感器数据(例如,使用传感器系统),以生成图形地图222a。
现在参考图5B,示例性图形地图222b包括调整后的导航路线212A(例如,如图5A中所示的导航路线的调整后的版本),其填充有由相同路线边312连接的一系列路线路径点310。导航路线212A在整个图形地图222b的所有适用位置上都填充有备用路径点310A(以及相应的备用边312A)。在一些实施方式中,备用路径点生成器会在符合备用路径点310A生成标准的图形地图222上的每个位置生成一个备用路径点310A。生成备用路径点310A的标准可包括各路线路径点310与图形地图222b中表示的障碍物之间的足够距离(例如偏移距离)。因此,备用路径点生成器可以基于备用路径点生成器确定(通过来自图形地图222b的数据)机器人有足够的空间穿越备用路径点310A,而不会与由图形地图222b表示的障碍物相撞,来生成备用路径点310A。
现在参考图5C,在一些示例中,备用路径点生成器可在机器人的阈值距离内生成备用路径点310A。示例性图形地图222c指示机器人的当前位置和边界框510,边界框510表示备用路径点生成器生成备用路径点310A的有效区域。通过限制备用路径点生成器生成备用路径点310A的区域,导航系统200可以减少生成调整后的导航路线212A所需的资源(例如计算资源或时间资源)。在这些示例中,备用路径点生成器可在机器人前进受阻(例如机器人被“卡住”)的全部或部分时间内在机器人当前位置附近生成备用路径点310A。阈值距离可根据机器人的方向而变化。例如,备用路径点生成器可生成在机器人前方第一阈值距离(例如十米、二十米、三十米、三十五米等)内和机器人后方第二阈值距离(例如五米、十米、二十米等)内的备用路径点310A。
现在参考图6A-6C,在一些实施方式中,备用路径点生成器生成多个候选备用路径点。如图6A的示意图600a所示,高级导航模块最初可使用诸如期望路径(例如,由用户计算设备用择的或以其它方式代表机器人期望任务的先前记录路径)、由传感器系统捕获的传感器数据生成的点云和/或本地网格图等输入来生成图形地图。图6B的示意图600b展示了从图形地图生成的示例性候选备用路径点。备用路径点生成器可从全部或部分路线路径点生成候选备用路径点。每个候选备用路径点可与路线路径点偏移一偏移距离。图6C的示意图600c提供了路线路径点、路线边、候选备用路径点和相应备用边的增强视图。在确认全部或部分候选备用路径点之前,导航系统可执行任意数量的限制检查和/或评估。
现在参考图7A-7D,在一些实施方式中,为了生成候选备用路径点310A和备用边312A,备用路径点生成器确定导航路线212的一个或多个路线路径点310的链变换(例如,从“最老”路线路径点310开始)并转换为二维几何图形。如示意图700a-d所示,备用路径点生成器可使用一种或多种折线缓冲算法确定一系列偏移多边形(如“缓冲区”)到阈值距离(如1.5米)。在一些示例中,备用路径点生成器将备用路径点310A的最外侧(“边”)与多边形缓冲区上的最近点反复对应,并评估缓冲区点720和候选备用路径点310A形成的直线(“辐条”或备用边312A)。在一些示例中,当缓冲点720穿越路线边312或缓冲点720位于路线路径点310的阈值距离内时,备用路径点生成器将跳过缓冲点720。当中心路径点310与另一个辐条交叉时,备用路径点生成器也可跳过缓冲点720。备用路径点生成器计算辐条(备用边312A)和轮缘(相邻备用路径点310A之间的备用边312A)的新变换。在一些示例中,当轮缘路径点(备用路径点310A)形成一个小循环时,备用路径点生成器会将连续的轮缘路径点(备用路径点310A)连接起来。如图7D所示,备用路径点生成器可确定候选轮缘边312A的所有或部分备用路径点310A之间的路径(例如,与备用路径点310A之间的其他路径相比最短的路径)是否满足阈值。
备用路径点生成器可评估备用路径点310A之间的备用边312A,以确定备用边312A是否满足一个或多个条件。例如,连接相邻候补路径点310A的候补边312A可被要求在最近航线路径点310的阈值距离之内。可通过在全部或部分备用路径点310A与原始图形地图222上最靠近(例如空间上)备用路径点310A的路线路径点310之间生成缓冲点720来评估备用边312A。机器人100能够导航的备用边312A可以沿着相应的缓冲点720在备用路径点310A和路线路径点310之间绘制,这个过程可以针对图形地图222中或机器人100的阈值距离内的全部或部分备用路径点310A重复进行。对于连接备用路径点310A和路线路径点310的全部或部分备用边312A,备用路径点生成器可验证全部或部分备用边312A没有障碍物,且在机器人100的感测阈值范围内。当连接备用路径点310A和路线路径点310的备用边312A没有障碍物或不在感应阈值范围内时,备用路径点生成器可缩短或重新定位备用路径点310A,使备用边312A符合要求。一旦评估了备用路径点310A(并在一些实施中根据连接备用路径点310A和路线路径点310的备用边312A进行了调整),备用路径点生成器可评估连接相邻备用路径点310A的备用边312A,使其不存在障碍物,并在至少一个路线路径点310的阈值距离内。因此,如果连接相邻备用路径点310A的备用边312A位于另一个路径点310的阈值距离内,则该备用边312A可能不在机器人当前位置(在一个路径点310)的感测范围内。
因此,导航系统以一种可以离线调整和验证的方式提供了附加的灵活性,而运行时的行为仍然是确定的。机器人可能有数量有限的路径来避开标称导航路线212上的障碍物或阻塞物,导航系统可以识别全部或部分路径。此外,机器人在穿越障碍物后可返回标称(原始)路径。备用路径点生成器可以离线(例如,在机器人穿越导航路径212之前)或在线(例如,在机器人遇到受阻路线边312之后)生成备用路径点310A和备用边312A。例如,备用路径点生成器在遇到被阻挡的路线边312(或路线路径点310)之前生成备用路径点310A,并在遇到被阻挡的路线边312之后启用备用路径点310A。或者,机器人可以依靠成本较高的备用路径点310A来尽可能保持原始导航路线212。在其他示例中,备用路径点生成器会在遇到被阻挡的路线边312后生成备用路径点310A。在一些示例中,备用路径点生成器可能不会在指定区域生成备用路径点310A。例如,用户计算设备可以指定禁止备用路径点310A的区域(例如,通过控制器)。
图8是为基于路径点的导航地图提供备用路线发现的方法800的示例性操作安排的流程图。计算机实现的方法800在由数据处理硬件执行时导致数据处理硬件执行操作。在操作802中,方法800包括获取拓扑地图,该拓扑地图包括一系列路线路径点。拓扑地图还包括一系列路线边。该一系列路线边中的全部或部分路线边可以连接路线路径点系列中的相应一对相邻路线路径点。该一系列路线路径点和一系列路线边可以表示机器人从起始位置到目的地位置的导航路线。
方法800在操作804处包括从图像传感器接收机器人的环境的图像数据。在操作806处,使用图像数据确定一系列路线边中的路线边被障碍物阻挡。例如,操作806可以包括当机器人沿着导航路线从一系列路线路径点中的第一路线路径点导航到一系列路线路径点中的第二路线路径点时,确定路线边被障碍物阻挡。路线边可以连接第一路线路径点和第二路线路径点。方法800在操作808处包括使用图像数据和地形图生成备用路径点和备用边。备用路径点可与一系列路径点中的至少一个路径点偏移一偏移距离。备用边可将备用路径点连接到第一路线路径点。操作808可包括为多个备用路径点的全部或部分生成备用边。方法800在操作810处包括调整导航路线以包括备用路径点和备用边。备用路径点和备用边可以绕过被障碍物阻挡的路线边。在一些实施例中,方法800包括通过沿着连接备用路径点和第一路线路径点的备用边移动机器人,将机器人从第一路径点导航到备用路径点。
图9是可用于实现本文所述系统和方法的计算设备900示例的示意图。计算设备900意在表示各种形式的数字计算机,例如笔记本电脑、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。此处显示的组件、它们之间的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文档中描述和/或声称的发明的实施。
计算设备900包括处理器910、存储器920、存储设备930、连接到存储器920和高速扩展端口950的高速接口/控制器940,以及连接到低速总线970和存储设备930的低速接口/控制器960。每个组件910、920、930、940、950和960都通过各个总线相互连接,并且可以安装在公共主板上或以其他适当的方式安装。处理器910可以处理用于在计算设备900内执行的指令,包括存储在存储器920中或存储设备930上的指令,以便在外部输入/输出设备(例如连接到高速接口940的显示器980)上显示图形用户界面(GUI)的图形信息。在其他实施方式中,可酌情使用多个处理器和/或多条总线,以及多个存储器和多种类型的存储器。此外,还可以连接多个计算设备900,每个设备提供部分必要的操作(例如,作为服务器库、一组刀片服务器或多处理器系统)。
存储器920在计算设备900内非暂时性地存储信息。存储器920可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非易失性存储器920可以是用于临时或永久存储程序(例如,指令序列)或数据(例如,程序状态信息)供计算设备900使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电子可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,如启动程序)。易失性存储器的例子包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备930能够为计算设备900提供大容量存储。在一些实施方式中,存储设备930是计算机可读介质。在各种不同的实施方式中,存储设备930可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备,也可以是设备阵列,包括存储区域网络或其他配置中的设备。在其他实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含的指令在执行时可执行一种或多种方法,诸如上述的那些方法。信息载体是计算机或机器可读介质,诸如存储器920、存储设备930或处理器910上的存储器。
高速控制器940管理计算设备900的带宽密集型操作,而低速控制器960管理带宽密集型较低的操作。这种职责分配只是示例性的。在一些实施方式中,高速控制器940耦接到存储器920、显示器980(例如,通过图形处理器或加速器)以及高速扩展端口950,后者可以接受各种扩展卡(未显示)。在一些实施方式中,低速控制器960耦接到存储设备930和低速扩展端口990。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的低速扩展端口990可以耦合到一个或多个输入/输出设备,例如键盘、指向设备、扫描仪或联网设备,例如交换机或路由器,例如通过网络适配器。
如图所示,计算设备900可以多种不同形式实现。例如,它可以实现为标准服务器900a或在一组这样的服务器900a中多次实现,也可以实现为膝上型计算机900b,或实现为机架服务器系统900c的一部分。
本文所述系统和技术的各种实现可以通过数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些不同的实现方式可包括在一个或多个计算机程序中实现,这些程序可在可编程系统上执行和/或解释,该系统包括至少一个可编程处理器,该处理器可以是专用或通用的,可从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令传输到存储系统。
这些计算机程序(也称为程序、软件、软件应用程序或代码)包括可编程处理器的机器指令,可以用高级程序语言和/或面向对象编程语言和/或汇编/机器语言实现。本文所用术语"机器可读介质"和"计算机可读介质"是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂态计算机可读介质、装置和/或设备(如磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括作为机器可读信号接收机器指令的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的流程和逻辑流可以由一个或多个可编程处理器(也称为数据处理硬件)执行,这些处理器执行一个或多个计算机程序,通过操作输入数据和生成输出来执行功能。这些流程和逻辑流也可由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,适合执行计算机程序的处理器包括通用和专用微处理器,以及任何一种数字计算机的一个或多个处理器。一般来说,处理器会从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本要素是一个用于执行指令的处理器和一个或多个用于存储指令和数据的存储设备。一般来说,计算机还包括一个或多个用于存储数据的大容量存储设备,如磁盘、磁光盘或光盘,或与之相连接以接收数据或向其传输数据。不过,计算机不一定需要这些设备。适用于存储计算机程序指令和数据的计算机可读介质包括各种形式的非易失性存储器、介质和存储设备,例如包括半导体存储设备,如EPROM、EEPROM和闪存设备;磁盘,如内置硬盘或可移动磁盘;磁光盘;以及CDROM和DVD-ROM磁盘。处理器和存储器可由特殊用途逻辑电路补充,或集成在特殊用途逻辑电路中。
为了实现与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有显示装置,例如CRT(阴极射线管)、LCD(液晶显示器)或触摸屏,用于向用户显示信息,还可选配键盘和指向装置,例如鼠标或轨迹球,用户可通过这些装置向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,如视觉反馈、听觉反馈或触觉反馈;用户的输入可以以任何形式接收,包括声音、语音或触觉输入。此外,计算机还可以通过向用户使用的设备发送文档和从该设备接收文档的方式与用户进行交互;例如,响应从网络浏览器接收到的请求,向用户客户端设备上的网络浏览器发送网页。
已经描述了许多实施方式。然而,可以理解的是,在不脱离本公开的精神和范围的情况下,可以进行各种修改。例如,虽然流程或块是以给定的顺序呈现的,但其他实施例可以以不同的顺序执行具有步骤的例程或采用具有块的系统,并且可以删除、移动、添加、细分、组合和/或修改一些流程或块。这些流程或区块中的每一个都可以以各种不同的方式实现。此外,虽然流程或区块有时显示为串联执行,但这些流程或区块可以并联执行,也可以在不同时间执行。此外,上述各种实施方式的要素和行为可以组合起来,以提供更多的实施方式。事实上,本文所描述的方法和系统可以以各种其他形式体现;此外,本文所描述的方法和系统的形式可以有各种省略、替换和变化,而不脱离本公开的精神。因此,其它实施方式也在以下权利要求书的范围之内。

Claims (34)

1.一种计算机实现的方法,当由机器人的数据处理硬件执行时,使数据处理硬件执行操作,所述操作包括:
获得拓扑地图,所述拓扑地图包括表示所述机器人从开始位置到目的地位置要遵循的导航路线的一系列路线路径点;
从图像传感器接收所述机器人的环境的图像数据;
使用所述图像数据确定将所述一系列路线路径点中的第一路线路径点连接到所述一系列路线路径点中的第二路线路径点的路线边至少部分被障碍物阻挡;
使用所述图像数据和所述拓扑地图生成备用路径点和将所述备用路径点连接到所述第一路线路径点的备用边;以及
调整所述导航路线以包括所述备用路径点和所述备用边,所述备用路径点和所述备用边绕过至少部分被障碍物阻挡的所述路线边。
2.根据权利要求1所述的方法,其中所述操作还包括通过沿着将所述备用路径点连接到所述第一路线路径点的所述备用边移动所述机器人,将所述机器人从所述第一路线路径点导航到所述备用路径点。
3.根据权利要求1所述的方法,其中调整所述导航路线包括:
获得所述拓扑地图的一系列路线边中的每个路线边以及一个或多个备用边中的每个备用边的成本;以及
使用总成本小于成本阈值的一个或多个路线边和/或备用边来确定从所述机器人的当前位置到所述目的地位置的路线。
4.根据权利要求1所述的方法,其中,未被一个或多个障碍物至少部分阻挡的路线边具有小于备用边的成本的成本,被一个或多个障碍物至少部分阻挡的路线边具有大于或等于所述备用边的成本的成本。
5.根据权利要求1所述的方法,其中所述备用路径点从一系列路线路径点中的至少一个路线路径点偏移一偏移距离,并且其中所述偏移距离小于或等于所述图像传感器的操作范围。
6.根据权利要求1所述的方法,其中所述操作还包括生成连接所述备用路径点和第二备用路径点的第二备用边。
7.根据权利要求6所述的方法,其中所述操作还包括:
确定连接所述备用路径点和所述第二备用路径点的所述第二备用边被阻挡;以及
重新调整所述导航路线以包括第三备用路径点,重新调整的导航路线绕过所述第二备用边。
8.根据权利要求1所述的方法,其中生成所述备用路径点包括使用折线缓冲算法来生成所述备用路径点。
9.根据权利要求1所述的方法,其中生成所述备用路径点包括在所述机器人的当前位置的阈值距离内生成一个或多个备用路径点。
10.根据权利要求1所述的方法,其中所述拓扑地图指示所述环境内的一个或多个静态障碍物的一个或多个位置。
11.根据权利要求10所述的方法,其中所述拓扑地图指示所述备用路径点的位置没有静态障碍物。
12.根据权利要求1所述的方法,其中生成所述备用路径点包括生成至少两个备用路径点,所述至少两个备用路径点由各自的备用边连接。
13.一种系统,包括:
机器人的数据处理硬件;以及
与所述数据处理硬件通信的存储器硬件,所述存储器硬件存储指令,当所述指令在所述数据处理硬件上执行时,使所述数据处理硬件执行操作,所述操作包括:
获得拓扑地图,所述拓扑地图包括表示所述机器人从开始位置到目的地位置要遵循的导航路线的一系列路线路径点;
从图像传感器接收所述机器人的环境的图像数据;
使用所述图像数据确定连接所述一系列路线路径点中的第一路线路径点和所述一系列路线路径点中的第二路线路径点的路线边至少部分被障碍物阻挡;
使用所述图像数据和所述拓扑地图生成备用路径点和将所述备用路径点连接到所述第一路线路径点的备用边;以及
调整所述导航路线以包括所述备用路径点和所述备用边,所述备用路径点和所述备用边绕过至少部分被所述障碍物阻挡的所述路线边。
14.根据权利要求13所述的系统,所述操作还包括通过沿着将所述备用路径点连接到所述第一路线路径点的所述备用边移动所述机器人,将所述机器人从所述第一路线路径点导航到所述备用路径点。
15.根据权利要求13所述的系统,其中调整所述导航路线包括:
获得所述拓扑地图的一系列路线边中的每个路线边以及一个或多个备用边中的每个备用边的成本;以及
使用总成本小于成本阈值的一个或多个路线边和/或备用边来确定从所述机器人的当前位置到所述目的地位置的路线。
16.根据权利要求13所述的系统,其中,未被一个或多个障碍物至少部分阻挡的路线边具有小于备用边的成本的成本,被一个或多个障碍物至少部分阻挡的路线边具有大于或等于备用边的成本的成本。
17.根据权利要求13所述的系统,其中所述备用路径点从所述一系列路线路径点中的至少一个路线路径点偏移一偏移距离,并且其中所述偏移距离小于或等于所述图像传感器的操作范围。
18.根据权利要求13所述的系统,其中所述操作还包括生成连接所述备用路径点和第二备用路径点的第二备用边。
19.根据权利要求18所述的系统,其中所述操作还包括:
确定连接所述备用路径点和所述第二备用路径点的所述第二备用边被阻挡;以及
重新调整所述导航路线以包括第三备用路径点,重新调整的导航路线绕过所述第二备用边。
20.根据权利要求13所述的系统,其中生成所述备用路径点包括使用折线缓冲算法来生成所述备用路径点。
21.根据权利要求13所述的系统,其中生成所述备用路径点包括在所述机器人的当前位置的阈值距离内生成一个或多个备用路径点。
22.根据权利要求13所述的系统,其中所述拓扑地图指示所述环境路线内的一个或多个静态障碍物的一个或多个位置。
23.根据权利要求22所述的系统,其中所述拓扑地图指示所述备用路径点的位置没有静态障碍物。
24.根据权利要求13所述的系统,其中生成所述备用路径点包括生成至少两个备用路径点,所述至少两个备用路径点由各自的备用边连接。
25.一种计算机实现的方法,所述计算机实现的方法在由机器人的数据处理硬件执行时使所述数据处理硬件执行操作,所述操作包括:
获得拓扑地图,所述拓扑地图包括表示所述机器人从开始位置到目的地位置要遵循的导航路线的一系列路线路径点;
从图像传感器接收所述机器人的环境的图像数据;
使用所述图像数据确定将所述一系列路线路径点中的第一路线路径点连接到所述一系列路线路径点中的第二路线路径点的路线边至少部分被障碍物阻挡;
使用所述图像数据和所述拓扑地图生成备用路径点;以及
调整所述导航路线以包括所述备用路径点,所述备用路径点绕过至少部分被障碍物阻挡的所述路线边。
26.根据权利要求25所述的方法,其中所述拓扑地图的一系列路线边中的每个路线边连接所述一系列路线路径点中的对应的一对路线路径点。
27.根据权利要求25所述的方法,其中当所述机器人沿着所述导航路线从所述第一路线路径点导航到所述第二路线路径点时,确定所述路线边至少部分被所述障碍物阻挡。
28.根据权利要求25所述的方法,其中生成将所述备用路径点连接到所述第一路线路径点的备用边。
29.根据权利要求28所述的方法,其中所述操作还包括导航所述机器人,其中导航所述机器人包括沿着所述备用边移动所述机器人。
30.一种系统,包括:
机器人的数据处理硬件;以及
与所述数据处理硬件通信的存储器硬件,所述存储器硬件存储指令,当所述指令在所述数据处理硬件上时使所述数据处理硬件执行操作,所述操作包括:
获得拓扑地图,所述拓扑地图包括表示所述机器人从开始位置到目的地位置要遵循的导航路线的一系列路线路径点;
从图像传感器接收所述机器人的环境的图像数据;
使用所述图像数据确定将所述一系列路线路径点中的第一路线路径点连接到所述一系列路线路径点中的第二路线路径点的路线边至少部分被障碍物阻挡;
使用所述图像数据和所述拓扑地图生成备用路径点;以及
调整所述导航路线以包括所述备用路径点,所述备用路径点绕过至少部分被所述障碍物阻挡的路线边。
31.根据权利要求30所述的系统,其中一系列路线边中的每个路线边连接所述一系列路线路径点中的对应的一对相邻路线路径点。
32.根据权利要求30所述的系统,其中当所述机器人沿着所述导航路线从所述第一路线路径点导航到所述第二路线路径点时,确定所述路线边至少部分被所述障碍物阻挡。
33.根据权利要求30所述的系统,其中生成将所述备用路径点连接到所述第一路线路径点的备用边。
34.根据权利要求33所述的系统,其中所述操作还包括导航所述机器人,其中导航所述机器人包括沿着所述备用边移动所述机器人。
CN202280054378.2A 2021-06-04 2022-06-02 用于基于路径点的导航地图的备用路线发现 Pending CN117795445A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163202288P 2021-06-04 2021-06-04
US63/202,288 2021-06-04
PCT/US2022/072703 WO2022256811A1 (en) 2021-06-04 2022-06-02 Alternate route finding for waypoint-based navigation maps

Publications (1)

Publication Number Publication Date
CN117795445A true CN117795445A (zh) 2024-03-29

Family

ID=82258508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280054378.2A Pending CN117795445A (zh) 2021-06-04 2022-06-02 用于基于路径点的导航地图的备用路线发现

Country Status (4)

Country Link
US (1) US20220388170A1 (zh)
EP (1) EP4348377A1 (zh)
CN (1) CN117795445A (zh)
WO (1) WO2022256811A1 (zh)

Families Citing this family (5)

* 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
US11548151B2 (en) * 2019-04-12 2023-01-10 Boston Dynamics, Inc. Robotically negotiating stairs
JP2022542807A (ja) 2019-08-06 2022-10-07 ボストン ダイナミクス,インコーポレイテッド 中間ウェイポイント生成器
US11906314B2 (en) * 2021-09-10 2024-02-20 Nec Corporation System for waypoint selection and method of using
US20230211842A1 (en) * 2021-12-31 2023-07-06 Hyundai Motor Company Autonomous walking vehicle

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444237B2 (en) * 2005-01-26 2008-10-28 Fujitsu Limited Planning a journey that includes waypoints
DE102017214746A1 (de) * 2017-08-23 2019-02-28 Neusoft Technology Solutions Gmbh Verfahren zur Erzeugung alternativer Routenvorschläge
JP2022542807A (ja) * 2019-08-06 2022-10-07 ボストン ダイナミクス,インコーポレイテッド 中間ウェイポイント生成器

Also Published As

Publication number Publication date
EP4348377A1 (en) 2024-04-10
US20220388170A1 (en) 2022-12-08
WO2022256811A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
CN117795445A (zh) 用于基于路径点的导航地图的备用路线发现
US11268816B2 (en) Intermediate waypoint generator
CN111216125B (zh) 面向狭窄通道的移动机械臂装置的避障方法及系统
US20220193894A1 (en) Supervised Autonomous Grasping
CN117795444A (zh) 动态环境中导航的定向探索
US11712802B2 (en) Construction constrained motion primitives from robot maps
US20220390954A1 (en) Topology Processing for Waypoint-based Navigation Maps
CN114072254A (zh) 不确定环境中利用静态和动态碰撞规避的机器人路径规划方法
CN116830061A (zh) 动态站点上的机器人自主的语义模型
CN116710240A (zh) 开门行为以及机器人呈现该行为
Sadeghian et al. Visual servoing with safe interaction using image moments
US20220390952A1 (en) Detecting negative obstacles
Muppirala et al. Optimal motion strategies based on critical events to maintain visibility of a moving target
Hentout et al. Collision-free path planning for indoor mobile robots based on rapidly-exploring random trees and piecewise cubic hermite interpolating polynomial
Shojaeipour et al. Motion planning for mobile robot navigation using combine quad-tree decomposition and voronoi diagrams
US11865724B2 (en) Movement control method, mobile machine and non-transitory computer readable storage medium
US20220388174A1 (en) Autonomous and teleoperated sensor pointing on a mobile robot
US11927961B2 (en) Constrained robot autonomy language
US11880204B2 (en) Automated return of teleoperated vehicles
US20240111293A1 (en) Automated return of teleoperated vehicles
WO2022259600A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination