用于机器人运动规划的碰撞检测制造技术

技术编号:27946216 阅读:30 留言:0更新日期:2021-04-02 14:29
用于机器人运动规划的碰撞检测有利地采用机器人、机器人将在其中操作的环境中的持久障碍物和瞬时障碍物的数据结构表示。数据结构可以采取分层数据结构(例如八叉树、体或盒的集合(例如,轴对齐的包围盒(AABB)的树、有向(非轴对齐的)包围盒的树或球体树))或非分层数据结构(例如欧几里得距离场)的形式,这能够提高计算效率、降低存储器要求和较低功耗。碰撞检测能够采取独立函数的形式,提供能够在执行各种不同运动规划算法中的任何一种时采用的布尔结果。

【技术实现步骤摘要】
【国外来华专利技术】用于机器人运动规划的碰撞检测
本公开内容总体涉及机器人运动规划,并且具体地,涉及经由处理器电路执行碰撞检测以产生运动规划从而驱动机器人等的系统和方法。
技术介绍
相关技术的描述运动规划是机器人控制和机器人技术中的基本问题。运动计划完全指定机器人从起始状态到目标状态能够遵循但通常不与操作环境中的任何障碍物碰撞或者与操作环境中的任何障碍物碰撞的可能性降低的路径。对运动规划的挑战涉及即使在环境的特性改变时也能够以非常快的速度执行运动规划。例如,诸如环境中的一个或更多个障碍物的位置或形状的特性可能随时间而改变。又例如,诸如机器人自身的一部分的位置或形状的特性可能随着时间而改变,例如臂工具的端部或端部执行器能够具有抓握配置和未抓握配置。挑战还包括使用相对低成本的设备、以相对低的能量消耗和有限的存储量(例如存储器电路,诸如在处理器芯片电路上的存储器电路)来执行运动规划。
技术实现思路
使用各种各样的算法来解决运动规划问题。这些算法中的每一个通常需要能够确定机器人的给定姿势或从一个姿势到另一个姿势的运动是否导致与机器人自身或与环境中的障碍物的碰撞。本文描述的碰撞检测硬件、软件和/或固件能够确定或计算单个机器人姿势或从一个姿势(例如开始姿势)到另一个姿势(例如结束姿势)的机器人运动是否导致机器人与其自身或与机器人操作的当前环境中的任何障碍物碰撞。环境可以包括障碍物,即呈现碰撞风险的物体(例如无生命物体、包括人和其他动物的有生命的物体)。环境可以包括或者可以不包括一个或更多个目标物体,即机器人要与之接合的物体。对于障碍物中的一些,在配置运动规划器的模型或计算电路的时间(该时间被命名为配置时间),由障碍物占据的相应体积是已知的,并且期望通过机器人操作的整个过程(被命名为运行时间的时间)中保持固定或不变。这些障碍物被命名为持久障碍物,因为在配置时间期间障碍物占据的体积是已知的,并且预期在运行时间期间保持固定或不变。对于其他障碍物,障碍物占据的相应体积在配置时是未知的,并且仅在运行时确定。因为在配置时间期间(多个)障碍物占据的体积是未知的,因此这些障碍物被命名为瞬时障碍物。由这些暂时障碍物中的一个或更多个占据的相应体积可以是固定的或不移动的或随时间不改变的,并且被命名为静态障碍物。由这些暂时障碍物中的一个或更多个占据的相应体积可以是移动的或随时间改变的,并且被命名为动态障碍物。本文描述的碰撞检测硬件、软件和/或固件能够被实现为由各种不同的运动规划算法调用或触发的子例程或函数,运动规划算法例如概率道路图(PRM)、快速探测随机树(RRT)、RRT*、双向RRT等算法。本文描述的碰撞检测硬件、软件和/或固件还能够用于通过快速评估许多候选抓握姿势来加速抓握规划。本文描述的各实施方式通常采用两个或三个配置时间输入:i)机器人的运动学模型;ii)所述环境中的持久障碍物的表示,其在配置具有它们在环境中占据的已知体积;以及可选地运动细分粒度值或规格。机器人的运动学模型包括对机器人的多个关节中的任何关节的约束(例如肘关节的最小和最大角度)、从机器人的每个连杆到机器人的相应母连杆的变换、机器人的每个关节的轴线、以及机器人的每个连杆的几何形状的规格。本文描述的各实施方式通常采用两个或三个运行时间输入:a)开始姿势;b)可选地,结束姿势(如果运动正在被评估);以及环境中的在运行时具有它们在环境中占据的已知体积,并且在配置时未知它们在环境中占据的体积的瞬时障碍物的表示。瞬时障碍物可以是静态的(即,在相关或运行时间段期间固定或不移动或不改变形状)或动态的(即,在相关或运行时间段的至少一部分期间移动或改变形状)。对于具有数量D个自由度的机器人,姿势可以被指定为D元组,其中元组的每个元素指定该自由度(关节)的位置或旋转。用于碰撞检测的高效硬件的实施能够经由仔细关注表示物体、姿势和/或运动的数据结构的选择来实现。良好选择的数据结构能够有利地减少存储所需的存储器的量、碰撞检测所需的硬件的量、执行碰撞检测的延时以及功耗。本文中描述了多个可能合适的示例性数据结构,尽管本领域技术人员将认识到,基于本文的教导可以使用其他结构。存在多种选项,每种选项与碰撞检测的延时、构造数据结构的延时、以及数据结构对所表示的物体的几何结构的适合性之间的相应权衡相关联。一种用于机器人运动规划的基于处理器的系统的至少一个部件的操作方法可以概括为包括:对于机器人的至少第一数量的姿势中的每一个,通过至少一组电路至少部分地基于机器人的数据结构表示来确定机器人的任何部分是否将与机器人的另一部分碰撞;对于机器人的至少第二数量的姿势中的每一个,通过至少一组电路至少部分地基于环境中的一组持久障碍物的数据结构表示来确定机器人的任何部分是否将与机器人在其中操作的环境中的任何持久障碍物碰撞,所述数据结构表示包括第一数量的障碍物的表示,对于第一数量的障碍物,所述环境中由第一数量的障碍物中的每一个占据的相应体积在配置时间是已知的;对于所述机器人的至少第三数量的姿势中的每一个,通过至少一组电路至少部分地基于所述环境中的一组瞬时障碍物的数据结构表示来确定机器人的任何部分是否将与环境中的任何瞬时障碍物碰撞,数据结构表示包括环境中的第二数量的障碍物的表示(如果有),对于第二数量的障碍物,在所述环境中由第二数量的障碍物中的每一个占据的相应体积在运行时间的至少一部分期间是已知的,并且对于第二数量的障碍物,在所述环境中由障碍物中的每一个占据的相应体积在配置时间是未知的;以及提供表示是否已经针对姿势中的至少一个检测到碰撞的信号。至少部分地基于机器人的数据结构表示来确定机器人的任何部分是否将与机器人的另一部分碰撞可以包括确定在第一姿势中,机器人附肢的至少一部分是否将与机器人附肢的另一部分碰撞。至少部分地基于机器人的数据结构表示来确定机器人的任何部分是否将与机器人的另一部分碰撞可以包括确定在第一姿势与第二姿势之间移动时,机器人附肢的至少一部分是否将与机器人附肢的另一部分碰撞。至少部分地基于环境中的一组持久障碍物的数据结构表示来确定机器人的任何部分是否将与机器人在其中操作的环境中的任何持久障碍物碰撞可以包括确定在第一姿势中,机器人附肢的至少一部分是否将与环境中的任何持久障碍物碰撞。至少部分地基于环境中的一组持久障碍物的数据结构表示来确定机器人的任何部分是否将与机器人在其中操作的环境中的任何持久障碍物碰撞可以包括确定在第一姿势与第二姿势之间移动时,机器人附肢的至少一部分是否将与环境中的任何持久障碍物碰撞。至少部分地基于环境中的一组瞬时障碍物的数据结构表示来确定机器人的任何部分是否将与机器人在其中操作的环境中的任何瞬时障碍物碰撞可以包括确定在第一姿势中,机器人附肢的至少一部分是否将与环境中的任何瞬时障碍物碰撞。至少部分地基于环境中的一组瞬时障碍物的数据结构表示来确定机器人的任何部分是否将与机器人在其中操作的环境中的任何瞬时障碍物碰撞可以包括确定在第一姿势与第二姿势之间移动时机器人附肢的至少一部分是否将与环境中的任何瞬时障碍物碰撞。该方法可以进一步包括在配置时间期间,对于由运动学模型表示的机器人本文档来自技高网...

【技术保护点】
1.一种用于机器人运动规划的基于处理器的系统的至少一个部件的操作的方法,所述方法包括:/n对于机器人的至少第一数量的姿势中的每一个,通过至少一组电路至少部分地基于所述机器人的数据结构表示来确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞;/n对于所述机器人的至少第二数量的姿势中的每一个,通过至少一组电路至少部分地基于环境中的一组持久障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述机器人在其中操作的环境中的任何持久障碍物碰撞,所述数据结构表示包括第一数量的障碍物的表示,对于所述第一数量的障碍物,在所述环境中由所述第一数量的障碍物中的每一个占据的相应体积在配置时间是已知的;/n对于所述机器人的至少第三数量的姿势中的每一个,通过至少一组电路至少部分地基于所述环境中的一组瞬时障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述环境中的任何瞬时障碍物碰撞,所述数据结构表示包括所述环境中存在时第二数量的障碍物的表示,对于所述第二数量的障碍物,在所述环境中由所述第二数量的障碍物中的每一个占据的相应体积在运行时间的至少部分期间是已知的,并且对于所述第二数量的障碍物,在所述环境中由所述障碍物中的每一个占据的相应体积在所述配置时间是未知的;以及/n提供表示是否已经针对所述姿势中的至少一个检测到碰撞的信号。/n...

【技术特征摘要】
【国外来华专利技术】20180823 US 62/722,0671.一种用于机器人运动规划的基于处理器的系统的至少一个部件的操作的方法,所述方法包括:
对于机器人的至少第一数量的姿势中的每一个,通过至少一组电路至少部分地基于所述机器人的数据结构表示来确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞;
对于所述机器人的至少第二数量的姿势中的每一个,通过至少一组电路至少部分地基于环境中的一组持久障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述机器人在其中操作的环境中的任何持久障碍物碰撞,所述数据结构表示包括第一数量的障碍物的表示,对于所述第一数量的障碍物,在所述环境中由所述第一数量的障碍物中的每一个占据的相应体积在配置时间是已知的;
对于所述机器人的至少第三数量的姿势中的每一个,通过至少一组电路至少部分地基于所述环境中的一组瞬时障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述环境中的任何瞬时障碍物碰撞,所述数据结构表示包括所述环境中存在时第二数量的障碍物的表示,对于所述第二数量的障碍物,在所述环境中由所述第二数量的障碍物中的每一个占据的相应体积在运行时间的至少部分期间是已知的,并且对于所述第二数量的障碍物,在所述环境中由所述障碍物中的每一个占据的相应体积在所述配置时间是未知的;以及
提供表示是否已经针对所述姿势中的至少一个检测到碰撞的信号。


2.根据权利要求1所述的方法,其中,至少部分地基于所述机器人的数据结构表示来确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞包括确定在第一姿势中,机器人附肢的至少一部分是否将与所述机器人附肢的另一部分碰撞。


3.根据权利要求1所述的方法,其中,至少部分地基于所述机器人的数据结构表示来确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞包括确定在第一姿势与第二姿势之间移动时,机器人附肢的至少一部分是否将与所述机器人附肢的另一部分碰撞。


4.根据权利要求1所述的方法,其中,至少部分地基于所述环境中的一组持久障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述机器人在其中操作的环境中的任何持久障碍物碰撞包括确定在第一姿势中,机器人附肢的至少一部分是否将与所述环境中的任何持久障碍物碰撞。


5.根据权利要求1所述的方法,其中,至少部分地基于所述环境中的一组持久障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述机器人在其中操作的环境中的任何持久障碍物碰撞包括确定在第一姿势与第二姿势之间移动时,机器人附肢的至少一部分是否将与所述环境中的任何持久障碍物碰撞。


6.根据权利要求1所述的方法,其中,至少部分地基于所述环境中的一组瞬时障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述机器人在其中操作的环境中的任何瞬时障碍物碰撞包括确定在第一姿势中,机器人附肢的至少一部分是否将与所述环境中的任何瞬时障碍物碰撞。


7.根据权利要求1所述的方法,其中,至少部分地基于所述环境中的一组瞬时障碍物的数据结构表示来确定所述机器人的任何部分是否将与所述机器人在其中操作的环境中的任何瞬时障碍物碰撞包括确定在第一姿势与第二姿势之间移动时,机器人附肢的至少一部分是否将与所述环境中的任何瞬时障碍物碰撞。


8.根据权利要求1所述的方法,还包括:
在配置时间期间,
对于由运动学模型表示的机器人,生成所述机器人的数据结构表示;以及
对于所述环境,生成所述环境中的一组持久障碍物的数据结构表示,所述数据结构表示包括第一数量的障碍物的表示,对于所述第一数量的障碍物,在所述环境中由所述第一数量的障碍物中的每一个占据的相应体积在配置时间是已知的。


9.根据权利要求8所述的方法,其中,生成所述环境中的一组持久障碍物的数据结构表示包括生成包围体的分层结构。


10.根据权利要求9所述的方法,其中,生成包围体的分层结构包括生成以三角形网格作为叶节点的包围盒的分层结构。


11.根据权利要求9所述的方法,其中,生成包围体的分层结构包括生成球体的分层结构。


12.根据权利要求9所述的方法,其中,生成包围体的分层结构包括生成k叉球体树。


13.根据权利要求9所述的方法,其中,生成包围体的分层结构包括生成轴对齐的包围盒的分层结构。


14.根据权利要求9所述的方法,其中,生成包围体的分层结构包括生成有向包围盒的分层结构。


15.根据权利要求8所述的方法,其中,生成所述环境中的一组持久障碍物的数据结构表示包括生成八叉树,所述八叉树存储表示所述环境中的一组持久障碍物的体素占用信息。


16.根据权利要求8所述的方法,其中,生成所述机器人的数据结构表示包括生成k叉树。


17.根据权利要求8所述的方法,其中,生成所述机器人的数据结构表示包括针对所述机器人的多个连杆中的每一个生成相应的k叉树。


18.根据权利要求8所述的方法,其中,生成所述机器人的数据结构表示包括针对所述机器人的多个连杆中的每一个生成相应的8叉树。


19.根据权利要求8所述的方法,其中,生成所述机器人的数据结构表示包括针对所述机器人的多个连杆中的每一个生成树深度等于或大于四的相应8叉树。


20.根据权利要求8所述的方法,其中,生成所述机器人的数据结构表示包括针对所述机器人的多个连杆中的每一个生成相应的k叉树,其中,所述k叉树的每个节点是球体,如果球体的任何部分被占用,则相应球体被识别为被占用。


21.根据权利要求1所述的方法,还包括:
在所述运行时间期间,
对于所述环境,生成所述环境中的一组瞬时障碍物的数据结构表示,所述数据结构表示包括存在时所述瞬时障碍物的表示,对于所述瞬时障碍物,在所述环境中由所述第二数量的障碍物中的每一个占据的相应体积在所述运行时间的至少部分期间是已知的,并且对于所述瞬时障碍物,在所述环境中由所述障碍物中的每一个占据的相应体积在所述配置时间是未知的,以及
其中,确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞、确定所述机器人的任何部分是否将与环境中的任何持久障碍物碰撞以及确定所述机器人的任何部分是否将与所述环境中的任何瞬时障碍物碰撞全部在所述运行时间期间进行。


22.根据权利要求21所述的方法,还包括:
接收表示所述环境中存在时瞬时障碍物的传感器信息;以及
将所述传感器信息转换成占用信息,并且其中:
生成所述环境中的一组瞬时障碍物的数据结构表示包括根据所述占用信息生成所述环境中的一组瞬时障碍物的数据结构表示。


23.根据权利要求1所述的方法,还包括:
接收运动学模型,所述运动学模型表示具有多个连杆和多个关节的机器人附肢形式的机器人,所述关节在相应的连杆对之间;
接收表示所述环境中的一组持久障碍物的相应位置的占用信息;以及
接收表示要在运动规划中采用的运动细分粒度的至少一个值。


24.根据权利要求23所述的方法,其中,接收所述运动学模型、接收所述占用信息和接收表示运动细分粒度的至少一个值全部在所述配置时间期间进行,并且所述方法还包括:
在所述配置时间期间,基于所述机器人的运动学模型生成所述机器人的数据结构表示;以及
在所述配置时间期间,生成所述环境中的一组持久障碍物的数据结构表示,所述数据结构表示包括所述第一数量的障碍物的表示,对于所述第一数量的障碍物,在所述配置时间,在所述环境中由所述第一数量的障碍物中的每一个占据的相应体积。


25.根据权利要求24所述的方法,还包括:
在所述运行时间期间生成所述环境中的一组瞬时障碍物的数据结构表示,所述数据结构表示包括存在时所述瞬时障碍物的表示,对于所述瞬时障碍物,在所述运行时间的至少部分期间,在所述环境中由所述第二数量的障碍物中的每一个占据的相应体积是已知的,并且对于所述瞬时障碍物,在所述配置时间,在所述环境中由所述障碍物中的每一个占据的相应体积是未知的。


26.根据权利要求1所述的方法,其中,所述机器人包括机器人附肢,并且所述方法还包括:
针对所述机器人附肢在所述机器人附肢的第一姿势与所述机器人附肢的第二姿势之间的运动,计算所述机器人附肢的多个中间姿势,直到C空间中多对连续相邻姿势之间的尺寸满足针对所述运动细分粒度所接收的值为止,所述多个中间姿势在所述机器人附肢的C空间中在所述机器人附肢的第一姿势与第二姿势之间。


27.根据权利要求26所述的方法,其中,计算所述机器人附肢的多个中间姿势包括:
对于所述机器人附肢的关节中的每一个,在所述第一姿势与所述第二姿势中的关节的相应位置和方向之间进行插值以获得第n个中间姿势;以及
对于所述机器人附肢的关节中的每一个,在相应的第i次迭代的相应对最近相邻姿势中的关节的相应位置和方向之间迭代地插值,直到达到结束条件。


28.根据权利要求27所述的方法,其中,所述结束条件是满足运动细分粒度以获得第n个中间姿势的连续相邻姿势之间的距离,并且所述方法还包括:
对于迭代的次数,确定是否已经达到所述结束条件。


29.根据权利要求26所述的方法,还包括:
对于多个姿势中的每一个,对运动学机器人模型执行正向运动学计算以计算机器人附肢的每个连杆的多个变换。


30.根据权利要求1至29中任一项所述的方法,其中,以下中的至少一个包括基于分层表示或欧几里得距离场表示中的至少一个的确定:确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞、确定所述机器人的任何部分是否将与任何持久障碍物碰撞、或者确定所述机器人的任何部分是否将与任何瞬时障碍物碰撞。


31.一种生成用于机器人运动规划的碰撞评估的系统,所述系统包括:
至少一个处理器;
至少一种非暂时性处理器可读介质,其存储处理器可执行指令或数据中的至少一者,所述处理器可执行指令或数据在由所述至少一个处理器执行时,使得所述至少一个处理器:
对于机器人的至少第一数量的姿势中的每一个,至少部分地基于所述机器人的数据结构表示来确定所述机器人的任何部分是否将与所述机器人的另一部分碰撞;
对于所述机器人的至少第二数量的姿势中的每一个,至少部分地基于环境中的一组持久障碍物的数据结构表示来确定所述机器人的...

【专利技术属性】
技术研发人员:威廉·托马斯·弗洛伊德琼斯肖恩·迈克尔·默里乔治·迪米特里·科尼达里斯丹尼尔·杰里米·索林
申请(专利权)人:实时机器人有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1