动态概率运动规划

文档序号:572863 发布日期:2021-05-18 浏览:7次 >En<

阅读说明:本技术 动态概率运动规划 (Dynamic probabilistic motion planning ) 是由 J-F.杜普伊斯 K.戈 M.亨默 于 2019-12-20 设计创作,主要内容包括:公开了用于使用与PRM相关联地缓存的扫描体积轮廓数据来改进机器人的运动规划的各个方面的技术和系统。在一些实现中,生成表示机器人在物理区域内要行进的可能路径的第一地图。确定机器人在第一地图内的初始路径。获得表示物理区域内的可移动对象要行进的路径的第二地图的数据。检测与包括在边的子集中的一个或多个边相关联的潜在障碍物。然后根据潜在障碍物确定机器人在第一地图内的调整路径。(Techniques and systems are disclosed for improving various aspects of motion planning for a robot using scan volume contour data cached in association with a PRM. In some implementations, a first map is generated that represents possible paths for the robot to travel within the physical area. An initial path of the robot within the first map is determined. Data representing a second map of a path to be traveled by a movable object within the physical area is obtained. Potential obstacles associated with one or more edges included in the subset of edges are detected. An adjusted path of the robot within the first map is then determined based on the potential obstacle.)

动态概率运动规划

技术领域

本说明书总体描述了与机器人相关的技术,尤其是与运动规划系统相关的技术。

背景技术

机器人技术的运动规划系统可以使用概率路线图(PRM)来确定机器人的起点和机器人的终点之间的路径,同时避免碰撞。例如,运动规划系统可以使用PRM从机器人的空间中获取随机样本,并测试它们以确定采样的位置是否在自由(例如,无障碍)空间中。PRM可以指定表示空间中指定坐标的节点和连接这些节点的边,以表示机器人在两个节点之间的移动。

发明内容

使用概率路线图(PRM)的运动规划通常涉及构建阶段和查询阶段。在构建阶段,生成路线图(或曲线图)来近似环境中可以进行的运动。如本文所用,PRM是指在构建阶段生成的路线图或曲线图。首先创建随机节点,然后连接到相邻节点,例如预定距离内的最近邻居。然后将节点和边添加到曲线图中,直到路线图的密度足以表示空间中的不同运动路径。例如,地图生成器可以从机器人可能移动的空间中随机抽取样本,并测试样本以确定它们是否代表机器人可能占据的区域。然后,地图生成器可以连接采样点或节点以在曲线图中创建边。在查询阶段,将起点和终点连接到曲线图中,并为机器人识别路径。例如,曲线图搜索算法可以应用于由地图表示的曲线图,以确定将机器人从起点带到终点的路径(例如,一系列边)。

在一些实现中,系统可以使用与地图(例如,PRM或其他地图)相关联的缓存的扫描体积轮廓数据来改进机器人运动规划的各个方面。规划的运动可以表示空间内的变换,诸如物理区域。在一些实现中,扫描体积表示机器人(或机器人的组件,诸如手臂或附件)在沿着地图中定义的边(例如,PRM)行进时将通过或占据的空间。例如,一个边的扫描体积可以是三维体积,表示将由沿该边行进的机器人跟踪的体积。扫描体积轮廓数据为地图中的每一个边识别机器人预测运动的扫描体积,以便系统能够以更高效的计算方式和更少的延迟来计算和调整路径。例如,在初始计算阶段之后,一旦系统接收到涉及为机器人配置运动路径的查询,系统就可以使用扫描体积轮廓数据中已经指定的缓存信息来配置路径,而不必在接收到查询之后匆忙地(on the fly)估计扫描体积。以这种方式,在初始地图计算阶段计算的扫描体积轮廓数据已经可用于每个接收的查询,并且系统不会发生基于逐个查询计算扫描体积的延迟或低效。作为另一示例,系统可以使用缓存的信息来提高碰撞检测处理的速度,因为系统可以在每次调整路径时使用缓存的扫描体积信息来检查碰撞,这防止了需要为每个路径调整重新计算扫描体积信息。这种方法的效率和速度的提高是非常可观的,特别是在协调多个机器人在同一区域的运动的系统中。

系统还可以使用缓存的扫描体积轮廓数据来进一步降低与碰撞检测相关的路径调整处理的计算复杂度。例如,如果系统检测到沿初始路径的潜在碰撞,则系统可以识别并绕过潜在碰撞附近的路径的受影响节点或边,而不是重新计算整个路径。系统可以对受潜在碰撞影响的边,基于缓存的扫描体积信息调整初始路径中的部分。在这种情况下,由于扫描体积轮廓数据包括特定边的缓存扫描体积信息(即,在地图中指定的单个边的扫描体积信息),因此系统能够仅调整被确定为可能受潜在碰撞影响的初始路径的那些部分(例如,系统可以避免重新计算和改变初始路径的未受影响部分)。

如通篇所述,“机器人”是指能够自动执行动作的机器,这种动作可由计算机编程。例如,机器人可以是一个能够在给定环境中移动的机器人。移动机器人能够在不需要物理或机电引导设备的情况下在环境中导航。在某些情况下,移动机器人可以依靠引导设备,使它们能够在相对受控的空间中沿着预定义的导航路线行进。作为另一示例,机器人可以是附着在固定表面上的工业机器人。工业机器人在一个工作单元内执行任务,并被配置为避免与在同一工作单元内操作的其他工业机器人(例如,在工厂焊接汽车的多个机器人)发生碰撞。工业机器人可以是关节臂(例如,多连杆操纵器)、夹持器组件(例如,末端执行器)或连接到机器人臂的工具/末端执行器等。

如下面进一步讨论的,“扫描体积”是指包含基于对象在一段时间内的运动在某个时刻将被对象(诸如机器人)占据的所有点的体积。例如,对于沿路径移动的对象,扫描体积可以表示对象沿路径移动时占用的空间点,包括对象占用的初始体积、对象占用的结束体积以及对象在其间经过的所有点。与对象的地图的边相关联的扫描体积表示对象(例如,机器人)在沿着边表示的路径移动时计算出要通过的总体积。如下面详细描述的,在一些实例中,可以使用包括表示扫描体积的二维表示的像素的图像来表示对象的扫描体积。在其他实例中,对象的扫描体积可以表示为与物理区域内的对象可能占用的空间重合的体素。扫描体积和其他数据结构的其他表示也可以类似地使用。

在一个一般方面中,计算机实现的方法包括:由一个或多个计算机生成表示机器人在物理区域内要行进的可能路径的第一地图,第一地图包括(i)每个连接第一地图内节点的第一多个边,以及(ii)第一多个边中包括的每个边的机器人的扫描体积轮廓;由一个或多个计算机确定机器人在第一地图内的初始路径,初始路径指定第一多个边中的边的子集;通过一个或多个计算机获得数据,数据指示表示物理区域内的可移动对象要行进的路径的第二地图,第二地图包括(i)每个连接第二地图内的节点的第二多个边,以及(ii)对包括在第二多个边中的每个边的可移动对象的扫描体积轮廓;基于对第一多个边的机器人的扫描体积轮廓和对第二多个边的可移动对象的扫描体积轮廓,由一个或多个计算机检测与包括在边的子集中的一个或多个边相关联的潜在障碍物;以及基于对潜在障碍物的检测,确定第一地图内机器人的调整路径,调整路径指定多个边中的边的不同子集。

一个或多个实现可以包括以下可选特性。例如,在一些实现中,可移动对象在物理区域内行进的路径指定第二地图内边的第二子集。另外,检测与包括在边的子集中的一个或多个边相关联的潜在障碍物包括:将与初始路径指定的边的子集相关联的机器人的扫描体积轮廓和与边的第二子集相关联的可移动对象的扫描体积轮廓进行比较;基于与初始路径指定的边的子集相关联的机器人的扫描体积轮廓和与边的第二子集相关联的可移动对象的扫描体积轮廓的比较,确定边的第一子集内的一个或多个边和边的第二子集内的一个或多个边对应于物理区域内的重叠区域;以及基于边的第一子集内的一个或多个边和边的第二子集内的一个或多个边对应于物理区域内的重叠区域的确定,确定包括在边的第一子集内的一个或多个边与潜在障碍物相关联。

在一些实现中,第一地图是第一概率路线图,第二地图是第二概率路线图。

在一些实现中,对第一多个边的机器人的扫描体积轮廓中包括的每个扫描体积轮廓指定机器人在与多个边中的特定边相关联的物理空间内的最大可穿越区域。

在一些实现中,对第一多个边的机器人的扫描体积轮廓中包括的每个扫描体积轮廓指定表示机器人在与多个边中的特定边相关联的物理空间内可通过的最大体积的体素的集合。

在一些实现中,可移动对象包括在物理区域内行进的第二机器人。

在一些实现中,确定第一地图内机器人的调整路径包括:识别与初始路径相对应的多个替代路径。在这些实现中,多个替代路径内的每个替代路径包括(i)表示初始路径的起点的第一边和(ii)表示初始路径的终点的第二边,以及每个替代路径包括在第一边和第二边之间的中间边的不同集合;以及从多个替代路径中选择特定替代路径作为调整路径。

在一些实现中,从多个替代路径中选择特定替代路径作为调整路径包括:对于多个替代路径中的每个替代路径,计算表示沿特定替代路径检测到的障碍物的概率的得分;以及基于表示沿替代路径检测到的障碍物的概率的得分,从多个替代路径中选择特定替代路径作为调整路径。

在一些实现中,方法还包括:确定包括在与检测到的障碍物相关联的边的子集中的边的数量满足预定阈值。另外,确定第一地图内机器人的调整路径包括:基于包括在与检测到的障碍物相关联的边的子集中的边的数量满足预定阈值的确定使初始路径无效;以及重新计算第一地图内机器人的新初始路径。

在一些实现中,新初始路径指定多个边中边的新子集。另外,边的新子集包括未包括在边的子集中的边;以及未包括在边的子集中的边的数量超过阈值。

在附图和下面的描述中阐述了一个或多个实现的细节。其他潜在特征和优点将从说明书、附图和权利要求书中变得显而易见。

附图说明

图1示出能够使用扫描体积轮廓数据执行运动规划的系统的示例。

图2A-2B举例说明在概率路线图内机器人的动态路径调整。

图3示出生成扫描体积轮廓数据的示例。

图4示出用于检测两个机器人的规划路径之间的潜在碰撞的技术的示例。

图5示出用于动态调整机器人的规划路径的处理的示例。

图6示出可用于执行与本文所述的任何计算机实现方法相关联的操作的计算机系统的示例。

在附图中,相同的附图标记表示相应的部件。

具体实施方式

图1示出运动规划系统100的示例,运动规划系统100可以使用扫描体积轮廓数据来进行机器人设备120的碰撞检测和路径调整。系统100包括路线图生成器112、路径处理器114、碰撞检测器116和输出处理器118。路径处理器114包括路径生成器114A和路径调整器114B。

在图1所示的示例中,系统100以两个阶段规划机器人设备120的运动–(1)构建阶段和(2)查询阶段。在构建阶段期间,路线图生成器112处理机器人设备120在其中移动的空间的配置数据112A。配置数据112A可以包括空间的信息,诸如也将在空间中移动的其他机器人、空间中的已知对象,诸如静态或移动对象、定义空间的物理区域的边界或由空间表示的物理区域的类型。空间可以表示机器人设备120被部署以执行任务的不同类型的环境。例如,空间可以位于工业环境中,诸如工厂中的区域或建筑工地的区域。在这种示例中,机器人设备120可以被部署来执行任务,诸如在空间的不同区域之间运输组件、操纵组件以进行装配程序等。在其他示例中,空间可以在商业环境中,诸如办公楼中的区域,或者在住宅环境中,诸如个人财产中的区域。

路线图生成器112基于配置数据112A为机器人设备120生成地图104。地图104可以是地图。地图104近似于机器人设备120在空间内进行的运动,并且识别机器人设备120在空间内可以采取的可能运动路径的集合。例如,如图2A-2B所示,地图104识别节点和边的集合,这些节点和边表征了机器人设备120在空间内的运动。路线图生成器112可以通过对空间中的点进行随机采样来生成地图104,测试它们以确定它们是否在自由空间中,即,没有被对象或障碍物占据,然后将这些点连接到自由空间中的其他邻近点。路线图生成器112可以使用该采样技术来识别机器人设备120的空间内的可能无障碍运动路径的集合。作为另一示例,路线图生成器112可以使用基于障碍物的方法,其中在采样技术中使用配置数据112A内的已知障碍物来识别自由空间中的点。

一旦地图104已经生成,路线图生成器112生成要与地图104相关联地缓存的扫描体积轮廓数据116B。扫描体积轮廓数据116B包括用于在地图104中识别的每个边的扫描轮廓(在图3中详细示出)。每个扫描体积轮廓识别机器人设备120在物理空间内与来自地图104的特定边相关联的最大可遍历移动。扫描体积轮廓可以表示机器人设备120的移动,这取决于路径调整的复杂性以及碰撞检测和/或路径调整中涉及的精度。例如,在一些示例中,扫描体积轮廓被存储为二维扫描体积图像的集合,该二维扫描体积图像表示机器人设备120在物理空间内可穿越的最大区域。在其他实例中,扫描体积轮廓存储为三维扫描体积体素的集合,这些体素表示机器人设备在物理空间内可遍历的最大体积。

路线图生成器112在系统100接收机器人设备120执行任务的查询102之前,与地图104相关联地缓存扫描体积轮廓数据116B。在这个意义上,在运动规划的查询阶段之前生成地图104和扫描体积轮廓数据116B。路线图生成器112缓存地图104和扫描体积轮廓数据116B,以便在运动规划的查询阶段期间,碰撞检测器116可以执行碰撞检测,而不必计算与路径确定相关联的扫描体积。此外,在一些实例中,扫描体积轮廓数据116B指定地图104的每个边的扫描体积轮廓,使得系统100使用扫描体积轮廓数据116B来评估多个可能路径,而不必重新计算地图104的不同边的扫描体积轮廓。以此方式,扫描体积轮廓数据116B的缓存降低了在运动规划的查询阶段期间执行的碰撞检测的复杂性和/或计算负担。

在一些实现中,系统100可以使用地图104和缓存的扫描体积轮廓数据116B来改进在空间内移动的多个机器人的运动编排。例如,多个机器人可能在重叠的时间段内在空间中移动,这可能增加机器人执行任务期间发生碰撞的可能性。在这样的实现中,在构建阶段期间,系统100为在空间内移动的每个机器人生成并缓存相应的地图(例如,PRM)和相关的扫描体积轮廓数据。每个地图和扫描体积轮廓数据唯一地表征对应机器人在该区域内的运动,因此可以用于规划多个机器人的运动以减少碰撞。

例如,在查询阶段期间,系统100可以使用两个机器人的缓存扫描体积轮廓数据来评估机器人之间发生碰撞的可能性(如图4所示)。在本例中,系统比较在恰巧相同时间间隔内的两个机器人在地图上的边的扫描体积轮廓(例如,PRM),以识别扫描体积中的重叠,这表示发生碰撞的可能性。如上所述,由于扫描体积轮廓在构建阶段期间被缓存,因此系统100可以在查询阶段期间执行这些比较,而不必计算两个机器人的扫描体积。

在一些实现中,系统100可以使用缓存的扫描体积轮廓数据来改进多个机器人在空间内的运动的时间同步。例如,如果系统100正在规划时间点T1到T2之间的两个机器人的路径,则系统100可以评估路径以识别对应于相同时间的边,并且比较相关扫描体积轮廓以确定是否将发生碰撞。例如,如果恰巧相同时间间隔的两个机器人的边的扫描体积轮廓没有显示重叠,则系统100可以确定两个机器人将占据空间的不同区域。可选地,如果恰巧相同时间间隔的边的扫描体积轮廓显示重叠,则系统100可以确定可能发生碰撞。在这种情况下,系统100根据所采用的路径调整技术,使用检测到的碰撞来调整机器人之一或两者的路径。

现在参考查询阶段,在已经为机器人设备120和将在该区域工作的其他机器人设备生成了具有扫描体积信息的地图104之后,系统100使用地图(例如,PRM)来生成无碰撞路径。系统100接收机器人设备120执行任务的查询102。查询102指定机器人运动的起点、机器人运动的终点以及与机器人设备120从起点到终点的运动相关联的时间约束。作为另一示例,系统100可以以其他方式识别机器人设备120从起点到终点的期望移动,而不是从另一系统或设备接收查询102。例如,系统100可以访问关于要执行的任务的信息,在各种机器人之间分配任务,并且将任务规划为机器人行进的路径序列。

路径生成器114A识别机器人在查询102中指定的起点和终点之间行进的初始路径106A。初始路径106A由地图104内连接起点和终点的节点和边的集合组成。在许多情况下,初始路径106A可以是起点和终点之间最短或最直接的路径。路径的示例在图2A和图2B中示出。

碰撞检测器116确定初始路径106A是否将导致与静态对象或移动对象的碰撞(或将呈现过高的风险)。碰撞检测器116可以通过将初始路径106A中先前计算的边的扫描体积信息与关于静态对象和移动对象的体积信息进行比较来有效地进行该确定。特别是,非常容易使用不同机器人的地图(例如,PRM)和规划路径来检测机器人动态运动可能发生的碰撞。例如,因为扫描体积是预先计算的,并且与每个机器人的地图(例如,PRM)一起存储,所以计算不同机器人的规划路径的边是否碰撞很简单。例如,如果两个机器人各自有初始规划路径,并且路径的扫描体积重叠,则不能同时执行沿路径的移动。此外,扫描体积信息的细粒度性质(例如,对于每个单独的边)允许碰撞检测器116有效地识别哪些边碰撞(例如,哪些边具有重叠的扫描体积),这允许有效地重新规划以避免碰撞的边。

碰撞检测器116处理区域数据116A以确定在初始路径106A中发生碰撞的可能性。区域数据116A例如识别与地图104相关联的物理区域中的对象,或表示在机器人设备120也期望沿着初始路径106A移动期间物理区域内其他可移动对象的运动的其他地图(例如,PRM)。在涉及静态对象的示例中,诸如障碍物,碰撞检测器116识别地图104内与静态对象相关联的坐标,并比较它们与初始路径106A的节点坐标的距离。在涉及动态对象的另一示例中,诸如另一机器人设备,碰撞检测器116可以访问动态对象的地图(例如,PRM)识别相对于由初始路径106A指定的运动的动态运动的运动。

如上所述,碰撞检测器116还处理在构建阶段中为地图104生成的缓存的扫描体积轮廓数据116B。扫描体积轮廓数据116B包括在地图104中指定的每个边的扫描轮廓(在图3中详细示出)。每个扫描体积轮廓识别机器人设备120在物理空间内与地图104的特定边相关联的最大可穿越移动。

碰撞检测器116将碰撞数据108提供给路径生成器114A。碰撞数据108(1)识别当机器人设备120沿着初始路径106A行进时是否可能发生碰撞,如果是,则(2)识别与预测的碰撞相关联的地图104的边。例如,碰撞数据108可以识别初始路径106A中包括的预测机器人设备120与对象碰撞的特定边。

路径调整器114B处理机器人设备120的地图104和碰撞数据108,以识别避免或减少碰撞可能性的替代路径集合113。例如,如图2B所示,包括在替代路径集合113中的每个路径包括由查询102指定的起点和终点,但是指定避免碰撞数据108指示为可能导致碰撞的地图104的区域的不同节点或边的集合。在图1所示的示例中,路径调整器114B从替代路径集合113中选择表示从查询102中指定为调整路径106B的起点和终点的最短无碰撞路径的路径,并将调整路径106B提供给输出处理器118。

输出处理器118生成具有调整路径106B的路径信息的指令122,并将指令122提供给机器人设备120。指令122可以指定包含在路径中的节点的有序列表,机器人设备120使用该列表来执行路径。在一些实例中,机器人设备120在从输出处理器118接收到指令122之后存储指令122,并且同时其累积其它指令以执行该区域中的相关任务。例如,机器人设备120可以在指令序列内接收指令122以在稍后时间点执行一批任务。在该示例中,一旦接收到所有指令,机器人设备120就根据指令122执行由查询102指定的任务。在一些其它实例中,机器人设备120在接收到指令122时通过沿调整路径106B而不是初始路径106A跟随运动来执行由查询102指定的任务。这确保机器人设备120在执行任务时经历碰撞的概率降低。

在一些实现中,路径调整器114B可以使初始路径106A无效并完全生成新路径,而不是如上所述调整初始路径206A的一部分以生成调整路径106B。在这样的实现中,路径处理器114可以识别初始路径106A的边的数量受潜在碰撞的影响,并且确定受影响的边的数量满足预定阈值,例如,初始路径106A的所有边中大于50%的边受影响。路径调整器114B基于确定使初始路径106A无效,并在地图104内重新计算机器人设备120的新路径。例如,路径调整器114B可以识别查询102的起点和终点之间的全新路径,使得新路径和初始路径不共享中间节点的大部分,例如,如图2B所示的路径206A和206C。

在路径调整器114B重新计算新路径的一些实例中,路径调整器114B可以评估新路径以确定它是否实际表示与初始路径106A不同的路径。例如,路径调整器114B可以识别由新路径指定的边,而不是由初始路径106A指定的边并将新边的数量与阈值进行比较。如果新边的数量超过阈值,例如,新路径的边中大于50%的新边,则路径调整器114B确定新计算的路径实际上表示与初始路径106A不同的新路径。

图2A-2B举例说明PRM内机器人的动态路径调整。在所描绘的示例中,地图201指示与机器人设备(例如,机器人设备120)在物理区域内的潜在移动相关联的节点。地图201可以是概率路线图(PRM)。地图201还指示连接地图201内的两个或多个节点的边。地图201还指示限制机器人设备在物理区域内移动的障碍物202A和202B。

该示例示出了系统100为预期在起点204A和终点204B之间行进的机器人设备确定的地图201内的路径206。在该示例中,路径206由九个节点(包括表示起点和终点的两个节点)和八条沿路径206连接节点的边定义。如图2A所示,基于地图201内的节点的布置以及障碍物202A和202B的存在来识别路径206。

现在参照图2B,对路径206执行碰撞检测以识别与地图201内的路径206相关联的任何潜在碰撞。该示例示出已经识别出潜在的碰撞,由表示沿路径206行进的机器人设备可能与另一对象碰撞的物理区域的碰撞区域208表示。碰撞区域208表示地图(例如,PRM)中边的扫描体积和一个或多个障碍物的体积(例如,静态障碍物的静态体积或沿移动障碍物路径的扫描体积)之间的重叠区域或其他碰撞区域。

如上文参照图1所讨论的,系统100基于确定对应边的扫描体积轮廓与可移动对象或在空间中移动的另一机器人的扫描体积轮廓重叠来识别潜在碰撞和碰撞区域208。例如,定义碰撞区域208的区域可以表示在空间中移动的两个机器人的地图(例如,PRM)中的对应边的扫描体积轮廓之间的重叠量。

然后,系统100基于碰撞区域208识别路径206的受影响节点和/或边。在图2B所示的示例中,受影响的节点是路径206中落在碰撞区域208内的节点,并且受影响的边是与受影响的节点连接的路径206的边。在其他示例中,在碰撞区域208不包含任何节点的情况下,系统100识别路径206的受影响边,其表示与碰撞区域208重叠的路径206的边。在一些其他示例中,受影响的节点还可以是在距碰撞区域208的边界的阈值距离内(例如,在距边界一米内)的节点。与受影响节点相关联的边也被识别,以确定要对路径206进行的调整,以避免碰撞区域208。如图2B所示,两个节点和七个相关联的边被识别为受到碰撞区域208的影响。

在图2B所示的示例中,系统100识别地图201内的路径206的替代路径,并确定路径206B表示最佳替代无碰撞路径,如表212所示。在此示例中,系统100确定路径206B是相对于替代路径206B和206C的最佳路径,因为它是从起点204A到终点204B的最短路径。路径206A-C表示到路径206的替代路径,即,物理区域内起点和终点之间的不同路径。如图2B所示,系统100识别路径206A-C,因为路径206A-C指定了避免碰撞区域208的运动,从而在机器人设备沿着特定路径在起点和终点之间行进时降低可能碰撞的可能性。

系统100评估路径206A-C中的每一个以确定要选择作为路径206的最合适替代的路径。在图2B所示的示例中,路径评估的结果由表212中指定的路径得分表示。在本例中,路径得分表示每个路径的相对评估。例如,较高的路径得分可以指示对应路径是路径206相对于其他替代路径更强的替代路径。

在图2B所示的示例中,路径206B被识别为具有最高路径得分“0.87”,其随后被用于选择路径206B作为路径206的替代。在该示例中,路径206B被确定为具有最高的路径得分,因为它是避免碰撞区域208的起点和终点之间的最短替代路径。在其它实例中,其它类型的评价准则可用于计算路径得分并从多个替代路径中选择特定替代路径。作为示例,此类评估准则可以包括路径中包括的多个边、与沿路径行进相关联的运动复杂性、或边或节点到碰撞区域的接近度等。

尽管图2B描绘了识别三个替代路径206A-C的系统100,但在一些实现中,系统100仅识别原始路径206的下一最佳替代路径,而不识别多个可能替代路径。在这样的实现中,系统100识别受碰撞区域208影响的原始路径206的一部分,并且调整该部分路径而不重新计算新的替代路径。例如,系统100调整预测与碰撞区域208交互的原始路径205的部分,并重新路由路径以形成路径206B。在此示例中,系统100识别为选择替代路径206B而不计算或识别替代路径206A和206C以提高效率和/或减少与路径调整相关联的计算负担。

图3示出生成扫描体积轮廓数据116B的示例。如上所述,路线图生成器112在接收机器人设备执行任务的查询之前,在运动规划处理的构建阶段期间生成扫描体积轮廓数据116B。在一些实例中,路线图生成器112在地图(例如,PRM)生成过程期间生成扫描体积轮廓数据116B,作为对机器人设备可以行进的物理区域识别节点和边。在其它实例中,扫描体积轮廓数据116B是在地图(例如,PRM)生成处理之后但是在上面参照图1描述的路径调整技术之前生成的。例如,一旦已经生成了地图(例如,PRM),路线图生成器112就可以接收表示机器人设备的运动属性的数据,这些数据随后被映射或投影到地图以识别与地图的每个边相关联的预测运动的扫描体积轮廓,如下所述。

在图3所示的示例中,路线图生成器112接收基线地图302作为输入。地图302可以是概率路线图。路线图生成器112识别地图302内的节点,例如“A”、“B”、“C”和“D”,以及与识别的节点相关联的边,例如“AB”、“AC”、“CB”、“CD”、“BD”。

路线图生成器112为地图302内的每个识别出的边确定扫描体积轮廓。在该示例中,路线图生成器112识别边“AB”的扫描体积轮廓306、边“AC”的扫描体积轮廓308、边“BD”的扫描体积轮廓312、边“CB”的扫描体积轮廓314和边“CD”的扫描体积轮廓316。路线图生成器112通过考虑影响机器人在空间中运动的各种因素生成扫描体积轮廓306、308、312、314、316。例如,路线图生成器112可以考虑机器人设备的大小和形状,以及机器人在空间中行进时的不同配置(姿势)。

路线图生成器112通过沿对应边投影机器人的运动来生成扫描体积轮廓306、308、312、314、316中的每一个。作为示例,路线图生成器112可以确定机器人沿每个边的三维运动轮廓,在地图302中沿边移动时计算该轮廓的范围,和/或确定移动机器人轮廓将经过的所有体素。

一旦生成,扫描体积轮廓306、308、312、314、316可以基于计算的扫描轮廓的类型以不同的数据格式存储。在一些实现中,扫描体积轮廓被存储为体素集合,表示机器人沿着特定边的三维运动轮廓。在其他一些实现中,扫描体积轮廓被存储为简化的二维位置,空间的整个垂直区域被认为可能被机器人占据。图2D中所示的扫描体积轮廓的二维图示是为了清楚起见,尽管系统100存储扫描体积轮廓以表示实际的三维位置数据。

特定边的特定边扫描体积轮廓可以表示机器人设备在沿着特定边行进时将通过的总体积。例如,该系统可以确定机器人设备的3D轮廓,然后将扫描体积确定为3D轮廓在沿着特定边移动时在任意点处将被3D轮廓接触或包围的体素的总和。扫描体积可以使用各种运动评估技术来识别,包括涉及凸生成器、多面体近似、沿轨迹的运动采样、维数变换矩阵等的技术。

路线图生成器112生成表318以将每个边映射到其对应的扫描体积轮廓。表318还包括与沿每个边的运动相关联的定时信息,诸如机器人设备沿边行进的估计持续时间。作为其他示例,表318还可以来源用于预测估计持续时间的数据,诸如机器人规格,例如机器人姿势关节配置、机器人使用的运动类型、与边距离相关联的测量、速度估计或空间信息,例如表面类型、摩擦系数等。表318可以存储在扫描体积轮廓数据116B中并且例如在碰撞检测和路径调整处理期间分别由碰撞检测器116和路径调整器114B访问,如上文参照图1所讨论的。

图4示出用于检测两个机器人的规划路径之间的潜在碰撞的技术的示例。在该示例中,碰撞检测器116评估在重叠时间段内在相同物理区域中行进的两个机器人设备的地图(例如,PRM)。碰撞检测器116基于如上文参照图1所讨论的评估来确定机器人设备之间是否可能发生碰撞。

在图4所示的示例中,碰撞检测器116接收机器人设备120A的地图402A(例如,PRM)、扫描体积轮廓数据404A和路径406A,以及机器人设备120B的地图402B(例如,PRM)、扫描体积轮廓数据404B和路径406B。在此示例中,碰撞检测器116执行碰撞检测以确定当机器人设备120A和120B沿着其相应路径406A和406B行进时是否可能在它们之间产生碰撞。

如图4所示,碰撞检测器116逐边地执行碰撞检测,即,通过比较对应于重叠时间帧的路径406A和406B的边。例如,在步骤412,碰撞检测器116比较路径406A的边1A和路径406B的边1B,以比较机器人设备120A和120B在时间点T1和T2之间的运动。在这种情况下,碰撞检测器116确定不会发生碰撞,因为边1A和1B的扫描体积轮廓之间不存在重叠。

在步骤414,碰撞检测器116比较路径406A的边2A和路径406B的边1B,以比较机器人设备120A和120B在时间点T2和T3之间的运动。在此实例中,因为与路径406A和406B相关联的时序数据指示机器人设备120B穿过边1B的时间与机器人设备120A穿过边1A和2A的时间大致相同,将边2A与边1B进行比较。对此,碰撞检测器116可以考虑在确定应进行碰撞检测比较的路径之间的对应边时与穿越路径相关联的速度。

如图4所示,在步骤414,碰撞检测器116确定由于边2A和1B的扫描体积轮廓之间存在重叠而可能发生碰撞。碰撞检测器116确定可能需要对路径406A进行路径调整,并且在步骤416停止进一步的边比较,直到发生对路径406A内边2A的路径调整为止。碰撞检测器116然后向路径处理器114提供路径调整指示,路径处理器114执行如上文参照图2A-2B所讨论的路径调整。

在一些实现中,在调整路径之后,碰撞检测器116重复图4所示的碰撞检测程序。例如,在调整路径406A以避免在步骤414识别的可能碰撞之后,碰撞检测器116可以生成用于重新评估边的信号。在这种实现中,碰撞检测器116递归地执行调整路径406A和路径406B之间的边到边比较,以确认调整路径406A不涉及可能碰撞。例如,碰撞检测器116可以在时间点T2和T3期间以调整边重复步骤414,以确认碰撞不再可能发生。在一些实例中,在多个替代路径可用于路径调整的情况下,碰撞检测器116可以对每个替代路径执行比较技术以确定替代路径中的哪一个(如果有的话)可能涉及碰撞。

路径处理器114可以使用各种技术基于由两个或多个地图(例如,PRM)指定的路径的比较来调整路径。在一些实例中,路径处理器114仅相对于另一地图调整由地图指定的一个路径。在图4所示的示例中,路径处理器114可以调整路径406A,但保持路径406B不变,以防止在机器人设备120A和120B之间发生碰撞的可能性。在其它实例中,路径处理器114可以将多个路径调整到足以防止检测到的碰撞。在图4所示的示例中,路径处理器114可以将路径406A和406B两者调整的量小于仅调整单个路径以避免碰撞所需的量。

在一些实现中,路径处理器114可以采用使其能够确定要调整哪条路径和/或应该调整路径的程度的优先级方案。优先级方案可用于确保在碰撞防止期间不调整更高优先级的路径。例如,如果机器人设备120A被识别为比机器人设备120B更高优先级的对象,则在路径调整期间,路径处理器114可以由于其更高优先级而保持路径406A不变,但仅调整路径406B,以便防止在步骤414处检测到的潜在碰撞。

图5示出用于动态调整机器人的规划路径的处理500的示例。简言之,处理500可以包括以下操作:生成表示机器人在物理区域内要行进的可能路径的第一概率路线图(510);在第一概率路线图内确定机器人的初始路径(520);获得指示表示可移动对象在物理区域内要行进的路径的第二概率路线图的数据(530);检测与机器人的初始路径的边相关联的潜在碰撞(540);以及确定在概率路线图内机器人的调整路径(550)。

通常,参照系统100来描述处理500,尽管其他类型的运动规划系统可以被配置为执行处理500的操作。例如,在一些实现中,处理500的操作由使用概率运动规划来比较两个或多个地图(例如,PRM)的单个边的扫描体积轮廓的系统来执行。另外,处理500的操作可以由系统100的不同组件执行,系统100的不同组件可以在一个或多个计算设备上实现。在其它实现中,在远程服务器系统上实现系统100的情况下,处理500的操作可以由远程服务器系统执行。

更详细地,处理500包括生成表示机器人在物理区域内行进的可能路径的第一概率路线图的操作(510)。例如,路线图生成器112生成表示机器人设备120在物理区域内行进的可能路径的地图104。地图104可以指定每个连接地图104的节点的边的集合。地图104可以与其每个边的扫描体积轮廓相关联。例如,在图3所示的示例中,边“AB”、“AC”、“CB”、“CD”和“BD”分别与扫描体积轮廓306、308、314、316和312相关联。

如上所述,扫描体积轮廓数据116B包括特定边扫描体积轮廓,表示与PRM内的单个边相关联的机器人设备120在物理空间中的最大可穿越移动。在一些实例中,扫描体积轮廓被存储为二维扫描体积图像的集合,表示机器人设备120在物理空间内可穿越的最大区域。在其他实例下,扫描体积轮廓存储为三维扫描体积体素的集合,表示机器人设备在物理空间内最大可穿越体积。根据运动规划所需的复杂性,系统100可以使用表示扫描体积轮廓的二维图像来执行碰撞检测(如图4所示),或者,使用表示扫描体积轮廓的三维体素来执行更精确但计算要求更高的碰撞检测。

处理500包括确定第一地图(例如,PRM)内机器人的初始路径的操作(520)。例如,路径生成器114A可以确定地图104内机器人设备120的初始路径106A。初始路径106A可以指定来自地图104内的边中的边的子集,表示机器人设备120从查询102中指定的起点和终点的运动。例如,在图2A所示的示例中,路径206指定从起点204A到终点204B的八个连接边。

处理500包括获得表示物理区域内可移动对象要行进的路径的第二地图(例如,PRM)的数据的操作(530)。例如,碰撞检测器116可以获得区域数据116A,指示表示物理区域内可移动对象要行进的路径的第二地图。第二地图可以包括连接第二地图内的节点的边的第二集合以及对边的第二集合中包括的每个边可移动对象的扫描体积轮廓。可移动对象可以表示在规划机器人设备120在同一物理区域中行进的时间段内预期在物理区域中行进的另一机器人设备。例如,在图4所示的示例中,碰撞检测器116相对于机器人设备120A的地图402A和扫描体积轮廓数据404A评估机器人设备120B的地图402B和扫描体积轮廓数据404B。

处理500包括检测与机器人的初始路径的边相关联的潜在碰撞的操作(540)。例如,碰撞检测器116可以生成指示在初始路径206A的部分中检测到的潜在碰撞的碰撞数据108。可以基于比较机器人设备120和可移动对象的扫描体积轮廓数据并识别重叠来检测潜在碰撞。如上文参照图4所讨论的,重叠表示机器人设备120和可移动对象将在相同时间点周围遍历到物理区域的相同区域的可能性。在图4所示的示例中,碰撞检测器116基于确定地图402A内的边2A具有与地图402B内的边1B的扫描体积轮廓重叠的扫描体积轮廓,在步骤414检测潜在碰撞。

处理500包括确定地图内机器人的调整路径的操作(550)。例如,路径调整器114B确定地图104内机器人设备120的调整路径106B。调整路径106B可以指定与初始路径106A不同的边的子集,以避免在步骤540中检测到的潜在碰撞。例如,在图2A-2B所示的示例中,调整路径206B不包括被识别为受碰撞区域208影响的初始路径206A的边。在该示例中,调整路径206B还共享某些边,诸如将起点204A连接到中间节点的边,以及将中间节点连接到终点204B的边。对此,路径调整器115B调整初始路径206A的部分而不必重新计算全新路径。

在一些实现中,路径调整器114B基于从多个替代路径的集合113中选择替代路径来确定调整路径106B。例如,在图2B所示的示例中,通过从被标识为路径206的替代路径的三个替代路径206A、206B和206C中选择调整路径206B来确定调整路径。在该示例中,基于指示路径206B是三个替代路径中的最短路径的路径得分,选择路径206B作为调整路径。如图2B所示,路径206A-206C中的每一个与路径206共享相同的起点204A和终点204B,但是包括表示避免潜在碰撞的替代遍历路径的不同中间节点和边的集合。

在一些实现中,路径调整器114B可以使初始路径106A无效并完全生成新路径,而不是如上所述调整初始路径206A的部分以生成调整路径106B。在这样的实现中,路径处理器114可以识别初始路径106A受潜在碰撞影响的边的数量,并且确定受影响的边的数量满足预定阈值,例如,初始路径106A的所有边中大于50%的边受影响。路径调整器114B基于确定使初始路径106A无效,并在地图104内重新计算机器人设备120的新路径。例如,路径调整器114B可以识别查询102的起点和终点之间的全新路径,使得新路径和初始路径不共享中间节点的大部分,例如,如图2B所示的路径206A和206C。

在路径调整器114B重新计算新路径的一些实例中,路径调整器114B可以评估新路径以确定它是否实际表示与初始路径106A不同的路径。例如,路径调整器114B可以识别不是由初始路径106A指定的由新路径指定的边,并将新边的数量与阈值进行比较。如果新边的数量超过阈值,例如,新路径的边中大于50%的新边,则路径调整器114B确定新计算的路径实际上表示与初始路径106A不同的新路径。

图6是系统600的示意图。根据一些实现,系统600可用于执行与先前描述的任何计算机实现方法相关联的描述的操作。在一些实现中,本说明书中描述的计算系统和设备以及功能操作可以在数字电子电路、具体体现的计算机软件或固件、计算机硬件中实现,包括本说明书中公开的结构(例如,系统600)及其结构等效物,或其中一个或多个的组合。系统600旨在包括各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机,包括安装在模块化车辆的基本单元或吊舱单元上的车辆。系统600还可以包括移动设备,诸如个人数字助理、蜂窝电话、智能手机和其他类似的计算设备。此外,系统可以包括便携式存储介质,诸如通用串行总线(USB)闪存驱动器。例如,USB闪存驱动器可以存储操作系统和其他应用。USB闪存驱动器可以包括输入/输出组件,诸如可以插入另一计算设备的USB端口的无线发送器或USB连接器。

系统600包括处理器610、存储器620、存储设备630和输入/输出设备640。处理器610、存储器620、存储设备630和输入/输出设备640中的每一个使用系统总线650互连。处理器610能够处理用于在系统600内执行的指令。处理器可以使用多种架构中的任何一种来设计。例如,处理器610可以是CISC(复杂指令集计算机)处理器、RISC(简化指令集计算机)处理器或MISC(最小指令集计算机)处理器。

在一个实现中,处理器610是单线程处理器。在另一实现中,处理器610是多线程处理器。处理器610能够处理存储在存储器620或存储设备630上的指令,以在输入/输出设备640上显示用于用户界面的图形信息。

存储器620在系统600内存储信息。在一个实现中,存储器620是计算机可读介质。在一个实现中,存储器620是易失性存储器单元。在另一实现中,存储器620是非易失性存储器单元。

存储设备630能够为系统600提供大容量存储。在一个实现中,存储设备630是计算机可读介质。在各种不同的实现方式中,存储设备630可以是软盘设备、硬盘设备、光盘设备或磁带设备。

输入/输出设备640为系统600提供输入/输出操作。在一个实现中,输入/输出设备640包括键盘和/或指示设备。在另一实现中,输入/输出设备640包括用于显示图形用户界面的显示单元。

所描述的特征可以在数字电子电路中,或者在计算机硬件、固件、软件中,或者在它们的组合中实现。装置可以在计算机程序产品中实现,计算机程序产品具体地体现在信息载体中,例如,在机器可读存储设备中,用于由可编程处理器执行;并且方法步骤可以由执行指令程序的可编程处理器来执行,通过操作输入数据并生成输出执行实现描述的功能。所描述的特征可以有利地实现在可编程系统上可执行的一个或多个计算机程序中,所述可编程系统包括至少一个可编程处理器,所述可编程处理器耦合到数据存储系统、至少一个输入设备和至少一个输出设备,以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到数据存储系统、至少一个输入设备和至少一个输出设备。计算机程序是指令的集合,可以在计算机中直接或间接地用于执行特定活动或产生特定结果。计算机程序可以用任何形式的编程语言编写,包括编译或解释语言,并且可以用任何形式部署,包括作为独立程序或作为模块、组件、子程序或适合在计算环境中使用的其他单元。

举例来说,用于执行指令程序的合适处理器包括通用和专用微处理器,以及任何类型计算机的单一处理器或多个处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储器。通常,计算机还将包括用于存储数据文件的一个或多个大容量存储设备,或操作地耦合以与之通信;此类设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和光盘。适于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。处理器和存储器可以由ASIC(专用集成电路)补充或并入ASIC中。

为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和指示设备(例如,鼠标或轨迹球,用户可通过其向计算机提供输入)的计算机上实现这些特征。此外,这些活动可以通过触摸屏平板显示器和其他适当的机制来实现。

这些特征可以实现在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器或互联网服务器)或包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机)或者包括它们的任意组合的计算系统中。系统的组件可以通过数字数据通信的任何形式或介质(诸如通信网络)连接。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、对等网络(具有自组织或静态成员)、网格计算基础设施和互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互,诸如如上所述。客户端和服务器之间的关系通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。

尽管本说明书包含许多特定实现细节,但是这些细节不应被解释为对任何发明或所要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的上下文中在本说明书中描述的特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实现中或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为以特定组合起作用并且甚至最初如此宣称,但是在一些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变型。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或打包成多个软件产品。

已经描述了许多实施例。然而,应当理解,可以在不脱离本发明的精神和范围的情况下进行各种修改。此外,图中描述的逻辑流程不需要所示的特定顺序或次序来实现期望的结果。另外,可以从所描述的流程中提供其他步骤,或者可以删除步骤,并且可以将其他组件添加到所描述的系统中或者从所描述的系统中移除。因此,其他实施例在以下权利要求的范围内。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有通过至少一个线形连接元件连接的外壳的机器人臂

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!