地形感知步伐计划系统的制作方法

文档序号:26007940发布日期:2021-07-23 21:27阅读:73来源:国知局
地形感知步伐计划系统的制作方法

本公开涉及在存在约束尤其是由地形施加的约束的情况下计划步伐序列。



背景技术:

机器人设备越来越多地用于受约束或杂乱的环境中,以执行各种任务或功能。这些机器人设备可能需要导航通过这些受约束的环境,而不会踩到或撞到障碍物。随着这些机器人设备变得越来越普遍,需要实时导航和步伐计划,以避免与障碍物接触,同时保持平衡和速度。



技术实现要素:

本公开的一方面提供了一种用于在存在约束的情况下计划步伐序列的方法。该方法包括在机器人的数据处理硬件处从至少一个图像传感器接收机器人周围的环境的图像数据。机器人包括身体和腿。该方法还包括由数据处理硬件基于图像数据生成身体-障碍物地图、地面高度地图和步伐-障碍物地图。该方法还包括由数据处理硬件基于身体-障碍物地图生成在环境中机动时机器人的身体的运动的身体路径,并且由数据处理硬件基于身体路径、身体-障碍物地图、地面高度地图和步伐-障碍物地图生成在环境中机动时机器人的腿的步伐路径。

本公开的实施方式可以包括一个或多个以下可选特征。在一些实施方式中,图像数据包括由三维体积图像传感器捕获的三维点云数据。至少一个图像传感器可以包括立体摄像机、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器中的一个或多个。

在一些示例中,该方法包括由数据处理硬件基于图像数据识别环境中的空间占用,并且由数据处理硬件基于识别环境中的空间占用生成三维空间占用地图。基于图像数据生成身体-障碍物地图、地面高度地图和步伐-障碍物地图可以包括:基于三维空间占用地图生成身体-障碍物地图;基于三维空间占用地图生成地面高度地图;以及基于地面高度地图生成步伐-障碍物地图。地面高度地图识别机器人附近的每个位置处的地面的高度,步伐-障碍物地图识别环境中机器人不应迈入的无步伐区域。可选地,生成身体-障碍物地图包括基于三维空间占用地图生成二维身体-障碍物地图。

在一些示例中,三维空间占用地图可以包括具有体素的体素地图,每个体素表示环境的三维空间。每个体素可被分类为地面、障碍物或其他。另外,该设备可以包括由数据处理硬件过滤三维空间占用地图以生成身体-障碍物地图。在一些实施方式中,生成身体路径基于在身体-障碍物地图中指定的无身体区域。在一些示例中,生成步伐路径基于调整机器人的标称步态的标称步伐模式和步伐约束。步伐约束可以包括以下中的至少一个:与地面接触的每个腿的压力偏移中心的阈值范围,压力偏移中心指示每个腿在每个步伐处的机器人重量分布的可接受量;步伐路径是否导致腿迈入步伐-障碍物地图的无步伐区域;步伐路径是否导致机器人的身体进入身体障碍物;步伐路径是否导致机器人的自碰撞;或者步伐-障碍物地图的任何无步伐区域周围的空间余量。另外,步伐约束可以包括软约束或硬约束。在一些实施方式中,生成机器人的腿步伐路径包括细化所生成的身体路径。

本公开的另一方面提供了一种机器人。该机器人包括:身体;腿,其联接到身体并配置成围绕环境机器人机动;与腿通信的数据处理硬件;以及与数据处理硬件通信的存储器硬件。该存储器硬件存储指令,指令在数据处理硬件上被执行时使数据处理硬件执行操作。操作包括从至少一个图像传感器接收机器人周围的环境的图像数据。操作还包括基于识别环境中的空间占用生成三维空间占用地图并且基于三维空间占用地图生成二维身体-障碍物地图。操作还包括基于身体-障碍物地图生成在环境中机动时机器人的身体的运动的身体路径并且基于身体路径、身体-障碍物地图、地面高度地图和步伐-障碍物地图生成在环境中机动时机器人的腿的步伐路径。

该方面可以包括一个或多个以下可选特征。在一些实施方式中,图像数据包括由三维体积图像传感器捕获的三维点云数据。在一些示例中,至少一个图像传感器包括立体摄像机、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器中的一个或多个。

在一些示例中,操作包括基于图像数据识别环境中的空间占用并且基于识别环境中的空间占用生成三维空间占用地图。基于图像数据生成身体-障碍物地图、地面高度地图和步伐-障碍物地图可以包括基于三维空间占用地图生成身体-障碍物地图、基于三维空间占用地图生成地面高度地图以及基于地面高度地图生成步伐-障碍物地图。地面高度地图识别机器人附近的每个位置处的地面高度,步伐-障碍物地图识别环境中机器人不应迈入的无步伐区域。可选地,生成身体-障碍物地图包括基于三维空间占用地图生成二维身体-障碍物地图。

三维空间占用地图可以包括具有体素的体素地图,每个体素表示环境的三维空间。每个体素可被分类为地面、障碍物或其他。在一些示例中,操作还包括过滤三维空间占用地图以生成身体-障碍物地图。身体路径可以基于身体-障碍物地图中指定的无身体区域,而步伐路径可以基于调整机器人的标称步态的标称步伐模式和步伐约束。在一些实施方式中,步伐约束包括以下中的至少一个:与地面接触的每个腿的压力偏移中心的阈值范围,压力偏移中心指示每个腿在每个步伐处的机器人重量分布的可接受量;步伐路径是否导致腿迈入步伐-障碍物地图的无步伐区域;步伐路径是否导致机器人的身体进入身体障碍物;步伐路径是否导致机器人的自碰撞;或者步伐-障碍物地图的任何无步伐区域周围的空间余量。步伐约束可以包括软约束或硬约束。在一些实施方式中,生成机器人的腿的步伐路径包括细化所生成的身体路径。

在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。从说明书和附图以及权利要求书中,其他方面、特征和优点将变得显而易见。

附图说明

图1是用于在存在约束的情况下计划步伐序列的示例系统的示意图。

图2a是体素的体积三维地图的等距视图。

图2b是包括楼梯的环境的透视图。

图2c是图2a的环境的示例身体-障碍物地图。

图2d是图2a的环境的示例无步伐地图。

图3是图1系统的控制系统的示例部件的示意图。

图4是用于生成最终步伐计划的示例方法的流程图。

图5是覆盖在示例身体-障碍物地图上的示例身体路径的示意图。

图6是与用于跟随覆盖在示例无步伐地图上的身体路径的快节奏相关的步伐位置的示意图。

图7是与覆盖在示例无步伐地图上的慢节奏相关的步伐位置的示意图。

图8是与覆盖在示例无步伐地图上的中等节奏相关的步伐位置的示意图。

图9是与覆盖在示例无步伐地图上的选定步态相关的步伐位置的最终步伐计划。

图10是用于步伐计划的地形和约束计划的示例方法的流程图。

图11是用于步伐计划的地形和约束计划的另一示例方法的流程图。

图12是用于步伐计划的地形和约束计划的另一示例方法的流程图。

图13是可用于实现本文描述的系统和方法的示例计算设备的示意图。

不同附图中相同的参考符号表示相同的元件。

具体实施方式

随着腿式机器人设备(也称为“机器人”)变得越来越普遍,越来越需要机器人在以多种方式受约束的环境中导航。例如,机器人可能需要穿过地板上散落着大大小小物体的杂乱房间。或者,作为另一示例,机器人可能需要通过楼梯。通常,在这种环境中导航是缓慢而艰难的过程,这导致腿式机器人经常停下来,与物体碰撞,和/或变得不平衡。本文的实施方式针对用于实时生成步伐计划的地形和约束计划的系统和方法,从而允许腿式机器人设备快速且有效地导航受约束的环境,同时保持平滑度和平衡度。

参考图1,机器人或机器人设备10包括具有两个或更多个腿12的身体11,并且执行用于使机器人10能够在受约束环境8中导航的步伐计划系统100。每个腿12联接到身体11,并且可以具有由腿关节18分开的上部14和下部16。每个腿12的下部16终止于脚19。每个腿的脚19是可选的,并且一个或多个腿12的下部的末端可以联接到轮子。机器人10具有沿着重力方向的竖直重力轴vg和质心cm,质心cm是机器人10的分布质量的加权相对位置总和为零的点。机器人10还具有相对于竖直重力轴vg基于cm的姿态p(即相对于重力的固定参考系),以定义机器人10采取的特定姿势或姿态。机器人10的姿态可以由机器人10在空间中的定向或角位置来定义。腿12相对于身体11的运动改变机器人10的姿态(即机器人的cm位置和机器人10的姿态或定向的组合)。

在一些实施方式中,机器人10还包括一个或多个附件,比如设置在身体11上并配置为相对于身体11移动的铰接臂20。铰接臂20可以具有五个或更多个自由度。此外,铰接臂20可以互换地称为操纵器臂或简单地称为附件。在所示的例子中,铰接臂20包括可相对于彼此以及身体11旋转的两个部分22、24;然而,铰接臂20可以包括更多或更少的部分,而不脱离本公开的范围。第一部分22可以通过铰接臂关节26与第二部分24分开。末端执行器28(其可互换地称为操纵器头28)可联接到铰接臂20的第二部分24的远端,并且可以包括用于抓取/抓住物体的一个或多个致动器29。

机器人10还包括具有至少一个成像传感器或摄像机31的视觉系统30,每个传感器或摄像机31以视角32并在视场34内捕获围绕机器人10的环境8的图像数据或传感器数据。视觉系统30可以配置为通过调整视角32或者通过平移和/或倾斜(独立地或经由机器人10)摄像机31来移动视场34,以在任何方向上移动视场34。可替代地,视觉系统30可以包括多个传感器或摄像机31,使得视觉系统30捕获机器人10周围的大致360度的视场。视觉系统30向机器人10的数据处理硬件36提供从由摄像机或传感器31捕获的图像数据导出的图像数据或传感器数据17。数据处理硬件36与存储器硬件38进行数字通信,并且在一些实施方式中,可以是远程系统。远程系统可以是单个计算机、多个计算机或具有可扩展/弹性计算资源和/或存储资源的分布式系统(例如云环境)。机器人10的步伐计划系统100在数据处理硬件36上执行。在所示的例子中,步伐计划系统100包括感知系统110,其从视觉系统30接收图像或传感器数据17并生成指示周围环境8中的障碍物的一个或多个地图112、114、116。步伐计划系统100还包括控制系统300,其接收由感知系统110生成的地图112、114、116并生成身体路径或轨迹510(图5),并且使用身体路径510生成步伐路径或步伐计划350。使用步伐计划350,机器人10通过将脚19或腿12的远端放置在由步伐计划350指示的位置按照步伐计划350机动通过环境8。在一些实施方式中,步伐计划系统100的至少一部分在与机器人10通信的远程设备上执行。例如,感知系统110可以在远程设备上执行以生成一个或多个地图112、114、116,并且在机器人10上执行的控制系统300可以从远程设备接收地图112、114、116。这里,控制系统300可以生成身体路径510和步伐路径350。可选地,整个步行计划系统100可以在远程设备上执行,并且远程设备可以基于身体路径510和步伐路径350控制/指示机器人10机动环境8。

在一些实施方式中,视觉系统30的摄像机31包括一个或多个立体摄像机(例如一个或多个rgbd立体摄像机)。在其他示例中,视觉系统30包括一个或多个雷达传感器,比如扫描光检测和测距(lidar)传感器、扫描激光检测和测距(ladar)传感器、光扫描仪、飞行时间传感器或任何其他三维(3d)体积图像传感器(或任何这样的传感器组合)。在一些实施方式中,视觉系统30基于捕获的图像或传感器数据17识别环境8中的空间占用。感知系统110可以使用由视觉系统30捕获的图像数据17来生成3d点云。点云是表示围绕机器人10的环境8中的物体表面的一组数据点。根据该点云,感知系统110可以基于先前识别的环境8中的空间占用生成3d空间占用地图200(图2a)。在一些示例中,感知系统110生成体素210、212(图2a)的3d体积地图200、200a。每个体素210、212(即立方体)代表环境的3d空间。每个体素210、212的大小取决于感知系统110的保真度以及视觉系统30和数据处理硬件36的处理能力。例如,机器人10可以生成围绕机器人10的环境8(例如每个方向几米)的体素地图200(即3d占用地图),其中每个体素210、212是3cm立方体。对于每个体素,感知系统110可以存储各种统计数据。

在一些实施方式中,感知系统110将包含物体的每个体素210、212分类(例如使用分类算法,例如线性分类器、决策树、神经网络、专用逻辑等)为地面9、障碍物或其他。当感知系统110确定机器人10能够踏上体素210、212表示的点或空间时,感知系统110将体素210分类为地面9。例如,机器人10可以将人行道或台阶的表面分类为地面9。当感知系统110确定机器人10不能踏上由体素210、212表示的点或空间时,感知系统110将体素212分类为障碍物。例如,感知系统110将对于机器人的腿来说太高而不能到达的物体或者如果被踩在上面会导致机器人10失去稳定性(即平衡)的物体分类为障碍物。第三分类即其他可以用于机器人10可以安全忽视或忽略的体素210、212。例如,感知系统110将远在机器人10上方的物体或远离机器人10的物体分类为其他。图2a示出了简单体素地图200、200a的示例,其包括地面体素210、210a-n的平面和一组障碍物体素212、212a-n(即椅子)。

使用包括分类体素210、212的体积3d地图200,感知系统110生成身体-障碍物地图112。在一些实施方式中,身体-障碍物地图112表示二维(2d)地图,其标注或示出了机器人10的身体11的“禁止区域”或“无身体区域”。也就是说,身体-障碍物地图112是将每个位置(即地图112的像素,每个像素代表机器人10的环境8中的一列空间)标记为机器人10的身体11安全行进通过或机器人10的身体11不安全行进通过的位置的2d地图。身体-障碍物地图112可以包括单元(例如像素)网格,其中网格的每个单元包含布尔值(例如身体可以进入或者身体不可以进入)。例如,参考图2b,视图201示出了包括带有栏杆的楼梯的环境8。当机器人10上升或下降楼梯时,栏杆将作为机器人10的身体11的屏障(即栏杆处于将与身体11接触的高度)。图2c示出了表示图2b的楼梯的2d图像(即楼梯的平面图)的身体-障碍物地图112。在图2c中,非法身体区域(例如障碍物体素)212(即禁止区域)表示机器人10的身体不能或不应进入的区域(例如楼梯栏杆、墙壁、大障碍物等)。

参考图1和2d,感知系统110还使用体积3d地图200(或地面高度地图116,如下面更详细讨论)来生成步伐-障碍物地图114。在一些示例中,步伐-障碍物地图114表示示出了机器人10的腿12的步伐的禁止或“无步伐”区域213的2d平面图。也就是说,步伐-障碍物地图114类似于身体-障碍物地图112,然而,禁止区域213代替地表示机器人10的步伐(即脚19或腿12的远端)不应“触地”的区域。也就是说,虽然脚19或腿12的远端可以越过禁止区域213,但脚19可能不会在区域213内完成一个步伐。步伐-障碍物地图114可以包括单元(例如像素)网格,其中网格的每个单元包含布尔值(例如步伐或无步伐)。

可以使用不同的考虑来生成步伐-障碍物地图114和身体-障碍物地图112,这可能导致一些障碍物被分类为身体障碍物、步伐障碍物、身体和步伐障碍物,或者两者都没有。例如,机器人10的腿12将身体11支撑在地面9上方一定距离处,因此身体11可以安全地避开地面9附近的障碍物。步伐-障碍物地图114还可以考虑诸如机器人10能够通过腿12走多高的方面。此外,在一些示例中,机器人10的膝盖(即腿关节18)可以在脚19的前面或后面向外延伸,从而限制脚19可以放置在哪里(例如在脚19可被抬起并放置在障碍物上之前,膝盖可能撞到足够高的障碍物)。因此,禁止区域213可以包括地面9上没有障碍物的区域,但由于机器人10的几何形状和姿态,机器人10穿过禁止区域213可能导致机器人10的身体11接触地面9上方的障碍物。

通常,被分类为身体障碍物的障碍物也被分类为步伐障碍物,但反过来不一定是真的,因为步伐障碍物可能不被分类为身体障碍物(例如障碍物足够高以至于在踏步时会引起问题但足够低以至于机器人10的身体11不会接触到该障碍物)。在某些情况下,身体障碍物可能不被分类为步伐障碍物。例如,桌子可以是身体障碍物,但机器人10可以在桌子下面行走。感知系统110可以将身体障碍物分类为较大步伐障碍物,因为将脚直接放在身体障碍物旁边(即扩大身体障碍物的尺寸)是不可行的。

在一些实施方式中,感知系统110将大面积的步伐障碍物分类为身体障碍物。例如,如果环境8的区域包含特别密集数量的步伐障碍物,使得穿越该区域将是困难的,则感知系统110可以将整个区域分类为身体障碍物,尽管障碍物的高度不影响机器人10的身体以获得更好的最终步伐计划350(如下面更详细讨论)。在一些实施方式中,感知系统110将区域分类为身体障碍物,以确保机器人10不会因与物体碰撞之外的原因而进入特定区域。例如,用户可能希望在某个方向或沿着某条路径引导机器人10。

图2d的步伐-障碍物地图114代表图2b的楼梯。如同图2c的身体-障碍物地图112一样,步伐-障碍物地图114描绘了感知系统110确定的对于机器人10行走并非安全或有效的区域213以及安全或有效的区域210。例如,楼梯情况前面的地面9和每个单独的台阶在步伐-障碍物地图114中被标记为有效。

回到图1,在一些实施方式中,感知系统110还从3d体积地图200生成地面高度地图116。地面高度地图116识别机器人10附近的每个位置处的地面9的高度。也就是说,类似于地形图,地面高度地图116是记录地面9相对于参考点或高度在水平面中的每个位置处的高度的2d地图。在一些示例中,地面高度地图116仅示出了地面9的高度,而没有示出地面9上方的任何表面。也就是说,地面高度地图116可以标记桌子下面的地面9的高度,而不是桌子表面的高度。地面高度地图116可用于帮助生成步伐-障碍物地图114(例如确定地面何时太高或太陡而不能安全通过,因此应被标记为步伐障碍物)。感知系统110例如通过确定在3d地图的每一列中被分类为地面9的体素210的高度来生成地面高度地图116。步伐-障碍物地图114又可以从地面高度地图116中生成。感知系统可选地将身体-障碍物地图112和步伐-障碍物地图114都处理成带符号的距离场(即使用带符号的距离函数)。

现在参考图3,步伐计划系统100的控制系统300从感知系统110接收地图(身体-障碍物地图112、步伐-障碍物地图114和地面高度地图116),并生成供机器人10使用以导航环境8的步伐计划350(即机器人10放置脚19的位置地图)。在一些实施方式中,控制系统300包括身体路径生成器310和受约束步伐计划器320。

身体路径生成器310从感知系统110接收身体-障碍物地图112和机器人10要导航到的位置311(即机器人10打算去哪里)。身体路径生成器310然后生成身体轨迹510(即机器人10的身体11要遵循的路径),当机器人10在环境8中机动时,该身体轨迹510避开在身体-障碍物地图112(图5)中标注的身体障碍物520(图5)。身体路径生成器310利用非资源密集型的方法或算法(例如势场方法、快速探索随机树和/或轨迹优化器)生成身体轨迹或身体路径510。例如,使用势场方法,使用物体11的简化模型(例如不考虑动量,仅考虑位置来计划速度)来快速生成表示机器人10要穿越的近似路径510的平面轨迹。平面轨迹可以包括cm的水平运动和机器人10的偏航。虽然不一定是最佳的,但身体轨迹510快速地提供了路径的良好近似,这为进一步路径优化提供了理想的起点。值得注意的是,控制系统300在不使用步伐-障碍物地图114的情况下生成身体轨迹510,因此身体路径510不提供机器人10在跟随身体轨迹510时应该行走的地方。

继续参考图3,受约束步伐计划器320从身体路径生成器310接收身体轨迹510,作为用于生成最终受约束步伐位置(例如步伐计划)350的起点。在一些示例中,受约束步伐计划器320包括步态确定器330,其首先确定为机器人10提供标称步伐位置的步态定时332。也就是说,步态确定器330确定哪种步态(例如慢走、快走、小跑等)提供了相对于在步伐-障碍物地图114(图6)中呈现的步伐障碍物620(图6)的最佳步伐位置。可选地,步态确定器330与受约束步伐计划器320分离。在一些实施方式中,步态确定器330将确定的步态定时332提供给步伐求解器340。如下文更详细描述,步伐求解器340接受步态定时332和一个或多个约束342、342a–n。步伐求解器340将约束342应用于所确定的步态定时332的标称步伐位置,并求解优化的步伐计划350。如下文更详细描述,在一些实施方式中,约束342包括压力中心(cop)偏移约束342a、身体禁止约束342b、步伐禁止约束342c、自碰撞约束342d、禁止余量约束342e和平衡约束342f。除了或代替一个或多个约束342a-342f,约束342还可以包括一个或多个其他约束。

在一些实施方式中,受约束步伐计划器320接收各种其他信息。例如,受约束步伐计划器320可以接收机器人10的cm的当前位置和速度、脚触地和起飞信息(例如定时)以及摆动脚位置和/或速度。受约束步伐计划器320也可以接收身体-障碍物地图112。在一些实施方式中,受约束步伐计划器320调整或细化身体路径轨迹510。调整可能很小。例如,受约束步伐计划器320可以考虑在穿过环境8时身体11的摇摆(这在简化的身体路径轨迹510中没有考虑)。在某些情况下,调整可能很大。例如,简化的身体轨迹510在物理上可能是不可能的(例如包括无限的加速度),或者一旦步态定时332被确定,可能难以求解。在一些实施方式中,受约束步伐计划器320仅调整机器人10的身体11的平移而非偏航轨迹,而在其他实施方式中调整身体11的平移和偏航。

图4示出了描绘步伐计划系统100的过程流程的示例流程图400。在步骤402,感知系统110创建身体-障碍物地图112,在步骤404,控制系统300使用身体-障碍物地图112来生成身体轨迹或身体路径510。感知系统110还在步骤406创建步伐-障碍物地图114,在步骤408,控制系统300经由受约束步伐计划器320的步态确定器330使用平面身体路径510和步伐-障碍物地图114来选择步态定时332。在410,受约束步伐计划器320的步伐求解器340使用所选择的步态定时332、身体-障碍物地图112和步伐-障碍物地图114来求解最终步伐计划350(即机器人10放置其脚19的位置)。

图5示出了描绘用于在身体障碍物520周围导航的身体路径510的示意图500。例如,流程图400描绘了控制系统300使用在步骤402生成的身体-障碍物地图112来在步骤404生成身体路径510。使用例如势场法,控制系统300的身体路径生成器310绘制从点a到点b的身体路径510,以在一个或多个身体障碍物520周围导航。身体障碍物520也可被称为身体障碍区520,其中如果机器人10的身体11穿过/进入身体障碍区520则身体11将会接触一个或多个障碍物。也就是说,由身体障碍区520限定的区域并不指示身体障碍物本身,而是指示不允许机器人10的身体11进入的区域,因为身体11将会与一个或多个障碍物接触。身体路径生成器310通过生成沿着路径510行进的机器人10的模拟身体530来确保身体路径510的有效性。例如,当模拟身体530不接触任何身体障碍区520时,产生有效路径。

如前所述,在从感知系统110接收到步伐-障碍物地图114之后,步态确定器选择步态来生成标称步伐位置。现在参考图6-8,在一些实施方式中,受约束步伐计划器320的步态确定器330分析多个潜在的步态,以找到最佳标称步伐位置。图6示出了示意图600,其描绘了与用于跟随绘制在步伐-障碍物地图114上的身体路径510的快节奏相关的步伐位置630。例如,流程图400描绘了控制系统300经由受约束步伐计划器320的步态确定器330使用在步骤404生成的平面身体路径510和在步骤406生成的步伐-障碍物地图114来在步骤408选择具有用于步伐位置630的快节奏的步态定时332。如本文所用,术语“(一个或多个)脚位置”和“步伐位置”可互换使用。

步态确定器330从绘制在步伐-障碍物地图114上的身体路径510开始,并覆盖选定的节奏(即如果身体11跟随身体路径510并且腿12以选定的节奏移动,机器人10将行走的地方)。在所示的示例中,身体路径510可以与一个或多个步伐障碍物620相交,但不与身体障碍物520相交(这是由身体路径生成器310预先确保的)。绘制并评估每个步伐位置630、630a-n。在一些实施方式中,步态确定器330生成反映当前模拟的步态定时的步伐位置630的质量的分数。由于步伐位置630和步伐障碍物620之间的小碰撞(例如步伐位置630与步伐障碍物620重叠的位置)数量,图6的快节奏的分数可能相对较低。分数可能受与步伐障碍物620碰撞的数量和碰撞的严重程度的影响。步态确定器330可以强调步伐位置630必须移动以避开障碍物620的距离。例如,轻微碰撞三个障碍物620的步伐位置630可能优于严重碰撞单个障碍物620的步伐位置630。

图7示出了示意图700,其描绘了与用于跟随绘制在步伐-障碍物地图114上的身体路径510的慢节奏相关的步伐位置630。类似于与图6的快节奏相关的步伐位置630,图7的慢节奏展示了在步伐障碍物620内或接触步伐障碍物620的多个步伐位置630,导致非理想分数。另一方面,图8的示意图800描绘了现在与用于跟随绘制在步伐-障碍物地图114上的身体路径510的中等节奏(即比图6的快节奏慢,但比图7的慢节奏快)相关的步伐位置630。中等节奏在步伐位置630和步伐障碍物620之间具有最低数量的碰撞,因此可以在慢、中等和快节奏中获得最高分数。虽然仅举例说明了三种节奏,但应当理解,步态确定器330可以在选择特定节奏之前评估任意数量的步态定时。分配给每个分析的步态定时的分数可以反映满足给定约束所需的优化量。标称步伐位置630违反的约束越多(例如与步伐障碍物620碰撞),则可能需要的优化越多。除了步伐障碍物和身体障碍物约束之外,分数可以反映其他约束(例如速度约束)。例如,对于某些任务或环境,慢节奏可能比快节奏更有权重。

现在参考图9,一旦步态确定器选择步态定时332和标称步伐位置630,受约束步伐计划器320的步伐求解器340求解最终步伐计划350(例如流程图400的步骤410)。图9示出了示意图900,其描绘了与用于跟随绘制在障碍物地图114上的身体路径510的所选择的步态定时332(例如节奏)相关的最终步伐位置630。步伐求解器340接受步伐求解器340在求解时考虑的多个约束342(即变量)。在一些示例中,每个约束342是“硬”约束或“软”约束。硬约束是步伐求解器340不能违反且仍具有成功的步伐计划350的约束342。例如,避开步伐障碍物620(例如跌落的边缘)可被标记为硬约束,因为踩在特定的步伐障碍物620上可能导致灾难性的结果(例如跌落边缘)。软约束是步伐求解器340将试图满足的约束342,但如果需要实现成功的步伐计划350则可能违反该约束。例如,步伐求解器340可以具有不进入步伐障碍物620的阈值距离内的约束342(即“余量”约束342e)。虽然保持阈值距离是理想的,但如果需要,步伐求解器340可以侵入边界(例如以确保符合硬约束)。软约束可以加权。也就是说,每个约束342可被赋予特定的权重或“柔软度”,其允许步伐求解器340在不能满足所有约束的情况下确定首先违反哪个约束。例如,如果步伐求解器340具有余量约束342e和平衡约束342f(即保持机器人10的平衡的要求),则平衡约束342f可以比余量约束342e加权更多(例如“更硬”),因为保持平衡可能比保持距步伐障碍物620的余量更重要。因此,步伐求解器340可以选择首先违反余量约束342e,或者违反到比平衡约束342f更大的程度。

约束342可以是(硬或软)等式约束(例如x=5)或不等式约束(例如x<=5)。在一些实施方式中,步伐求解器340还努力在服从(或试图服从)约束342的同时最小化成本。成本可能等同于软等式约束。也就是说,在一些情况下,软约束可被求解器340认为是要最小化的成本。一些约束(例如平衡约束342f)可被视为成本或软约束。例如,如果在没有x大于5的约束的情况下,添加示例成本和示例不等式约束将具有相同的效果(假设同等权重)。然而,如果在没有约束的情况下,x小于5,加上成本(或等式约束)将导致x更接近5,但不等式约束将没有影响。在一些实施方式中,步伐求解器340使用成本和软不等式约束,而不使用硬约束或等式约束。

步伐求解器340可以求解任意数量的约束342。如前所述(图3),步伐求解器340可以具有用于避开步伐/身体障碍物区域的约束342b、342c、用于保持与步伐障碍物620的阈值距离的余量约束342e以及用于保持平衡和/或稳定性的平衡约束342f。在其他示例中,步伐求解器340可以接收压力偏移中心约束342a,其包括与地面9接触的腿12的压力偏移中心的阈值范围。压力偏移中心可以指示每个腿12在每个步伐处的机器人10重量分布的可接受量(即与地面9接触的腿12之间的重量分布)。也就是说,压力偏移中心约束342a确保应用于机器人步伐的机器人10的重量的百分比是有效的。例如,当两只脚与地面9接触时,步伐求解器340可被约束为不对第一只脚施加120%的竖直力(例如比机器人10的整个重量多20%)和对第二只脚施加-20%的竖直力,因为这种专长是不可能的。在另一示例中,步伐求解器340可以接收自碰撞约束342d。也就是说,约束342d确保步伐求解器340试图不使机器人10与其自身碰撞(即将第一脚19放置在第二脚19已经位于的地方)。约束342可以在导航之前预先确定。约束342也可以在导航期间被修改、添加或移除。在一些示例中,约束342从控制系统外部的源(例如机器人10的用户或制造商)接收,而在其他示例中,步伐计划系统100基于从机器人10的传感器接收的数据自主地生成约束342。

为了满足分配给步伐求解器340的约束342,步伐求解器340可以调整每个步伐位置630。继续参考图9,步伐障碍物避开约束342c可以“推”或以其他方式调整步伐位置630远离障碍物。例如,由于禁止边界620(其响应于禁止约束342c而生成),步伐位置630a例如被移动到步伐位置630b。当步伐求解器340从原始标称步伐位置修改步伐位置630的位置时,该调整可以级联或波动为其他步伐位置630的改变。例如,如图9所示,响应于步伐求解器340先前调整步伐位置630a,步伐位置630c可以移动到步伐位置630d,以便在机器人10沿着身体轨迹510移动时保持平衡。当步伐求解器340完成最终受约束步伐位置计划350时,机器人10然后可以开始行进,相对于确定的步伐位置630放置其脚。在行进期间,机器人10可以基于从感知系统110接收的最新地图112、114、116(具有相同或更新的约束342)连续地重新运行或重新生成步伐计划350,并且作为响应,适当地调整或改变步伐计划350。

理想地,步伐求解器340使用二次规划,使得步伐求解器340可以实时求解步伐计划350。二次规划使用线性约束来快速解决优化问题。也就是说,在一些示例中,步伐求解器340最小化或最大化被线性约束的若干变量的二次函数。仍参考图9,为了线性约束无定形形状的障碍物区域,步伐求解器340可以绘制一系列直线920以接近近似障碍物的形状。在一些示例中,步伐求解器340仅将线性约束应用于障碍物的相关部分。在其他示例中,步伐求解器340最初求解没有任何约束342的步伐计划350,然后迭代地添加约束342并重新生成中间步伐计划,直到步伐求解器340实现优化的最终步伐计划350。

步伐求解器340可以通过求解凸约束来开始。求解器340然后可以使用来自凸约束的解来迭代地确定非凸约束的最佳线性近似。例如,基于摆动脚19的当前位置和速度、触地前的已知时间(即脚19和地面9之间)以及脚19的最大加速度,求解器340可以确定脚19可以触地的矩形区域。类似地,其他形状可以近似其他区域。例如,因为每个腿12具有最大长度,所以脚19触地不会发生离臀部太远。该区域可以表示为八边形。脚19离地可以类似地近似于脚19触地,但可以替代地使用矩形(与八边形相反)。站立腿12可以具有梯形边界以防止自碰撞。

因此,机器人10的步伐计划系统100将近似和确定身体路径510与确定精确的步伐计划350分离。通过首先快速近似身体轨迹510,控制系统300生成合理的首过解,其可用于快速优化精确的最终步伐计划350,否则该计划在计算上是低效的。因此,当机器人10在环境8中机动时,可以以高频率(例如300hz)重新生成步伐计划350,以实现实时导航。感知系统110可以以不同于控制系统的频率运行。也就是说,可以以与控制系统300确定步伐计划350的速率不同(例如更慢)的速率向控制系统300提供新的地图。控制系统300的高频率重新生成允许机器人10快速适应新的感知数据(例如新检测到的物体),快速对令人惊讶的动态做出反应(例如在被推动或碰撞后保持平衡),或者响应新的要求(例如增加或降低速度)。

图10是用于地形和约束计划步伐计划的示例方法1000的流程图。该流程图从操作1002开始,在机器人10的数据处理硬件36处,从至少一个图像传感器31接收机器人10周围的环境8的图像数据17。图像传感器31可以包括立体摄像机、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器中的一个或多个。在一些实施方式中,图像数据17包括由三维体积图像传感器捕获的三维点云数据。机器人10包括身体11和腿12。在步骤1004,方法1000包括由数据处理硬件36基于图像数据17生成身体-障碍物地图112、步伐-障碍物地图114和地面高度地图116。

在步骤1006,方法1000包括由数据处理硬件36基于身体-障碍物地图112生成在环境8中机动时机器人10的身体11的运动的身体路径510。在步骤1008,方法1000包括由数据处理硬件36基于身体路径510、身体-障碍物地图112、步伐-障碍物地图114和地面高度地图116生成在环境8中机动时机器人10的腿12的步伐路径350。

图11是用于地形和约束计划步伐计划的另一示例方法1100的流程图。该流程图从操作1102开始,在机器人10的数据处理硬件36处,从至少一个图像传感器31接收机器人10周围的环境8的图像数据17。图像传感器31可以包括立体摄像机、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器中的一个或多个。在一些实施方式中,图像数据17包括由三维体积图像传感器捕获的三维点云数据。机器人10包括身体11和腿12。在步骤1104,方法1100包括由数据处理硬件36基于图像数据17识别环境8中的空间占用。在步骤1106,方法1100包括由数据处理硬件36基于识别环境8中的空间占用生成三维空间占用地图200。在一些示例中,三维空间占用地图200包括具有体素212的体素地图200、200a,每个体素212表示环境8的三维空间。每个体素212可被分类为地面9、障碍物或其他。在步骤1108,方法1100包括由数据处理硬件36基于三维空间占用地图200生成二维身体-障碍物地图112。在步骤1110,方法1100包括由数据处理硬件36基于三维空间占用地图200生成地面高度地图116。地面高度地图116识别在机器人10附近的每个位置处的地面9的高度。

在步骤1112,方法1100包括由数据处理硬件36基于地面高度地图116生成步伐-障碍物地图114,步伐-障碍物地图114识别环境8中机器人10不应迈入的无步伐区域213。在步骤1114,方法1100包括由数据处理硬件36基于二维身体-障碍物地图112生成在环境中机动机器人10时机器人10的身体11的运动的身体路径510。在一些示例中,身体路径510基于二维身体-障碍物地图112中指定的无身体区域。在步骤1116,方法1100包括由数据处理硬件36基于身体路径510、身体-障碍物地图112、步伐-障碍物地图114和地面高度地图116生成当在环境8中机动机器人10时机器人10的腿12的运动的步伐路径350。步伐路径350可以基于机器人10的标称步态的标称步伐模式和步伐约束342。在一些实施方式中,生成机器人10的腿12的步伐路径350包括细化所生成的身体路径510。在一些实施方式中,步伐约束342包括以下中的至少一个:与地面接触的每个腿12的压力偏移中心的阈值范围,压力偏移中心指示每个腿12在每个步伐处的机器人重量分布的可接受量;步伐路径350是否导致腿迈入步伐-障碍物地图114的无步伐区域213;步伐路径350是否导致机器人10的身体11进入身体障碍物520;步伐路径350是否导致机器人10的自碰撞;或者步伐-障碍物地图114的任何无步伐区域213周围的空间余量。可选地,步伐约束342包括软约束或加权约束。

在一些实施方式中,方法1100包括由数据处理硬件36过滤三维空间占用地图200以生成二维身体-障碍物地图112。过滤可以填充未完全观察到的障碍物周围的间隙和/或从地图112中移除虚假数据。

图12是用于地形和约束计划步伐计划的另一示例方法1200的流程图。该流程图从操作1202开始,在机器人10的数据处理硬件36处接收二维身体-障碍物地图112、步伐-障碍物地图114和地面高度地图116。这里,机器人10的数据处理硬件36可以从与数据处理硬件通信的远程设备获得地图112、114、116。例如,远程设备可以从机器人10的视觉系统30(图1)接收图像数据17(图1),并基于图像数据17生成地图112、114、116,如以上参考图1所讨论。地面高度地图116识别在机器人10附近的每个位置处的地面9的高度。步伐-障碍物地图114识别在环境8中机器人10不应迈入的地方。在步骤1204,方法1200包括由数据处理硬件36基于二维身体-障碍物地图112生成在环境中机动机器人10时机器人10的身体11的运动的身体路径510。在步骤1206,方法1200包括由数据处理硬件36基于身体路径510、身体-障碍物地图112、地面高度地图116和步伐-障碍物地图114生成当在环境8中机动机器人10时机器人10的腿12的运动的步伐路径350。

图13是可用于实现本文件中描述的系统和方法的示例计算设备1300(例如数据处理硬件36和存储器硬件38)的示意图。这里示出的部件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实施方式。

计算设备1300包括处理器1310(例如数据处理硬件36)、存储器1320(例如存储器硬件38)、存储设备1330、连接到存储器1320和高速扩展端口1350的高速接口/控制器1340以及连接到低速总线1370和存储设备1330的低速接口/控制器1360。每个部件1310、1320、1330、1340、1350和1360使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器1310可以处理用于在计算设备1300内执行的指令,包括存储在存储器1320中或存储设备1330上的指令,以在外部输入/输出设备(比如联接到高速接口1340的显示器1380)上显示图形用户界面的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备1300,每个设备提供必要操作的部分(例如作为服务器组、一组刀锋服务器或多处理器系统)。

存储器1320在计算设备1300内非临时性地存储信息。存储器1320可以是计算机可读介质、易失性存储单元或非易失性存储单元。非暂时性存储器1320可以是用于临时或永久存储程序(例如指令序列)或数据(例如程序状态信息)以供计算设备1300使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如通常用于固件,比如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。

存储设备1330能够为计算设备1300提供大容量存储。在一些实施方式中,存储设备1330是计算机可读介质。在各种不同的实施方式中,存储设备1330可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备、或设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含指令,其在被执行时履行一种或多种方法,比如上述方法。信息载体是计算机或机器可读介质,比如存储器1320、存储设备1330或处理器1310上的存储器。

高速控制器1340管理计算设备1300的带宽密集型操作,而低速控制器1360管理较低带宽密集型操作。这种职责分配只是示例性的。在一些实施方式中,高速控制器1340联接到存储器1320和高速扩展端口1350,其可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器1360联接到存储设备1330和低速扩展端口1390。低速扩展端口1390可以包括各种通信端口(例如usb、蓝牙、以太网、无线以太网),可以例如通过网络适配器联接到一个或多个输入/输出设备,比如键盘、指针设备、扫描仪或诸如交换机或路由器的联网设备。

本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或它们的组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用或通用的,被联接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向它们发送数据和指令。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)来执行,该可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路来执行,例如fpga(现场可编程门阵列)或asic(专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本要素是执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地联接到用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),以从其接收数据或向其传送数据,或两者兼有。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。

已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在以下权利要求的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1