通过强化学习生成工具路径来用于计算机辅助制造的制作方法

文档序号:33392899发布日期:2023-03-08 11:52阅读:41来源:国知局
通过强化学习生成工具路径来用于计算机辅助制造的制作方法
通过强化学习生成工具路径来用于计算机辅助制造
1.相关申请的交叉引用
2.本专利申请要求2020年6月22日提交的美国临时专利申请号63/042,264和2021年1月20日提交的美国实用新型专利申请号17/153,266的优先权和权益,所述申请以引用的方式整体并入本文。


背景技术:

3.本说明书涉及诸如使用减材制造系统和技术对物理结构进行计算机辅助设计和制造。
4.已经开发出计算机辅助设计(cad)软件和计算机辅助制造(cam)软件,并且将所述软件用来生成对象的三维(3d)表示,并且例如使用计算机数控(cnc)制造技术制造那些对象的物理结构。减材制造是指通过切除物料的部分而从物料(通常是比3d对象大的“坯件”或“工件”)创建3d对象的任何制造过程。减材制造过程常常涉及在遵循先前(至少部分地)手动确定的工具路径的一系列操作中使用多个cnc机床切削工具。
5.对于新手用户来说,在cam软件中选择工具路径可为困难的。cnc铣床可具有若干轴和功能,并且正在加工的几何形状可能具有需要特定的路由路径的复杂形式。现有的选择工具路径的方法涉及用户了解哪些类别的工具路径是最适当的,选择那个类别,并且操纵许多(通常是几十个)参数以实现期望的结果。然而,即使在向用户给出关于使用何种工具路径的提示时,选择哪一类别的工具路径并非总是明显的,并且因此用户常常要花费数小时来探索各种类别和参数以试图找到他们想要的工具路径。此外,软件(可从加利福尼亚州圣拉斐尔的autodesk公司获得)包括可用于生成工具路径的模板。


技术实现要素:

6.本说明书描述了用于与减材制造系统和技术一起使用的与使用通过强化学习生成的工具路径对物理结构进行计算机辅助设计和制造相关的技术。
7.一般而言,在本说明书中描述的主题的一个或多个方面可体现在一种或多种方法(以及还有有形地编码有可操作以致使数据处理设备执行操作的计算机程序的一种或多种非暂时性计算机可读介质)中,所述方法包括:在计算机辅助设计或制造程序中获得可制造对象的三维模型;由计算机辅助设计或制造程序通过在训练期间将所述三维模型的至少一部分提供给采用强化学习的机器学习算法而生成能够由计算机控制的制造系统用来制造所述可制造对象的至少一部分的工具路径,其中所述机器学习算法包括一个或多个打分函数,所述一个或多个打分函数包括与期望的工具路径特性相关的奖励,所述期望的工具路径特性包括工具路径平滑度、工具路径长度和避免与所述三维模型的碰撞;以及将所述工具路径提供给所述计算机控制的制造系统以制造所述可制造对象的至少所述部分。
8.所述期望的工具路径特性可包括选定切削工具的工具接合和选定工具的接触轨迹。所述机器学习算法可采用可变进给和/或速度。所述机器学习算法可包括两种或更多种机器学习算法,并且提供所述三维模型的至少所述部分可包括:利用所述两种或更多种机
器学习算法中的第一机器学习算法处理所述三维模型的至少所述部分;以及利用所述两种或更多种机器学习算法中的第二机器学习算法处理所述三维模型的所述部分。所述两种或更多种机器学习算法中的所述第一机器学习算法可包括卷积神经网络,所述卷积神经网络用于从将要利用所述两种或更多种机器学习算法中的所述第二机器学习算法处理的所述三维模型的所述部分生成数据。所述两种或更多种机器学习算法中的所述第一机器学习算法可对所述三维模型的至少所述部分的低分辨率视图进行操作,并且所述两种或更多种机器学习算法中的所述第二机器学习算法可对所述三维模型的所述部分的高分辨率视图进行操作。
9.所述机器学习算法可包括基于优势的执行者-评论者机器学习架构。所述工具路径可用于计算机控制的制造系统进行的2.5轴加工。生成能够由所述计算机控制的制造系统用来制造所述可制造对象的至少所述部分的所述工具路径可包括:在离散的2d层处生成所述三维模型的多个二维(2d)表示;将每个2d表示提供给所述机器学习算法,以生成用于制造每个离散的2d层的对应一组工具路径;以及通过将用于所述三维模型在离散的2d层处的所述多个2d表示的所述对应组工具路径进行组合,生成能够由所述计算机控制的制造系统使用的所述工具路径。
10.所述机器学习算法可包括两种或更多种机器学习算法,并且将所述三维模型的至少所述部分提供给所述机器学习算法可包括:通过利用所述两种或更多种机器学习算法中的第一机器学习算法处理所述三维模型的至少所述部分的全局视图而生成至少一个起始位置;以及通过利用所述两种或更多种机器学习算法中的第二机器学习算法处理所述三维模型的至少所述部分的局部视图而在所述至少一个起始位置中的每一者附近生成一组工具路径。生成所述至少一个起始位置可包括利用所述两种或更多种机器学习算法中的第一机器学习算法使用可制造对象的三维模型和物料的模型的离散化表示来处理全局视图,将要从所述物料的所述模型制造所述可制造对象的至少所述部分,并且生成所述一组工具路径可包括在用于制造所述可制造对象的至少所述部分的计算机控制的制造系统中利用所述两种或更多种机器学习算法中的第二机器学习算法使用计算机控制的制造系统中的工具模型的连续表示来处理局部视图。生成所述至少一个起始位置可包括利用两种或更多种机器学习算法中的第一机器学习算法使用工具模型的离散化表示来处理全局视图,并且生成所述一组工具路径可包括利用所述两种或更多种机器学习算法中的第二机器学习算法使用可制造对象的三维模型和物料的模型的连续表示来处理所述局部视图。
11.所述期望的工具路径特性可包括基于工具的旋转方向而设置的工具的转向方向。可基于工具相对于可制造对象的3d模型的位置而设置工具的转向方向,并且一个或多个打分函数可包括一个或多个奖励,所述一个或多个奖励在工具的位置大于距可制造对象的3d模型的阈值距离时鼓励自由选择所述工具的转向方向,并且所述一个或多个奖励可在工具的位置在距可制造对象的3d模型的阈值距离内时鼓励工具仅在一个方向上转向,这基于所述旋转方向而暴露所述工具的正确侧。所述机器学习算法可包括一个或多个打分函数,所述一个或多个打分函数可包括与可制造对象的对应的完成百分比相关的基于阶段的奖励。
12.在本说明书中描述的主题的一个或多个方面还可体现在一个或多个系统中,所述一个或多个系统包括:数据处理设备,所述数据处理设备包括至少一个硬件处理器;以及非暂时性计算机可读介质,所述非暂时性计算机可读介质编码有被配置为致使所述数据处理
设备执行操作的指令,所述操作包括:在计算机辅助设计或制造程序中获得可制造对象的三维模型;由计算机辅助设计或制造程序通过在训练期间将所述三维模型的至少一部分提供给采用强化学习的机器学习算法而生成可由计算机控制的制造系统用来制造所述可制造对象的至少一部分的工具路径,其中所述机器学习算法包括一个或多个打分函数,所述一个或多个打分函数包括与期望的工具路径特性相关的奖励,所述期望的工具路径特性包括工具路径平滑度、工具路径长度和避免与所述三维模型的碰撞;以及将所述工具路径提供给所述计算机控制的制造系统以制造所述可制造对象的至少所述部分。
13.可实施在本说明书中所描述的主题的特定实施方案以实现以下优点中的一或多者。可用于制造三维对象的工具路径可通过机器学习算法自动生成,这可减少制定制造计划所需的时间并减少制造零件所需的时间。所述机器学习算法使用强化学习,并且可被训练成使用对工具路径平滑度、工具路径长度和避免与对象的三维模型的碰撞的奖励来生成期望的工具路径特性。所述机器学习算法可生成期望的工具路径特性,包括工具接合、接触轨迹的平滑度、工具轴变化、加工时间、可变进给、可变速度等。机器学习算法可从对象的三维模型的二维表示生成可用于2.5轴加工中的工具路径。此外,通过使工具路径生成过程更加自动化,可使更多的用户能够设计工具路径。例如,用户无需探索和调整工具路径模板的各种参数(例如,对于工具路径类型的类别)来找到他们期望的工具路径。
14.在附图和以下描述中陈述了在本说明书中所描述的主题的一个或多个实施方案的细节。本发明的其他特征、方面及优势将从描述、附图和权利要求书变得显而易见。
附图说明
15.图1示出了可用于设计和制造物理结构的系统的示例。
16.图2a是示出通过机器学习算法生成工具路径以用于制造建模对象的物理结构的过程的示例的流程图。
17.图2b是示出对通过强化学习生成工具路径的机器学习算法进行训练的过程的示例的流程图。
18.图2c是示出了用于生成工具路径以用于制造建模对象的物理结构的机器学习算法的神经网络架构的示例的示意图。
19.图3示出了通过机器学习算法生成用于2.5轴加工的工具路径的过程的示例。
20.图4是可用于实施所描述的系统和技术的数据处理系统的示意图。
21.各种图式中的相同参考数字和称号指示相同元件。
具体实施方式
22.图1示出了可用于设计和制造物理结构的系统100的示例。计算机110包括处理器112和存储器114,并且计算机110可连接到网络140,所述网络可以是专用网络、公共网络、虚拟专用网络等。处理器112可以是一个或多个硬件处理器,每个硬件处理器可包括多个处理器核心。存储器114可包括易失性存储器和非易失性存储器两者,诸如随机存取存储器(ram)和闪存ram。计算机110可包括各种类型的计算机存储介质和装置,其可包括存储器114以存储在处理器112上运行的程序的指令。
23.此类程序包括一个或多个3d建模、模拟和制造控制程序,诸如计算机辅助设计
(cad)和/或计算机辅助制造(cam)程序116,还称为计算机辅助工程设计(cae)程序等。cad程序116可在本地运行在计算机110上,远程地运行在一个或多个远程计算机系统150(例如,能够由计算机110经由网络140访问的一个或多个第三方提供商的一个或多个服务器系统)的计算机上,或者在本地和远程地运行两者。机器学习算法134可存储在存储器114中(和/或存储在一个或多个远程计算机系统150中)并且可由cad/cam程序116访问。
24.cad/cam程序116在计算机110的显示装置120上呈现用户界面(ui)122,可使用计算机110的一个或多个输入装置118(例如,键盘和鼠标)来操作所述用户界面。应注意,虽然在图1中示出为单独装置,但显示装置120和/或输入装置118还可彼此集成和/或与计算机110集成,诸如集成在平板计算机中或虚拟现实(vr)或增强现实(ar)系统中。例如,输入/输出装置118、120可包括vr输入手套118a和vr头戴式设备120a。
25.用户190可与程序116交互以(例如,从文档130)创建和/或加载将要通过计算机控制的制造系统(例如,通过cnc机器170,诸如多轴、多刀具铣床等)制造的对象180的3d模型132。这可使用已知的图形用户界面工具来完成,并且可使用各种已知的3d建模格式,诸如使用实体模型(例如,体素)或表面模型(例如,b-rep(边界表示)、表面网),在计算机中定义所述3d模型132。另外,用户190可在需要时与程序116交互以修改对象180的3d模型132。
26.在一些实现方式中,3d模型132(例如,来自文档130)可包括可由cnc机器170在减材制造过程中去除的物料(即,“工件”)的3d模型。在一些实现方式中,可通过cad/cam程序116获得物料的单独的3d模型。可通过遵循期望的工具路径的cnc机器170来去除物料。为了便于说明,物料以心形示出,而将要制造的对象以五边形示出。此图解不对应于在减材制造(例如,铣削)领域中遇到的典型的物料工件和制造对象。
27.一旦对象180的3d模型132准备好制造,就可通过生成工具路径以供计算机控制的制造系统用来制造对象180来准备用于制造对象180的物理结构的3d模型132。例如,可使用3d模型132来生成工具路径规范文档160,所述工具路径规范文档可被发送到cnc机器170并且用于控制一个或多个铣削工具的操作。这可在用户190的请求之后或鉴于用户对另一动作的请求之后进行,所述请求诸如将3d模型132发送到可直接连接到计算机110或经由网络140连接到所述计算机的cnc机器170或其他制造机械。这可涉及在本地计算机110或云服务上执行的用以将3d模型132导出到制造所依据的电子文档的后处理步骤。应注意,电子文档(其出于简明起见将简称为文档)可以是文件,但不一定对应于文件。可将文档存储在保持其他文档的文件的一部分中、存储在专用于所讨论的文档的单个文件中,或存储在多个协同文件中。
28.在任何情况下,程序116可在文档160中创建一个或多个工具路径并将文档160(具有适当格式)提供给cnc机器170以创建对象180的物理结构(请注意,在一些实现方式中,计算机110被集成到cnc机器170中,并且因此工具路径规范文档160由将使用工具路径规范文档160来制造对象180的同一计算机创建)。程序116可通过将对象180的3d模型132(例如,来自文档130)提供给机器学习算法134来生成一个或多个工具路径。机器学习算法134可自动生成可由cnc机器170用来制造对象180的工具路径172(例如,保存在文档160中)。不是由用户190(例如,通过ui 122中的菜单)指定期望的工具路径的类型和参数,此自动过程可加速工具路径生成过程,这可减少制定制造计划所需的时间并且同样减少制造零件所需的时间。例如,cnc机器170可以是减材制造机器,其可通过去除物料136来制造对象180。cnc机器
170可使用由机器学习算法134自动生成的工具路径172(例如,保存在文档160中)来控制切削工具174。例如,切削工具174可包括刀具,所述刀具可被编程以在使用减材制造制造对象时去除多余的物料。
29.程序116可在ui 122中包括允许用户190接受或拒绝由机器学习算法134自动生成的一个或多个候选工具路径的一系列菜单。在一些实现方式中,程序116可在ui 122中包括允许用户190调整候选工具路径的一个或多个部分直到用户对工具路径感到满意为止的一系列菜单。一旦用户接受候选工具路径,程序116可将候选工具路径保存在工具路径文档160中并且可将文档160提供给cnc机器170以制造对象180的物理结构。
30.图2a示出了由机器学习算法生成工具路径以用于制造建模对象的物理结构的过程的示例。例如,由程序116获得200可制造对象的三维模型。换言之,识别将要由cnc机器制造的建模对象的几何形状。这可由计算机(例如,由计算机110上的程序116)自动完成或通过接收用户输入来完成。例如,用户可选择他们想要加工的3d模型的期望的面、轮廓或其他几何形状。在一些实现方式中,所述程序提供用户界面,用户可在所述用户界面中直接选择(例如,用鼠标点击)所关注的几何形状(例如,面或轮廓)。
31.在一些实现方式中,在获得对象的三维模型之后,可例如通过程序116对三维模型执行一个或多个预处理过程。例如,程序116可去除3d模型的对于可用工具来说太紧密而无法放入的部分。作为另一示例,程序116可生成表示3d模型的横截面的一组2d图像。背景区域、在对象内部的区域和在对象外部的区域可在机器学习算法的输入中使用不同的值表示,例如通过在2d图像中使用不同的色彩表示。
32.对象的三维模型可呈各种表示。可能的表示可包括图像像素、点云、体素、网、等值线图等,或者以上表示中的任何两者或更多者的组合。在一些实现方式中,所述表示可包括3d对象的2d视图的2d图像,或3d模型的局部几何形状从多个角度看到的多个2d图像。在一些实现方式中,可用工具的模型、对象的模型和物料的模型可使用相同或不同的表示。
33.在一些实现方式中,可用工具的模型、对象的模型和物料的模型中的一者或多者可使用连续表示(由一个或多个平滑函数定义)而不是离散化表示(例如,使用像素)。例如,铣削工具可由所述铣削工具的中心坐标和半径定义的连续圆来表示,而不使用离散像素表示。铣削工具可表示为以工具的中心坐标为中心并且半径等于工具的半径的圆形。使用这种圆形表示,程序116可使用工具的半径来计算物料的像素是否在工具的范围内。作为另一示例,对象的模型和/或物料的模型可具有连续表示(由一个或多个平滑函数定义,例如,由连续b-rep定义)而不是离散化表示(例如,使用像素)。
34.例如由程序116通过将三维模型的至少一部分提供给机器学习算法而生成202一个或多个工具路径。可由计算机控制的制造系统(例如,cnc机器170)使用所生成的工具路径来制造可制造对象的至少一部分。在一些实现方式中,由机器学习算法生成的工具路径可用于制造整个对象。
35.在一些实现方式中,机器学习模型可生成供工具通过的一系列位置。在一些实现方式中,机器学习模型可为工具生成一系列速度向量(例如,让工具加速的方向)。例如,位置和速度向量可以像素为单位表示,并且工具可在每个步骤中移动一定数目的像素。所述一系列位置可包括2d环境中的一系列像素坐标。在3d环境中,工具的所述一系列位置可包括3d中的体素的坐标和工具的3d取向。cad/cam程序116可在连接所述一系列位置的全部或
一部分的后处理步骤中生成一个或多个样条。可将所述一个或多个样条保存为工具路径,并且可用于控制工具以平滑的路线行进通过这些点。在一些实现方式中,机器学习模型可生成工具的控制机制,例如刀具的角度。cad/cam程序116可利用由机器学习算法生成的工具的控制机制来生成工具路径。
36.一般来说,机器学习算法基于训练数据而构建数学模型。所述机器学习算法将对象的三维模型的至少一部分作为输入。所述机器学习算法还可将环境的表示作为输入,例如,在制造期间需要去除的物料的模型。在一些实现方式中,要从中切出对象的物料的模型可以是程序使用的默认模型,或者可由用户或另一进程提供给程序。在一些实现方式中,环境的表示可使用光线追踪,即,使用沿着从工具开始的一组光线距原料的距离来描述当前环境。
37.可训练机器学习算法以生成具有一组期望的工具路径特性的工具路径。图2b是示出对通过强化学习生成工具路径的机器学习算法进行训练的过程的示例的流程图。定义232包括与期望的工具路径特性相关的奖励的一个或多个打分函数。机器学习算法可采用强化学习以包括一个或多个打分函数,所述打分函数包括与期望的工具路径特性相关的奖励。所述机器学习算法可包括对期望的工具路径行为的奖励,并且可包括对其他非期望的工具路径行为的惩罚。奖励的主要目标是劝阻切削工具的不良行为,同时鼓励良好的切削并劝阻不良的切削。工具的不良行为的示例可包括移动到cad模型中,以及停留在一个位置并不确定地改变方向等。
38.期望的工具路径特性可包括最大化工具路径平滑度(例如,工具中心的轨迹是平滑的)、最小化工具路径长度、最小化加工时间等。例如,突然进行90度转弯的工具路径可能不是期望的。执行曲折路径的工具路径也可能不是期望的。可将惩罚或负奖励应用于这些非所要的工具路径特性。
39.期望的工具路径特性还可包括避免与三维模型的碰撞。在一些实现方式中,机器学习模型可包括阻止工具撞击cad模型的硬限制。在一些实现方式中,机器学习算法可包括惩罚函数,所述惩罚函数惩罚机器学习模型试图移动到cad模型中。
40.在一些实现方式中,期望的工具路径特性还可包括在用于计算机辅助制造过程的工具路径中选择和优化刀具的一侧。在计算机辅助制造过程的给定步骤中,刀具可包括刀具的正确侧(即,正确区域)、刀具的错误侧(即,不正确区域)和在刀具的正确侧与刀具的错误侧之间的中性侧(即,中性区域)。在给定的步骤中使用刀具的正确侧,工具路径可生成良好的切削,例如,由刀具的正确侧去除的物料的像素。在给定的步骤中使用刀具的错误侧,工具路径可生成不良切削,例如,由刀具的错误侧去除的物料的像素。使用刀具的中性区域,工具路径可生成中性切削,例如,由刀具的正确侧与错误侧之间的中性区域去除的物料的像素。
41.在刀具的正确侧、错误侧与中性侧之间进行选择和优化是鼓励机器学习算法创建期望的工具路径的重要约束。期望的工具路径运动可去除物料,同时还暴露刀具的正确侧。可训练机器学习算法以生成适当的工具路径,所述适当的工具路径可基于工具的移动方向而使用工具的正确侧。例如,如果工具在相同位置但在不同方向上行进,则相对于工具行进方向的工具的正确侧和错误侧将不同。作为另一示例,期望的工具路径特性可包括在仅使用刀具的正确侧的同时尽可能快地去除尽可能多的物料。
42.刀具的正确侧、错误侧和中性侧可各自占据刀具的特定百分比。例如,刀具的正确侧、错误侧和中性大小可分别占据刀具的49%、49%和2%。作为另一示例,刀具的正确侧、错误侧和中性大小可分别占据刀具的20%、70%和10%。当刀具的正确侧占据刀具的较小百分比时,刀具可去除较薄量的物料,并且可训练机器学习算法以当在每个步骤选择和改变刀具的侧时生成较小的更新。
43.在一些实现方式中,期望的工具路径特性还可包括优化选定切削工具的工具接合、使选定切削工具的接触轨迹的平滑度最大化(例如,工具的接触轨迹是平滑的)、最小化工具轴变化、最大化工具轴变化的平滑度、避免留下小块物料、限制工具接合角度或任何其他合适的工具路径特性。例如,机器学习算法可包括对以下操作的奖励:在顺铣或其他铣削操作期间使用刀具的良好部分(例如,刀具的边缘),以便避免使用刀具的不良部分(例如,球头刀具的中间部分或牛鼻刀具的底部部分),和/或以便避免使用刀具的错误侧(例如,在顺铣或常规的铣削中)。作为另一示例,如果模型的图像表示的太多像素同时被接合(例如,被工具触碰),则机器学习算法可通过惩罚得分来限制工具接合角度。
44.在一些实现方式中,机器学习算法可包括对工具位置和/或旋转特性(例如,原地旋转或向前移动)的奖励。例如,机器学习算法可包括劝阻机器学习算法连续决定以一种方式改变方向从而致使工具围绕环境中的一个点旋转(即,原地旋转)的奖励。在一些实现方式中,对工具位置和/或旋转特性的奖励可与工具路径平滑度奖励相结合以生成平滑的工具路径,例如,生成围绕零件的平滑切削。在每个步骤,机器学习算法都可包括对保持或改变工具的旋转方向的奖励。机器学习算法可包括对在将工具移动到不同位置之前在相同位置旋转工具的奖励。在一些实现方式中,在每个步骤,机器学习算法可包括始终将工具移动到不同位置并且防止工具停留在相同位置的奖励。在一些实现方式中,机器学习算法可包括允许工具原地旋转或向前移动但两者不同时进行的奖励,这可帮助增加完成百分比并且防止工具撞击cad模型。在一些实现方式中,机器学习算法可包括使工具仅逆时针(即,反时针方向)旋转或仅顺时针旋转或允许工具顺时针和逆时针旋转的奖励。例如,在一些实现方式中,可能更希望使刀具逆时针旋转而不是顺时针旋转,因为当刀具撞击cad模型时,默认的逆时针转向方向可暴露刀具的正确侧。作为另一示例,在一些实现方式中,可能希望使工具顺时针旋转和逆时针旋转两者,例如,在一个步骤中顺时针转向,然后在下一步骤中逆时针转向并重复这两个步骤,这可有助于产生所制造的对象的更平滑的外部轮廓。在一些实现方式中,能够在两个方向上旋转可使工具更容易产生平滑的工具路径,因为工具不需要做出在相同方向上转向以便面向特定方向的若干连续决策。
45.在一些实现方式中,期望的工具路径特性可包括基于工具相对于可制造对象的模型的位置来设置工具的转向方向。当工具的位置距可制造对象的模型大于阈值距离时,一个或多个打分函数可包括鼓励自由选择工具的转向方向的一个或多个奖励。例如,当工具距cad模型较远(例如,超过1毫米)时,系统可自由选择转向方向以便创建更平滑的工具路径。当工具的位置在距可制造对象的模型的阈值距离内时,一个或多个打分函数可包括鼓励工具仅在一个方向上转向的一个或多个奖励,仅在一个方向上转向可导致基于旋转方向而暴露工具的正确侧。例如,当工具更接近cad模型(例如,小于1毫米)时,所述系统可使工具仅逆时针转向,以防止工具被cad模型堵住。
46.在一些实现方式中,机器学习算法可包括对去除物料的表示的奖励。机器学习算
法可增加对去除接近cad模型的物料的奖励量和/或随着去除更多物料而增加对去除物料的奖励量。在一些实现方式中,机器学习算法可包括基于阶段的奖励。基于阶段的奖励可包括更高完成水平(包括高达100%)的更大奖励,并且可帮助确保机器学习算法完成对cad模型周围的所有物料的去除。例如,可在50%、95%和99%的完成处或者在80%、95%、99%和100%的完成处设置不同级别的奖励。在100%完成处具有显著高额的奖励可防止机器学习算法在实际完成对cad模型的加工之前仅去除距cad模型较远的物料(例如,决定它已挣得足够的奖励)。作为另一示例,当仅剩少量物料时,可增加对去除少量物料的奖励。使用基于阶段的奖励训练的机器学习算法可生成具有对建模对象的铣削的更高的完成百分比(包括高达100%)的工具路径。
47.在一些实现方式中,机器学习算法可采用可变刀具进给(例如,所使用的刀具的百分比)、可变刀具速度(例如,进给率)或可变切削力等。在一些实现方式中,机器学习算法可采用次摆线运动。例如,如果工具需要切削穿过两侧都有cad模型的物料槽,则工具可以次摆线运动移动,以避免过度的工具接合。作为另一示例,如果工具在物料的外部行进,则工具可以螺旋运动而不是次摆线运动移动。可变进给率的使用可通过允许工具在机器学习算法可能产生的原本非所要的加工操作(例如,重切削)期间加速或减速来减少在100%的时间实现最佳接合的潜在需求。因此,机器学习算法可在大部分时间(例如,99%的时间)实现良好的接合,并且可在可能偶尔出现的任何非所要的加工操作(例如,重切削)期间容易减慢刀具,而不是试图让机器学习算法始终实现100%的刀具接合顺应行为。
48.奖励函数的示例可以是以下因素的函数:
49.良好切削的数目(例如,在给定步骤中由刀具的正确侧去除的物料的像素的数目),
50.不良切削的数目(例如,在给定步骤中由刀具的错误侧去除的cad模型的像素的数目),
51.中性切削的数目(例如,在给定步骤中与被刀具的正确侧与错误侧之间的中性区域去除的cad模型接触的像素的数目),
52.有没有任何不良的切削?
53.撞到cad模型了吗?
54.工具是否处于以前到过的位置?
55.工具是否在原地旋转,或工具速度=0?
56.是否达到完成阈值?
57.奖励函数可包括所述因素中的每一者的加权系数。可将正加权系数指派给期望的工具路径特性,例如,良好的像素切削的数目。可将负加权系数(例如,指示惩罚)给予非所要的工具路径特性,例如,不良像素切削的数目,或cad模型被撞击的事实。加权系数的值可以是预先确定的,或者可在训练机器学习算法时学习。
58.在一些实现方式中,机器学习算法可包括长期奖励、短期奖励或以上两者的组合。在一些实现方式中,机器学习算法可对生成的工具路径的多个步骤中的每个步骤采用奖励函数。总奖励可以是与所述多个步骤对应的所有奖励的总和。在一些实现方式中,可随时间应用奖励的一个或多个折扣率。折扣率可确定强化学习算法相对于近期的奖励将远期的奖励评估为多少。折扣率可以是0与1之间的值。例如,可将折扣率设置为0.99。
59.机器学习算法的输入可以是其环境的观察值。在一些实现方式中,在每个步骤中,机器学习算法可基于模型的局部视图来确定工具的位置,而不需要整个模型的信息。例如,机器学习算法可使用在工具的当前位置附近的高分辨率图像(例如,仅在距工具的边缘的定义距离内的物料和cad模型的图像数据)来有效地确定工具应如何与物料交互,所述定义距离是工具直径的四分之一或一半,或者就是工具的直径。在一些实现方式中,机器学习算法可将环境的一个或多个视图作为输入,并且可基于环境的一个或多个视图做出决策。例如,对于3d环境,可提供环境的两个或更多个2d视图作为机器学习算法的输入。在一些实现方式中,机器学习算法可将当前步骤处的环境的一个或多个视图以及一个或多个先前步骤处的环境的一个或多个视图作为输入。例如,环境的观察值可包括三个图像:环境的当前2d视图和来自两个先前步骤的环境的两个2d视图。
60.机器学习算法的输出可以是包括多个步骤中的一系列工具位置的工具路径。每个工具位置都可表示cam系统应将切削工具的表示移动到哪里。例如,每个工具位置可以是工具头的(x,y,z)坐标。所述一系列工具位置可彼此相邻(例如,在2d图像表示中向前转向或移动一个像素),或者相隔更远(例如,在单个步骤中移动较长的距离)。
61.机器学习算法可采用多种强化学习算法。强化学习算法的示例包括q学习、状态-动作-奖励-状态-动作(sarsa)、深度q学习网络(dqn)、异步优势执行者-评论者(a3c)网络、深度决定性策略梯度(ddpg)、混合奖励架构(hra)等。强化学习算法可采用在线学习或离线学习、同策略学习或离策略学习、分层强化学习等。在一些实现方式中,强化学习算法可包括使用先前输出状态作为下一步骤的输入的递归神经网络,例如门控循环单元(gru)或长短期记忆(lstm)神经网络。所述神经网络架构可包括卷积神经网络(cnn),包括一个或多个具有可配置大小的卷积层、一个或多个全连层、一个或多个激活层或所述层之间的跳过连接等。
62.图2c是示出了用于生成工具路径以用于制造建模对象的物理结构的机器学习算法的神经网络架构210的示例的示意图。此实现方式采用在训练示例中不需要专家制作的样本解的无监督机器学习算法。此神经网络架构使用强化学习算法,具体地,优势执行者-评论者架构。机器学习算法的输入可以是描述对象模型220、物料模型222和可用工具模型224的环境的观察值212。例如,机器学习算法的输入可以是与在工具224穿过环境时在所述工具周围的正方形区域相对应的2d图像214。
63.神经网络架构210可包括卷积神经网络(即,convnet 216),所述卷积神经网络可从观察值212生成一个或多个特征向量。例如,convnet 216可包括大小为4、步距为2的卷积层,所述卷积层可生成具有32个通道的特征向量。递归神经网络,例如gru 220,可将gru 220在前一时间步生成的状态向量hi218和从convnet 216生成的一个或多个特征向量作为输入。递归神经网络,例如gru 220,可生成当前时间步的状态向量h
i+1
222。例如,状态向量h
i+1
222可具有为256的预定长度。当前时间步的状态向量h
i+1
222可通过一个或多个线性操作223来处理。神经网络架构的输出可包括多个动作224以及一个或多个值226。动作224可描述用于制造建模对象的工具路径,例如移动工具的速度向量,或让工具加速的方向。所述一个或多个值226可表示处于对应于状态向量h
i+1
222的特定状态的值得分。例如,工具非常接近cad模型的状态可具有较低的值得分,因为所述工具可有可能撞击cad模型并因此可导致较大的负奖励。在一些实现方式中,可将softmax函数228应用于动作224,并且softmax函
数228的输出可包括可能动作的概率分布。
64.机器学习算法可基于它已从在训练过程期间获得的过去的经验中学到的东西而在多个步骤中确定工具位置的序列。可使用包括示例性工具和示例性环境的训练示例来训练机器学习算法。再次参看图2b,可接收234多个训练示例,并且每个训练示例可包括示例性工具和示例性环境。在训练期间,机器学习算法的参数(例如,一组权重)可基于训练示例而被迭代更新,直到满足停止准则。所述训练示例可包括来自真实cam过程或来自模拟cam过程或以上两者的组合的样本。例如,训练示例可包括一个或多个铣削工具的真实或模拟的切削力信息,并且还可在训练期间将此类切削力信息添加到打分机构。所述训练示例可包括2d环境或3d环境。所述训练示例可包括2d工具或3d工具的表示。在一些实现方式中,可对训练示例执行一个或多个预处理操作。例如,如果示例性环境的一部分对于可用工具来说太紧密而无法放入,则可去除所述示例性环境的所述部分,使得训练示例包括可实现100%完成的cad模型。因此,可训练机器学习算法以去除训练示例中的所有物料。
65.可使用236训练示例来训练机器学习算法以生成可最大化由一个或多个打分函数生成的值的工具路径。在一些实现方式中,所述机器学习算法可采用强化学习算法的无监督训练。在无监督训练期间,机器学习算法不接收期望的输出或专家标记的样本解。强化学习算法可通过最大化一个或多个打分函数来确定输出,所述一个或多个打分函数包括与期望的工具路径特性相关的奖励。例如,可训练强化学习算法以最大化从所观察的加工环境接收的奖励。通过将奖励设计成与期望的工具路径特性相关,可训练强化学习算法以产生期望的工具路径。
66.在一些实现方式中,机器学习算法可针对已选择的对应的强化学习算法采用适当的训练方法。例如,可使用异步训练方法来训练基于执行者-评论者网络的强化学习算法。在异步训练方法中,在每次迭代中,可创建具有当前一组权重的强化学习网络的复制品。网络的每个复制品都可通过与环境的一部分进行交互来运行其自身的模拟。复制品的当前性能可从它们在一定数目的步骤中累积的模拟中收集。可通过优化算法(例如,有或没有动量的随机梯度下降(sgd)、有或没有共享统计信息的均方根传播(rmsprop)等)基于收集到的性能而计算对所述一组权重的更新。可基于强化学习模型的性能来迭代地更新所述一组权重,直到满足停止准则为止,例如,已完成固定数目次迭代,权重的变化小于阈值,或已达到精度的极限。
67.在一些实现方式中,可在训练机器学习算法时使用离策略训练来代替同策略训练。离策略训练可使用从除了机器学习算法之外的不同来源生成的样本工具路径来评估和训练机器学习算法。从不同来源生成的样本工具路径可包括已经在计算机辅助制造中使用的现实生活的工具路径数据,或者由人类设计的有或没有模板的工具路径数据等。例如,强化学习算法可评估其性能,并且可从专家制作的工具路径中学习算法的参数。在一些实现方式中,可在训练强化学习算法时使用经验重放优化。经验重放可通过以下操作来帮助提高样本效率:允许再使用样本,并且潜在地允许使用具有将要更频繁使用的受关注和具有挑战性的场景来训练样本。
68.在完成训练之后,机器学习算法可生成工具路径,所述工具路径用于制造不在训练示例中的对象,或机器学习算法尚未训练过的对象。可获得可表示一个或多个新对象(例如,一个或多个新零件)的附加的训练示例。可使用现有的训练示例与附加的训练示例的组
合来进一步训练机器学习算法。在一些实现方式中,为了快速训练,可通过基于先前训练过的机器学习模型执行微调来训练机器学习算法,即,机器学习模型的参数是从先前学习的参数来更新的,而不是从头开始计算(例如,随机数或零)。在通过添加新的训练样例对机器学习算法进行训练后,机器学习算法为这些新零件生成的工具路径可得到进一步改进。在一些实现方式中,附加的训练示例可包括与用户对机器学习算法先前生成的工具路径的修改相对应的数据。与用户修改相对应的数据可用于训练改进的机器学习算法,所述改进的机器学习算法可生成更合意的工具路径。
69.在一些实现方式中,机器学习算法可包括两种或更多种机器学习算法。可使用所述两种或更多种机器学习算法中的第一机器学习算法来处理三维模型的至少一部分。可使用所述两种或更多种机器学习算法中的第二机器学习算法来进一步处理所述三维模型的所述部分。
70.在一些实现方式中,所述两种或更多种机器学习算法中的第一机器学习算法可包括用于从三维模型的一部分生成数据(例如,图像特征)的卷积神经网络(cnn)。cnn的示例可包括alexnet、inceptionnet、resnet、densenet等,或者可执行图像辨识任务的其他类型的cnn。在一些实现方式中,机器学习算法可将表示对象的3d模型的2d横截面表示的2d图像和环境中的物料作为输入。卷积神经网络可通过执行一系列线性和非线性运算的两个或多个卷积层从所述2d图像中有效地提取有用的图像特征。所提取的图像特征可表示剩余物料、对象模型与工具的位置之间的关系。可使用所述两种或更多种机器学习算法中的所述第二机器学习算法来处理生成的数据,例如所提取的图像特征。例如,所述第二机器学习算法可以是可生成可用于计算机控制的制造中的工具路径的强化学习网络(例如,异步优势执行者-评论者(a3c)网络)。
71.在一些实现方式中,所述两种或更多种机器学习算法中的所述第一机器学习算法可对所述三维模型的至少一部分的低分辨率视图进行操作。所述两种或更多种机器学习算法中的所述第二机器学习算法可对所述三维模型的所述部分的高分辨率视图进行操作。例如,所述第一算法可使用对象的模型的低分辨率视图生成多个起始位置以定位工具。基于每个起始位置周围的高分辨率视图,所述第二算法可生成从由所述第一算法生成的每个起始位置开始的工具路径,并且所述工具路径可用于制造对象的局部部分。在下文结合图3描述所述两种或更多种机器学习算法的细节。
72.再次参看图2a,例如通过程序116将由机器学习算法生成的工具路径提供给用户以确定204所述工具路径是否为对象的可接受的最终工具路径。程序116可在ui 122中包括允许用户190接受或拒绝由机器学习算法自动生成的一个或多个候选工具路径的ui元件。例如,用户可观看模拟使用一个或多个候选工具路径制造对象的过程的视频。
73.如果用户确定所生成的工具路径对于制造可制造对象的至少一部分是不可接受的,则程序116可使用机器学习算法生成更新后的工具路径。在一些实现方式中,程序116可在ui 122中包括允许用户190指定更新后的期望的工具路径特性的ui元件。机器学习算法可使用一个或多个打分函数生成更新后的工具路径,所述一个或多个打分函数包括与更新后的工具路径特性相关的奖励。在一些实现方式中,程序116可在ui 122中包括允许用户190手动地编辑候选工具路径的一个或多个部分直到用户对工具路径感到满意为止的ui元件。此外,在机器学习算法生成不能去除一块或多块物料的工具路径的情况下,用户190可
采用ui 122的ui元件向自动生成的工具路径进行添加,以便确保在减材制造过程期间去除了所有物料,即,除了修改所生成的工具路径之外,还可扩展所生成的工具路径。
74.一旦用户确定204所生成的工具路径对于制造可制造对象的至少一部分是可接受的,便例如通过程序116将所述工具路径提供206给计算机控制的制造系统以制造所述可制造对象的至少一部分。在一些实现方式中,程序116可将候选工具路径保存在图1中的工具路径文档160中。程序116可将文档160提供给cnc机器170以制造对象180的物理结构。
75.计算机控制的制造系统使用由机器学习算法生成的工具路径制造208可制造对象的至少一部分。建模对象的制造可涉及粗加工操作、精加工操作以及任选地这两个操作之间的半精加工操作。粗加工操作可包括切除大部分物料,但在建模对象上留下一些物料。精加工操作可包括切除所有剩余的物料并且生成具有良好光洁度的最终制造对象。粗加工操作、精加工操作和半精加工操作中的每一者都可具有它们自身的工具路径。机器学习算法可用于为粗加工操作、精加工操作或半精加工操作生成工具路径。
76.图3示出了通过机器学习算法生成用于2.5轴加工的工具路径的过程的示例。2.5轴加工是一种减材制造过程。2.5轴加工可使用3轴铣床,所述铣床可在所有三个单独的维度上移动,但在大多数切削操作期间,铣削刀具相对于工件仅在2条轴上移动,这导致更高效的制造过程。2.5轴加工中的减材过程在垂直于铣削刀具的平面中的连续移动的情况下但在平行于铣削刀具的离散步骤中发生。与3轴减材制造相比,2.5轴减材制造过程可快速依次去除材料层,并且可产生常常具有一系列不同深度的“凹穴”的零件。
77.例如通过程序116获得302用于通过计算机控制的制造系统进行2.5轴加工的对象的三维模型320。2.5轴生成式设计可使用生成式设计软件来生成包括多个离散层的3d对象的cad模型。例如,cad模型320可具有三层,包括底层、中间层和顶层。
78.例如通过程序116生成304所述三维模型的多个二维表示322。可在预处理步骤中在3d模型的离散2d层处生成多个2d表示。每个2d表示可以是表示对象的3d模型的横截面的图像。例如,2d表示322可以是表示3d模型320在中间层的高度处的横截面的图像。2d表示322可包括表示对象(例如,零件)的区域326,以及在对象外部(例如,在零件外部)的需要去除物料的区域328。
79.例如通过程序116将所述二维表示提供给机器学习算法。可对机器学习算法306进行训练以生成用于2.5轴加工的工具路径,即,机器学习算法306仅在两个维度上操作,即使它创建了可用于在三个维度上制造对象的工具路径也如此。可例如通过程序116基于多个2d表示而生成308可用于使用2.5轴加工来制造对象的至少一部分的工具路径324。换言之,可将每个2d表示提供给机器学习算法以生成用于制造每个离散2d层的对应一组工具路径。在一些实现方式中,可通过组合对应于3d模型的多个2d表示的所有组工具路径来生成最终工具路径。
80.可将所述工具路径提供310给计算机控制的制造系统以使用2.5轴加工来制造对象的至少部分。例如,可提供工具路径324以使用2.5轴加工去除在对象的右下部分330处的物料。
81.在一些实现方式中,机器学习算法可包括两种或更多种机器学习算法。可通过使用所述两种或更多种机器学习算法中的第一机器学习算法处理3d模型的全局视图来生成工具的至少一个起始位置。对于所述至少一个起始位置中的每一者,可通过使用所述两种
或更多种机器学习算法中的第二机器学习算法处理每个起始位置附近的3d模型的局部视图来生成一组工具路径(例如,表示刀具表面的边缘周围的像素的值阵列或表示从刀具表面伸出的同心圆的多组值)。所述制造过程可按照传送然后去除的方法来操作。在每次迭代中,工具可快速移动到期望的起始位置,而不执行任何切削操作。然后工具可在至少一个起始位置附近的局部区域中执行切削。可将这种使用两种或更多种机器学习算法执行长期规划紧接着执行局部切削的方法应用于各种类型的计算机控制的制造系统,而不仅限于2.5轴加工。
82.例如,对象的图像表示323示出了在对象外部的四个局部区域330、332、334和336。如果工具仅在垂直于所述工具的2d平面中移动,则在另一区域(例如,区域330)中工作的工具可能无法接近一些区域(例如,区域336)。第一机器学习算法可生成用于制造四个区域330、332、334和336中的每一者的四个起始位置。第二机器学习算法可生成可用于去除所述四个区域330、332、334和336中的每一者中的物料的工具路径。
83.在一些实现方式中,生成至少一个起始位置可包括利用两种或更多种机器学习算法中的第一机器学习算法使用可制造对象的3d模型和物料的模型的离散化表示来处理3d模型的全局视图,将要从所述物料的所述模型制造所述可制造对象的至少部分。对象和物料的离散化表示可减少计算量并且可提高第一机器学习算法的效率。在一些实现方式中,生成所述一组工具路径可包括在将要用于制造可制造对象的至少所述部分的计算机控制的制造系统中利用所述两种或更多种机器学习算法中的第二机器学习算法使用工具的模型的连续表示来处理所述局部视图。例如,系统可使用工具的连续表示作为所述两种或更多种机器学习算法中的第二机器学习算法的输入,以生成执行接近cad模型的局部切削的精确工具路径。
84.在一些实现方式中,生成至少一个起始位置可包括利用所述两种或更多种机器学习算法中的第一机器学习算法使用所述工具的所述模型的离散化表示来处理全局视图。在一些实现方式中,生成所述一组工具路径可包括利用两种或更多种机器学习算法中的第二机器学习算法使用可制造对象的3d模型和物料的模型的连续表示来处理局部视图。例如,系统可使用对象的3d模型和物料的模型的连续表示作为所述两种或多种机器学习算法中的第二机器学习算法的输入,以生成执行接近cad模型的局部切削的工具路径的部分。对象和物料的连续表示可提高接近cad模型的局部切削的精度。
85.在一些实现方式中,所述系统可在两种或更多种机器学习算法中的第一机器学习算法和第二机器学习算法中使用可制造对象的3d模型和物料的模型的离散化表示,并且所述系统可在利用所述两种或更多种机器学习算法中的第二机器学习算法处理局部视图期间使用所述模型的高分辨率离散化表示。例如,所述系统可利用所述两种或更多种机器学习算法中的第一机器学习算法使用对象的3d模型的低分辨率离散化表示(例如,图像)来处理全局视图,并且所述图像中的每个像素可具有5mm
×
5mm的物理大小。所述系统可利用所述两种或更多种机器学习算法中的第二机器学习算法使用对象的3d模型的高分辨率离散化表示(例如,图像)来处理局部视图,并且所述图像中的每个像素可具有0.5mm
×
0.5mm的物理大小。
86.在一些实现方式中,在已去除大部分物料之后,可能仍会留下一些小块物料。这些需要去除的小块材料可能不彼此接近。上述的传送然后去除的方法可有效地去除彼此远离
的小块物料。机器学习算法可利用所有剩余块物料的全局视图,并且可将工具快速地发送到下一块物料的起始位置,而不是仅使用工具附近的局部视图并搜索下一块物料。
87.图4是包括数据处理设备400的数据处理系统的示意图,所述数据处理设备可被编程为客户端或服务器。数据处理设备400通过网络480与一个或多个计算机490连接。虽然在图4中仅一个计算机被示出为数据处理设备400,但可使用多个计算机。数据处理设备400包括可分布在应用层与操作系统之间的各种软件模块。这些可包括可执行和/或可解译软件程序或库,包括实施上文描述的系统和技术的3d建模/模拟和制造控制程序404的工具和服务。所使用的软件模块的数目可随实现方式而变。另外,软件模块可分布在通过一个或多个计算机网络或其他合适的通信网络连接的一个或多个数据处理设备上。
88.数据处理设备400还包括硬件或固件装置,所述硬件或固件装置包括一个或多个处理器412、一个或多个额外装置414、计算机可读介质416、通信接口418以及一个或多个用户接口装置420。每个处理器412能够处理用于在数据处理设备400内执行的指令。在一些实现方式中,处理器412是单线程或多线程处理器。每个处理器412能够处理存储在计算机可读介质416上或存储装置上的指令,所述存储装置诸如额外装置414中的一者。数据处理设备400使用其通信接口418例如在网络480上与一个或多个计算机490通信。用户接口装置420的示例包括显示器、相机、扬声器、麦克风、触觉反馈装置、键盘、鼠标以及vr和/或ar设备。数据处理设备400可例如在计算机可读介质416或一个或多个额外装置414上存储实施与上文描述的程序相关联的操作的指令,所述一个或多个额外装置例如为硬盘装置、光盘装置、磁带装置和固态存储器装置中的一者或多者。
89.在本说明书中描述的主题和功能操作的实施方案可实施在数字电子电路中或计算机软件、固件或硬件中,包括在本说明书中公开的结构和它们的结构等同物,或实施在它们中的一者或多者的组合中。可使用计算机程序指令的一个或多个模块来实施在本说明书中描述的主题的实施方案,所述计算机程序指令的一个或多个模块被编码在非暂时性计算机可读介质上以供数据处理设备执行或者用于控制数据处理设备的操作。所述计算机可读介质可为制造产品,例如计算机系统中的硬盘驱动器,或通过零售渠道销售的光盘,或嵌入式系统。可单独地获取计算机可读介质,或者所述计算机可读介质可在稍后例如通过经由有线或无线网络输送计算机程序指令的一个或多个模块而被编码有计算机程序指令的所述一个或多个模块。所述计算机可读介质可为机器可读存储装置、机器可读存储衬底、存储器装置,或其中的一者或多者的组合。
90.术语“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,包括(例如)可编程处理器、计算机或多个处理器或计算机。除了硬件之外,所述设备还可包括创建所讨论的计算机程序的执行环境的代码,例如,构成处理器固件、协议堆栈、数据库管理系统、操作系统、运行时环境或其中的一者或多者的组合的代码。另外,所述设备可采用各种不同的计算模型基础结构,例如网络服务、分布式计算和网格计算基础结构。
91.可通过任何形式的编程语言来编写计算机程序(还被称为程序、软件、软件应用程序、脚本或代码),所述编程语言包括经过编译或解译的语言、声明性或程序性语言,并且可通过任何形式来部署所述计算机程序,包括部署成独立的程序或适合于在计算环境中使用的模块、部件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部
分中、存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。可将计算机程序部署成在一个计算机上执行,或者在位于一个场所处或跨多个场所而分布并且通过通信网络互连的多个计算机上执行。
92.在本说明书中描述的过程和逻辑流可由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并且产生输出来执行功能。所述过程和逻辑流还可由专用逻辑电路执行,并且还可将设备实施为专用逻辑电路,所述专用逻辑电路例如为fpga(现场可编程门阵列)或asic(专用集成电路)。
93.适合于执行计算机程序的处理器包括(例如)通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。一般来说,处理器将从只读存储器或随机存取存储器或以上两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。一般来说,计算机还将包括用于存储数据的一个或多个大容量存储装置,例如,磁盘、磁光盘或光盘,或者操作性地耦合到所述一个或多个大容量存储装置以从其接收数据或向其传递数据或以上两者。然而,计算机不需要具有此类装置。另外,计算机可嵌入另一装置中,所述另一装置例如是(仅举数例)移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储装置(例如,通用串行总线(usb)快闪驱动器)。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括(例如):示例性半导体存储器装置,例如,eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)和快闪存储器装置;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及cd-rom和dvd-rom盘。可通过专用逻辑电路来补充处理器和存储器,或者处理器和存储器可并入专用逻辑电路中。
94.为了实现与用户的交互,在本说明书中描述的主题的实施方案可在计算机上实施,所述计算机具有:显示装置,例如,lcd(液晶显示器)显示装置、oled(有机发光二极管)显示装置或用于向用户显示信息的另一监视器;以及键盘和指向装置,例如,鼠标或跟踪球,用户可借此向计算机提供输入。还可使用其他种类的装置来实现与用户的交互;例如,向用户提供的反馈可为任何形式的知觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及可接收来自用户的呈任何形式的输入,包括听觉、语音或触觉输入。
95.所述计算系统可包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生的。在本说明书中描述的主题的实施方案可在计算系统中实施,所述计算系统包括:后端部件,例如,作为数据服务器;或中间件部件,例如,应用服务器;或前端部件,例如,具有图形用户接口或网络浏览器的客户端计算机,用户可借此与在本说明书中描述的主题的实现方式交互;或一个或多个此类后端部件、中间件部件或前端部件的任何组合。可通过任何形式或媒介的数字数据通信(例如,通信网络)将系统的部件互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、网际网络(例如,互联网)和对等网络(例如,特设的对等网络)。
96.虽然本说明书包含许多实施细节,但是这些细节不应理解为限制被要求保护或可要求保护的内容的范围,而是对所公开的主题的特定实施方案特有的特征的描述。在本说明书中在单独的实施方案的背景下描述的某些特征也可在单个实施方案中组合实施。相
反,在单个实施方案的背景下描述的各种特征也可单独地或在任何合适的子组合中在多个实施方案中实施。此外,尽管特征可能在上文描述为在某些组合中起作用且甚至起初如此主张,但是来自所主张组合的一个或多个特征在一些情况下可从所述组合中删除,并且所主张组合可针对子组合或子组合的变化。
97.类似地,虽然在图式中以特定次序描绘操作,但此不应理解为需要以所示出的特定次序或以连续次序执行此类操作或需要执行全部所说明的操作以实现期望的结果。在某些情形中,多任务处理和并行处理可为有利的。再者,上述实施方案中的各种系统部件的分离不应理解为在所有实施方案中都需要此分离,并且应理解,所描述的程序部件和系统可大体上一起集成在单个软件产品中或封装到多个软件产品中。
98.因此,已经描述了本发明的特定实施方案。其他实施方案处于所附权利要求书的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1