一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

增强来自机器人设备的视觉输出的系统和方法与流程

2022-03-02 10:43:06 来源:中国专利 TAG:

增强来自机器人设备的视觉输出的系统和方法
1.相关申请的交叉引用
2.本技术要求于2019年9月13日提交的题为“system and method augmenting a visual output from a robotic device”的美国专利申请第16/570,540号的权益,该申请要求于2019年7月23日提交的题为“keyframe matcher”的美国临时专利申请第62/877,792号、于2019年7月23日提交的题为“visual teach and repeat for manipulation-teaching vr”的美国临时专利申请第62/877,791号、以及于2019年7月23日提交的题为“visualization”的美国临时专利申请第62/877,793号的权益,其公开内容通过引用整体并入。
技术领域
3.本公开的特定方面通常涉及机器人设备,并且更具体地,涉及用于提供用于查看和编辑来自机器人设备的视觉输出的用户界面的系统和方法。


背景技术:

4.自主代理(例如,车辆、机器人、无人机等)和半自主代理使用机器视觉来分析周围环境中的感兴趣区域。在操作中,自主代理可以依靠训练的神经网络来识别周围环境图像中的感兴趣区域内的对象。例如,可以训练神经网络识别和跟踪由一个或多个传感器(诸如光检测和测距(lidar)传感器、声纳传感器、红-绿-蓝(rgb)相机、rgb-深度(rgb)-d)相机等)捕获的对象。传感器可以耦合到设备(诸如自主代理)或与设备(诸如自主代理)通信。自主代理的对象检测应用可以分析传感器图像数据,用于从自主代理检测周围场景中的对象(例如,行人、骑自行车者、其他汽车等)。
5.在传统系统中,代理的视觉输出可以供应给操作员。例如,可以向操作员输出代理的预期路径(诸如预期路径)。如果输出不正确,则可以重新训练代理以获得正确的输出。期望改进系统以纠正代理的输出,而无需重新训练相关联的神经网络。


技术实现要素:

6.在本公开的一个方面,公开了一种用于可视化由机器人设备生成的数据的方法。该方法包括显示机器人设备在环境中的预期路径。该方法还包括显示环境中被识别为机器人设备可行驶的第一区域。该方法还包括接收输入以识别环境中可行驶的第二区域。该方法还包括将第二区域传输到机器人设备。
7.在本公开的另一方面,公开了一种其上记录有非暂时性程序代码的非暂时性计算机可读介质。该程序代码用于可视化由机器人设备生成的数据。该程序代码由处理器执行并且包括显示机器人设备在环境中的预期路径的程序代码。该程序代码还包括显示环境中被识别为机器人设备可行驶的第一区域的程序代码。该程序代码还包括接收输入以识别环境中可行驶的第二区域的程序代码。该程序代码还包括将第二区域传输到机器人设备的程序代码。
8.本公开的另一方面涉及一种用于可视化由机器人设备生成的数据的装置。该装置具有存储器和耦合到该存储器的一个或多个处理器。该一个或多个处理器被配置为显示机器人设备在环境中的预期路径。该一个或多个一个或多个处理器还被配置为显示环境中被识别为机器人设备可行驶的第一区域。该一个或多个一个或多个处理器还被配置为接收输入以识别环境中可行驶的第二区域。该一个或多个一个或多个处理器还被配置为将第二区域传输到机器人设备。
9.这已经相当宽泛地概述了本公开的特征和技术优点,以便可以更好地理解下面的具体实施方式。下面将描述本公开的附加特征和优点。本领域技术人员应当理解,本公开可以容易地用作修改或设计用于实现与本公开相同目的的其他结构的基础。本领域技术人员也应该认识到,这样的等效构造未背离所附权利要求中阐述的本公开的教导。当结合附图考虑时,从以下描述中将更好地理解在其组织和操作方法两者方面被认为是本公开的特征的新颖特征以及进一步的目的和优点。然而,应当清楚地理解,提供每一附图仅用于说明和描述的目的,并不旨在作为对本公开的限制的限定。
附图说明
10.当与附图结合使用时,本公开的特征、性质和优点将从下面阐述的具体实施方式变得更加明显,在附图中相同的附图标记在全文中相应地标识。
11.图1说明了根据本公开的各个方面的操作员控制机器人设备的示例。
12.图2a、图2b和图2c说明了根据本公开的各个方面的机器人设备在环境中操作的示例。
13.图3a和图3b说明了根据本公开的各个方面的基于从在环境中操作的机器人设备提供的信息生成的视觉输出的示例。
14.图4是说明根据本公开的各个方面的机器人设备的硬件实现的示例的图。
15.图5说明了根据本公开的各个方面的所教导的行为的图形序列。
16.图6说明了根据本公开的各个方面的用于机器人系统的软件模块。
17.图7说明了根据本公开的各个方面的用于控制机器人设备的方法。
具体实施方式
18.下面结合附图阐述的具体实施方式旨在作为对各种配置的描述并且不旨在表示可以实践在此描述的概念的唯一配置。具体实施方式包括用于提供对各种概念的透彻理解的特定细节。然而,对于本领域技术人员来说显而易见的是,可以在没有这些特定细节的情况下实践这些概念。在某些情况下,众所周知的结构和组件以框图形式示出以避免混淆这些概念。
19.基于所述教导,本领域技术人员应当理解,本公开的范围旨在覆盖本公开的任何方面,无论是独立于本公开的任何其他方面还是与本公开的任何其他方面结合实施。例如,可以使用任何数量的所阐述的各个方面来实现装置,或者可以实践方法。此外,本公开的范围旨在覆盖使用除了/不同于本公开阐述的各个方面之外的其他结构、功能或结构和功能来实践的这种装置或方法。应当理解,本公开的任何方面都可以由权利要求的一个或多个元素体现。
20.词语“示例性”在本文中用于意味着“用作示例、实例或说明”。在本文中描述为“示例性”的任何方面不一定被解释为优于或胜于其他方面。
21.尽管在本文中描述了特定方面,但是这些方面的许多变化和排列落入本公开的范围内。尽管提到了优选方面的一些益处和优点,但本公开的范围不旨在限于特定的益处、用途或目标。相反,本公开的各个方面旨在广泛地适用于不同的技术、系统配置、网络和协议,其中一些在附图中和以下优选方面的描述中通过示例的方式说明。具体实施方式和附图仅是对本公开的说明而非限制,本公开的范围由所附权利要求及其等效物限定。
22.自主代理和半自主代理可以响应于检测到的对象来执行任务。例如,代理可以在环境中导航、识别环境中的对象和/或与环境中的对象交互。在本技术中,机器人或机器人设备是指自主代理或半自主代理。为简单起见,机器人设备被称为机器人。
23.本公开的各个方面不限于特定类型的机器人。设想了具有提供视觉/可视化输出的一个或多个视觉系统的各种类型的机器人设备。视觉输出可以经由视频馈送提供给操作员。
24.根据本公开的各个方面,机器人能够进行移动操纵。也就是说,机器人有能力根据关节配置改变末端执行器的位置。在一种配置中,机器人配备了自动全身控制和规划。这使人/人类操作员能够在虚拟现实(vr)中无缝演示任务空间末端执行器运动,而很少或根本不关心运动学约束或机器人的姿势。
25.除了在vr设置中训练机器人之外,还期望在测试时间期间(例如,在真实世界环境中)更新训练。本公开的各个方面涉及提供用于查看和编辑由神经网络为机器人预测的路径的用户界面。本公开的各个方面还涉及输出用于关键帧匹配的可视化和将机器人执行的过程可视化的一个或多个图表。
26.在一种配置中,机器人包括一个或多个传感器(诸如在平移/倾斜云台上的视场红-绿-蓝和深度(rgb-d)传感器)。rgb-d图像是rgb图像与其对应的深度图像的组合。深度图像是图像通道,其中每个像素与像平面和rgb图像中对应对象之间的距离有关。
27.机器人可以基于从环境的视频馈送(例如,图像馈送)获得的图像在环境中导航。机器人也可以基于来自视频馈送的图像执行任务。在传统的视觉系统中,机器人使用基于特征的方法识别图像(例如,对象的图像)。
28.也就是说,基于从机器人的当前视图的图像中提取的特征来执行任务。基于特征的方法通过找到测试图像和参考图像之间的相似性来识别测试图像(例如,当前图像)。具体地,传统视觉系统将测试图像的特征与参考图像的特征进行比较。当特征与参考图像的特征匹配时,识别出测试图像。
29.特征是指图像的不同(例如,唯一的)特性(例如,角、边缘、高对比度区域、低对比度区域等)。图像可以包括多个特征。描述符对图像的特征进行编码。特征向量可以是描述符的示例。在传统的视觉系统中,描述符仅限于对图像(例如,图像中的对象)的唯一特性进行编码。
30.在大多数情况下,描述符对于图像变换(例如,定位、缩放、亮度等)是鲁棒的。即,传统视觉系统可以识别处于变化条件(诸如变化的照明条件)中的对象。尽管如此,鲁棒性还是有限的,因为描述符仅限于对图像的唯一特性进行编码。为了提高机器人响应识别图像执行任务的能力,期望提高目标视觉系统的鲁棒性。
31.本公开的各个方面涉及向图像的像素指派描述符。即,与传统视觉系统相比,本公开的各个方面不将描述符限制为唯一特性。因此,可以提高视觉系统的准确性。具体而言,传统视觉系统仅限于将测试图像的不同特性(例如,特征)与参考图像的不同特性进行比较。图像包括多于特征的像素。因此,通过比较像素而不是特征,提高了比较的准确性。
32.即,在一种配置中,视觉系统将测试图像的像素与参考图像的像素进行比较。参考图像可以被称为关键帧。可以在训练期间获得关键帧。关键帧的使用为姿态和图像变换提供了不变性。当匹配像素的数量大于阈值时,视觉系统确定测试图像与关键帧匹配。
33.在一种配置中,视觉系统比较像素描述符以识别测试图像和关键帧的匹配像素。像素描述符包括像素级信息和深度信息。像素级信息包括诸如像素的rgb值以及图像内的像素/周围像素的上下文之类的信息。深度信息指示从对应于像素的表面到用于获得表面图像的传感器的距离。
34.在训练期间,一个或多个传感器在机器人执行任务时获得场景的图像数据。从获得的图像数据生成关键帧。当机器人正在执行特定任务时,关键帧可以被概念化为环境的记忆。也就是说,关键帧可以被设置为任务或环境中位置的锚点。在测试之后,当机器人将当前图像与关键帧匹配时,可以执行与关键帧对应的训练函数。
35.可以将描述符指派给关键帧的像素。描述符可以是值的向量或数组。例如,描述符可以是十六元向量。描述符(例如,像素描述符)可用于识别匹配图像。
36.在训练之后,机器人可以被初始化以执行一项或多项训练任务。机器人在执行命令任务时可以收集实时图像数据。当机器人在环境内横越和/或操纵对象时,实时图像数据在像素级被映射到关键帧内的像素。当前图像和关键帧之间的对应关系是基于像素描述符的相似性确定的。
37.即,机器人比较当前图像中的像素描述符的值以及与关键帧的像素描述符比较。比较中的置信度指示当前图像中的像素匹配关键帧中的像素的可能性。当前图像数据与关键帧的多个像素之间的对角线/平行对应关系(例如,非交叉相对关系)可以指示匹配。即,交叉关系指示当前图像数据和关键帧之间的像素失配。
38.在一种配置中,机器人被放置在环境中并且场景的图像数据被收集。然后机器人被控制(例如,通过虚拟现实界面)以执行任务。在虚拟现实中将人类操作员的视野限制到训练期间机器人的视野,提高机器人自行执行任务的能力。
39.可以通过虚拟现实界面将操作员执行的行为参数化来教导机器人执行动作/任务。例如,虚拟现实界面可以包括操作员在穿戴描绘vr环境的头戴式设备时操纵的飞浆(paddle)、手持控制器、画笔工具(paintbrush tools)、擦拭工具(wiping tools)和/或放置工具(placement tools)的使用。从而,人类操作员不是教导直接的任务空间运动,而是教导一组参数化的原语(或行为)。参数化的原语组合了无碰撞运动规划(collision free motion planning)和混合(位置和力)笛卡尔控制,以在执行期间减少所教导的参数并提供鲁棒性。
40.参数化行为是指通过将任务分块成较少数量的离散行为来学习该任务。每个行为由一组参数(诸如关节角度变化、旋转角度等)定义。这些参数的值可以基于机器人在执行任务时的情况被配置和更新。
41.可以从一个学习的任务中学习和提取参数化行为,并将其与其他任务组合以形成
更大的任务。可以实施参数化行为(诸如打开具有旋转把手的门),以执行打开任何门把手(例如,需要三十(30)度旋转的门把手或需要六十(60)度或更多旋转的门把手)。例如,旋转度数可以是定义打开具有旋转门把手的门的参数化行为的一个参数。
42.为了执行任务,机器人可以被放置(相对于训练期间的初始位置)在相同或类似的环境中。机器人可以被放置在不同的起始定位,并且可选地以不同的起始姿态(例如,将关节角度调整到不同的起始位置)相对。机器人可以被分配执行相同的任务(例如,一组参数化行为)(诸如拿起瓶子、打开柜子和将瓶子放在柜子内)的任务(无需人类操作员的控制)。例如,机器人可以通过更新在虚拟现实控制序列期间所教导的行为参数来执行相同的任务。可以基于机器人的当前姿态和/或定位,相对于训练期间使用的姿态和/或定位来更新参数。
43.如所讨论的,为了更新参数,机器人捕获场景的初始图像并将像素和/描述符从新图像映射到关键帧。映射定义了新图像和关键帧之间的相对变换。相对变换提供了关键帧到新图像的映射。相对变换可以由机器人的x轴位置、y轴位置、z轴位置、滚动、俯仰和偏航的变化来定义。相对变换可用于将参数化行为的参数从所教导的参数更新为观察到的情况。
44.相对变换可以应用于参数化行为。通过对参数化行为应用相对变换,即使起始位置和/或姿态已经改变,机器人也可以执行与先前教导的相同的任务。机器人系统可以连续地将来自当前场景的像素和/或密集神经网络描述符映射到来自关键帧的那些像素和/或密集神经网络描述符,使得可以以一定间隔(例如,连续地)对参数化行为进行调整。例如,相对变换可以应用于由一组参数化行为定义的所教导的动作(诸如拉开抽屉、打开门、拿起杯子或瓶子等)。
45.在一些方面,动作可以与整个场景相关和/或特定于对象。例如,拿起瓶子的动作可以包括使用与整个场景相关的关键帧来导航到瓶子。一旦接近瓶子,就可以独立于环境分析特定于瓶子的关键帧。
46.导航行为可用于将机器人从一个点移动到另一点。这可以允许机器人定位可能在环境内任何地方的对象(诸如瓶子),然后在“拿起”动作的训练期间,无论其定位于何处,都可以执行诸如“拿起”瓶子之类的任务。操纵行为用于移动机器人的各个部件(例如,躯干和/或手臂)以与所期望对象接触。
47.图1说明了根据本公开的各个方面的操作员100控制机器人106的示例。如图1所示,操作员100装备有视觉系统102和用于控制机器人106的运动控制器104(例如,手势跟踪系统)。在该示例中,操作员100可以控制机器人106执行一个或多个任务。在图1的示例中,机器人106在厨房108中被训练。本公开的各个方面不限于在厨房108中训练机器人106,也设想了其他环境。
48.视觉系统102可以提供视频馈送以及捕获操作员100的注视。操作员100可以在远离机器人106的定位的定位处。在本示例中,机器人106位于厨房108中并且操作员100在与厨房108不同的定位的定位(诸如机器人控制中心114)处。
49.视觉系统102可以提供机器人106的定位的视频馈送。例如,视觉系统102可以基于机器人106的前视视角提供厨房108的视图。可以提供其他视角(诸如360度视图)。经由机器人106的一个或多个视觉传感器(诸如摄像机)提供视角。视觉系统102不限于如图1所示的
头戴式设备。视觉系统102也可以是监视器110、图像投影仪或能够显示来自机器人106的视频馈送的另一系统。
50.机器人106的一个或多个动作可以经由运动控制器104来控制。例如,运动控制器104捕获操作员100的手势并且机器人106模仿捕获到的手势。操作员100可以经由运动控制器104控制机器人106的移动、四肢运动和其他动作。本公开的各个方面不限于经由运动控制器104捕获操作员100的手势。可以设想其他类型的手势捕获系统。操作员100可以经由无线连接112控制机器人106。另外,机器人106可以经由无线连接112向操作员100提供反馈(诸如视频馈送)。
51.机器人106可以被训练以在特定环境(例如,厨房108)和/或类似环境中导航。此外,机器人106可以被训练以对特定环境中的对象和/或任何环境中的类似对象执行任务。例如,机器人106可以被训练以打开/关闭厨房108中的抽屉。可以仅对厨房108中的抽屉和/或任何环境中的类似抽屉(诸如另一厨房的抽屉)实施训练。
52.如所讨论的,期望在测试时间期间(例如,在真实世界环境中)更新训练。本公开的各个方面涉及提供用于查看和编辑由神经网络为机器人预测的路径的用户界面。在一种配置中,机器人提供预期路径,用户可以更新预期路径以将像素标记为可行驶或不可行驶。
53.在训练期间,操作员可以在环境中导航机器人。另外或替代地,机器人可以在训练期间自主地在环境中导航。机器人将导航路径存储在存储器中。存储的导航路径用于训练网络以确定图像中对应于可行驶路径的像素和图像中对应于不可行驶路径的像素。机器人被训练以确定新环境中或用于训练的相同环境中的可行驶路径。
54.可行驶路径是机器人可以导航的路径。机器人可能无法在不可行驶的路径上导航。例如,路径中的对象可能会使路径不可行驶。在一种配置中,深度数据用于确定可行驶路径。如果对象的高度高于阈值,则带有该对象的路径的一部分被标记为不可行驶。
55.图2a说明了根据本公开的各个方面的环境202中的机器人200的示例。为清楚起见,图2a提供了环境202的自顶向下。如图2a所示,环境202包括餐桌204、水槽206和柜台210。在该示例中,在训练期间,机器人200沿着环境202中的路径212导航。机器人200将路径212存储在存储器中并且使用路径212来训练机器人200的神经网络。该训练用于确定不同于当前环境202的环境以及当前环境202的可行驶路径。
56.图2b说明了根据本公开的各个方面的基于训练的神经网络确定的机器人200的预期路径226的示例。神经网络在一个或多个先前路径(诸如来自训练环境202的路径212)上被训练。图2b的当前环境250不同于图2a的训练环境202。尽管如此,机器人200可以在训练期间或训练之后确定训练环境202中的预期路径。
57.图2b的示例基于机器人200的视点。来自图2b的图像可以输出到远程操作员以在远程定位的显示设备上显示。如图2b所示,预期路径226在桌子220周围导航。除了确定预期路径226之外,神经网络确定可行驶区域228。预期路径226在可行驶区域228的边界内。在一种配置中,可行驶区域228覆盖在预期路径226上。图像中的像素被识别为属于可行驶区域228。
58.如图2b所示,神经网络识别地面上的对象224(例如,冰箱222的电线)。基于训练、对象224的深度(例如,高度)和/或其他因素,神经网络确定对象224的区域是不可行驶的。因此,可行驶区域228与对象224的区域不相交。
59.在一种配置中,当机器人200的视点被输出给操作员时,操作员确定神经网络是否已经正确地识别了可行驶区域228。操作员可以更新可行驶区域228以校正神经网络的决策。可以经由用户输入提供更新(例如在显示器中标记可行驶或不可行驶的区域)。
60.图2c说明了根据本公开的各个方面的更新机器人200的可行驶区域228的示例。如图2c所示,人类操作员通过标记新的可行驶区域230来更新环境250的图像。另外或替代地,人类操作员可以将可行驶区域228标记为不可行驶(图2c中未示出)。在为当前环境编辑可行驶区域228之后,神经网络在确定后续路径时考虑由人类操作员进行的编辑。
61.神经网络核心权重不会基于新用户提供的编辑的信息而改变。在一种配置中,支持向量机(svm)被添加到网络输出的尾端。该svm的权重基于用户编辑的信息进行更新。可以实时进行svm的权重的更新。因此,更新svm比重新训练整个网络更快。此外,用户界面允许人们衡量新教导的可行驶/不可行驶区域的重要性。例如,滑块可以允许用户缩放新的可行驶/不可行驶区域的权重。因此,svm可能被迫实时学习适当的分类。
62.如所讨论的,在训练之后,机器人可以被初始化以执行一项或多项训练任务。例如,机器人的任务可以是在环境中导航和/或操纵环境中的对象。机器人在执行命令任务时收集实时图像数据。将实时图像数据与关键帧进行比较。
63.当一个或多个关键帧与当前图像数据匹配时,可以执行与匹配的关键帧相关联的行为。例如,机器人可以打开或关闭抽屉。作为另一示例,机器人可以打开/关闭水龙头。另外或替代地,一旦完成先前的行为,行为就可以排队执行。作为另一示例,机器人可以基于关键帧确定其当前定位并使用当前定位在到另一定位的路径上导航。当机器人在环境中移动或改变环境中对象的位置时,可以参考新的关键帧。
64.在一种配置中,在比较像素描述符之前过滤一个或多个像素。可以执行函数来过滤异常值(outlier)——例如,随机样本一致性(ransac)函数可以用于通过随机采样观测数据来过滤像素异常值。过滤像素减少噪声并提高准确性。
65.如所讨论的,当前图像的深度和/或角度可以不同于匹配的关键帧的深度和/或角度。因此,在一种配置中,确定当前图像数据的匹配像素与关键帧的像素之间的相对变换。也就是说,可以基于当前图像和关键帧的比较来确定姿态增量。增量是指机器人的姿态从关键帧到当前图像的变化。
66.姿态增量可以基于像素描述符中的深度信息来确定。深度信息是指传感器到与像素对应的对象的距离。姿态增量是指当前图像和关键帧之间的(x,y,z)坐标、滚动、俯仰和偏航变换。也就是说,姿态增量解释了图像是如何基于从关键帧到当前图像的传感器移动进行变换的。
67.姿态增量的准确性随着匹配像素数量的增加而增加。在本公开中,匹配像素的数量可以大于匹配特征的数量。因此,与仅基于特征比较图像的传统系统相比,本公开的各个方面提高了确定姿态增量的准确性。可以使用最小二乘函数来确定姿态增量。
68.像素的像素描述符的一个或多个数值之间的姿态增量(例如,相对变换)可用于更新要执行的行为的参数。例如,如果姿态增量指示与关键帧中定义的位置相比,机器人被放置在离对象一英尺远的位置,则可以更新行为以说明机器人的当前位置(例如,姿态)。关键帧中定义的位置是指用于训练机器人执行任务的位置。
69.图3a说明了根据本公开的各个方面的来自视觉系统的输出300的另一示例。如图
3a所示,输出300包括当前图像302、关键帧308、直方图306和姿态置信度窗口304。输出300可以在远离机器人的当前定位的定位处显示。例如,输出300可以在控制机器人的操作的控制中心(例如,图1的机器人控制中心114)处显示。
70.当前图像302是来自机器人的当前视野的图像。关键帧308是来自与当前图像302比较的一组关键帧的关键帧。直方图306说明了用于将当前图像302与该组关键帧的每个关键帧匹配的置信度分数。
71.在训练期间,对于导航任务,机器人在沿路线(从开始到结束)的某些点捕获关键帧。沿路线捕获的关键帧用作导航任务的一组关键帧。在测试期间,机器人将当前图像与该组关键帧进行比较以识别其当前定位。
72.基于匹配像素(例如,像素描述符)的数量,机器人确定当前图像与特定关键帧的匹配置信度。当匹配置信度大于阈值时,机器人执行与匹配关键帧相关联的任务。任务可以包括定位(例如,确定机器人的当前位置)。在图3a的示例中,机器人确定其位于与具有最大匹配置信度310的关键帧的定位相对应的路线上的定位。
73.直方图306可以基于任务而不同。图3a中的直方图306用于导航任务。如果机器人正在执行操纵(例如,对象操纵)任务,则直方图306将不同。与用于导航任务的一组关键帧相比,用于操纵任务的一组关键帧可以具有更少的关键帧。
74.例如,为了打开柜子,如果柜子关闭或部分打开,则可以训练机器人打开柜子。在此示例中,直方图在条形图中将包括两个关键帧匹配条。一个条将说明当前图像匹配关闭的柜子关键帧的置信度,而另一条将说明当前图像匹配部分打开的柜子关键帧的置信度。
75.姿态置信度窗口304说明了来自姿态匹配器的姿态匹配中的置信度。在一种配置中,在确定姿态增量之前,机器人确定多个标准是否满足一个或多个阈值。该标准可以基于深度、姿态、团(clique)、误差和其他元素。
76.在一种配置中,机器人确定具有深度值的像素的数量。对于某些表面(诸如玻璃或光亮表面),机器人可能无法确定深度。因此,对应于这些表面的像素可能不具有深度值。可以在过滤像素之前确定具有深度值的像素的数量。如果具有深度值的像素的数量大于阈值,则满足深度标准。姿态置信度窗口304可以包括条形图,该条形图将具有深度值的像素的数量的条320与表示阈值的条322进行比较。条形图可以用颜色编码。
77.另外或替代地,姿态置信度窗口304的条形图可以包括在当前图像和关键帧之间对齐的特征的数量的条与对齐阈值的条的比较。为了确定关键帧和当前图像之间匹配的准确性,机器人可以应用姿态变换并确定当前图像中对象的多少特征与关键帧中对象的特征对齐,反之亦然。如果特征与非静态对象相关联,则特征可能不会对齐。例如,关键帧可以包括不再存在于当前图像中的杯子。因此,杯子的特征不会在图像之间对齐。对齐的特征的数量可以称为团正常值(clique inlier)。当团正常值大于阈值时,可以生成姿态增量。
78.另外或替代地,姿态置信度窗口304的条形图可以包括用于确定姿态的特征的数量的条与用于姿态阈值的条的比较。也就是说,应该使用一定数量的特征来确定姿态。如果用于确定姿态的特征的数量小于姿态阈值,则可能不会计算姿态增量。用于确定姿态的特征的数量可以称为姿态正常值。
79.姿态置信度窗口304的条形图也可包括姿态增量的均方根(rms)误差的条与阈值的比较。如果rms误差小于rms误差阈值,则姿态增量可能令人满意。如果rms误差大于rms误
差阈值,则用户或机器人可能不会使用姿态增量来执行任务。
80.姿态置信度窗口304不限于条形图,可以使用其他图或图像。姿态置信度窗口304的标准不限于所讨论的标准,可以使用其他标准。
81.图3b说明了根据本公开的各个方面的来自视觉系统的输出350的又一示例。如图3b所示,输出350包括当前图像352、关键帧358、直方图354和姿态置信度窗口356。输出350可以显示在远离机器人当前定位的定位处。
82.姿态置信度窗口356可视化整个匹配流水线中的多个特征和rms误差。对于每个特征(例如,标准),将当前值与阈值进行比较。例如,对于深度,将当前深度(389)与阈值(65)进行比较。每个条形图中的一个条对应于当前值和阈值。
83.直方图354可视化与当前图像匹配的每个关键帧的匹配分数。可以选择具有大于阈值的最高匹配分数的关键帧作为匹配关键帧。匹配的关键帧可以在输出350中显示为关键帧358。
84.如所讨论的,本公开的各方面涉及移动操纵硬件和软件系统,该系统能够在利用来自人在虚拟现实中的演示被教导任务之后,在现实世界环境中自主地执行人类级别的任务。在一种配置中,使用移动操纵机器人。机器人可以包括全身任务空间混合位置/力控制。此外,如所讨论的,将与场景的鲁棒学习密集视觉嵌入表示相链接的参数化原语教导给机器人。最后,可以生成所教导的行为的任务图。
85.本公开的各方面不是编程或训练机器人以识别固定的一组对象或执行预定义的任务,而是使机器人能够从人类演示中学习新的对象和任务。机器人可以在自然变化的条件下自主执行学习的任务。机器人不使用先前的对象模型或地图,并且根据一个示例可以被教导将给定的一组行为与任意场景和对象相关联。视觉系统在现有的监督和非监督数据集上被离线训练,系统的其余部分可以在没有额外训练数据的情况下正常工作。
86.与教导直接任务空间运动的传统系统相比,本公开的各个方面教导一组参数化行为。这些行为组合了无碰撞运动规划和混合(位置和力)笛卡尔末端执行器控制,在执行过程中最小化所教导的参数并提供了鲁棒性。
87.在一种配置中,计算特定于任务的学习密集视觉逐像素嵌入。这些逐像素嵌入将参数化行为与场景链接。由于链接,系统可以通过牺牲对新情况的泛化来以高鲁棒性处理不同的环境。
88.可以利用视觉输入条件并基于成功的退出标准独立地教导任务的行为。这些行为可以在动态任务图中链接在一起。因为行为是链接的,机器人可以复用行为来执行任务序列。
89.机器人可以包括多个自由度(dof)。例如,机器人可以包括31个自由度(dof),分为五个子系统:底盘、躯干、左臂、右臂和头部。在一种配置中,底盘包括四个驱动和可转向轮(例如,总共八个dof),可实现“伪完整”移动性。驱动/转向致动器组可以包括各种电机和齿轮箱。躯干可以包括五个dof(偏航-俯仰-俯仰-俯仰-偏航)。每个臂可以包括七个dof。头部可以是两个dof的平移/倾斜头部。每个臂也可以包括具有欠致动手指的单个dof手爪。本公开的各个方面不限于上面讨论的机器人。设想了其他配置。在一个示例中,机器人包括定制工具(诸如海绵(sponge)或swiffer工具)。
90.在一种配置中,力/扭矩传感器与机器人集成以测量与环境的相互作用力。例如,
力/扭矩传感器可以被放置在每个臂的手腕处。感知传感器可以被整合在头部上以提供广阔的视野,并且还在vr情境中提供机器人和人以执行任务。
91.本公开的各个方面提供用于控制机器人的若干抽象级别。在一种配置中,最低控制级别提供对所有机器人的dof的实时协调控制。实时控制可以包括关节控制和部件控制。关节控制实现低级别设备通信并以通用方式暴露(expose)设备命令和状态。此外,关节控制支持致动器、力传感器和惯性测量单元。关节控制可以在运行时被配置以支持不同的机器人变化。
92.部件控制可以通过将机器人分成多个部件(例如,右臂、头部等)并为每个部件提供一组参数化的控制器来处理机器人的更高级别的协调。部件控制可以提供针对以下的控制器:关节位置和速度;关节导纳;相机外观;底盘位置和速度;以及混合任务空间姿态、速度和导纳控制。
93.末端执行器任务空间控制提供用于控制机器人的另一抽象级别。这种抽象级别解决了机器人的姿态,以实现这些期望的运动。用于混合笛卡尔控制的全身反向运动学(ik)被公式化为二次规划(quadratic program)并被求解。部件可能受关节位置、速度、加速度和重力扭矩的线性约束。
94.全身ik可用于笛卡尔姿态目标的运动规划。在一种配置中,占用的环境体素配备有球体和囊体。将体素碰撞约束添加到二次规划ik中,以防止机器人与世界之间的碰撞。可以使用快速探索随机树(rapidly-exploring random tree,rrt),在笛卡尔空间中以二次规划ik作为节点之间的转向函数进行采样,来执行运动规划。
95.笛卡尔空间中的规划导致自然和直接的运动。使用二次规划ik作为转向函数提高了规划的可靠性,因为可以使用相同的控制器来规划和执行,从而减少两者之间可能的差异。类似地,关节位置目标的运动规划将rrt与充当转向函数的部件控制关节位置控制器结合使用。
96.下一抽象级别定义参数化行为。在一种配置中,参数化行为是可以被参数化并被一起排序以完成任务的原语动作。行为可以包括但不限于:操纵动作(诸如抓、提、放、拉、缩、擦、关节移动、直接控制);导航动作(诸如使用速度命令驾驶、使用位置命令驶入、以及使用主动避障跟随路径);以及其他辅助动作(诸如看和停)。
97.每个行为可以具有不同类型的单个或多个动作(诸如针对一个或多个机器人的部件的关节或笛卡尔移动)。每个动作可以使用不同的控制策略(诸如位置、速度或导纳控制),并且还可以选择使用运动规划来避开外部障碍物。机器人的运动,无论其是否使用运动规划,都避免自碰撞并满足运动控制约束。
98.每个行为可以由不同的动作参数化,这些动作又将具有它们自己的参数。例如,抓握行为可以包含四个参数:手爪角度、6d接近、抓握和(可选的)手爪的提升姿态。在该示例中,这些参数定义了以下预定义的动作序列:(1)将手爪打开到所期望的手爪角度;(2)规划并执行手爪到6d接近姿态的无碰撞路径;(3)将手爪移动到6d抓握姿态并在接触时停止;(4)关闭手爪;以及(5)将手爪移动到6d提升姿态。
99.控制抽象的最终级别是任务。在一种配置中,任务被定义为使机器人能够在人类环境中操纵和导航的行为序列。任务图(见图5)是有向(循环或非循环)的图,以不同的任务作为节点并且以不同的转换条件作为边,包括故障检测和故障恢复。边缘条件包括每个行
为执行的状态、使用力/扭矩传感器检查手中的对象、语音命令以及处理不同对象和环境的关键帧匹配。
100.根据本公开的各个方面,感知流水线被设计为向机器人提供对其周围环境的理解。感知流水线还为机器人提供给定已教导的任务识别要采取的动作的能力。在一种配置中,通过将多个深度图像投影到高分辨率彩色立体对的一个宽视场图像(例如,宽视场左图像)中来创建融合的rgb-d图像。该系统运行一组深度神经网络以提供各种像素级分类和特征向量(例如嵌入)。基于从教导序列中召回的视觉特征,像素级分类和特征向量被累积到时间3d体素表示中。像素级分类和特征向量可用于召回要执行的动作。
101.在一种配置中,未定义对象类别。此外,不假设对象或环境的模型。不是明确地检测和分割对象以及明确地估计6-dof对象姿态,而是可以为各种任务产生密集的像素级嵌入。来自教导序列的参考嵌入可用于执行每个行为分类或姿态估计。
102.训练的模型可以是完全卷积的。在一种配置中,输入图像中的像素被分别映射到嵌入空间中的点。嵌入空间被赋予度量,该度量由损失函数隐式定义并且训练过程由模型输出定义。经训练的模型可用于各种任务。
103.在一种配置中,在给定单个注释示例的情况下,经训练的模型检测语义类的所有对象。可以通过将注释上的嵌入与在其他区域中看到的嵌入进行比较来检测语义类的对象。可以使用判别性损失函数训练该模型。
104.可以训练模型以确定对象实例。该模型识别和/或计数单独的对象。可以训练模型以预测每个像素处的向量(2d嵌入)。该向量可以指向包含该像素的对象的质心。在运行时,指向同一质心的像素可以被分组以分割场景。运行时执行可以在3d中进行。
105.也可以针对3d对应关系来训练模型。该模型生成对视图和光照不变的每像素嵌入,以便场景中给定3d点的任何视图都映射到相同的嵌入。可以使用损失函数来训练该模型。
106.将每个rgb-d帧的逐像素嵌入(和深度数据)融合到动态3d体素图中。每个体素累积一阶和二阶位置、颜色以及嵌入统计信息。动态对象的到期基于体素到深度图像的反向投影。使用基于语义和实例标签以及几何接近度的标准图形分割来分割体素图。体素图还被折叠成具有立体图和可穿越性分类统计信息的2.5d图。
107.体素图用于无碰撞的全身运动规划,而2.5d图用于无碰撞的底盘运动。对于3d碰撞检查,可以使用贪婪方法(greedy approach)将图中的体素分组为囊体。被分割的对象可以由行为使用以在抓握对象时将对象附加到手上。
108.可以用一次完成的教导方法(one-shot teaching approach)来教导机器人,使得机器人识别场景中(或特定操纵对象的)与来自先前教导的任务记录的特征高度相关的特征。当用户演示任务时,特征以关键帧的形式被保存在整个任务中。关键帧可以是包含具有每像素深度(如果有效)的多维嵌入的rgb图像。
109.假设当前图像与教导时存在的参考足够类似,嵌入充当可以在运行时建立每像素对应关系的特征描述符。由于深度存在于(大部分)每个像素处,因此可以使用对应关系来求解当前图像和参考图像之间的增量姿态。可以使用欧几里得约束检测正常值(inlier),并应用带有ransac的levenberg-marquardt最小二乘函数来求解6-dof姿态。
110.增量姿态用作校正,可以应用该校正以使所教导的行为序列适应当前场景。因为
可以在每个像素处定义嵌入,所以关键帧可以宽如包括图像中的每个像素,或可以窄如仅使用用户定义的掩码中的像素。如所讨论的,用户可以通过将图像的区域选择性地注释为与任务相关或在对象上来定义掩码。
111.除了视觉感测之外,在一种配置中,机器人收集并处理音频输入。音频提供另一组嵌入作为教导机器人的输入。例如,机器人通过提问和理解来自人的口头语言响应来获取音频输入。可以使用定制关键字检测模块来理解语音响应。
112.机器人可以使用全卷积关键字识别模型(fully-convolutional keyword-spotting model)来理解自定义唤醒字(wakeword)、一组对象(例如,“杯子”或“瓶子”)和一组定位(例如,“柜子”或“冰箱”)。在一种配置中,模型以一定间隔(例如每32毫秒)监听唤醒字。当检测到唤醒字时,机器人寻找以检测对象或定位关键字。在训练过程中,人为添加噪声以使识别更加鲁棒。
113.如所讨论的,为了向机器人教导任务,操作员使用一组vr模式。每个行为可以有用于设置和命令该行为的特定参数的对应的vr模式。取决于参数的类型,每个行为模式可以包括定制的可视化,以辅助设置每个参数。例如,在设置拉门运动的参数时,铰链轴被标记并被可视化为线,并且手爪的候选拉动姿态被限制落在围绕铰链的弧上。为了辅助教导过程,使用了若干实用的vr模式(诸如恢复行为、用相关对象注释环境以及在vr世界中重新定位虚拟机器人、相机图像和菜单)。
114.在执行期间,机器人的姿态和环境部件可能与训练期间使用的不同。特征匹配可用于找到环境中与所教导的特征类似的特征。可以从匹配的特征对应关系中建立姿态增量。用户所教导的行为由计算的姿态增量转换。在一种配置中,将多个关键帧传递给匹配问题。基于对应关系的数量选择最佳匹配关键帧。
115.图4是说明根据本公开的各个方面的机器人系统400的硬件实现的示例的图。机器人系统400可以是自主或半自主系统的组件(诸如车辆、机器人设备428或其他设备)。在图4的示例中,机器人系统400是机器人设备428的组件。机器人系统400可用于通过推断机器人设备428的操作员的意图来控制机器人设备428的动作。
116.机器人系统400可以用总线架构来实现,总线架构通常由总线430表示。取决于机器人系统400的特定应用和总体设计约束,总线430可以包括任意数量的互连总线和桥接器。总线430将包括由处理器420、通信模块422、定位模块418、传感器模块402、移动模块426、存储器424、可视化模块408和计算机可读介质414表示的一个或多个处理器和/或硬件模块的各种电路链接在一起。总线430还可以链接各种其他电路(诸如本领域众所周知的定时源、外围设备、电压调节器和电源管理电路),因此将不再进一步描述。
117.机器人系统400包括耦合到处理器420、传感器模块402、可视化模块408、通信模块422、定位模块418、移动模块426、存储器424和计算机可读介质414的收发器416。该收发器416耦合到天线434。收发器416通过传输介质与各种其他设备通信。例如,收发器416可以经由来自机器人设备428的操作员的传输接收命令。如本文所讨论的,操作员可以在远离机器人设备428的定位的定位处。作为另一示例,收发器416可以将关于关键帧匹配的信息从可视化模块408传输给操作员。
118.机器人系统400包括耦合到计算机可读介质414的处理器420。处理器420执行处理,包括存储在提供根据本公开的功能的计算机可读介质414上的软件的执行。该软件在由
处理器420执行时使机器人系统400执行针对特定设备(诸如机器人设备428或模块402、408、414、416、418、420、422、424、426中的任一模块)描述的各种功能。计算机可读介质414还可用于存储在执行软件时由处理器420操纵的数据。
119.传感器模块402可用于经由不同的传感器(诸如第一传感器406和第二传感器404)获得测量值。第一传感器406可以是用于捕获2d图像的视觉传感器(诸如立体相机或rgb相机)。第二传感器404可以是测距传感器(诸如lidar传感器、radar传感器或rgb-d传感器)。当然,本公开的各个方面不限于上述的传感器,因为其他类型的传感器(诸如例如热传感器、声纳传感器和/或激光传感器)也可考虑用于传感器404、406中的任一个。第一传感器406和第二传感器404的测量值可以由处理器420、传感器模块402、通信模块422、定位模块418、移动模块426、存储器424中的一个或多个结合计算机可读介质414处理以实现这里描述的功能。在一种配置中,由第一传感器406和第二传感器404捕获的数据可以作为视频馈送经由收发器416被传输给操作员。第一传感器406和第二传感器404可以耦合到机器人设备428或可以与机器人设备428通信。
120.定位模块418可以用于确定机器人设备428的定位。例如,定位模块418可以使用全球定位系统(gps)来确定机器人设备428的定位。通信模块422可用于促进经由收发器416的通信。例如,通信模块422可被配置为经由不同的无线协议(诸如wifi、长期演进(lte)、3g等)提供通信能力。通信模块422还可用于与机器人设备428的不是机器人系统400的模块的其他组件通信。
121.移动模块426可以用于促进机器人设备428和/或机器人设备428的组件(例如,四肢、手等)的移动。作为示例,移动模块426可以控制四肢438和/或轮子432的移动。作为另一示例,移动模块426可以与机器人设备428的电源(诸如发动机或电池)通信。
122.机器人系统400还包括用于存储与机器人设备428和可视化模块408的操作相关的数据的存储器424。这些模块可以是在处理器420中运行、驻留在/存储在计算机可读介质414和/或存储器424中的软件模块、耦合到处理器420的一个或多个硬件模块、或其某种组合。
123.可视化模块408可以与传感器模块402、收发器416、处理器420、通信模块422、定位模块418、移动模块426、存储器424和计算机可读介质414通信。在一种配置中,可视化模块408生成机器人设备在环境中的预期路径。预期路径可以传输到远程定位(诸如机器人操作中心)。远程定位可以显示对应于预期路径的可视化。
124.可视化模块408还识别环境中的可行驶区域。可行驶区域可由在先前行进的路径上训练的神经网络确定。基于训练、深度信息和其他信息,环境中的区域可以被识别为不可行驶。预期路径可以传输到远程定位(诸如机器人操作中心)。远程定位可以显示对应于预期路径的可视化。
125.在一种配置中,可视化模块408接收识别环境中可行驶的第二区域的信息。可以经由来自远程定位的传输来接收该信息。远程定位处的用户标记可行驶的环境的图像中的像素。类似地,可视化模块408可以接收识别不可行驶的区域的信息。可以接收关于可行驶和/或不可行驶区域的信息以校正先前由可视化模块408识别的区域。例如,可视化模块408可能不正确地标记不可行驶的区域。接收到的信息将校正不正确的标记。
126.可视化模块408可被训练以基于一个或多个先前行进的路径确定预期路径和可行
驶区域。可行驶区域旨在被显示为预期路径上的覆盖。在从远程定位接收更新之后,可视化模块408基于接收到的更新识别可行驶的第三区域。
127.在一种配置中,可视化模块408为远程定位提供信息以显示当前图像与关键帧图像的比较。比较包括识别当前图像和关键帧图像中匹配像素的可视化标记。此外,可视化模块408可以为远程定位提供信息以显示当前图像与一组关键帧中的每个关键帧之间的匹配置信度。此外,可视化模块408可以为远程定位提供信息以显示将一个或多个姿态增量标准与一个或多个阈值进行比较的图。该信息可以包括深度信息、团信息、姿态信息、rms误差信息和/或其他信息。
128.图5说明了根据本公开的各个方面的用于所教导的行为的图序列500的示例。如图5所示,图序列500包括开始节点502和结束节点504。图序列500可以基于所感测的视觉输入、音频输入或其他条件分支或循环。
129.例如,如图5所示,在开始节点502之后,机器人可以执行“listen_for_object(监听对象)”行为。在这个示例中,机器人确定它是否已经感测到与杯子或瓶子相对应的视觉或音频输入。在此示例中,基于所感测的输入对应于杯子还是瓶子,执行不同的行为序列。本公开的各个方面不限于图5中所示的行为。
130.图6说明了根据本公开的各个方面的用于机器人系统的软件模块的示例。图6的软件模块可以使用图4的硬件系统的一个或多个组件(诸如处理器420、通信模块422、定位模块418、传感器模块402、移动模块426、存储器424、关键帧模块408和计算机可读介质414)。本公开的各个方面不限于图6的模块。
131.如图6所示,机器人可以接收音频数据604和/或图像数据602。图像数据602可以是rgb-d图像。音频网络606可以以一定间隔监听唤醒字。音频网络606接收原始音频数据604以检测唤醒字并从原始音频数据604中提取关键字。
132.神经网络(诸如密集嵌入网络608)接收图像数据602。可以以一定间隔接收图像数据602。密集嵌入网络608处理图像数据602并且输出图像数据602的嵌入610。嵌入610和图像数据602可以被组合以生成体素图626。嵌入610还可以被输入到关键帧匹配器612。
133.关键帧匹配器612将嵌入610与多个关键帧进行比较。当嵌入610对应于关键帧的嵌入时,识别匹配关键帧。嵌入610可以包括像素描述符、深度信息和其他信息。
134.任务模块614可以接收一个或多个任务图616。任务模块614提供对来自关键帧匹配器612的请求的响应。关键帧匹配器612将任务与匹配的关键帧匹配。可以从任务图616确定任务。
135.任务模块614还可以向行为模块618传输行为请求。行为模块618向任务模块614提供行为状态。另外,行为模块618可以从关键帧匹配器612请求关于匹配关键帧和对应任务的信息。关键帧匹配器612向行为模块618提供关于匹配关键帧和对应任务的信息。行为模块618还可以从体素图626接收体素。
136.在一种配置中,行为模块618响应于运动规划请求从运动规划器620接收运动规划。行为模块618还从部件控制模块622接收部件状态。响应于接收到部件状态,行为模块618向部件控制模块622传输部件命令。最后,部件控制模块622从关节控制模块624接收关节状态。部件控制模块622响应于接收到关节状态而向关节控制模块624传输关节命令。
137.图7说明了根据本公开的一个方面的用于可视化由机器人设备生成的数据的方法
700。在可选配置中,在块702处,训练机器人设备以基于一个或多个先前行进的路径确定预期路径。可以基于人类输入自主导航和/或导航先前行进的路径。
138.在块704处,控制中心显示机器人设备在环境中的预期路径。该环境可以远离控制中心。此外,该环境可以与用于训练机器人设备的环境不同或相同。预期路径由机器人设备生成并被传输到控制中心。
139.在块706处,控制中心显示环境中被识别为机器人设备可行驶的第一区域。第一区域可以被覆盖在预期路径上。此外,预期路径在第一区域内。第一区域由机器人设备生成并被传输到控制中心。
140.在块708处,控制中心接收输入以识别环境中可行驶的第二区域。另外或替代地,输入可以标记不可行驶的区域。即,输入可以调整由机器人设备确定的第一区域。可以由人类操作员经由输入设备(诸如触摸屏显示器、鼠标或键盘)提供输入。输入可以包括标记环境的可行驶或不可行驶的图像中的像素。
141.在块710处,控制中心将第二区域传输到机器人设备。在可选配置中,响应于接收第二区域,在块712处,机器人设备确定可行驶的第三区域。第三区域可以处于不同的环境中。基于第二区域(例如,用户编辑的信息)更新svm的权重。svm可以被称为监督学习模型。
142.在可选配置中,在块714处,控制中心显示当前图像与关键帧图像的比较(见图3a-图3b)。比较可以包括识别当前图像和关键帧图像中的匹配像素的可视化标记。在又一可选配置中,在块716处,控制中心显示当前图像与一组关键帧中的每个关键帧之间的匹配置信度(参见图3a-图3b)。
143.上述方法的各种操作可以由能够执行对应功能的任何合适的装置来执行。该装置可以包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(asic)或处理器。通常,在图中所说明的操作中,这些操作可以具有对应的具有类似编号的对应装置加功能组件。
144.如这里所使用的,术语“确定”包含多种动作。例如,“确定”可以包括运算、计算、处理、推导、调查、查找(例如,在表、数据库或另一数据结构中查找)、查明(ascertaining)等。另外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、挑选、建立等。
145.如这里所使用的,涉及项目列表中的“至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”旨在涵盖:a、b、c、a-b、a-c、b-c和a-b-c。
146.可以利用根据本公开配置的处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)信号或其他可编程逻辑器件(pld)、离散门或晶体管逻辑、离散硬件组件或其设计用于执行本文所述功能的任何组合来实现或执行结合本公开描述的各种说明性逻辑块、模块和电路。处理器可以是微处理器、控制器、微控制器或如本文所述专门配置的状态机。如本文所述,处理器还可以被实现为计算设备的组合(例如dsp和微处理器的组合)、多个微处理器、与dsp核结合的一个或多个微处理器、或者这种其他特殊配置。
147.结合本公开描述的方法或算法的步骤可以直接体现在硬件中、在由处理器执行的软件模块中、或者在两者的组合中。软件模块可以驻留在存储装置或机器可读介质中,包括随机存取存储器(ram)、只读存储器(rom)、闪存、可擦除可编程只读存储器(eprom)、电可擦
除可编程只读存储器(eeprom)、寄存器、硬盘、可移动磁盘、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备,或可用于以指令或数据结构的形式承载或存储所需程序代码并且可以由计算机访问的任何其他介质。软件模块可以包括单个指令或多个指令,并且可以分布在若干不同的代码段、不同的程序之间以及跨多个存储介质。存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息以及向存储介质写入信息。或者,存储介质可以集成到处理器。
148.本文公开的方法包括用于实现所述方法的一个或多个步骤或动作。在不脱离权利要求的范围的情况下,方法步骤和/或动作可以彼此互换。换言之,除非指定了步骤或动作的特定顺序,否则在不脱离权利要求的范围的情况下可以修改特定步骤和/或动作的顺序和/或使用。
149.所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以硬件实现,则示例硬件配置可以包括设备中的处理系统。处理系统可以用总线架构来实现。取决于处理系统的特定应用和总体设计约束,总线可以包括任意数量的互连总线和桥接器。总线可以将包括处理器、机器可读介质和总线接口的各种电路链接在一起。总线接口可用于经由总线将网络适配器等连接到处理系统。网络适配器可用于实现信号处理功能。对于特定方面,用户界面(例如,键盘、显示器、鼠标、操纵杆等)还可以连接到总线。总线还可以链接本领域众所周知的各种其他电路(诸如定时源、外围设备、电压调节器、电源管理电路等),因此将不再进一步描述。
150.处理器可以负责管理总线和处理,包括存储在机器可读介质上的软件的执行。无论是指软件、固件、中间件、微代码、硬件描述语言还是其他,软件应被解释为装置指令、数据或其任何组合。
151.在硬件实现中,机器可读介质可以是与处理器分离的处理系统的一部分。然而,如本领域技术人员将容易理解的,机器可读介质或其任何部分可以在处理系统的外部。通过示例的方式,机器可读介质可以包括传输线、由数据调制的载波和/或与设备分离的计算机产品,所有这些都可以由处理器通过总线接口访问。替代地或另外地,机器可读介质或其任何部分可以集成到处理器中(诸如可以具有高速缓存和/或专用寄存器文件的情况)。尽管所讨论的各种组件可以被描述为具有特定定位(诸如本地组件),但是它们也可以以各种方式被配置(诸如特定组件被配置为分布式计算系统的一部分)。
152.处理系统可以配置有提供处理器功能的一个或多个微处理器和提供机器可读介质的至少一部分的外部存储器,所有这些都通过外部总线架构与其他支持电路被链接在一起。或者,处理系统可包括用于实现本文所述的神经元模型和神经系统的模型的一个或多个神经形态处理器。作为另一选择,处理系统可以用专用集成电路(asic)来实现,其中处理器、总线接口、用户接口、支持电路和机器可读介质的至少一部分被集成到单个芯片中,或具有一个或多个现场可编程门阵列(fpga)、可编程逻辑器件(pld)、控制器、状态机、门控逻辑、分立硬件组件或任何其他合适的电路,或可以执行在整个本公开中描述的各种功能的任何电路组合。本领域技术人员将认识到如何根据特定应用和强加在整个系统上的整体设计约束来最好地实现处理系统的所描述的功能。
153.机器可读介质可以包括多个软件模块。软件模块可以包括传输模块和接收模块。每个软件模块可以驻留在单个存储设备中或跨多个存储设备被分发。举例来说,当触发事
件发生时,可以将软件模块从硬盘驱动加载到ram中。在软件模块的执行过程中,处理器可以将某些指令加载到高速缓存中以提高访问速度。然后可以将一个或多个高速缓存线加载到专用寄存器文件中用于处理器执行。当在下面提及软件模块的功能时,将理解这种功能是在执行来自该软件模块的指令时由处理器实现的。此外,应当理解,本公开的各个方面导致对实现这些方面的处理器、计算机、机器或其他系统的功能的改进。
154.如果以软件实现,则这些功能可以作为一个或多个指令或代码在计算机可读介质上被存储或传输。计算机可读介质包括计算机存储介质和通信介质两者,包括促进将计算机程序从一个地方传送到另一地方的任何存储介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(dsl)或无线技术(诸如红外线(ir)、无线电和微波)从网站、服务器或其他远程源传输软件,那么同轴线缆、光纤线缆、双绞线、dsl或无线技术(诸如红外线、无线电和微波)都被包括在介质的定义中。如本文所用,盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘和blu-盘,其中盘通常以磁性方式再现数据,同时盘利用激光以光学方式再现数据。因此,在一些方面,计算机可读介质可以包括非暂时性计算机可读介质(例如,有形介质)。此外,对于其他方面,计算机可读介质可以包括暂时性计算机可读介质(例如,信号)。上述的组合还应被包括在计算机可读介质的范围内。
155.因此,特定方面可以包括用于执行本文呈现的操作的计算机程序产品。例如,这样的计算机程序产品可以包括其上存储(和/或编码)有指令的计算机可读介质,该指令可由一个或多个处理器执行以执行本文所述的操作。对于特定方面,计算机程序产品可以包括包装材料。
156.此外,应当理解,用于执行本文描述的方法和技术的模块和/或其他适当的装置可以在应用时由用户终端和/或基站下载和/或以其他方式获得。例如,这样的设备可以耦合到服务器以促进用于执行本文描述的方法的装置的传送。或者,可以经由存储装置提供本文描述的各种方法,使得用户终端和/或基站在将存储装置耦合或提供到设备时可以获得各种方法。此外,可以利用用于向设备提供本文描述的方法和技术的任何其他合适的技术。
157.应当理解,权利要求不限于上述的精确配置和组件。在不脱离权利要求的范围的情况下,可以对上述方法和装置的布置、操作和细节进行各种修改、改变和变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献