用于优化机器人装置的急转弯的路线规划的系统和方法

文档序号:722635 发布日期:2021-04-16 浏览:10次 >En<

阅读说明:本技术 用于优化机器人装置的急转弯的路线规划的系统和方法 (System and method for optimizing route planning for sharp turns of a robotic device ) 是由 J-B·帕索 M·加尔穆勒维茨 于 2019-07-16 设计创作,主要内容包括:公开了用于优化机器人路线规划的系统和方法,涉及急转弯、狭窄通道和/或急转弯进入狭窄通道的自主导航。在执行这些操纵时,在包含以上任何一种情况的路线中导航的机器人都有与环境障碍物碰撞的风险。因此,在本领域内需要用于改善机器人路线规划的系统和方法,并且本文公开了这些系统和方法。(Systems and methods for optimizing robot routing involving sharp turns, narrow passageways, and/or autonomous navigation of sharp turns into narrow passageways are disclosed. In performing these maneuvers, robots that navigate in a route that includes any of the above situations run the risk of colliding with environmental obstacles. Accordingly, there is a need in the art for systems and methods for improving robot routing, and these systems and methods are disclosed herein.)

用于优化机器人装置的急转弯的路线规划的系统和方法

本申请要求于2018年7月16日提交的申请号为62/698,438的美国临时专利申请的权益,该申请的全部公开通过引用并入本文中。

版权

该专利文件的公开的一部分包含受版权保护的材料。版权所有者不反对任何人以专利和商标局专利文件或记录中出现的方式对专利文件或专利公开进行影印,但在别的方面保留所有版权。

背景技术

技术领域

本申请总体上涉及机器人,并且更具体地涉及用于优化机器人装置的急转弯和/或狭窄通道的路线规划的系统和方法。

背景技术

当前,一些机器人可以自主地导航由操作员教导或预先编程到其中的路线,或者从操作员给予其的地图中学习的路线。这些路线在由操作员教导或预先编程给机器人时,可能不考虑机器人在自主操作时可能考虑的一些参数,诸如转弯半径、车轮的当前状态、传感器数据和/或机器人在具体位置处完成的任务。在一些情况下,可将路线提供给机器人而无需定位在路线附近的对象,其中,如果稍后在路线的导航期间大致接近路线处检测到对象,则路线可能潜在地需要优化。在一些情况下,机器人可以通过手动移动来学习路线,其中一些运动由于例如安全在自主操作期间可能无法重复。由于可能无法为机器人优化由机器人学习的路线,因此这些未优化的路线可能导致机器人在行进路线时与对象碰撞或卡住。

机器人地板清洁器是在复杂路线上导航的机器人的一个示例,该复杂路线可包括急拐角和狭窄通道,从而使机器人难以导航由操作员学习的未优化的路线。机器人的物理尺寸和属性可能限制其在不与环境中对象碰撞的情况下围绕角落和狭窄通道导航的能力。因此,在本领域中需要用于使机器人围绕机器人在行进路线期间遇到的急拐角和狭窄通道导航的改进的系统和方法。

发明内容

本公开满足了前述需求,本公开尤其提供了用于优化用于机器人装置的急转弯的机器人路线规划方法的系统和方法。本领域的技术人员将理解,如本文中所使用的,术语机器人通常可以指在执行或处理计算机可读指令时行进路线、执行任务或以其他方式自动移动的自主交通工具或对象。根据一些示例性实施例,机器人可包括地板清洁器,该地板清洁器在操作员所学习的、包括急拐角和空间的路线上进行导航。

本文所述的示例实施方式具有创新性特征,其中没有一个是必不可少的或仅对其理想属性负责。在不限制权利要求的范围的情况下,现在将总结一些有利特征。

根据至少一个非限制示例性实施例,公开了一种用于改变以优化机器人路线规划的方法。在一个非限制示例性实施例中,该方法包括:生成和/或接收环境的地图,该地图包括已知对象的位置以及诸如机器人之类的自主交通工具要采用的路线;可视化机器人在导航路线时的多个可能的未来状态和位置;以及在路线行进之前优化路线的一些路段以避免碰撞。本领域技术人员将理解,未来状态可以与未来时间中机器人装置的状态或定位相对应,使得机器人装置可以预测其在未来时间点的定位和/或位置。

根据至少一个非限制性示例性实施例,方法进一步包括:利用虚拟机器人来确定机器人的未来动作和状态是否可能导致碰撞;计算碰撞点;以及对路线的路段进行柔曲绕扎以允许机器人围绕急拐角安全导航进入狭窄通道。根据另一个非限制示例性实施例,机器人还可以考虑沿路线的状态点,可以沿着路线移动、移除、改变和/或添加状态点,以考虑优化之后的改变。换句话说,机器人通过以下操作来避免碰撞:部分地利用虚拟机器人,该虚拟机器人表示将来的机器人或者该机器人将行进到的将来位置处的机器人;计算沿路线的碰撞点;以及对机器人行进路线的各路段进行柔曲绕扎。

根据至少一个非限制示例性实施例,机器人可以通过跟随操作员来学习路线,在此期间,机器人将可能需要进一步优化以在自主操作(即,未来的时间点)中导航的路线的任何紧密空间或路段存储在存储器中。根据另一个非限制示例性实施例,机器人可以在从操作员学习到路线时对其执行优化。根据另一个非限制示例性实施例,操作员可以通过有线或无线连接为机器人提供计算机可读地图和路线,其中机器人可能需要进一步优化路线。

根据至少一个非限制示例性实施例,机器人可以使用多个虚拟机器人来测试与环境屏障碰撞的可能的未来路线。根据至少一个非限制示例性实施例,如果机器人向左、向右或向前移动,则虚拟机器人将预测碰撞。根据至少一个非限制示例性实施例,虚拟机器人可以通过向机器人指示何时和/或何处机器人可能遇到碰撞或卡住的情况来用于寻找最佳路线。通过对机器人将来可能采用的路线或路径进行此类优化,机器人可以潜在地避免沿其行进路径将遇到的急拐角或狭窄通道,这可以通过利用虚拟机器人计算沿路线的碰撞点以及对机器人行进路线中的各路段进行柔曲绕扎来实现。

根据至少一个非限制示例性实施例,虚拟机器人可以大于其所代表的机器人,以允许优化期间的误差余量。通过非限制示例性说明,机器人可以利用比其更大的虚拟机器人的足迹来确定围绕已知需要较大误差余量的特定对象的路线,该特定对象通常由操作员通过用户接口、有线、或无线通信指定。

根据至少一个非限制示例性实施例,机器人可以通过增加围绕拐角的路线的长度来改变或优化路线,以允许机器人进行更宽的转弯,从而通过确保机器人在完成转弯后处于特定定向中来降低碰撞或卡住的风险。根据另一个非限制示例性实施例,在机器人在急拐角到狭窄通道中导航的情况下,可能希望机器人在完成转弯时对齐,以使其可以简单地向前移动通过通道并避免与在通道附近转动机器人相关联的碰撞。通过非限制示例性实施例,可能需要清洁商店的过道的机器人地板清洁器从一个过道导航到另一个过道,其中机器人可以在过道之间的急转弯导航到狭窄过道中。

根据至少一个非限制示例性实施例,公开了一种用于改变或优化机器人路线的方法。方法可以由机器人的一个或多个处理器执行来自非瞬态存储器的指令来实现。方法包括:基于在机器人系统按第一路线行进之前改变或优化第二路线的路段来确定第一路线,该改变或优化至少基于在执行第二路线的操纵时避免与对象的碰撞,第一路线从与第二路线的改变或优化的路段相对应的至少一条可能路线中确定。方法可进一步包括将至少一个虚拟机器人的足迹叠加在计算机可读地图上,以测试至少一条可能路线以确定第一路线,其中,至少一个虚拟机器人足迹包括指示机器人系统在计算机可读地图上的未来位置的足迹。对至少一条可能路线的测试包括确定沿至少一条可能路线的碰撞点,在至少一个虚拟机器人的足迹在计算机可读地图上至少部分地与对象相交或重叠的位置确定至少一个碰撞点。方法可进一步包括确定与至少一条可能路线中的每条路线相关联的风险程度,其中,更高的风险程度与更接近对象的机器人系统操纵相对应,而更低的风险程度与更远离对象的机器人系统操纵相对应。在一些情况下,至少一条可能路线进一步包括对第二路线的路段进行柔曲绕扎,柔曲绕扎包括使第二路线远离障碍物延伸,使得经柔曲绕扎的第二路线包含围绕对象更宽的转弯。在一些情况下,通过将机器人系统配置为在进入狭窄通道之前将自身定向为向前方向,在第二路线的改变或优化的路段中导航。方法可进一步包括修改沿第二路线的至少一个状态点以考虑用于第一路线的对第二路线的路段所做的优化,该修改包括添加、移除和重新定位至少一个状态点,以及修改与至少一个状态点相对应的一个或多个状态参数。

根据至少一个非限制示例性实施例,公开了一种用于检测沿机器人路线的狭窄通道的方法。方法包括:在第一侧和第二侧延伸机器人的足迹,第一侧和第二侧垂直于机器人的前进方向并且位于机器人的相对侧;导航路线并确定对象与计算机可读地图上的延伸足迹重叠的位置;以及确定在机器人系统的第一侧和第二侧检测到至少一对对象的位置处的狭窄通道。方法可以进一步包括通过沿计算机可读地图上的路线投影一个或多个虚拟机器人,来使用包括延伸足迹的一个或多个虚拟机器人来代替机器人系统。

根据至少一个非限制示例性实施例,公开了一种用于检测沿机器人路线的狭窄通道的方法。方法包括使用一个或多个传感器或计算机可读地图,在距离路线小于预定距离阈值的距离处连续实时地检测路线相对侧的两个对象,该距离阈值与机器人的大小成比例。

根据至少一个非限制示例性实施例,公开了一种用于检测沿机器人路线的急转弯的方法。方法可包括:当机器人执行转弯时,连续地实时确定机器人的速度向量;在沿路线的预定距离上连续地实时测量速度向量的角变化率;以及连续地实时将变化率与阈值进行比较。变化率超过阈值与路线中需要优化的一个或多个部分相对应。

本公开的这些和其他对象、特征和特性,以及相关元件的操作和功能的方法,将在考虑参照附图的以下描述和所附权利要求后变得更加明显,所有这些均构成本说明书的一部分,其中在各个附图中,相同的参考数字表示相对应的部分。然而,应当明确地理解,附图仅出于说明和描述的目的,而不旨在作为对本公开的限制的定义。如在本说明书和权利要求中所使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”包括多个指称。

附图简述

下文将结合附图来描述所公开的方面,所提供的附图用于说明而不是限制所公开的方面,其中类似的名称表示类似的元件。

图1是根据示例性实施例的机器人优化围绕急拐角进入狭窄通道的路线的方法的过程流程图。

图2是根据本公开的一些实现方式的机器人的功能框图。

图3是根据本公开的一些实现方式的专用控制器的功能框图。

图4是根据示例性实施例的机器人周围多个风险区的俯视图。

图5是根据示例性实施例的机器人通过包括紧密空间和转弯的环境的未优化路线和优化路线的俯视图。

图6是根据示例性实施例的机器人利用虚拟机器人来优化路线的俯视图,该路线包括急转弯进入狭窄通道。

图7是用来自存储器的优化的第二路径改变机器人的第一路径的说明性数据表。

图8A-图8C是根据示例性实施例的具有优化的第二路径的机器人的第一路径的改变的俯视图。

图9A-图9B是根据示例性实施例的机器人使用在机器人的任一侧的延伸足迹,沿机器人的任一侧的路线绘制可能的碰撞点的俯视图。

图9C是根据示例性实施例的包括所有可能的碰撞点以及如图9A-图9B所示延伸足迹的环境的地图的俯视图,以用于确定沿路线的狭窄通道。

图9D是根据示例性实施例的包括沿机器人的路径的位置和相对应的对象检测读数的数据表。

图10是根据示例性实施例的机器人导航路线并检测狭窄通道,从而需要对路线进行优化的俯视图。

图11是示出根据示例性实施例的用于控制器或处理器优化包括急转弯的路线的各种状态的状态图。

图12是根据示例性实施例的用于在紧密停车空间中停泊自主交通工具的本公开的系统和方法的实施方式。

图13是示出根据示例性实施例的用于控制器或处理器优化路线的方法的过程流程图。

图14是示出根据示例性实施例的用于在路线导航期间控制器或处理器优化路线的方法的过程流程图。

本文公开的所有附图均为Copyright 2021Brain Corporation。版权所有。

具体实施方式

在下文中参考附图更全面地描述本文公开的新颖系统、装置和方法的各个方面。然而,本公开可以以许多不同的形式实施,并且不应被解释为限于贯穿本公开呈现的任何特定结构或功能。相反,提供这些方面使得本公开将是透彻的和完整的,并且完整地将本公开的范围传达给本领域技术人员。基于本文教导,本领域技术人员应当理解,本公开的范围旨在覆盖本公开公开的新颖系统、装置和方法的任何方面,无论是独立实施还是与本公开的任何其他方面组合实施。例如,可使用本文所阐述的任何数量的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为本文中所阐述的本公开的各种方面的补充或者另外的其他结构、功能性、或者结构及功能性来实践的装置或方法。应当理解,本文披露的任何方面可以由权利要求的一个或多个要素来实施。

尽管本文描述了特定方面,但这些方面的众多变形和置换均落在本公开的范围之内。尽管提到了优选方面的一些益处和优点,但是本公开的范围并不旨在限于特定的益处、用途和/或目的。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。

本公开提供了优化机器人路线规划的改进方法。本公开的一些实施例涉及机器人。如本文所使用的,机器人可包括被配置成用于自动执行一系列复杂动作的机械和/或虚拟实体。在一些情况下,机器人可以是由计算机程序、专门算法和/或电子电路系统引导和/或指示的机器。在一些情况下,机器人可包括被配置用于导航的机电组件,其中机器人可以从一个位置移动到另一个位置。此类机器人可包括自主汽车和/或半自主汽车、地板清洁器、巡视器(rover)、无人机、飞机、船、推车、电车、轮椅、工业装备、存放机(stockingmachine)、移动平台、个人运输设备(例如,悬停板、等)、存放机(stockingmachine)、拖车、交通工具等。机器人还可包括用于将物品(item)、人员、动物、货物(cargo)、货物(freight)、物品(object)、行李和/或任何所需的东西从一个位置运输到另一位置的任何自主和/或半自主机器。在一些情况下,由于机器人是可以自主和/或半自主地导航和/或移动的移动系统,因此用于清洁的此类机器人可包括机器人移动平台。

现在提供本公开的系统和方法的各种实施例的详细描述。尽管本文讨论的许多示例可能涉及机器人地板清洁器,但应理解,本文包含的所述系统和方法可适用于任何种类的机器人。给定本公开的内容,本领域普通技术人员将容易想到本文所述技术的多种其他示例实施例或用途。

有利地,本公开的系统和方法至少:(i)允许机器人预先沿着至少一条路线规划其路线;(ii)允许机器人在沿路线行进之前进一步优化所学路线;(iii)减少碰撞,以及减少机器人在至少一条路线上进行导航时被卡住的机会;以及(iv)通过提供用于优化至少一条路线的系统和方法来提高机器人自主操作的效率。

如本文所使用的,障碍物可包括但不限于机器人周围环境中的任何对象或屏障,其中机器人可导航障碍物并避免碰撞。

如本文所使用的,虚拟机器人可包括但不限于,机器人在未来位置中的任何投影、地图绘制和/或叠加,该未来位置与机器人沿规定路线的路径行进的未来时间中机器人的位置相对应。根据至少一个非限制实施例,虚拟机器人还可包括由专用处理装置存储在存储器中的足迹索引,其中足迹索引包括未来位置中机器人的参数(例如,尺寸、形状等)。根据另一个非限制示例性实施例,足迹索引可包括不同参数以考虑误差余量。

如本文所使用的,急转弯可包括,包括但不限于,沿着预规定或新路线的任何转弯,其中由于机器人的物理属性(包括但不限于机器人的尺寸、形状、转弯半径和/或其他任何物理属性)机器人在导航转弯时经历与障碍物的碰撞。根据至少一个示例性实施例,机器人可以通过使用虚拟机器人检测沿路线的碰撞点和/或超过设定阈值(例如,包括但不限于1米以内的60度)的转弯来确定路线的哪些路段包括急转弯和/或狭窄的通道。

如本文中所使用的,优化路线的机器人可包括,包括但不限于对沿路线的一些或所有路段进行改变的机器人,使得机器人可以以沿行进路径碰撞和/或被卡住的最小风险自主地遍历优化的路线。此外,优化路线是机器人可能从多条可能路线中行驶出的最有效路线。

如本文所使用的,路线的部分或路段可包括路线的任何长度。例如,路线的路段可包括路线的1、2、3等仪表部分(meter section)。

如本文所使用的,状态点可包括沿着机器人的路线的位置以及在该位置的机器人的相对应状态(例如,定位、定向、速度、致动器命令等)。根据非限制示例性实施例,状态点被存储在机器人的存储器内,并且可以帮助导航机器人,确保机器人正确地遍历其路线,和/或确保机器人以沿行进路径期望的或给定的状态点执行特定任务。根据示例性实施例,在沿路线的设置位置或预定位置处可以存在多个期望或给定点。

如本文所使用的,路径或路段的柔曲绕扎方法可包括拉伸和/或拉长路径或路段以包含围绕急拐角或对象的较宽转弯半径,以便当机器人转弯时增加机器人与对象之间的距离,以避免与对象发生碰撞或接触。进一步地,对路径或路段进行柔曲绕扎可将机器人配置成在按经柔曲绕扎的路径或路段导航到狭窄通道中时将其自身定向为基本上向前的定向。根据至少一个非限制示例性实施例,机器人可以通过确定当机器人沿着路径导航到一个或多个对象周围时机器人与该一个或多个对象之间要保持的最小距离,来对该路径中的在该一个或多个对象周围的路段进行柔曲绕扎。

如本文中所使用的,计算机和/或计算设备可包括但不限于,个人计算机(“PC”)和小型计算机(无论是台式计算机、膝上型还是其他)、大型计算机、工作站、服务器、个人数字助理(“PDA”)、手持式计算机、嵌入式计算机、可编程逻辑设备、个人通信器、平板计算机、移动设备、便携式导航辅助设备、配备J2ME的设备、蜂窝电话、智能电话、个人集成通信或娱乐设备和/或能够执行一组指令并处理输入数据信号的任何其他设备。

如本文所使用的,计算机程序和/或软件可包括但不限于执行功能的任何序列或人或机器可识别的步骤。可以在任何编程语言或环境中渲染此类计算机程序和/或软件,包括例如,C/C++、C#、Fortran、COBOL、MATLABTM、PASCAL、GO、RUST、SCALA、Python、汇编语言、标记语言(例如,HTML、SGML、XML、VoXML)等,以及面向对象的环境(诸如通用对象请求代理体系结构(“CORBA”))、JAVATM(包括J2ME、Java Beans等)、二进制运行时环境(例如,“BREW”)等。

如本文中所使用的,连接、链接和/或无线链接可包括但不限于,任何两个或更多个实体(无论是物理的还是逻辑的/虚拟的)之间的因果链接,其实现实体之间的信息交换。

根据第一非限制示例性实施例,公开了一种机器人系统,该机器人系统可包括或耦合到至少一个传感器、至少一个导航系统或全球定位系统、至少一个致动器、至少一个通信系统、地图评估单元、至少一个处理器、至少一个非瞬态计算机可读存储设备和/或电源单元,可以使用其中一些、不使用或全部用于自主地沿路线导航。

根据第二非限制示例性实施例,公开了一种用于优化机器人路线规划的方法。根据此类实施例,通过包括已知障碍物的位置和其可能遵循的路线的有线或无线通信,为机器人提供了环境的计算机可读地图。根据另一个非限制示例性实施例,机器人可以通过跟随操作员来学习路线并绘制其环境。这些路线可能无法由完全自主操作的机器人导航,和/或可能不是需要专门处理器执行来自非瞬态计算机可读存储设备的指令以生成针对一些或所有路线的优化的最佳路线。

根据至少一个非限制性实施例,当机器人完全自主地操作时,由操作员教导给机器人或通过有线或无线通信传达给机器人的路线可能无法由机器人导航。借助于说明性示例,所学的路线可包括急拐角、狭窄通道和/或其他障碍物,其中机器人能够通过跟随操作员通过路线来导航,但是不能完全自主地导航。根据另一非限制示例性实施例,可以将最佳路线直接教导给机器人,其中,机器人可以使用本公开的系统和方法来验证路线是否最佳。本领域技术人员将理解,机器人被教导执行期望动作与操作员通过存储在机器人的存储器中的专用代码对机器人进行编程相对应,该专用代码由机器人中包括的专用处理器执行。

根据至少一个非限制示例性实施例,可以稍后重新优化已优化的路线以考虑环境随时间的变化(例如,附加障碍物、已知障碍物的重新布置等)。

根据另一个非限制示例性实施例,公开了一种非瞬态计算机可读存储设备。非瞬态计算机可读存储设备具有存储在其上的多个指令,这些指令可通过专用处理装置执行来操作机器人和优化其路线。

根据另一个非限制性实施例,非瞬态计算机可读存储设备可包括指令,当由专用处理装置执行时,该指令使机器人生成多个虚拟机器人以测试未来的路线。这些虚拟机器人生成机器人未来位置的足迹索引,这些足迹索引由专用处理器存储在存储器中。根据另一个非限制性实施例,存储在存储器中的足迹索引可包括虚拟机器人在环境的计算机可读地图上的坐标位置、它们占据的空间和/或虚拟机器人的任何状态(例如,定位、旋转、当前动作等)。足迹索引可以进一步使用多个数据结构(诸如阵列、矩阵)和被认为对本领域普通技术人员而言显而易见的任何其他数据结构存储在存储器中。

根据另一个非限制性实施例,非瞬态计算机可读存储设备可包括指令,当指令由专用处理设备执行时,通过将由虚拟机器人生成的足迹索引施加在存储在存储器中的、已知障碍物的环境和/或位置的计算机可读地图上来预测未来的碰撞。通过避开虚拟机器人的足迹与环境中的障碍物接触或重叠的所有可能路线(指示未来的碰撞),可以将通过将虚拟机器人置于环境中而收集的数据用于进一步优化路线。

根据至少一个非限制示例性实施例,非瞬态计算机可读存储设备可包括指令,该指令在由专用处理装置执行时使处理器执行与机器人和虚拟机器人位置相关联的风险分析,确定降低风险的可能路径,以及至少部分基于风险分析为机器人选择最佳路线。

根据至少一个非限制示例性实施例,专用处理器可以利用路线中的路段的柔曲绕扎方法,以允许机器人急拐角导航到狭窄通道中。路线或路线中的路段被柔曲绕扎的程度可能至少部分地由于机器人的物理属性(例如,机器人的大小、形状和/或转弯半径)和环境参数(例如,其他障碍物、障碍物的大小、障碍物的形状等)。另外,根据至少一个示例性实施例,路线或路线中的路段被柔曲绕扎的程度也可以至少部分地是由于使与在距对象一定距离处操纵机器人相关联的风险最小化。围绕狭窄拐角处进行更宽的转弯可以使机器人避免碰撞,并在转弯完成后进入狭窄通道。

根据另一非限制性实施例,非瞬态计算机可读存储设备可包括指令,在由专用处理装置执行该指令时,调整沿路线的一个或多个状态点的位置,以考虑对路线所做的改变,确保机器人在路线优化前后处于同一位置的指定状态。通过非限制说明性示例,机器人可以在到达状态点时进行改变(例如,通过存储器中的位移位、存储器中的补零、添加/删除其他状态点、改变到达状态点的时间、改变先前状态点的距离等),以考虑优化后更长或更短的路线。根据另一非限制示例性实施例,可以在优化路线之前和之后将与状态点相对应的状态和位置维持在相同位置。类似地,根据另一非限制示例性实施例,可以添加、移除和/或改变状态点和相对应状态以考虑对路线的优化。

作为另一个示例,本公开的系统和方法可以允许使用对环境的修改很少或没有修改的机器人。一些涉及机器人的当代解决方案可能要求用户安装导轨、信标、标记、线条和/或提示,以用于机器人进行导航。在一些情况下,从时间、金钱和/或美学角度来看,此类安装可能是昂贵的。此类安装也可能花费/需要用于维护的资源。此外,这些安装可能在机器人解决方案中产生故障点,如果安装的一个或多个方面未按预期运行,则导致解决方案的至少一部分出现故障。有利地,在一些情况下,本公开的系统和方法可以允许机器人依赖相对较少的安装或不依赖安装。然而,在一些情况下,可以根据本公开的方面对环境进行改变,以便提高效率和工作流程。

图1是机器人202的示例性方法100的过程流程图,该方法100检测或确定包括至少一个急转弯进入狭窄通道的路线并优化该路线。本领域的技术人员将理解,急转弯可与妨碍机器人202在不与其路径中的对象碰撞或导航太靠近对象的情况下自主做出的转弯相对应(例如,根据以下图4中所示的区域402)。框102示出了控制器222或处理器308执行计算机可读指令以使用如下所讨论的参考图6、图8A-图8B、图9A-图9D和图10进一步示出的方法来确定机器人202的当前路线是否包含急转弯和/或狭窄通道。简要地,可以基于路线的一部分的变化的角速度超过阈值来检测路线的该部分上的急转弯。可以几何地(例如,基于距离阈值和在计算机可读地图上的测量,如以下图10所示)和/或使用机器人202的延伸足迹(例如,如以下图9A-图9C所示)确定狭窄通道。

框104示出了控制器222或处理器308执行计算机可读指令以确定至少一条可能路线优化,以将机器人202从其当前位置导航到沿路线的未来位置或更远的位置,其中待优化的路线包括在框102中检测到的一个或多个急转弯和/或狭窄通道。机器人202沿路线的未来位置与机器人202在路线导航期间的未来时间点的位置相对应。

根据至少一个非限制示例性实施例,控制器222或处理器308执行计算机可读指令以确定在急转弯和/或紧凑通道附近的多个可能的路线优化。在急转弯和/或狭窄通道附近确定的多个优化可包括对原始路线中的路段进行柔曲绕扎,使得虚拟机器人606采取更宽的转弯,如图6所示,例如,以确保在机器人202随后按路线导航时不发生碰撞。再次,本领域技术人员将认识到,当机器人202沿期望路径行进时,虚拟机器人与未来时间点中的机器人202的位置相对应,虚拟机器人由控制器118生成,该控制器118沿着路径将虚拟机器人投影到机器人102前面的计算机可读地图上。

框106示出了控制器222或处理器308执行存储在存储器224中的指令,如稍后的图2中示出,以生成至少一个虚拟机器人606以测试在框104中找到的至少一个可能的路线优化。使用这些虚拟机器人606,控制器222或处理器308执行计算机可读指令以通过虚拟机器人足迹与计算机可读地图上的环境中的对象/边界610的相交来计算可能的碰撞点608,这在图6中进一步示出。

根据至少一个非限制示例性实施例,控制器222或处理器308执行计算机可读指令,以利用附加的操作单元204将虚拟机器人606的足迹索引施加到环境的计算机可读地图上,并进一步执行计算机可读指令,以将足迹索引存储在存储器224中,并测试多条路线以用于未来的碰撞,该环境与机器人202沿着路线行进的环境相对应。

框108示出了控制器222或处理器308执行存储在存储器224中的计算机可读指令,下面在图2中示出,以确定在框106中测试的至少一种可能的路线优化中的一个或多个是否满足优化阈值。根据至少一个非限制示例性实施例,优化阈值可包括参数,包括但不限于最大数量的允许碰撞点608(例如,零碰撞点)、风险度参数(下面在图4中进一步示出),和/或与优化路段的附加路线长度相关的参数。通过说明性的非限制性实施例,示例性优化阈值可包括零碰撞点608、中等风险容忍度以及对原始路线可以延长多少以考虑所做的优化的限制(例如,在整个路线上不得增加超过2米、厘米、英寸等)。最佳阈值可以由用户通过用户接口单元212设置和/或通过使用通信单元216的有线或无线通信来通信,如下面在图2中所示。如框108所示,如果一个或多个可能的路线优化不满足优化阈值,则控制器222或处理器308执行计算机可读指令以返回到框104以确定另一至少一个可能的路线优化。然而,如图1所示,如果在框106中测试的一个或多个潜在路线优化满足优化阈值,则控制器222或处理器308执行计算机可读指令以转到框110。应当理解,控制器222或处理器308可以忽略不满足优化阈值的潜在路线优化。

框110示出了控制器222或处理器308执行计算机可读指令,以对在框104中确定、在框106中测试并满足框108的优化阈值的原始路线的一个或多个潜在优化的最优或最佳优化。最佳或最佳优化可包括对路线的优化,包括例如,最低的风险程度、所添加的最小附加路线长度的最小值和/或本领域技术人员所理解的其他参数。根据至少一个非限制示例性实施例,可以通过修改与沿着存储器224中存储的路线上的状态点相关联的坐标来将最佳路线优化应用于原始路线602,如图7和图8A-图8C中进一步所示。

框112示出了控制器222或处理器308执行计算机可读指令以激活致动器单元208,如下面在图2中示出,以沿优化路线(包括优化路段或其部分)移动机器人202,使得机器人202能够在不与附近对象碰撞的情况下通过急转弯和/或狭窄通道,经优化路线由于优化而至少部分与原始路线不同。

图2是根据本公开的一些原理的机器人202的功能框图。如图2中所示,机器人202可包括控制器222、存储器224、用户接口单元212、映射和定位单元226、传感器单元214、致动器单元208和通信单元216,以及其他组件和子组件(例如,其中的一些可能未示出)。尽管在图2中示出了特定实施方式,应理解,鉴于给定本公开的内容,对于普通技术人员将显而易见的是,在某些实施例中可以改变架构。如本文中所使用的,机器人202可以至少部分地代表本公开中描述的任何机器人。

控制器222可以控制由机器人202执行的各种操作。控制器222可包括和/或包含一个或多个处理器(例如,微处理器)和其他外围设备。如本文所使用的,处理器、微处理器和/或数字处理器可包括任何类型的数字处理设备,诸如但不限于数字信号处理器(“DSP”)、精简指令集计算机(“RISC”)、通用(“CISC”)处理器、微处理器、门阵列(例如,现场可编程门阵列(“FPGA”)、可编程逻辑设备(“PLD”)、可重构计算机结构(“RCF”)、阵列处理器、安全微处理器、专用处理器(例如,神经形态(neuromorphic)处理器)以及专用集成电路(“ASIC”)。此类数字处理器可以被包含在单个单一集成电路芯片上,或者分布在多个组件之间。

控制器222可以操作地和/或通信地耦合到存储器224。存储器224可包括配置成用于存储数字数据的任何类型的集成电路或其他存储设备,包括但不限于,只读存储器(“ROM”)、随机存取存储器(“RAM”)、非易失性随机存取存储器(“NVRAM”)、可编程只读存储器(“PROM”)、电可擦除可编程只读存储器(“EEPROM”)、动态随机存取存储器(“DRAM”)、移动DRAM、同步DRAM(“SDRAM”)、双数据率SDRAM(“DDR/2SDRAM”)、扩展数据输出(“EDO”)RAM、快速页面模式RAM(“FPM”)、减少延迟的DRAM(“RLDRAM”)、静态RAM(“SRAM”)、闪存存储器(例如,NAND/NOR)、忆阻器存储器、伪静态RAM(“PSRAM”)等。存储器224可以向控制器222提供指令和数据。例如,存储器224可以是其上存储有多个指令的非瞬态计算机可读存储装置和/或介质,这些指令可通过处理装置(例如,控制器222)执行来操作机器人202。在一些情况下,指令可被配置成用于当由处理装置执行时,使处理装置执行本公开中所描述的各种方法、特征和/或功能。相对应地,控制器222可以基于存储在存储器224内的程序指令来执行逻辑和/或算术运算。在一些情况下,存储器224的指令和/或数据可以存储在硬件的组合中,一些硬件本地地定位在机器人202内,而一些硬件远离机器人202定位(例如,在云、服务器、网络等中)。

对于本领域的普通技术人员应该显而易见的是,处理器可以在机器人402的外部并且可以利用通信单元414通信地耦合到机器人402的控制器422,其中,外部处理器可被配置成用于接收来自机器人402的数据、处理数据,以及将计算机可读指令传送回控制器422。在至少一个非限制示例性实施例,处理器可以在远程服务器(未示出)上。

根据至少一个示例性实施例,传感器单元214可包括可以检测机器人202内和/或周围的特性的系统和/或方法。传感器单元214可包括多个传感器和/或传感器的组合。传感器单元214可包括机器人202内部或外部的传感器,和/或具有部分内部和/或部分外部的组件。在一些情况下,传感器单元214可包括一个或多个外在性传感器,诸如声纳、光检测和测距(“LIDAR”)传感器、雷达、激光器、相机(包括摄像机(例如,红-蓝-绿(“RBG”)相机、红外相机、三维(“3D”)相机、热像仪等)、飞行时间(“TOF”)相机、结构化光相机、天线、运动检测器、麦克风和/或任何本领域中已知的其他传感器。根据至少一个示例性实施例,传感器单元214可以收集原始测量(例如,电流、电压、电阻、门逻辑等)和/或经变换的测量(例如,距离、角度、障碍物中的检测点等)。在一些情况下,可以聚合和/或汇总测量。传感器单元214可以至少部分基于测量来生成数据。此类数据可以存储在数据结构中,诸如矩阵、数组、队列、列表、阵列、堆栈、包等。根据至少一个示例性实施例,传感器数据的数据结构可以称为镜像。

根据至少一个示例性实施例,传感器单元214可包括可以测量机器人202的内部特性的传感器。例如,传感器单元214可以测量温度、功率水平、状态和/或机器人202的任何特性。在一些情况下,传感器单元214可被配置成用于确定机器人202的测程法。例如,传感器单元214可包括本体感受性传感器,其可包括诸如加速度计、惯性测量单元(“IMU”)、里程表、陀螺仪、速度计、相机(例如,使用视觉里程计)、时钟/计时器等之类的传感器。里程计可以促进机器人202的自主导航和/或自主动作。该里程计可包括机器人202相对于初始位置的位置(例如,其中位置可包括机器人的位置、位移和/或定向,并且有时可以与本文所用的术语“姿势”互换)。此类数据可以存储在数据结构中,诸如矩阵、数组、队列、列表、阵列、堆栈、包等。根据至少一个示例性实施例,传感器数据的数据结构可以称为镜像。

地图绘制和定位单元226可以接收来自传感器单元214的传感器数据以在地图中定位机器人202。根据至少一个示例性实施例,地图绘制和定位单元226可包括允许机器人202在地图的坐标上和/或相对于位置(例如,初始化位置、终点位置、信标、参考点等)将自身定位的定位系统和方法。地图绘制和定位单元226还可以处理由机器人202进行的测量,诸如通过生成图表和/或地图。根据至少一个示例性实施例,地图绘制和定位单元226可以不是单独的单元,而是传感器单元214和/或控制器222的一部分。

根据至少一个示例性实施例,机器人202可以通过学习过程来进行地图绘制并且学习路线。例如,操作员可以通过沿环境中的路线驱动机器人202来教机器人202在环境中何处行驶。通过结合来自传感器单元214的传感器数据,机器人202可以确定机器人202的相对姿势和环境中物品的姿势。以该方式,机器人202可以确定它在环境中何处和已经行驶过的地方。机器人202可以稍后回忆起其行驶过的地方并且以基本相似的方式行驶(尽管它可以避免后续行驶中的某些障碍)。机器人可以(诸如通过网络302)彼此共享此类经验。

根据至少一个示例性实施例,用户接口单元212可被配置成用于使用户能够与机器人202交互。例如,用户接口单元212可包括触摸面板、按钮、小键盘/键盘、端口(例如,通用串行总线(“USB”)、数字视频接口(“DVI”)、显示端口、E-Sata、火线、PS/2、串行、VGA、SCSI、音频端口、高清多媒体接口(“HDMI”)、个人计算机存储卡国际协会(“PCMCIA”)端口、存储卡端口(例如,安全数字(“SD”)和微SD(miniSD))和/或计算机可读介质的端口)、鼠标、滚球、控制台、振动器、音频换能器和/或用户用于输入和/或接收数据和/或命令的无论是无线耦合还是通过有线耦合的任何接口。用户可以通过语音命令或手势进行交互。用户接口单元212可包括显示器,诸如但不限于,液晶显示器(“LCD”)、发光二极管(“LED”)显示器、LED LCD显示器、面内切换(“IPS”)显示器、阴极射线管、等离子显示器、高清(“HD”)面板、4K显示器、视网膜显示器、有机LED显示器、触摸屏、表面(surface)、帆布和/或任何本领域已知用于视觉呈现的显示器、电视、监视器、面板和/或设备。根据至少一个示例性实施例,用户接口单元212可以定位在机器人202的主体上。根据至少一个示例性实施例,用户接口单元212可以远离机器人202的主体定位,但是可以直接地或间接地(例如,通过网络、服务器和/或云)通信地耦合到机器人202(例如,经由包括发射器、接收器和/或收发机的通信单元)。根据至少一个示例性实施例,用户接口单元可包括在机器人近侧定位的表面(例如,地板)上的镜像的一个或多个投影,例如,以向乘员或机器人周围的人提供信息。该信息可以是机器人未来运动的方向,诸如指示向前、向左、向右、向后,以一定角度和/或任何其他方向运动。在一些情况下,此类信息可以利用箭头、颜色、符号等。

作为说明,机器人202可以具有投影仪、灯和/或其他投影系统。机器人202可以将图像投影在地板上以使人们知道运动和/或下一动作的方向。例如,机器人202可以将路径的图像投影到地板上以使人们知道它将在何处行进。投影在地板上的其他图像可以向人们指示机器人202规划在何处停止、何时规划开始运动、它在何处运动和/或使机器人椅子周围的人感到更加舒适和安全的有用信息。此类投影可以利用与标题为“用于机器人设备的安全导航的装置和方法(APPARATUS AND METHODS FOR SAFE NAVIGATION OF ROBOTICDEVICES)”的美国专利公开第2016/0375592号,现在是美国专利9,840,003的基本上相似的系统和方法,其通过引用以其整体并入本文。

根据至少一个示例性实施例,通信单元216可包括一个或多个接收器、发射器和/或收发机。通信单元216可被配置成用于发送/接收传输协议,诸如Wi-Fi、感应无线数据传输、射频、无线电传输、射频识别(“RFID”)、近场通信(“NFC”)、红外,网络接口、诸如3G(3GPP/3GPP2)之类的蜂窝技术、高速下行链路分组接入(“HSDPA”)、高速上行链路分组接入(“HSUPA”)、时分多址(“TDMA”)、码分多址(“CDMA”)(例如,IS-95A、宽带码分多址(“WCDMA”)等)、跳频扩频(“FHSS”)、直接序列扩展频谱(“DSSS”)、全球移动通信系统(“GSM”)、个人区域网(“PAN”)(例如,PAN/802.15)、全球微波接入互操作性(“WiMAX”)、802.20、长期演进(“LTE”)(例如,LTE/LTE-A)、时分LTE(“TD-LTE”)、全球移动通信系统(“GSM”)、窄带/频分多址(“FDMA”)、正交频分复用(“OFDM”)、模拟蜂窝、蜂窝数字分组数据(“CDPD”)、卫星系统、毫米波或微波系统、声学、红外(例如,红外数据关联(“IrDA”))和/或任何其他形式的无线数据传输。

如本文中所使用的,网络接口可包括具有组件、网络或过程的任何信号接口、数据接口或软件接口,包括但不限于火线的那些(例如,FW400、FW800、FWS800T、FWS1600、FWS3200等)、通用串行总线(“USB”)(例如,USB 1.X、USB 2.0、USB 3.0、USB C型(Type-C)等)、以太网(例如,10/100、10/100/1000(千兆以太网)、10-Gig-E等)、基于同轴电缆联盟技术的多媒体(“MoCA”)、同轴电缆(例如,TVNETTM)、射频调谐器(例如,带内或OOB、电缆调制解调器等)、Wi-Fi(802.11)、WiMAX(例如,WiMAX(802.16))、PAN(例如,PAN/802.15)、蜂窝网络(例如,3G、LTE/LTE-A/TD-LTE/TD-LTE、GSM等)、IrDA族等。如本文中所使用的,Wi-Fi可包括IEEE-Std.802.11、IEEE-Std.802.11的变体、与IEEE-Std.802.11相关的标准(例如,802.11a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay)和/或其他无线标准中的一者或多者。

通信单元216还可被配置成用于利用传输协议通过有线连接(诸如具有信号线和地线的任何电缆)来发送/接收信号。例如,此类电缆可包括以太网电缆、同轴电缆、通用串行总线(“USB”)、火线和/或本领域已知的任何连接。此类协议可以被通信单元216用来与外部系统通信,诸如计算机、智能电话、平板电脑、数据捕获系统、移动电信网络、云、服务器等。通信单元216可被配置成用于发送和接收包括数字、字母、字母数字字符和/或符号的信号。在一些情况下,可以使用诸如128位或256位密钥之类的算法和/或其他符合诸如高级加密标准(“AES”)、RSA、数据加密标准(“DES”)、三重DES等之类的标准的其他加密算法对信号进行加密。通信单元216可被配置成用于发送并接收状态、命令和其他数据/信息。例如,通信单元216可以与用户操作员通信以允许用户控制机器人202。通信单元216可以与服务器/网络(例如,网络)通信以便允许机器人202发送数据、状态、命令以及与服务器的其他通信。服务器还可以通信地耦合到用于远程监视和/或控制机器人202的(多个)计算机和/或(多个)设备。通信单元216还可以从机器人202的服务器接收更新(例如,固件或数据更新)、数据、状态、命令,以及其他通信。

致动器单元208可包括在一些情况下用于致动以执行任务的任何系统。例如,致动器单元208可包括从动磁体系统、电机/引擎(例如,电动机、内燃机、蒸汽机和/或本领域已知的任何类型的电机/引擎)、螺线管/棘轮系统、压电系统(例如,爬行电机)、磁致伸缩元件、姿势(gesticulation)和/或任何领域中已知的致动器。根据至少一个示例性实施例,致动器单元208可包括允许机器人202的运动(诸如电动推进)的系统。例如,电动推进可以使机器人202沿向前或向后方向移动,和/或至少部分地用于使机器人202(例如,向左、向右和/或任何其他方向)转弯。举例来说,致动器单元208可以控制机器人202是移动还是停止和/或允许机器人202从一个位置导航到另一位置。

仍然参考图2,地图绘制和定位单元226可以基于来自一个或多个存储器单元214的数据来存储、操纵和/或计算机器人202周围的环境的计算机可读地图。例如,地图绘制和定位单元226可以从LiDAR传感器接收LiDAR数据,该LiDAR数据包括机器人202与附近对象之间的距离测量,以及在计算机可读地图上的LiDAR数据中检测到的地图对象。计算机可读地图可包括围绕机器人202的环境的表示,包括对象、特征、机器人202和/或其他局部对象或物品的位置。地图绘制和定位单元226可以进一步被配置成用于基于来自一个或多个传感器单元214(例如,陀螺仪、加速度计和其他IMU)的测量,将机器人202定位在环境中和/或计算机可读地图上。

地图评估单元228可以被配置成用于评估计算机可读地图的准确性和/或成本和风险评估,在以下图4中进一步描述。地图评估单元228可以基于在机器人202的可导航路线的两侧的阈值距离内的两个对象,来评估计算机可读地图上的两个对象之间的潜在狭窄通道。地图评估单元228可以基于计算机可读地图来评估机器人202的潜在路线,以确定潜在路线是否包括不可导航的部分、急转弯、狭窄通道和/或机器人202在导航期间要考虑的其他危险。地图评估单元228可以被配置成用于基于传感器单元214的测量来确定环境的计算机可读地图是否准确地表示该环境。即,地图评估单元228可以基于在机器人202运作时从传感器单元214中获取的测量来操纵预先存在的计算机可读地图以增强准确性。

参考图2所描述的单元中的一个或多个(包括存储器224、控制器222、传感器单元214、用户接口单元212、致动器单元208、通信单元216、地图绘制和定位单元226和/或其他单元)可被集成到机器人202(诸如集成系统)上。然而,根据一些示例性实施例,这些单元中的一个或多个可以是可附接模块的一部分。该模块可被附接到现有设备以实现自动化,使得现有设备表现得像机器人。因此,可以在模块中实例化本公开中参考机器人202描述的特征,该模块可被附接到现有设备和/或被集成到集成系统中的机器人202上。此外,在一些情况下,本领域普通技术人员将从本公开的内容中意识到,本公开中描述的特征的至少一部分还可以(诸如在云、网络和/或服务器中)远程运行。

如在此继续使用的,本领域普通技术人员理解,机器人202的功能由控制器222控制,该控制器222执行来自存储器224的计算机可读指令,其中控制器222和存储器224通信耦合并且可以在机器人202的内部或外部(例如,在远程服务器上)。换句话说,控制器执行需要对存储器224进行读写的功能包括控制器执行来自存储器224的指令。

接下来参考图3,示出了根据示例性实施例的图2中示出的系统中使用的专用控制器222的架构。如图3中所表示,专用控制器222包括数据总线306、接收器302、发射器312、至少一个处理器308和存储器310。接收器302、处理器308和发射器312都经由数据总线306彼此通信。处理器308是被配置成用于执行专用算法的专用处理器。处理器308被配置成用于访问存储器310,该存储器310存储计算机代码或指令,以便处理器308执行专用算法。如图3中所示,存储器310可包括先前图2中所示的存储器224的一些、无、不同的或所有的特征。下面进一步详细讨论由处理器308执行的算法。如图3中所示的接收器302被配置成用于接收输入信号304。输入信号304可包括来自图2中所示的多个操作单元204的信号,包括但不限于来自传感器单元114的传感器数据、用户输入、电机反馈、(例如,来自远程服务器的)外部通信信号和/或来自操作单元204的需要由专用控制器222进一步处理的任何其他信号。接收器302经由数据总线306将这些经接收的信号传送到处理器308。本领域的技术人员将理解,数据总线306是专用控制器222中不同组件(接收器、处理器和发射器)之间的通信介质。如下所讨论的,处理器308通过访问来自存储器310的专用计算机可读指令来执行算法。以上参考图2进一步详细讨论了处理器308执行接收、处理和发射这些信号的专用算法。存储器310是用于存储计算机代码或指令的存储介质。存储介质可包括光存储器(例如,CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如,RAM、EPROM、EEPROM等)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)等。存储介质可包括易失性、非易失性、动态、静态、读/写、只读、随机访问、顺序访问、位置可寻址、文件可寻址和/或内容可寻址的设备。如图所示,处理器308可以经由数据总线306将输出信号传送到发射器312。发射器312可被配置成用于进一步将输出信号传送到多个操作单元204,示出为信号输出314。

本领域的普通技术人员将理解,图3中所示的架构可以示出被配置成用于从远程位置实现对机器人装置的控制的外部服务器架构。即,服务器还可包括至少一个数据总线、接收器、发射器、处理器和在其上存储专用计算机可读指令的存储器。

接下来,将讨论图4。图4是根据本公开的一些实施方式的在非限制示例性图示中示出机器人202周围的各种危险区域的特性的俯视图。如图所示,与机器人202相关联的形状近似为圆角矩形形状。本领域技术人员可以设想其他形状。该形状具有相关联的长度、宽度、高度等。在一些情况下,绘制的形状可能近似于机器人202的足迹,但可能无法与机器人202的实际尺寸和/或形状精确对准。机器人202可具有指示器404指示的运动方向或移动方向,诸如在机器人移动平台的情况下。例如,指示器404可以示出机器人202可以沿多个方向(诸如向前、向后和/或向左或向右转)移动。还可以设想机器人的任何运动方向,诸如向前、向后、向左、向右、向上、向下、滚动、俯仰、偏航和/或前述的任何组合。

区域402A可以表示机器人202的临界风险区域。例如,区域402A可以是其中存在于该区域中的任何对象(例如,人、孩子、物品和/或其他东西)将与机器人202进行物理接触的区域。如图所示,区域402A可相对于运动方向,诸如指示器404所示。在一些情况下,由于机器人202基本朝向移动的方向移动,因此接触区域中的物品可能被机器人202击中,由此增加了力和/或由于机器人202的运动而造成的破坏(例如,相对于对象在机器人202不运动的情况下碰到机器人202中的情况)。因此,区域402A主要包含在机器人202的足迹内。

类似地,区域402B可以表示机器人202的较高风险区域。如果某物处于较高风险区域中,则机器人202在该物进入区域402A之前可能没有足够的时间进行操纵,在该区域402A中该物可能与机器人202碰撞。

区域402C可以代表中等风险区域和/或警告区域。如果某物在区域402C中,则机器人202可具有有限的可操纵性,而不与区域402C中的该物碰撞。因此,机器人202可以制定特定的行为以解决此类风险(诸如停止或减速)。

设想其他区域,其中每个区域可能与不同的风险相关联。例如,可以存在任何数量的区域402A-402N,其中N是基于评估了多少个风险区域的任何预定的正整数/字母。例如,其他区域可包括低风险区域、无风险区域、后风险区域、侧风险区域、损坏区域、密闭空间区域、停靠区域、接触区域和/或与特定风险级别和/或类型相关联的任何区域中的一者或多者。

根据至少一个非限制性示例性实施例,区域402A-402N可基于机器人202的运动而动态地改变形状。例如,如果机器人202执行左转,则区域402A-402N可在机器人202的左侧缩小并在机器人202的右侧扩展,反之亦然。作为另一示例,区域402A-402N可以在机器人202静止时围绕机器人202,并且可以在机器人202移动时根据运动指示器404的方向改变为所示的区域。

根据至少一个示例性实施例,其中机器人202正在创建路线的优化,机器人202可以考虑与每个可能的优化相关联的风险程度,并在确定最佳可能的对路线的优化时尝试最小化风险程度。根据另一示例性实施例,可以通过风险区域402A-402N与环境中的对象/障碍物的重叠来测量与机器人202的示例性操纵相关联的风险程度,该重叠在环境的计算机可读地图上确定。根据另一示例性实施例,这些风险区域402A-402N可以被应用于虚拟机器人(在图6中进一步示出),以允许在无需机器人202执行操纵的情况下确定与机器人202的示例性操纵相关联的风险程度。通过非限制说明性示例,如果图6的对象610在第一操纵中处于临界风险区域402A内,而在第二操纵中对象610处于较高风险区域内402B内,则控制器222将执行第二操纵。

图5是根据至少一个非限制示例性图示的示例性环境500的俯视图,该示例性环境500包括多个障碍物502、将由机器人202行进的原始路线504以及将由机器人202导航的优化路线506,由虚线表示的优化路线506与原始路线504不同,并且包括原始路线504的修改部分。根据至少一个非限制示例性实施例,可以向机器人202教导或编程原始路线504,其中机器人202可以半自主操作并跟随操作员学习原始路线504。根据另一个非限制示例性实施例,原始路线504可以由用户或网络通过有线或无线通信提供给机器人(未显示)。当机器人202完全自主时,原始路线504可能是不可(安全地)导航的,是因为它包括急转弯进入狭窄通道508,如图5所示。例如,机器人202可以通过由用户手动驱动而被教导路线,其中当用户沿着急转弯将机器人202驱动到狭窄通道中时,用户可以不考虑与机器人202的自主操作相关联的安全余量(例如,距对象的预定最小距离)。进而,需要对原始路线504进行的优化路线506。如图5所示,路线优化506可包括原始路线504的柔曲绕扎路段,以包含机器人202的更宽的转弯半径,以确保机器人202可以在急转弯之后进入狭窄通道508而不撞到或变成障碍物502。

根据另一个非限制示例性实施例,在改变环境500的情况下可能需要优化506,在改变环境500中对象或屏障502被移动,从而改变了机器人为了避免碰撞而需要采取的路径。此外,优化506可被改变以考虑机器人202周围的环境500的进一步改变。

如图5中所示,机器人202的原始路线504包括多个状态点510。状态点510可包括在机器人202执行路线504时机器人202的状态参数的(例如,沿路线504每隔1、2、3等秒或每1、2、3等米采取的)离散样本。例如,示出了状态点510A、510B和510C,然而,沿路线504可以存在多个另外的状态点510,为清楚起见已将其省略。如本文所使用的,状态参数可包括机器人202的参数,该参数描述了机器人202导航路线504时机器人202的状态,包括但不限于,机器人202的定位和取向、机器人202的速度、机器人202的位置、用于在相对应状态点的位置处执行的特定任务(即,致动器命令)和/或要在状态点510执行的任何计算机可读指令。换句话说,沿路线504的多个状态点510可包括当机器人202执行路线504时机器人202的姿势图,其中每个单独的状态点510可包括机器人202在相应位置的姿势,该姿势包括先前提到的任何状态参数(例如,速度)。路线504的执行或导航可包括机器人202根据序列状态点510的状态参数来配置其状态参数(例如,速度、取向、配置等)。例如,包括路线504的状态点序列510(即,姿势图)可以由操作员通过路线504手动导航机器人202来学习,其中状态点的序列510可以作为阵列、矩阵或其他数据结构存储在存储器中。

控制器222或处理器308执行计算机可读指令,以对沿原始路线504的一些状态点510进行改变,以解决优化路线506。对原始路线504的这些改变可包括但不限于何时(即,在时间或距离上)达到特定状态点510、状态点510的状态参数(例如,机器人202在状态点510的定位、取向、速度等),其中状态点510存储在存储器中224(例如,存储器地址)和/或沿经优化的路线506添加或删除一些状态点510。如果状态点未在正在优化的原始路线504的路段上或未受其影响(即,基本上不接近),则对沿原始路线504的状态点510的这些改变确保机器人202在进行优化之前和进行优化之后(例如,优化路线506)的相对应状态点处于相同状态。换句话说,每个相应状态点包括机器人或自主设备的状态参数(例如,速度和取向)。

通过非限制说明性示例,状态点510可以作为阵列存储在存储器224中,其中在进行优化506之后,状态点510A将从阵列中被删除而状态点510C将被添加到阵列中。另外,状态点510B将在环境500内包括相同的状态和位置,但是可以在阵列内移动,以考虑由于路线优化506而添加或移除的状态点。在另一个非限制说明性示例中,可以改变选择的或一些状态点510A和510C的机器人202的状态参数(诸如速度和取向),使得机器人202执行具有优化506的路线504,而不改变其他状态参数的状态参数(诸如状态点510B);导致仅对某些状态点进行选择性优化。

图6是根据非限制示例性实施例的机器人202的俯视图,该机器人202沿已知或预定路线602导航到狭窄通道614。控制器222和/或处理器308执行计算机可读指令以生成多个虚拟机器人606,该虚拟机器人进一步包括虚拟机器人606A、606B和多个其他虚拟机器人(未示出)。这些虚拟机器人606A、606B可以生成足迹索引,控制器222或处理器308可以通过执行计算机可读指令来使用足迹索引,以通过计算碰撞点608来检测未来的碰撞,碰撞点608包括虚拟机器人606A、606B足迹索引与计算机可读地图上的相应对象610重叠的点。应当理解,虚拟机器人606不是物理实体,而是机器人202在机器人202的环境的计算机可读地图上的投影。

控制器222或处理器308可以执行计算机可读指令,以使用以下图9A-图9C和图10中所示的方法确定路线602导航进入两个对象610之间的狭窄通道614。因此,控制器222或处理器308执行计算机可读指令,以在机器人202沿着路线602(即,预先规划的或原始的路线)导航之前测试多个虚拟机器人606,以测试针对碰撞点608的已知路线602相对于相应屏障610的多个可能优化,其中多个可能优化中的一个被图示为经优化的路线604。可以由控制器222或处理器308执行计算机可读指令以沿经优化的路线604投影虚拟机器人606B来对经优化的路线604进行测试。例如,虚拟机器人606可以测试对路线602的部分616的100个相应潜在优化。控制器222或处理器308执行计算机可读指令,以基于多个参数来确定对路段616的最佳优化包括经优化的路线604,该多个参数包括但不限于消除与相应屏障或障碍物610的碰撞点608、优化路线604增加的额外长度、机器人202执行转弯时机器人202与对象610之间的距离、与经优化的路线604相关联的风险程度(即,根据图4中所示的区域402邻近对象610)、来自操作单元204的数据、其他附近的对象和/或机器人402的物理属性(例如,宽度、长度、形状、转弯半径等)。

如图所示,虚拟机器人606A可以测试(即,沿其投影)路线602的原始部分616,并且在向左转入狭窄通道614(即,两个对象610之间的空间)的执行期间检测碰撞点608,从而向控制器222或处理器308指示如果机器人202执行具有部分616的路线602,则可能发生碰撞。虚拟机器人606B可以测试到路线602的部分616的优化路线604,该优化路线604不包括使用虚拟机器人606B测试的碰撞点608。多个额外的虚拟机器人606也可以测试为清楚起见而省略的、与部分616类似的优化,其中基于上述参数,可以确定虚拟机器人606B测试的优化路线604是对路线602的部分616的最佳优化。

根据至少一个示例性实施例,通过控制器222或处理器308执行计算机可读指令,机器人202可以提前(例如,在机器人202处于较远的位置时)或在行进到对象610附近之前计算优化路线604,以将虚拟机器人606施加于环境600的计算机可读地图上,并利用地图绘制和定位单元226和地图评估单元228进一步评估可能的路线来找到优化604。换句话说,控制器222或处理器308执行计算机可读指令,以允许机器人202在执行该动作之前的将来某个时间点本质上预见其动作和位置。

仍然参考图6,可以沿已知路线602的路段616检测一个或多个碰撞点608,从而使控制器222或处理器308执行存储在存储器224中的计算机可读指令,以找到路段616的最佳或最优优化路线604,该路段616是原始路线602的部分或路段。最佳或最优优化路线604可以是控制器222或处理器308施加虚拟机器人606来测试优化路线604找到的。可替换地,在一个或多个非限制示例性实施例中,在使用虚拟机器人606A导航部分616进行测试期间,可能不会出现碰撞点608,从而允许机器人202导航其原始路径602(包括部分616),而无需优化路线604。

根据至少一个非限制示例性实施例,碰撞点608可以说明与计算机可读地图上的对象610重叠的临界风险区402A或其他风险区402,其中风险区402A与对象610的重叠在计算机可读地图上可能是不可接受的(例如,出于安全原因),从而需要对路线602的部分616进行优化604。

根据至少一个非限制示例性实施例,检测到碰撞点608可以使控制器222或处理器308执行计算机可读指令,以使机器人202停住或完全停止,并执行专用算法来利用本公开中前面提到的虚拟机器人606和方法找到优化路线604。如上所述,这些虚拟机器人是将来或稍后在机器人202采取路线602或优化路线604之前形成的在机器人202的计算机可读地图上的投影。

根据至少一个非限制示例性实施例,可以利用传感器单元214在路线602的任一侧的预定阈值距离内检测路线602附近的对象610。在检测到对象602在路线602附近阈值距离之内时,控制器222或处理器308可以执行计算机可读指令以确定和导航优化路线604,该优化路线604与对路线604的路段616的最佳优化相对应。在一些情况下,机器人102可以在对象610附近导航时检测到对象610正在路线604附近且在阈值距离之内,,其中机器人202可以沿路线602回溯以确定要应用于路线602的部分616的优化604,并随后执行优化路线604以避免碰撞。

如图所示,控制器222或处理器308可以执行计算机可读指令以通过对路线602中的路段616进行柔曲绕扎来应用优化路线604,其中对路段616进行柔曲绕扎包括在机器人202导航转向对象610时增加机器人202与对象610的距离,如图8A-图8C中进一步所示。换句话说,对路段616进行柔曲绕扎类似于将路段616远离对象610拉伸或扩展以包含更宽的转弯半径,以用于机器人202导航到狭窄通道614中,从而降低机器人202进入或接近狭窄通道614时碰撞和/或改变机器人202的取向的风险,以最小化风险并消除与相应屏障610的碰撞点608。例如,表示经优化的路线604的导航期间机器人202的定位和取向的虚拟机器人606B在虚拟机器人606B进入狭窄通道614之前或恰好在虚拟机器人606B进入狭窄通道614时沿基本向前的方向取向。

根据另一个非限制示例性实施例,控制器222或处理器308可以执行计算机可读指令以从存储器224存储/调用沿已知路线602的状态点612的位置。根据至少一个非限制示例性实施例。已知路线602可包括多个状态点612(例如,如图所示的612A、612B、612C和612D),其中它们沿已知路线602的位置被存储在存储器224中。接下来,控制器222或处理器308可以执行计算机可读指令,以改变存储在存储器224中、与多个状态点612相对应的数据,以考虑对已知路线602的路段616进行的优化路径604。

如图6所示,优化路线604包括操纵沿路线602的选定的若干状态点,更具体地,沿路线602的部分616的状态点。下面的图8B进一步示出了选择要被操纵的状态点612以及如何对其进行更详细的操纵。作为非限制示例,路线602的优化路线604是在状态点612B和612D附近完成的,是因为除其他外(未示出)这些状态点位于或基本接近(例如在,状态点之内)路线602的部分616,其中如果由机器人202导航,则可以确定部分616导致碰撞点608。而由于状态点612A不在优化路线604附近,因此状态点612A没有如图6中所示改变。换句话说,通过非限制说明性实施例,状态点612A不位于改变为优化路线604的路线602的路段616上或其附近。换句话说,一些状态点可以被优化,而其他状态点可以不被改变。

如果没有优化路线604,则可以使控制器222或处理器308执行计算机可读指令,以确保在将优化路线604应用于路线602的部分616之前和之后,通过使用与图5中先前示出的方法基本相似的方法,来对与存储在存储器224中的状态点612A相对应的数据进行一些改变或不改变,保持机器人202在状态点612A的状态参数。换句话说,由于在应用优化路线604之后状态点612A的位置不改变,因此与状态点612A相对应的状态参数不被更新、改变或修改。应当理解,可以操纵进一步沿着路线602并且在状态点612D之后的状态点的一些(例如,一个、两个、三个等)状态参数,以在机器人202导航优化路线604而不是路线602的原始部分616到狭窄通道614中时,考虑机器人202的取向和/或速度的改变。

类似地,根据至少一个非限制示例性实施例,控制器222或处理器308可以执行计算机可读指令,以沿着机器人202的已知路线602去除状态点612B,以考虑优化路线604,该状态点612B位于已知路线602的路段616上,其中由于使用虚拟机器人606A检测到潜在的碰撞,因此路段616被改变为优化604。在优化已知路线路段616以便避免与屏障610的碰撞点608时,沿原始路线602的状态点612B可被分配给与状态点612C相对应的新位置。控制器222或处理器308可以执行计算机可读指令以更新与状态点612B的位置和状态相对应的、存储在存储器224中的数据。此外,可以通过控制器222或处理器308执行计算机可读指令将状态点612C添加到存储器224中,沿具有优化路线604的已知路线602的状态点612的集合。

根据至少一个非限制示例性实施例,状态点612D可以位于优化路线604和已知路线602上,其中在将优化路线604应用到路线602的部分616之后,状态点612D的位置可以保持不变。然而,根据至少一个非限制示例性实施例,控制器222或处理器308可以执行计算机可读指令以修改与存储器224中的状态点612D相对应的状态参数(例如,机器人202的取向和速度)以考虑优化路线604。可以在机器人202沿着路线行进到实际位置之前或前面修改此类状态参数。

图6中呈现的状态点612的存在旨在说明性而非限制性。在一些实施例中,机器人202可以使用不包括状态点612的其他当代运动规划方法来执行路线(例如,602)。例如,机器人202可以利用预先计算的运动基元和/或成本评估来实现沿路线602的导航。例如,在这些实施例中,可以操纵成本以将机器人202配置成用于通过对路线602的部分616进行柔曲绕扎(即,延伸远离对象610)来沿相似的优化路线604进入狭窄通道614。即,状态点612说明了规划和操纵路线602的一种方法及其参数,其中,本公开的用于使路线围绕对象柔曲绕扎和/或进入狭窄通道的系统和方法可以应用于如本领域技术人员所理解的任何运动规划方法。

根据一些示例性实施例,在应用优化路线604之前和/或之后,沿着路线602可以存在一些、零、所有或另外的状态点。此外,如图6中所示的状态点612A-612D沿已知路线602出现的顺序并非旨在进行限制。如上所述的这些状态点是沿机器人202行进的原始路线的点,当机器人202优化原始路线的路段时,这些点进而充当机器人202的路标或参考点。这些状态点612通过操纵与存储器中的状态点612相关联的状态参数,来帮助机器人202对机器人202行进的原始路线602的路段进行优化,如下图7所示。

根据至少一个示例性实施例,控制器222或处理器308可以执行计算机可读指令以在确定优化路线604时另外利用专门的风险分析算法。根据至少一个示例性实施例,该专门的风险分析算法可包括控制器222或处理器308执行计算机可读指令以通过确保机器人202与附近对象之间的足够距离来最小化与如以上图4中所示导航路线相关联的风险。根据至少一个非限制示例性实施例,优化路线604可包括在所测试的多个可能的优化中,以与临界风险区402A、高风险区402B或其他风险区402与计算机可读地图上的对象610之间的最小重叠相对应的最低程度的预定风险来进行优化。换句话说,控制器222或处理器308可以执行计算机可读指令以识别机器人202可以采取的多个优化路线。但是,它能够选择具有与屏障碰撞的最小风险的最佳或最理想路线,该风险与机器人202距对象610的距离成比例。

另外,在将优化路线604应用于已知路线602的路段616之后,控制器222或处理器308可以执行计算机可读指令以利用如图2所示的多个操作单元204,以一旦找到优化路线604就导航机器人202。

有利地,所发现的优化路线604可以通过在进入狭窄通道614之前将机器人202朝基本上向前的方向取向来使机器人202导航到狭窄通道614中而不会发生碰撞,这可以使与环境屏障610碰撞的风险最小化。应当理解,在进入狭窄通道614之前使机器人202向前取向对包括小于狭窄通道614长度的宽度的机器人202是有利的,但是执行更宽的转弯(例如,柔曲绕扎路线)以避免与对象610碰撞可被应用于任何大小或形状的任何机器人202。另外,风险分析操作可以允许控制器222使用附加参数来确定最佳优化,该最佳优化在从多个可能的优化中确定最佳优化可能是有用的。

接下来,将描述图7。图7是存储在存储器224中的数据的示例性实施例,该数据包括沿路线以任意或预定距离(例如,0.1、1、2、3等米、英寸、厘米等)的增量位置集合以及机器人202将位于每个路线位置的定位坐标。在一些实施例中,沿路线的位置可以类似地与状态点相对应。如图7中所示,对于沿路线的每个位置(例如,1、2、…、N),都包括一组相对应的坐标(X1、Y1……XN、YN)。在仅对原始路线的一部分或整个路线执行优化之后,控制器222或处理器308可以执行计算机可读指令以更新这些坐标并将它们存储在标记为“新路径”的不同列集下。换句话说,用于在存储器中存储数据的表格式可以是自引用表,其通过执行专用算法自行更新,并将原始路径的坐标与新路径的坐标相关联,使得在后续执行时,位置1将与原始路径(X1、Y1)和新路径(X1+ΔX1、Y1+ΔY1)相关。

根据至少一个非限制性实施例,尽管控制器222或处理器308可以执行计算机可读指令来优化路线,但是它可以对与沿路线的位置相对应的沿机器人202的路径的定位坐标进行由增量(Δ)代表的改变。这些位置改变可以由控制器或处理器308执行指令来计算。根据另一非限制示例性实施例,可以不改变、删除和/或添加任何零个、一个或多个位置来优化机器人202将采用的路线。根据另一个非限制示例性实施例,图7中所示的数据类型(例如,X和Y定位坐标)可包括与图7所示的类型相同、相似或不同的数据类型,以指示沿机器人202的路线的位置。

根据至少一个非限制示例性实施例,位置1可以不是机器人202的初始位置。类似地,图7中所示的沿路线的位置没有指示路线上的任何特定位置,而是示出了以任意或预定、恒定或其他间隔隔开的沿路线的顺序位置。根据另一个非限制示例性实施例,沿路线的位置可以与沿路线的如以上在图6中所示的状态点612的集合相对应,其中可以调整状态点612的定位位置和状态参数以考虑优化路线604。根据另一个非限制示例性实施例,其中沿路线的位置与多个状态点相对应,与沿路线或路径的相应位置相对应的状态参数(例如,定位、取向、速度等)也可以被调整并存储在存储器224中,以考虑对原始路线进行的优化。

根据至少一个非限制示例性实施例,由增量示出的定位坐标的变化可以在多个位置上变化或保持恒定,并且可以大于、小于或等于零。根据另一示例性实施例,定位坐标的改变可以基于机器人202的多个参数,包括但不限于机器人202的尺寸、形状、速度、转弯半径和/或机器人202的任何其他物理参数。

接下来,将描述图8A。图8A是根据示例性实施例的机器人202检测到两个对象802之间的急转弯进入狭窄通道804并利用路线或其一部分的柔曲绕扎以避免与对象808碰撞的俯视图。路线可包括多个状态点806,每个状态点806包括空间位置(例如,在计算机可读地图上)和机器人202要在相应的空间位置处遵循的状态参数,状态参数至少包括机器人202的速度和取向,并且可进一步包括致动器命令和/或用于在相应状态点806处执行的计算机可读指令。机器人202将自身与顺序状态点的顺序状态参数对准可以将机器人202配置成用于(例如,通过跟随由状态点806形成的姿势图)导航路线。

为了检测路线是否可导航而没有碰撞,控制器222或处理器308可执行计算机可读指令以沿路线在其自身前面投影多个虚拟机器人606,其中每个虚拟机器人606被投影到路线的相应状态点806上。在投影虚拟机器人606时可以检测到一个或多个碰撞点608,由于路线可包括数百个或更多个状态点,因此为了清楚起见,省略了许多虚拟机器人。碰撞点608可包括虚拟机器人606足迹与计算机可读地图上的对象802之间的重叠区域,或者可包括以上图4中所示的、与对象802重叠的一个或多个风险区域(例如,402A)。因此,如接下来在图8B中所示,需要对路线进行优化以避免机器人202与对象802碰撞。

图8B示出了根据示例性实施例的要由先前在图8A中所示的机器人202导航的路线的状态点806。应当理解,已经从以上图8A中所示的实施例中示出了附加状态点806A-806H;然而,路线可包括更多或更少的状态点806。每个状态点806可包括状态参数,其中状态参数可以至少包括在每个相应状态点806处机器人202的向量808(用实线表示)表示的速度。速度向量808指示机器人202在与相应状态点806相关联的位置处的速度和取向,以使机器人202导航路线。

控制器222或处理器308可以执行计算机可读指令,以基于在预定距离上超过阈值的向量808的变化率来确定沿路线的急转弯。变化率包括角度变化率。例如,如果速度向量808在预定距离内(例如,在N个状态点内,N为任何整数)从向上指向(即,诸如在状态点806E处)改变为横向指向(即,在状态点806H处),则可以考虑转弯过紧。急转弯可能需要机器人202对该路线中的包括急转弯的路段进行柔曲绕扎,以避免与对象802碰撞并平稳地导航。控制器222或处理器308可以进一步执行计算机可读指令,以基于对象802与在计算机可读地图上低于阈值距离的对象802之间的相应状态点806的接近度来确定狭窄通道804。阈值距离可以等于机器人202的宽度加上与机器人202与对象802之间的期望间隙相对应的预定值(例如,在机器人202的任一侧的5英寸间隙,以确保机器人202的安全操作)。

为了对路线进行柔曲绕扎,可以通过控制器222或处理器308执行计算机可读指令来将虚拟机器人606投影到相应状态点806D-806G上,从而一些状态点806D-806G可被确定为引起碰撞608和/或包括急转弯。这些状态点806D-806G用叉示出。可以通过控制器222或处理器308执行计算机可读指令来为每个状态点806D-806G(以及未示出的806D-806G之间的状态点)确定柔曲绕扎向量810(虚线箭头),其中柔曲绕扎向量810基本上正交于速度向量808和/或远离最近的对象802延伸。柔曲绕扎向量810示出了在路线的柔曲绕扎期间相应状态点806的位置的变化。柔曲绕扎向量810的幅度可以与相应的状态点806到附近对象802的接近度成比例,其中状态点806E-806F可包括大的柔曲绕扎向量810,因为它们显著地更靠近对象802。而由于状态点806D距对象802较远,因此806D可包括较小的柔曲绕扎向量810。由于状态点806G与两个对象802的邻近度,因此状态点806G可包括小的柔曲绕扎向量810(即,限制了对状态点806G的潜在优化)。换句话说,由于大小差取决于来自对象802的相应状态点的位置,因此沿路线的每个状态相应的状态点可以具有大小不同的柔曲绕扎向量。

应当理解,柔曲绕扎向量810的大小(即,长度)是在实现使路线远离对象802延伸的同时向路线添加最小量的附加长度的方式计算的。针对第n个状态点,806柔曲绕扎向量810的大小可以表示添加到沿图7所示的表的路线的位置的(x,y)位置的ΔXn和/或ΔYn值的大小。

新的状态点812D-G(以灰色表示)可以替换或改变状态点806D-G,以将路线配置远离对象802延伸,并包括进入两个对象802之间的狭窄通道804的较宽转弯(即,柔曲绕扎)。新状态点812位于相应状态点806的柔曲绕扎向量810的末端。对于经优化的状态点806D-G附近的状态点806B-C的附加优化也可以使用柔曲绕扎向量810执行,使得机器人202执行围绕对象802平滑移动并进入狭窄通道804。例如,状态点806C与后续经优化的状态点812D之间的速度向量808的角度变化率可能超过阈值,从而需要状态点806C的一些扩展,如经优化的状态点812C所示。也就是说,对距对象802足够远的一些状态点(例如,806B-C)的优化(即,改变)是优化其他附近/邻近状态点(例如,806D-G)的结果,如本领域技术人员所理解的,这些附近/邻近状态点需要进行优化以避免碰撞,其中对状态点806B-C的优化可以实现机器人202的平滑运动。机器人202的平滑运动对于机器人202附近的人们可能是期望的,因为平滑运动是可预测的并且在美学上令附近的人愉悦。换句话说,某些状态点的优化可能影响或考虑其他状态点的优化。如上所述,状态点806B-C的优化可能进而影响附近或并存状态点806D-G的优化。

可以使用例如姿势图来确定用于经优化的状态点812B-G的速度向量808,使得机器人202根据经修改的路线在相应状态点812B-G上导航。应当理解,通过在新确定的状态点812B-G上导航,机器人202可以遵循与以上图5中所示的优化506和图6中所示的优化604基本相似的路径。

应当理解,可以为相应状态点806B-G确定和测试多个潜在的经优化的状态点812B-G,其中仅示出与最佳(即,最优)路线相对应的经优化的状态点812B-G。例如,控制器222或处理器308可以执行计算机可读指令以针对每个相应状态点806测试N个潜在的柔曲绕扎向量810,N是任何整数,其中,经优化的状态点812的柔曲绕扎向量810可包括与路线的最佳优化相对应的、选择的对状态点806的N个潜在优化中的一个。所测试的N个潜在的柔曲绕扎向量810中的每一个可包括远离它们相应状态点806的不同的大小和/或不同的方向。该优化基于但不限于添加的附加路径长度、到对象802的距离(例如,根据以上图4所示的区域402)和/或优化导航期间机器人202的角度变化率。

最后,图8C示出了根据示例性实施例的由控制器222或处理器308执行计算机可读指令以测试以上图8B中所示的对路线的优化而施加到计算机可读地图上的多个虚拟机器人606。当机器人202执行经优化的路线时,虚拟机器人606可以示出机器人202的路径814,该经优化的路线包括使用以上图8A-图8B所示的方法确定的一个或多个经优化的状态点812(以灰色示出)。路径814包括进入狭窄通道804的更宽的转弯。可以理解,沿路径814可以存在多个附加状态点806、812,其中为了清楚起见仅示出了几个离散样本(即,由机器人202导航的路线814可以比图示的更平滑)。应进一步理解,虚拟机器人606-F在进入狭窄通道804之前基本上向前取向,从而进一步减少了当机器人202执行经优化的路径814时发生碰撞的机会。

有利地,基于速度向量808的角变化率来确定急转弯的使用可以使机器人202能够预测潜在的危险动作(例如,急转弯进入狭窄通道),以及在机器人202导航路线之前平滑路线的经优化部分。与具有急转弯的路线相比,更平滑的路线对于观察机器人202的导航的人们可能看起来更期望和更可预测。进一步,如柔曲绕扎向量810和经优化的状态点812所示,远离对象802的柔曲绕扎状态点806可以使机器人202通过执行围绕对象802更宽的转弯而在不发生碰撞的情况下导航进入狭窄通道。此外,对路径的优化(即,对状态点806B-G的修改)可以使机器人202在进入对象802之间的狭窄通道之前将自身定向为向前方向,从而进一步减小宽度小于长度的机器人202与对象802碰撞的机会。

接下来将详细描述图9A-图9C。图9A-图9C是根据示例性实施例的在机器人202导航路径902以检测预期的碰撞点906A-B时通过扩展机器人202的足迹的宽度来检测沿路线902的狭窄通道的方法的俯视图。碰撞点906A-B包括延伸足迹904与障碍物重叠的位置。

图9A示出了机器人202使用在“A侧”上的延伸足迹904A来对导航路径902进行导航以检测如图所示机器人202在“A侧”或左侧的碰撞点906A的存在和位置的俯视图的示例性说明性实施例。如本文中相对于图9A-图9C所使用的,碰撞点906A和906B表示与机器人202的延伸足迹904和附近对象的碰撞,与上面具有虚拟机器人606和对象610的图6中所示的碰撞点608类似。换句话说,碰撞点606和906分别表示虚拟机器人606或机器人202的虚拟延伸足迹904与计算机可读地图上的对象之间的重叠。在图9A中示出了五个碰撞点906A;然而,本领域技术人员将理解,沿路径902可以存在多个碰撞点906A。如图9A中所示,控制器222或处理器308可以执行计算机可读指令以通过使控制器222或处理器308执行计算机可读指令以从各种传感器单元214接收此类输入,来在其沿路线902导航时将碰撞点906A的位置存储在存储器224中并且将存储器224中的位置存储在环境的计算机可读地图上。碰撞点906A可以指示与机器人202的延伸足迹904A和周围的障碍物的碰撞。

根据至少一个非限制示例性实施例,可以基于使用传感器单元214在距机器人202的阈值距离之内检测到对象来确定碰撞点906。该阈值距离与延伸足迹904从机器人202延伸的距离相对应,与检测如以上图4中所示的一个或多个风险区域402内的对象类似。即,延伸足迹的使用旨在是说明性的而非限制性的。

类似地,图9B示出了机器人202导航路径902的俯视图的示例性说明性实施例,该路径具有在机器人202的“B侧”或如图所示的右侧的延伸足迹902B。“B侧”与“A侧”相对,其中沿路线902检测到机器人202的“B侧”上的碰撞点906B的存在和位置。在图9B中示出了四个碰撞点906B;然而,本领域技术人员将理解,沿路径902可以存在多个或更少个碰撞点906B。如图9B中所示,控制器222或处理器308可以执行计算机可读指令,以将在B侧发现的、存储器224中所检测的碰撞点906B存储在环境的计算机可读地图上。根据一些示例性实施例,可以在机器人202的A侧和B侧同时延伸足迹,并且可以在机器人202导航路线902时在两侧同时检测到碰撞点906A和906B。根据至少一个示例性实施例,控制器222可以同时将存储器224中“A侧”和“B侧”的碰撞点906A和906B的位置存储在周围环境的计算机可读地图上。

图9C示出了计算机可读地图的俯视图的示例性说明性实施例,该计算机可读地图回顾了在机器人202以如先前在图9A和9B中所示的延伸足迹导航路线902时找到的沿路线902的所有碰撞点906A和906B的位置。碰撞点906A和906B可以被分类为单个碰撞点908或一对碰撞点910,其中单个碰撞点908指示在机器人202的相应的A侧或B侧附近的障碍物或对象,而一对碰撞点910可以指示A侧和B侧的障碍物或对象。沿路线902的位置,成对的碰撞点910可以与沿通过狭窄通道的路线上的位置相对应。在沿路线902的某些位置处,可以检测到单个碰撞点906A或906B,与位于机器人202的单个相应A侧或B侧的对象相对应。在沿路线902的某些位置,可以在机器人202的A侧和B侧两侧检测到一对910的碰撞点906A和906B。沿路线902的位置可以与在狭窄通道内的位置相对应,在该路线902中检测到一对910的碰撞点906A和906B。

根据至少一个非限制示例性实施例,对于两个碰撞点以表示一对910的碰撞点906A和906B,可能需要将碰撞点906A和906B定位在同一横截面912内。横截面912可以如图所示与路线902正交取向,或者可以相对于路线902沿任何角度取向。此外,碰撞点906A和906B的对910可能需要分别包括机器人202的“A侧”和“B侧”上的碰撞点906A和906B,以位于横截面908内。

根据至少一个非限制示例性实施例,机器人202可以使用虚拟机器人,用虚拟机器人代替图9A-图9C中所示的机器人202。该虚拟机器人包括延伸的虚拟足迹,该虚拟足迹在A侧和B侧两侧都延伸,以使用与前面图9A-图9C中提到的基本相似的方法来确定狭窄通道。根据相同的示例性实施例,机器人202可以在环境的计算机可读地图上施加延伸的虚拟机器人足迹,这可以允许机器人202在远离狭窄通道的位置中识别沿路线的狭窄通道。

有利地,图9A-图9C中所示的系统和方法可以允许机器人202自主地(例如,无需用户告诉机器人狭窄通道在哪里)或在训练期间确定沿路线的狭窄通道。机器人自主地或在训练期间确定狭窄通道可以减少用户操作机器人的操作成本。

图9D是存储在存储器224中的数据的示例性实施例,该数据包括沿路线以任意或预定距离(例如,0.1、1、2、3等米、英寸、厘米等)的增量位置集合、表示沿路线相对应位置处的“A侧”或“B侧”上通过延伸足迹检测到或没有检测到对象的二进制值,以及基于在“A侧”或“B侧”上检测到对象的确定列。如图9D中所示,控制器222或处理器308可以执行计算机可读指令,以确定当机器人202使用延伸足迹导航路线时在机器人202的“A侧”或“B侧”上存在的对象。在例如在所示出的位置1处的“A侧”上检测到对象时,控制器222或处理器308可以执行计算机可读指令以将二进制值设置为1,其中值1与正对象检测读数相对应。在确定与“A侧”和“B侧”上的对象检测相对应的二进制值时,控制器222或处理器308可以执行计算机可读指令,以基于该二进制值来确定狭窄通道或对象。

图9D中所示的示例性数据表进一步包括确定列,在该确定列中比较“A侧”和“B侧”的二值对象检测值以确定沿路线的狭窄通道和/或对象。根据图9D中所示的示例性实施例,控制器222或处理器308可以执行计算机可读指令,以基于“A侧”和“B侧”的对象检测值均为1(例如,逻辑“与”运算)的位置来确定沿路线的一个或多个定位处存在的狭窄通道。另外,控制器222或处理器308可以执行计算机可读指令,以基于与对象所在的一侧相对应的一个值为1来确定在“A侧”或“B侧”上存在的对象。如图所示,在沿路线的“A侧”和“B侧”都具有0的对象检测值的定位处,其中控制器222或处理器308可执行计算机可读指令,以将该确定值存储在存储器224中,作为与在该定位处检测到的对象或狭窄通道都不相对应的0值。

根据另一个非限制示例性实施例,可以基于沿路线的多个后续定位来确定狭窄通道,该定位具有“A侧”和“B侧”的对象检测值均为1。例如,位于表9D中定位3处的机器人的控制器可能无法确定定位3在狭窄通道内直到机器人到达定位4,在检测到“A侧”和“B侧”的对象检测值为1的后续定位时,控制器可以确定定位3和4在狭窄通道内。

根据至少一个非限制示例性实施例,表9D可包括更多或更少的列,这些列包括相同或不同的数据类型。例如,当控制器在两个阵列中导航路线时,控制器可以存储对象检测读数,一个用于“A侧”而另一个用于“B侧”,其中使用与上述方法基本相似的方法比较阵列可以允许控制器确定沿路线的狭窄通道。换句话说,用于在存储器中存储数据的表格式可以是通过执行专用算法自行更新的自引用表,其中N的值可以是任何正整数。

图10示出了根据非限制示例性实施例的用于检测狭窄通道的另一种方法。所示的环境的计算机可读地图可以由控制器222或处理器308执行计算机可读指令来提供给机器人202和/或在沿路线1002的先前导航期间(例如,在路线1002的训练期间)生成。计算机可读地图可以至少包括其上的定位的对象1004以及路线1002的路线数据(例如,状态点)。可以基于在阈值距离内的路线1002的相对两侧均存在的两个对象1004来确定两个对象1004之间的狭窄通道。阈值距离与机器人202的宽度成比例。阈值距离是与沿路线1002的行进方向(即,沿方向1006)垂直测量的。如果在计算机可读地图上沿路线1002的任意点在路线1002的任一侧的阈值距离内检测到两个对象1004,则可以在两个相应的对象1004之间确定狭窄通道。因此,控制器222或处理器308可以根据本公开的系统和方法,执行计算机可读指令以对路线1002执行优化1008(即,优化1008包括对路线1002的一部分进行柔曲绕扎)。

如图所示,在检测到对象1004低于远离路线1002的阈值距离时,使用上述方法确定优化部分1008,并替换路线1002的一部分。优化1008配置路线1002的两个急转弯,以包括围绕对象1004的更大的转弯半径。例如,可以为沿两个急转弯的每个状态点确定柔曲绕扎向量810,从而产生优化1008,如以上图8B中所示。如上所述,在机器人202执行路线1002的优化路段1008时,更大的转弯半径减小机器人202与对象1004之间发生碰撞的机会。

根据至少一个非限制示例性实施,机器人202可以利用一个或多个传感器单元214来检测在路线1002的相对侧的阈值距离内的两个对象1004。一旦检测到时,控制器222或处理器308可以执行计算机可读指令,以将狭窄通道映射到计算机可读地图上(例如,如图9D所示),执行对路线1002的优化1008,以及沿路线1002的经优化部分1008导航机器人202。然而,该实施例可能需要机器人202导航附近的对象1004以便检测狭窄通道,这可能进一步需要机器人202沿路线1002回溯并导航路线1002的经优化部分1008以避免与对象1004碰撞。另一方面,与上图中所示的方法相反,本实施例使用虚拟机器人和/或足迹的虚拟延伸确实降低了检测狭窄通道的计算复杂度,使得在机器人202操作时可以实时检测狭窄通道。

图11是示出根据示例性实施例的在路线的一个或多个路段或部分的优化期间控制器222或处理器308的三种状态的状态图。从等待状态1102开始,当没有对路线执行优化时,等待状态1102可包括控制器222或处理器308的任何状态。例如,在导航路线远离急转弯期间,在机器人202的空闲时间期间,或者当机器人202执行机器人202的任何其他功能时控制器222或处理器308可以处于等待状态1102。作为另一个示例,当控制器222或处理器308检查路线的急转弯和/或狭窄通道时,控制器222或处理器308可以处于等待状态1102。

条件1104包括检测沿路线的急转弯。在一些实施例中,条件1104还可包括检测进入狭窄通道的任何转弯。控制器222或处理器308可以执行计算机可读指令以基于例如机器人202在执行转弯期间超过阈值的角度变化率来检测急转弯。可以在导航路线之前或导航路线期间确定急转弯。因此,控制器222或处理器308可以移动到急转弯状态1106。在急转弯状态1106中,控制器222或处理器308可以执行计算机可读指令,以通过如图5、图6、图10和图12所示对路线中的包括检测到的急转弯的部分进行柔曲绕扎来优化该部分。换句话说,控制器222或处理器308可执行计算机可读指令以执行以上图1的方法100或其部分来优化包含所检测的急转弯的路线部分。在路线的该部分被优化(即,柔曲绕扎)之后,条件1108可以与优化的完成相对应地适用,其中控制器222或处理器308可以返回到等待状态1102。在一些情况下,可以不确定优化(例如,对象可以阻止潜在的优化),其中条件1110可以将控制器222或处理器308配置成用于移动到以下所述的卡住/辅助状态1114。

在等待状态1102中的同时,机器人202可以导航路线或执行机器人202的任何其他功能。控制器222或处理器308可以执行计算机可读指令,以在导航期间确定机器人202是否卡住(例如,可以确定不可导航的路线)或者是否需要来自人类操作员的辅助。因此,控制器222或处理器308可以移动到卡住/辅助状态1114。在卡住/辅助状态1114中的同时,机器人202可以空闲(即,静止)并等待操作员的辅助。条件1116与控制器222或处理器308等待(例如,来自人类操作员的)辅助相对应。在接收到辅助后,条件1118可适用,使得控制器222或处理器308返回到等待状态1102,其中条件1118与机器人202松开和/或向机器人202提供辅助(例如,操作员手动移动机器人202或移动阻挡机器人202的路径的对象)相对应。

应当理解,所示的三个状态1102、1106和1114与执行对路线的优化所需的控制器222或处理器308的状态相对应,其中如本领域技术人员所理解的,控制器222或处理器308可以处于多个附加状态(例如,在机器人202的加电期间的初始化状态、用于清洁机器人202的清洁状态等)中的任何一个来实现机器人202的操作。

图12示出了根据示例性实施例的本公开的系统和方法的示例性非限制实施方式,该系统和方法用于将包括自动驾驶汽车的机器人202停放在停车场1200中的停车位1202中。机器人202可以使用图2所示的一个或多个操作单元204来定位对象1212并将它们映射在停车场1200的计算机可读地图上。使用计算机可读地图,机器人202的控制器222或处理器308可以执行计算机可读指令,以确定包括进入可用停车位1202的最短路线的第一路线1204。但是,第一路线1204可包括从急转弯进入狭窄通道。急转弯进入狭窄通道可能导致与附近对象1212的碰撞,如上图6和图8A所示,或者可能导致机器人202卡住,从而需要机器人202对第一路线1204的至少一部分或一路段进行优化。如上图11所示,控制器222或处理器308可以移动到急转弯状态1106,以确定对路线1204的优化1210。

路线1204可包括多个状态点1206,每个状态点1206包括与其相关联的状态参数(例如,速度、取向等)。如前所述,机器人202可以通过配置其状态参数以匹配顺序状态点1206的状态参数来沿第一路线1204导航。一些状态点1206可能需要优化以避免机器人202沿急转弯进入狭窄通道进行导航。因此,使用以上示出的本公开的系统和方法,以白色示出的状态点1206被优化或以其他方式改变为以灰色示出的状态点1208。应当理解,由于因为优化而增加的附加长度,因此将一些附加的状态点1208添加到经优化的路段1210。即,路线1204被柔曲绕扎以包含进入停车位1202的更宽的转弯半径,使得机器人202在进入停车位1202之前将其自身取向为向前方向并且进一步远离附近的对象1212导航。经优化的路段1210可以与人类沿直线通过停车场1200驾驶汽车(例如,在行车道内)、寻找可用的停车位1202并改变其当前路线(例如,1204)以包含进入狭窄的停车位1202的更宽的转弯(例如,1210)来避免与附近的停放的汽车1212碰撞类似或相似。可以理解,由于经优化的路段1210部分包含导航到另一车道,因此机器人202在导航经优化的路段1210之前可以附加地使用传感器单元214验证没有汽车在相反的车道和/或相反的方向行驶。

尽管在以上附图中示出的系统和方法利用多个状态点来沿着轨迹或路线导航机器人202,但是考虑用于实现机器人202沿轨迹的运动的其他当代方法,而没有限制。例如,机器人202可以使用成本图来规划其路线,其中机器人202将执行与没有限制地避免对象(例如,避免计算机可读地图上的风险区域402与对象之间的重叠)、平滑导航(即,避免急转弯)、以及导航最短的路线的运动相对应的最低成本的运动。成本图可包括根据空间的成本函数,其中与没有对象的区域相比,包括对象的空间区域可能具有较高的用于机器人202进行导航的关联成本。作为另一个示例,机器人202可以利用预先计算的运动原语,包括机器人202根据路线执行的预先计算的运动。考虑用于实现沿路线的机器人202的控制的多个其他当代方法。当检测到急转弯和/或狭窄通道时,用于对路线的一部分或路段进行柔曲绕扎以包含更宽的转弯半径的较宽的系统和方法可以不受限制地应用于实现机器人202的运动的任何方法,如本领域技术人员可以理解,其中状态点的使用仅是说明性的。例如,成本图的成本函数可以鼓励机器人202(例如,通过操纵成本)围绕尖拐角和/或进入狭窄通道执行宽的转弯。

图13是根据示例性实施例的示出用于机器人202的控制器222或处理器308使用柔曲绕扎来优化路线的一部分的方法1300的过程流程图。

框1302包括控制器222或处理器308执行计算机可读指令以确定沿路线的急转弯,该急转弯靠近至少一个对象。可以通过在沿路线的距离上超过阈值的距离上检测路线的角度变化率来检测急转弯。可以通过在计算机可读地图上沿路线投影虚拟机器人(例如,在如图8A所示的状态点处)来可替代地或附加地检测急转弯,其中急转弯可以与在转弯的模拟导航期间和计算机可读地图上的对象重叠的一个或多个虚拟机器人的足迹相对应。可以理解,虚拟机器人包括机器人202在计算机可读地图上的投影,其中虚拟机器人的投影与在计算机可读地图上模拟机器人202沿路线的导航相似。

框1304包括控制器222或处理器308执行计算机可读指令,以便对路线中的包括急转弯的部分进行柔曲绕扎。柔曲绕扎包括延伸、拉伸或以其他方式操纵路线的该部分,以包含围绕至少一个对象更宽的转弯半径。上面关于图5的优化路线504、图6的优化路线604、如图8B中所示操纵状态点806、图10的对路线1002的优化1008和图12的路线1210示出了路线的柔曲绕扎的示例性实施例。应当理解,还可以操纵、改变急转弯附近的路线的其他部分,以考虑包括急转弯的部分的改变(例如,以保持路线的连续性,以确保机器人202沿目前经优化的路线的平滑运动等)。

应当理解,确定路线中的包括急转弯的柔曲绕扎部分可进一步包括控制器222或处理器308执行计算机可读指令以测试路线的多个潜在的柔曲绕扎部分(即,对路线的该部分的潜在优化),其中应用于路线中的包括急转弯该部分的所确定的柔曲绕扎部分包括多个潜在的柔曲绕扎部分的最佳优化。最佳优化基于参数,该基数包括但不限于由柔曲绕扎部分增加的距离、到附近对象的距离(例如,根据上图4的区域402)、沿着柔曲绕扎部分的角度变化率,等等。

框1306包括控制器222或处理器308执行计算机可读指令以激活如图2所示的至少一个致动器单元208,和/或附加的操作单元204(例如,导航单元206)来沿包括优化部分的路线导航机器人202。可以理解,在机器人202导航路线之前,可以重复方法1300以优化(即,柔曲绕扎)沿路线的对象附近的每个急转弯。

图14是示出根据示例性实施例的用于机器人202的控制器222或处理器308避免由于急转弯和/或狭窄通道而与对象碰撞的方法1400的过程流程图。方法1400可以在机器人202沿路线导航期间执行,该路线在路线导航之前不包括优化。

框1402包括机器人202导航路线。该路线可以是预定的路线、所学习的路线、由机器人202实时计算的路线或任何其他路线。通过控制器222或处理器308执行计算机可读指令以激活至少一个操作单元204(例如,致动器单元208)以使机器人202沿路线移动来实现沿路线的导航。

框1404包括控制器222或处理器308执行计算机可读指令,以确定沿路线在机器人前方是否存在对象附近的急转弯。在计算机可读地图上定位对象。在一些情况下,包括狭窄通道的多个对象可以定位于急转弯附近。如以上图6和图8A中所示,在对象附近的急转弯可能导致碰撞。可以基于超过阈值的设定距离上的路线(例如,与图8B所示的路线相关联的速度向量808)的角度变化率来确定急转弯。在机器人202导航急转弯之前,可以由控制器222或处理器308检测急转弯。作为非限制说明性示例,控制器222可以评估机器人202前面的每个状态点相距0.5米的20个状态点以进行急转弯,从而为机器人202留出充足的时间用于停止并确定对路线的急转弯部分的优化和/或在必要时停住。对象可以在距包括急转弯的路线的部分阈值距离内,该阈值距离至少与机器人202的宽度和机器人202的转弯半径成比例。

在控制器222或处理器308确定沿路线在机器人202前面且在对象附近检测到急转弯时,控制器222或处理器308可以移动至框1406。

在控制器222或处理器308确定沿路线在机器人202前面没有急转弯时,控制器222或处理器308可以返回到框1402并继续沿路线导航机器人202。

框1406包括控制器222或处理器308执行计算机可读指令,以停住机器人202并计算对包括急转弯的路线的一部分的优化。在一些实施例中,控制器222或处理器308可包括用于足够快地计算优化以使得不需要停住机器人202的计算能力。在一些实施例中,控制器222或处理器可以执行计算机可读指令以降低机器人202的速度。然而,仍然可以将机器人202的停住实现为例如安全措施。控制器222或处理器308可以执行分别在以上图1和图13中描述的方法100和/或1300,来确定对包括急转弯的路线部分的优化。

框1408包括控制器222或处理器308执行计算机可读指令,以将在框1406中确定的对路线的优化应用到包括急转弯的路线部分。该优化与对该路线中的包括急转弯的部分进行柔曲绕扎相对应,其中柔曲绕扎可以进一步改变该路线中的在急转弯部分附近的各部分,如以上图8B中所示。

框1410包括控制器222或处理器308执行计算机可读指令以沿着包括经优化部分的路线导航机器人202。在导航经过经优化的部分后,控制器222或处理器308可以返回到框1402。

本公开示出了一种机器人系统,该机器人系统包括其中存储有计算机可读指令的非瞬态存储器以及至少一个处理器,该至少一个处理器被配置成用于执行计算机可读指令以基于在机器人系统按第一路线行进之前优化预确定的第二路线来确定第一路线,该优化基于彼此独立的多个特性,并且第一路线从用于优化第二路线的至少一条可能路线中确定。至少一个处理器可被进一步配置成用于将至少一个虚拟机器人的足迹叠加在计算机可读地图上,以测试至少一条可能路线来确定第一路线,其中至少一个虚拟机器人足迹包括指示机器人系统在计算机可读地图上的未来位置的足迹。对至少一条可能路线的测试可包括确定沿至少一条可能路线的碰撞点,其中在至少一个虚拟机器人的足迹在计算机可读地图上与环境障碍物相交的位置确定碰撞点。至少一个处理器可被进一步配置成用于确定与至少一条可能路线中的每条路线相关联的风险程度,其中更高的风险程度与更接近环境障碍物的机器人系统操纵相对应,反之亦然,其中至少一条可能路线进一步包括对第二路线进行柔曲绕扎,其中柔曲绕扎包括使第二路线围绕障碍物延伸,使得经柔曲绕扎的第二路线包含围绕障碍物的更宽的转弯。至少一个处理器可被进一步配置成用于通过改变存储在存储器中的包括第二路线的数据来应用第一路线。至少一个处理器可被进一步配置成用于修改沿第二路线的至少一个状态点以考虑对第一路线所做的优化,其中修改包括添加、移除和重新定位至少一个状态点,以及修改与至少一个状态点相对应的状态。

本公开附加地描述了存储在非瞬态计算机可读存储介质上的多个指令,该指令在由专用处理器执行时,使专用处理器用于基于在机器人系统按第一路线行进之前优化第二路线来确定第一路线,优化基于彼此独立的多个特性,并且第一路线从用于优化第二路线的至少一条可能路线中确定。指令可进一步使专用处理器用于将至少一个虚拟机器人的足迹叠加在计算机可读地图上,以测试至少一条可能路线以确定第一路线,其中至少一个虚拟机器人足迹包括指示机器人系统在计算机可读地图上的未来位置的足迹。对至少一条可能路线的测试可包括确定沿至少一条可能路线的碰撞点,其中在至少一个虚拟机器人的足迹在计算机可读地图上与环境障碍物相交的位置确定碰撞点。指令可进一步使专用处理器用于确定与至少一条可能路线中的每条路线相关联的风险程度,其中更高的风险程度与更接近环境障碍物的机器人系统操纵相对应,反之亦然。至少一条可能路线可进一步包括对第二路线进行柔曲绕扎,其中柔曲绕扎包括使第二路线围绕障碍物延伸,使得经柔曲绕扎的第二路线包含围绕障碍物的更宽的转弯。指令可进一步使专用处理器用于通过改变存储在非瞬态计算机可读存储介质中的包括第二路线的数据来应用第一路线。指令可进一步使专用处理器用于修改沿第二路线的至少一个状态点以考虑对第一路线所做的优化,其中修改包括添加、移除和重新定位至少一个状态点,以及修改与至少一个状态点相对应的状态。

本公开附加地示出一种用于机器人系统的优化路线规划的方法,该方法包括基于在机器人系统按第一路线行进之前优化预确定的第二路线来确定第一路线,优化基于彼此独立的多个特性,并且第一路线从用于优化第二路线的至少一条可能路线中确定。方法可进一步包括将至少一个虚拟机器人的足迹叠加在计算机可读地图上,以测试至少一条可能路线以确定第一路线,其中至少一个虚拟机器人足迹包括指示机器人系统在计算机可读地图上的未来位置的足迹。方法可进一步包括确定与至少一条可能路线中的每条路线相关联的风险程度,其中更高的风险程度与更接近环境障碍物的机器人系统操纵相对应,反之亦然。至少一条可能路线可进一步包括对第二路线进行柔曲绕扎,其中柔曲绕扎包括使第二路线围绕障碍物延伸,使得经柔曲绕扎的第二路线包含围绕障碍物的更宽的转弯。方法可进一步包括修改沿第二路线的至少一个状态点以考虑对第一路线所做的优化,其中修改包括添加、移除和重新定位至少一个状态点,以及修改与至少一个状态点相对应的状态。

本公开附加地示出一种能够确定狭窄通道的机器人系统,该机器人系统包括具有其上存储的计算机可读指令的非瞬态存储器,以及至少一个处理器,该至少一个处理器被配置成用于执行该指令,使处理器用于:在第一侧和第二侧延伸机器人系统的足迹,第一侧和第二侧与机器人的前进方向垂直;导航路线并确定延伸足迹内所检测的环境障碍物的位置;以及沿与机器人系统的前进方向垂直的横截面确定在机器人系统的第一侧和第二侧检测到至少一对障碍物的位置处的狭窄通道。处理器可被进一步配置成用于使用具有延伸足迹的虚拟机器人代替机器人系统来导航路线并检测障碍物,以确定沿路线的狭窄通道。

最后,本公开附加地示出一种用于机器人系统、使用至少一个处理器执行存储在非瞬态计算机可读存储介质上的指令确定沿路线的狭窄通道的方法,通过:在第一侧和第二侧延伸机器人系统的足迹,第一侧和第二侧与机器人的前进方向垂直;沿路线导航并确定延伸足迹内所检测的环境障碍物的位置;以及确定狭窄通道,在该狭窄通道处沿与机器人系统的前进方向垂直的横截面在机器人系统的第一侧和第二侧检测到至少一对障碍物。方法可进一步包括使用具有延伸足迹的虚拟机器人代替机器人系统来导航路线并检测障碍物,以确定沿路线的狭窄通道。

本公开示出了一种机器人系统,包括至少一个传感器,该至少一个传感器被配置成用于发送与机器人系统的环境相关的信息,非瞬态计算机可读存储器,该非瞬态计算机可读存储器包括存储在其上的多个指令,以及至少一个处理器,该至少一个处理器被配置成用于执行计算机可读指令以:接收环境的地图,该地图包括至少一个障碍物的位置以及待导航的路线,该路线包括多个路线路段;确定多个路线路段中包括急转弯、狭窄通道或急转弯进入狭窄通道的路线路段,其中确定至少一个可能的碰撞点。进一步地,至少一个处理器被进一步配置成用于执行计算机可读指令,以:确定对路线中的路段的至少一个可能的优化;生成至少一个虚拟机器人以测试对可能碰撞点的至少一个优化;确定从至少一个可能的优化中找到的优化,其中找到的优化满足或超过优化阈值;通过改变存储在存储器中的包括路线的数据来将找到的优化应用于路线;以及通过激活至少一个致动器来按经优化的路线导航,该至少一个致动器被配置成用于移动机器人系统。

至少一个处理器可被进一步配置成用于将至少一个虚拟机器人的足迹叠加在计算机可读地图上,以测试对路线中的路段的至少一个可能的优化,其中虚拟机器人足迹包括指示机器人装置在计算机可读地图上的未来可能位置的足迹,其中对至少一个可能优化的测试包括确定沿至少一个可能优化的碰撞点,其中在至少一个虚拟机器人的足迹在计算机可读地图上与环境障碍物相交的位置确定碰撞点。至少一个处理器可被进一步配置成用于确定与至少一个可能优化中的每一个相关联的风险程度,其中更高的风险程度与更接近环境障碍物的机器人装置操纵相对应,反之亦然。至少一个可能优化可进一步包括对路线中的路段进行柔曲绕扎,其中柔曲绕扎包括使路段围绕障碍物延伸,使得经柔曲绕扎的路段包含围绕障碍物的更宽的转弯。至少一个专用处理器可被进一步配置成用于确定多个路线路段中包括操纵高风险程度的路线路段,其中对路线路段进行优化以最小化风险程度。至少一个处理器可被进一步配置成用于修改沿路线的至少一个状态点以考虑对路线所做的优化,其中修改包括添加、移除和重新定位至少一个状态点,以及修改与至少一个状态点相对应的状态。

本公开进一步描述存储在非瞬态计算机可读存储介质上的多个指令,该多个指令在由一个或多个处理器执行时,使一个或多个处理器用于:接收环境的地图,该地图包括至少一个障碍物的位置以及待导航的路线,该路线包括多个路线路段;确定多个路线路段中包括急转弯、狭窄通道或急转弯进入狭窄通道的路线路段,其中确定至少一个可能的碰撞点;确定对路线路段的至少一个可能优化以避免至少一个碰撞点;确定从该至少一个可能优化中找到的优化,其中找到的优化满足优化阈值;以及通过改变存储在非瞬态计算机可读存储介质中的包括该路线的数据来将找到的优化应用于该路线路段。非瞬态计算机可读存储介质可进一步包括指令,以基于达到或超过的转弯阈值来确定沿路线的急转弯,该阈值包括设定距离内的允许转弯程度。

非瞬态计算机可读存储介质可进一步包括用于以下操作的指令:利用至少一个虚拟机器人足迹以基于该足迹在计算机可读地图上与环境障碍物的相交来确定沿着对该路线段的至少一个可能优化的碰撞点。非瞬态计算机可读存储介质可进一步包括指令,以基于最小化优化长度同时最小化风险程度并消除碰撞点,来确定至少一个可能优化的最佳优化。应用于路线的优化可以通过修改路线数据来执行,该路线数据包括计算机可读地图上与沿路线的距离相对应的定位坐标。

最后,本公开附加地示出一种用于机器人系统、使用至少一个处理器执行存储在非瞬态计算机可读存储介质上的指令确定沿路线的狭窄通道的方法,通过:在第一侧和第二侧延伸机器人系统的足迹,第一侧和第二侧与机器人的前进方向垂直;导航路线并确定延伸足迹内所检测的环境障碍物的位置;以及确定狭窄通道,在该狭窄通道处沿与机器人装置的前进方向垂直的横截面在机器人装置的两侧检测到至少一对障碍物。方法可进一步包括使用具有延伸足迹的虚拟机器人代替机器人装置来导航路线并检测障碍物,以确定沿路线的狭窄通道。

本公开可进一步提供一种用于机器人装置的优化路线规划方法的方法,该方法包括:确定路线的路段,该路线包括多个路段,其中该路段包括急转弯、狭窄通道或急转弯进入狭窄通道;确定对路线路段的至少一个可能的优化;使用至少一个虚拟机器人测试至少一个可能的优化,以确定至少一个可能的优化是否满足优化阈值;以及将至少一个可能的优化中的找到的优化应用于路线路段,其中找到的优化满足优化阈值。方法可进一步包括基于满足或超过设定的阈值来识别沿路线的路段的急转弯,该阈值包括设定距离内的最大转弯程度。方法可进一步包括生成至少一个虚拟机器人足迹,使用该至少一个虚拟机器人足迹以基于该足迹在计算机可读地图上与环境障碍物的相交来确定沿着该至少一个可能优化的碰撞点以及风险程度。方法可进一步包括基于满足规定的优化阈值的找到的优化来确定至少一个可能优化中的找到的优化。方法可进一步包括通过修改路线数据来将找到的优化应用于路线,该路线数据包括计算机可读地图上与沿路线的距离相对应的定位坐标。

将认识到,尽管以根据方法的特定步骤顺序描述了本公开的某些方面,但是这些描述仅是本公开的更广泛方法的说明,并且可以根据特定申请的要求进行修改。在一些情况下,某些步骤可能变得不必要或可选。此外,某些步骤或功能可以被添加到所公开的实现方式中,或者可以改变两个或更多个步骤的执行顺序。所有此类变型被认为在本文公开和要求保护的公开内。

虽然以上详细描述已经显示、描述并指出了应用于各个实现方式的本公开的新颖性特征,但是将理解的是,本领域技术人员可对所示出的设备或过程的形式和细节方面进行各种省略、替代和变化,而不脱离本公开的精神。前述说明书是当前预期用于执行本公开的最佳模式。该描述绝不意味着是限制性的,而应被认为是对本公开的一般原理的说明。本公开的范围应参考权利要求确定。

尽管在附图和前述描述中已经详细地解说和描述了本公开,但此类解说和描述应被认为是解说性或示例性的而非限制性的。本公开不限于所公开的实施例。在实施所要求保护的公开时,所公开的实施例和/或实现方式的变型可以由本领域技术人员从对附图、本公开以及所附权利要求的研究而理解和实现。

应当注意,在描述本公开的特定特征或方面时特定术语的使用不应用于暗示该术语在本文中重新定义以限于包括该术语相关联的本公开的特性或方面的任何具体特性。除非另有明确说明,否则本申请中使用的术语和短语及其变型,特别是在所附权利要求中,除非另有明确说明,否则应解释为开放式而不是限制性的。作为前述示例,术语“包括”应理解为是指包括而不限制摂、包括但不限于摂等;如本文所用,术语“包含(comprising)”与“包括(including)”、“含有(containing)”或“特征在于”同义,并且是包括性的或开放性的,并且不排除其他未叙述的要素或方法步骤;术语“具有”应解释为“至少具有”;术语“诸如”应解释为“诸如而不限制”;术语“包括”应解释为“包括但不限于”;术语“示例”用于提供所讨论的项目的示例性实例,而不是其详尽或限制性的清单,并且应解释为“示例,但不限于”;诸如“已知的”、“平常的”、“标准的”之类的形容词和类似含义的术语不应解释为将所描述的项目限制在给定的时间段内或在给定的时间可用的项目,而应将其理解为涵盖现在或将来任何时候可能可用或已知的已知、平常或标准技术;以及使用术语如“优选”、“偏好”、“期望(desired)”或“期望(desirable)”,以及含义相似的词语不应被理解为暗示某些特征对于其结构或功能至关重要、必不可少甚至重要,而应理解为仅旨在突出可能在特定实施例中使用或不使用的替代或附加特征。同样,与连词“和”链接的一组项目不应理解为要求这些项目中的每一个都存在于分组中,而是应理解为“和/或”,除非另有明确说明。类似地,与连词“或”链接的一组项目不应理解为在该分组之间要求相互排斥,而应理解为“和/或”,除非另有明确说明。术语“约”或“近似”等等是同义词,并且被用于指示由该术语修饰的值具有与其相关联的理解范围,其中该范围可以是±20%、±15%、±10%、±5%或±1%。术语“基本上”被用于指示结果(例如,测量值)接近目标值,其中接近可以意指例如该结果在该值的80%内、在该值的90%内、在该值的95%内、或在该值的99%内。而且,如本文中所使用的,“定义的”或“确定的”可包括“预定义的”或“预确定的”和/或以其他方式确定的值、条件、阈值、测量等。

55页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:路径生成装置、路径生成方法及路径生成程序

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!