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

用于在制造中进行强化学习的虚拟环境的系统和方法

2022-05-12 00:10:19 来源:中国专利 TAG:

用于在制造中进行强化学习的虚拟环境的系统和方法
1.相关申请的交叉引用
2.本技术要求享有于2019年11月6日提交的第62/931,709号美国临时专利申请的优先权和权益,在此将其内容针对全部目的通过引用的方式并入本文。
技术领域
3.实施例总体上涉及制造中的加工过程,并且更具体地涉及用于加工过程中的强化学习的虚拟环境。
4.背景
5.计算机辅助制造(cam)软件系统用于对计算机数控(cnc)机床进行编程,这些机床在机械车间用于生产离散零件,例如模具、冲模(die)、刀具(tool)、原型、航空航天组件等。
6.cnc机床运行加工程序,该加工程序执行一系列指令,这些指令是制造零件的步骤。cnc机床在不了解上下文的情况下执行加工程序。程序的执行是连续的,对未来的预知短浅,并且没有对过程的全局概览。
7.概述
8.一种方法实施例可以包括:由具有带有可寻址存储器的处理器的解释器组件接收计算机数控(cnc)机床的刀具的第一状态;由解释器组件基于接收到的第一状态确定奖励和奖励值,其中奖励可以是正的奖励和负的奖励中的至少一项;由解释器组件向代理组件传输包括确定的奖励和奖励值的一组信息;由代理组件执行至少一个动作以生成刀具路径并进入第二状态,其中第二状态可以与第一状态结合;由代理组件基于所确定的与至少一个动作相关联的奖励和值来确定生成的刀具路径;并且其中可以基于以下项中的至少一项来确定至少一个动作:更换刀具、移动刀具、打开主轴和关闭主轴。
9.在另外的方法实施例中,第一状态包括关于以下项中的至少一项的信息:切削刀具的状态、机床的状态、以及构成整个系统的切削刀具的状态和机床的状态两者。在另外的方法实施例中,整个系统可以由以下项中的至少一项表示:切削刀片(cutting insert)、分立零件、切削刀具和毛坯材料(stock material)。在另外的方法实施例中,至少一个动作包括以下项中的至少一项:车削操作、铣削操作、增材定向能量沉积(ded)、电火花线切割(edm)和增材粉末床。在另外的方法实施例中,至少一个动作可以是用于生成刀具路径的一系列动作的一部分。
10.计算设备实施例可以包括处理器和存储器,计算设备被配置为:通过计算设备的解释器组件接收计算机数控(cnc)机床的刀具的第一状态;由解释器组件基于接收到的第一状态确定奖励和奖励值,其中奖励可以是正的奖励和负的奖励中的至少一项;由解释器组件向计算设备的代理组件传输包括确定的奖励和奖励值的一组信息;由代理组件执行至少一个动作以生成刀具路径并进入第二状态,其中第二状态可以与第一状态结合;由代理组件基于所确定的与至少一个动作相关联的奖励和值来确定生成的刀具路径;并且其中可以基于以下项中的至少一项来确定至少一个动作:更换刀具、移动刀具、打开主轴和关闭主轴。
action);
35.图14c描绘了用于制造中进行强化学习的虚拟环境的系统的跟踪动作;
36.图15示出了计算设备实施例的示例顶层功能框图;
37.图16示出了用于实现系统和过程的实施例的计算系统的高级框图和过程;
38.图17示出了其中可以实现实施例的示例性系统的框图和过程;
39.图18描绘了用于实现本文公开的系统和过程的实施例的云计算环境;以及
40.图19在顶层流程图中描绘了所公开实施例的示例性方法。
41.详细描述
42.所描述的技术涉及在用于在制造中进行强化学习的虚拟环境内制造机械的训练的一种或更多种方法、系统、装置和介质,该介质存储有该制造机械的训练的处理器可执行过程步骤。制造机械的训练可以包括计算机辅助制造(cam)软件系统,其用于对计算机数控(cnc)机床进行编程。cnc机床可以在机器车间用于生产离散零件,诸如模具、冲模、刀具、原型、航空航天组件等。下面介绍的技术可以通过由软件和/或固件编程或配置的可编程电路来实现,或者完全通过专用电路来实现,或者以这些形式的组合来实现。这种专用电路(如果有的话)可以是例如一个或更多个专用集成电路(asic)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)等形式。
43.图1-图14和以下讨论提供了其中可以实现所描述技术的各方面的合适的计算环境的简要、一般描述。尽管不是必需的,但是本技术的各方面可以在计算机可执行指令的大体背景下进行描述,诸如由通用或专用数据处理设备(例如,服务器或客户端计算机)执行的例程。本文描述的技术的各方面可以存储或分布在有形计算机可读介质上,包括磁或光可读计算机盘、硬连线或预编程芯片(例如,eeprom半导体芯片)、纳米技术存储器、生物存储器或其他数据存储介质。可选地,计算机实现的指令、数据结构、屏幕显示和与该技术相关的其他数据可以在一时间段内通过互联网或通过其他网络(包括无线网络)在传播介质(例如电磁波、声波等)上的传播信号上进行分发。在一些实现方式中,数据可以在任何模拟或数字网络上被提供(例如,分组交换、电路交换或其他方案)。
44.所描述的技术也可以在分布式计算环境中实践,其中任务或模块由远程处理设备执行,远程处理设备通过通信网络(诸如局域网(“lan”)、广域网(“wan”)或互联网)链接。在分布式计算环境中,程序模块或子例程可以位于本地和远程存储器储存设备中。相关领域的技术人员将认识到,所描述的技术的部分可以驻留在服务器计算机上,而相对应的部分可以驻留在客户端计算机(例如,pc、移动计算机、平板电脑或智能电话)上。特定于该技术的各方面的数据结构和数据传输也被包含在所述技术的范围内。
45.参考图1,示出了用于在制造(vom)中进行强化学习的虚拟环境的系统100。用于在制造系统100中进行强化学习的虚拟环境提供智能自动化机器操作和离散零件(例如模具、冲模、刀具、原型、航空航天组件等)的生产。一般来说,强化学习是机器学习的一个领域,用于在特定情况下采取适当的动作来最大化奖励。在一个实施例中,系统100可以执行一系列指令,这些指令是用于寻找机器在特定情况下(例如机床的生产)应该采取的最佳可能行为或“路径”的步骤。在一个实施例中,最佳可能行为可以包括最短可能刀具路径。在另一个实施例中,最佳可能行为可以包括或基于在力未超过某个阈值力极限时的最短可能刀具路径,同时还最小化机器加速度(或在定向能量沉积或ded增材的情况下保持在某个温度范围
内)。利用所公开的系统100,强化代理组件决定对给定任务执行哪些步骤。在一个实施例中,可能缺少训练数据集,因此系统100可能必须从系统100自己的经验和历史中学习,例如,由系统状态对其历史的依赖性定义的滞后(hysteresis)。
46.在一个实施例中,系统100可以包括虚拟环境102、环境状态106的向量类型表示、动作组件112要执行的(有限)数量的动作、动作的向量类型表示、解释器组件104、策略组件114、代理组件110和奖励系统的奖励108。在一个实施例中,状态106可以是虚拟环境102的表示。在一个实施例中,状态106可以是表示虚拟环境102的像素矩阵。在一个实施例中,矩阵可以具有相同数量的行和列。在另一个实施例中,矩阵可以具有不同数量的行和列。状态106的像素可以表示虚拟环境102的某个部分,例如切削刀片、分立零件、切削刀具、毛坯材料等。在另一个实施例中,状态106的像素可以表示虚拟环境102的部分(例如切削刀具和毛坯材料)的某种组合。在又一个实施例中,状态106的像素可以表示虚拟环境102的所有部分。在一个实施例中,策略组件114可以将策略传递给代理组件110,该策略可以包括关于哪些动作112是可能的数据。可以由代理组件110至少基于策略组件114确定的动作112的示例包括例如避免碰撞和/或避免零件损毁。代理组件110可以在虚拟环境102中采取动作,这可以被解释器组件104解释成奖励108和状态106的表示,其可以被反馈给代理组件110。在一个实施例中,解释器组件104可以基于已经学习的内容以及适当的策略来评估和确定奖励108是负的还是正的(以及每个奖励108的值)。然后,解释器组件104将奖励108和状态106转发到代理组件110。更具体地,系统100的奖励108可以包括两种类型的强化——正面的和负面的。系统100通过正面强化学习,使得当事件由于特定行为而发生时,系统100寻求增加行为的强度和频率。这种对系统100的行为的积极影响可以例如导致重复积极的步骤,这有助于最大化机器的性能。相反,由于停止或避免了负面条件,因此负面强化可以提供加强行为。
47.代理组件110可以以离散时间步长(time step)与虚拟环境102交互。例如,在每个时间t,代理组件110可以接收通常包括奖励108的观察结果。然后代理组件110可以从一组有限数量的动作中选择一个动作112。在一个实施例中,动作112可以基于代理组件110已经学习的内容以及策略。可以基于策略确定的动作的示例包括例如避免碰撞和/或避免零件损毁。动作112可以随后由代理组件110发送到虚拟环境102。虚拟环境102可以移动到新状态并且可以确定奖励108。在一个实施例中,代理组件110的目标是收集尽可能多的奖励108。在一个实施例中,代理组件110可以根据过程的历史来选择任何动作。在另一个实施例中,动作可以由代理组件110随机选择。因此,系统100可以在试错的基础上运行,其中由于基于积极动作获得奖励,系统100不断提高效率。当在虚拟空间中经由刀具加工时的负奖励的示例可以包括在高于期望温度的温度下操作和/或在被确定为过高的力下操作,例如,造成损坏。在这两种情况下,由于大力和高温,可能不会发生刀具的切削或可能发生刀具的不适当的切削,因此在给定步骤中任何时候没有发生刀具的切削或发生刀具的不适当的切削都会给予负奖励。相反,当适当的切削发生时,每个动作都可能产生正奖励。即,系统100可以学习基于表示公司专有技术的适当奖励系统以更高效的方式切削毛坯(或添加材料)。
48.参考图2,示出了如应用于基本制造操作的图1的系统。例如,该系统可以基于诸如“刀具移动”、“刀具更换”、“主轴打开”、“电弧打开”等基本制造操作。该系统可适用于制造操作,包括但不限于车削操作120、铣削操作122、增材ded 124、电火花线切割(edm)和增材
粉末床126。系统的代理组件110可以基于机器学习算法(包括人工神经网络(ann)、x-gboost、决策树、遗传算法等)以便学习如何选择最佳的一系列动作以从初始状态进行到具有最佳性能的最终状态。在一个实施例中,最佳的一系列动作是最大化给定部分的总奖励的动作。这是最大化加工操作性能的一系列动作。最大化性能的动作可以包括但不限于最短的切削时间、最高质量的切削、无振动、最小的机器加速度、在正确的温度范围内沉积或去除等。
49.参考图3,示出了用于强化学习的vom系统(例如图2的示例性vom)的迭代过程。vom过程可以在初始状态“0”129开始,该初始状态“0”129基于虚拟毛坯刀具和表示期望的最终制造刀具的目标刀具(例如毛坯刀具的最终虚拟渲染)。在一个实施例中,vom进入状态“s”130,其中在迭代过程的第一步s=0。在状态“s”130,关于刀具状态的信息被发送到解释器组件104用于评估。在初始状态“0”,代理组件104还没有执行任何动作,因此发送到解释器组件104用于评估的关于刀具状态的信息表明虚拟毛坯刀具没有发生任何变化。在一些实施例中,解释器组件104基于已经学习的内容以及适当的策略来评估和确定奖励108是负的还是正的(以及与奖励相关联的值),这可以确定什么动作112是可能的。解释器组件104然后可以将奖励108(正的或负的连同值,如果有的话)和状态130转发回代理组件110。代理组件110可以执行动作112以进入新状态“s 1”132。vom可以具有从状态s 130到状态s 1 132要执行的多个可能动作112,例如更换刀具、移动刀具、打开主轴和关闭主轴。在一个实施例中,状态s 1可以是在对虚拟毛坯刀具执行动作112之后毛坯刀具的虚拟表示。例如,在状态s和s 1之间执行动作后,状态s 1的虚拟毛坯刀具可能看起来更像目标刀具,从而产生正奖励。然后将状态s 1 132(与原始状态s130结合)发送到解释器组件104以用于评估。再一次,解释器组件104将奖励108(正的或负的连同值,如果有的话)和新状态转发回代理组件110。该过程迭代(例如,s n次)直到达到最终状态131,其中没有剩余要加工的毛坯,没有目标是空的并因此要添加,和/或已执行的试验/迭代次数大于先前确定的阈值。在一个示例实施例中,所执行的试验次数被给出为像素数量的十倍,这表示如下文详细描述的可能切削的数量。要执行的其他可能数量的试验是可能的并且是预期的。在已经执行了最大数量的试验或没有剩余毛坯之后,该过程可以出于学习目的在初始状态129再次开始,直到确定学习完成为止。在一些实施例中,代理组件110可以通过制作连续的虚拟机器零件来学习,直到代理组件110成功地进行了性能评估为止,该性能评估比之前的任何迭代具有更高的数量(例如,基于针对给定零件接收到的最高总奖励来确定)。最佳性能可以定义为针对机器零件将具有最高全局奖励和(sum)的性能。在一个实施例中,奖励考虑了每个步骤的性能,并且当机器零件完成时,可以给予特殊奖励。例如,可以针对操作过程的最后一步给予额外的奖励。
50.参考图4,示出了表示用于强化学习的vom系统的迭代过程中的特定状态的状态向量150。在此示例中,示出了虚拟零件的车削操作。其他可能的状态向量表示也是可能的,例如对于铣削操作、增材ded操作和增材粉末床操作。vom中虚拟刀具位置的状态向量表示150以二维(例如x轴154和z轴156)的像素152示出。在另一个实施例中,刀具位置可以以三维x、y和z的像素示出。z轴156表示使零件转动的旋转,从而为虚拟零件的切削提供旋转轴。
51.在虚拟状态向量空间150中,可以存在至少五个状态向量。首先,毛坯虚拟向量160占据状态向量空间150中的像素。像素166示出毛坯像素160周围的空白空间。示出了目标零
件状态向量158,其表示加工过程之后最终零件的期望位置。像素162表示刀具的损毁(例如,如果目标零件已经出现的话)。像素164表示毛坯与虚拟刀具的柄部之间的碰撞(例如当柄部与目标零件的毛坯重叠时)。在一个实施例中,每个状态向量158、160、162、164、166可以由整数(例如0、1、2、3或4)表示。在另一个实施例中,每个状态向量158、160、162、164、166可以被表示为一个表,每个表都作为一个层相互重叠,其中每个层表示五个可能的状态向量之一。
52.参考图5,示出了要移动到图4的虚拟向量空间150中的虚拟切削刀具的像素化或更具体地像素化向量170。像素172表示作为刀具的切削零件的切削刀片172。像素166表示空白的空间。像素174表示保持切削刀片的柄部。
53.参考图6,图5的切削刀片172的像素化向量可以移动到图4的虚拟状态向量空间150中,用于切削毛坯160,以最高效的方式实现目标零件状态向量(图4的158)。切削刀片172在给定时间的位置具有2维x、z位置175。
54.参考图7,示出了切削刀片172和柄部174的移动动作176。更具体地,从位置175开始,切削刀片172可以在对应于围绕切削刀片位置175的8个连续单元178的8个可能方向上移动。在一个实施例中,如果切削刀片172在3维空间(例如x坐标、y坐标、z坐标)中操作,则切削刀片172的26次移动可以是可能的。因此,要从状态s(图3的130)移动到状态s 1(图3的132),如图3中的切削刀片的可能移动动作176所述,该动作可以是沿向左上方、直接向上、向右上方、向右、向右下方、直下、向左下方或者向左的方向移动切削刀片172。附加动作还可以改变切削刀片172移动的速度以及进给速率(feed rate)。在一个实施例中,进给速率和速度不是连续的;相反,它们是从有限数量的动作中得出的。其他可能的动作可包括更换刀具、移动刀具、打开主轴和关闭主轴。
55.图8a-8d示出了在vom系统内将切削刀片从状态s 130移动到状态s 1 132的动作的示例。参考图8a,示出了虚拟状态向量空间(例如虚拟状态向量空间150)。参考图8a,具有柄部174和切削刀片172的虚拟切削刀具170被移动到状态向量空间150中。更具体地,在状态s 130,切削刀片172占据图8a的空白的空间166。在一个实施例中,在状态s 130,关于刀具状态的信息被发送到解释器组件(图3的104)以用于评估。解释器组件(图3的104)基于状态变化和奖励系统评估并确定奖励(图3的108)。在一些实施例中,奖励系统反映了来自从业者的知识的最佳实践,而策略反过来限制了可能的动作。奖励可以考虑切削速率、力、机器动力学、碰撞次数、零件损毁次数等。vom系统100可以从奖励中学习并且在可以采取的可能动作方面受到策略的限制。更具体地,策略是一组固定的规则,而vom系统可能不会从策略本身中学习。解释器组件(图3的104)然后将奖励(图3的108)(正的或负的)和状态s 130转发回代理组件(图3的110)。代理组件(图3的110)然后可以执行动作(图3的112)。在一个实施例中,动作可以由代理组件(图3的110)随机选择。更具体地,在学习阶段期间,动作的选择可以基于探索速率(exploration rate),使得参数空间的更高探索速率导致更高比例的随机动作。当学习阶段结束并且操作转向执行阶段时,则不再执行随机动作。在另一个实施例中,该动作可以基于针对关于当前状态的可能动作的最佳估计可能奖励。
56.在另外的实施例中,vom系统的代理组件(图3的110)可以基于机器学习算法(例如ann)。如下文进一步详细描述的,学习可以至少部分基于所谓的“q学习”,其中动作由代理组件(图3的110)随机选择或由最佳“q值”根据刀具路径探索速率选择。在一个实施例中,
ann可以确定关于当前状态的最佳q值。最佳q值应该表示代理组件(图3的110)为获得给定刀具零件的最高全局奖励而选择的最佳动作。ann可以正确地“学习”这个函数(例如,状态的q值函数)。
57.参考图8c,动作112可以是将切削刀具170移动到位置177处的像素,该位置177直接位于初始位置175的左侧。因此,切削刀片172将在标记为“1”和“8”的相邻像素处切入毛坯160,其中像素“8”位于位置177。在该实施例中,解释器组件(图3的104)评估并确定奖励(图3的108)。解释器组件(图3的104)然后将奖励(图3的108)(正的或负的,以及奖励值)和新状态(图3的106)转发回代理(图3的110)。代理组件(图3的110)然后进入如图8d所示的新状态“s 1”132。该过程可以迭代(例如,s n次)直到达到最终状态为止,其中没有剩余要加工的毛坯或已经执行了太多的试验/迭代,其中基于预定阈值确定了太多的试验。
58.参考图9a-c,示出了用于利用虚拟切削刀具切削毛坯的不同路径180、182、184的示例。图9a具有大数量可能的动作以利用虚拟切削刀具170创建路径180,其中大数量基于与图9b的路径182的比较。用于强化学习100的虚拟环境提供基于奖励减少所需动作的数量,以便减少整体刀具路径180,从而例如在刀具必须行进的距离方面使过程更高效。例如,与图9a相比,图9b中针对路径182的动作的数量已经显著减少,因为vom已接收到正奖励。如图9c所示,与图9a的路径180和图9b的路径182相比,刀具路径184已经变得甚至更加高效。
59.参考图10,当强化学习过程已经完成时,代理(图3的110)可以执行给出最佳性能的刀具路径186。学习可以至少部分基于所谓的“q学习”,其中动作由代理(图3的110)随机选择或由最佳“q值”根据刀具路径探索速率选择。更具体地,q学习是一种无模型的强化学习算法。q学习的目的是学习一个策略,该策略告诉代理(图3的110)在什么情况下采取什么动作。q学习不需要虚拟环境的模型,并且可以处理随机转换和奖励的问题,而不需要适应。对于任何有限马尔可夫决策过程(fmdp),q学习都找到在以下意义方面是最佳的策略:从当前状态开始,在任何和所有连续步骤中最大化总奖励的期望值。一般来说,q学习可以为任何给定的fmdp、给定的无限探索时间和部分随机的策略确认最佳的动作选择策略。“q”命名了返回用于提供强化的奖励的函数,并且可以说代表在给定状态下采取的动作的“质量”。在一个实施例中,奖励系统需要确保收敛并提供符合提供给vom系统100的知识的结果。
60.图11a和图11b描绘了利用连续的、非离散化、“基于轮廓的”环境的用于在制造中进行强化学习的虚拟环境的系统1100的另一个实施例。在一个实施例中,刀具路径可以遵循平滑轨迹,而不是路线、像素化轨迹。例如,环境可以提供在任何向量方向的导航,允许切削刀具遵循真实的零件表面。图11a表示在执行沿刀具路径轨迹的切削运动之前机器和/或系统的状态,并且图11b表示切削运动之后机器和/或系统的状态。在一个实施例中,在每次迭代中,切削刀具可以采取动作并且随后沿着刀具路径轨迹行进以去除毛坯材料。然后,在下一次迭代中,切削刀具可能采取新的动作(基于先前的迭代)以继续去除毛坯材料。随后的迭代继续去除毛坯材料,直到剩余材料遵循目标材料的闭合轮廓。迭代或步长动作可以以浮点数大小执行,并且不需要限制为整数步长。
61.在一个实施例中,编码可以提供虚拟环境状态的非离散化、平滑的轮廓表示。在另一个实施例中,编码可以提供虚拟环境状态的像素矩阵表示。在另一个实施例中,系统可以提供虚拟环境状态的平滑和像素化表示的组合。在一个实施例中,系统可以提供用于查看系统状态的多个选项。例如,代理可以使用各种分辨率的像素化视图来获得实际环境状态
的近似视图。在另一个示例中,代理可以使用“缩放”视图来增强环境状态的视图。其他查看选项还可以被使用并且在下文进行描述。
62.该系统可以包括具有切削刀具保持器1104和沿着刀具路径1108(例如,切削刀具1105相对于目标材料1112具有特定角度的轨迹)行进的切削部分1106的切削刀具1105。切削部分1106可以用于从毛坯材料1110去除材料以最终产生与目标材料1112形式相同的毛坯材料形式1110。在一些实施例中,系统1100可以使用连续的、非离散化的环境、抽象移动和“对角线部分”。抽象移动或“抽象”可以在对象或系统的研究中去除物理、空间或时间的细节或属性,以将注意力集中在更重要的细节上。在一个实施例中,抽象移动可能与虚拟环境的编程能力有关,以向代理提供动作选项以使切削刀具到达虚拟环境中的位置,而无需精确地确定“部分步长值和角度”。
63.在一个实施例中,对角线部分是指具有不同于90度或180度的棱角表面(angular surface)的部分。非离散化、基于轮廓的环境允许切削刀具沿着任何空间向量行进。
64.更具体地,系统1100可以隐藏关于对象(例如毛坯材料1110和目标材料1112)的所有数据(除了相关数据以外),以便降低复杂性,同时提高效率。因此,抽象移动可以去除相对于实现期望结果(例如目标材料1112)无关的数据,从而降低虚拟环境内编码的复杂性。系统1100的环境可以基于零件、毛坯、刀具柄部和刀具刀片的闭合轮廓。在一个实施例中,在每次迭代中,切削刀具1105沿着刀具路径轨迹(例如在第一次迭代中的刀具路径轨迹1108)行进,以去除毛坯材料。系统1100对无向量大小虚拟环境、抽象移动和对角线部分的使用可以允许切削刀具去除毛坯材料以最终遵循目标材料1112的闭合轮廓。虚拟环境可以学习采取最少的步骤(即,最少的迭代)来实现最终目标材料1112。
65.图12描绘了利用具有多个切削刀具的连续、非离散化、“基于轮廓”的环境的用于在制造中进行强化学习的虚拟环境的系统1200。系统1200可以包括要被去除(留下目标材料1204)的毛坯材料1202。系统1200可以包括多个切削刀具1206、1208、1210、1212。切削刀具1206、1208、1210、1212可以包括常规垂直切削刀具1206、切削/开槽刀具1208、常规水平刀具1210和镗孔刀具1212。系统1200可以包括环境重新编码来以向量/多边形数学表示零件、工件和切削刀具。在一个实施例中,可以用三种刀具移动可能性来精确定义计算:步进移动(step move)、角度移动和自由移动。步进移动是基于向上、向下、向左和向右的字典。角度移动被赋予一定度数的角度和长度。自由移动被赋予任意x和y长度。
66.图13a描绘了用于在制造中进行强化学习的虚拟环境的系统,其表示目标材料、毛坯材料和切削刀具(例如图11a-b中所示的那些)。图13b-13d描绘了“协议视图”1302、1304、1306,用于利用用于在制造中进行强化学习的虚拟环境的系统来构造目标材料(例如,目标零件)。第一协议1302生成具有用户定义分辨率的图像,该图像结合了整体视图的两个主要方面,例如环境屏幕截图以及以切削刀具为中心的视图(例如切削刀片中的缩放或增强)。更具体地,整体视图(图13a中所示的图像)显示在图13b的左侧。图13b左侧的虚线框显示了切削刀具插入到毛坯材料中的位置,并且该区域在右侧所示的放大视图中被增强。在一个实施例中,代理可以使用放大视图和非放大视图两者来做出决策。在一个实施例中,馈送代理的输出是具有可变分辨率的图像。增强的视图可以提供增强的分辨率,允许代理做出比缩小视图更准确的切削决策。
67.上述协议视图(代理可以使用其中的一个或更多个)表示给定迭代时虚拟环境的
状态。代理可以使用所述协议视图来“推理”关于后续要采取什么动作。因此,代理可以使用一个或更多个协议来检查环境状态并决定需要采取什么动作或哪些动作以最终使毛坯零件达到目标零件的最终形状。
68.图13c中所示的第二协议1304生成具有用户定义分辨率的图像,该图像结合两个不同方面:以切削刀具为中心的视图(例如切削刀片中的缩放或增强),以及基于零件和工件对象存在的数量和方向的重新编码。馈送代理的输出是具有可变分辨率的图像。在一个实施例中,生成的图像由放大视图(例如嵌入在毛坯材料的夸大视图中的图13b的放大视图)组成,其中毛坯材料环绕放大部分。毛坯材料的夸大视图允许代理大致了解围绕增强视图部分的毛坯材料的总量。
69.图13d中所示的第三协议1306生成内容的表格列表:具有两列的表格表示从零件对象到工件对象要达到(或不要达到)的距离。在一个实施例中,内容的表格列表可以被定义为生成小的编码,同时显著增加用于在制造中进行强化学习的虚拟环境的系统的学习过程。在一个实施例中,馈送代理的输出是具有用户定义内容的表格列表。在一个实施例中,代理是虚拟操作员。
70.在一个实施例中,内容的表格列表的每一行可以表示表格列表左侧所示的“雷达”图像的单个扇区。例如,扇区0的行是雷达图像的扇区0的表格表示。每列表示从雷达图像中心到零件的最短距离(第一列)以及从雷达图像中心到毛坯材料的最短距离(第二列)。更具体地,每列表示从切削刀具中的参考点到零件多边形(第一列)和工件毛坯材料多边形(第二列)的第一和最近段的距离。如果扇区中不存在零件或工件毛坯材料多边形段,则不会将值输入到表格列表中(例如对于扇区2、3、4和5)。在一个实施例中,扇区允许代理更精确地“看到”环境以便采取动作。在一个实施例中,多于六个扇区是可能的。在另一个实施例中,少于六个扇区是可能的。
71.图14a描绘了用于在制造中进行强化学习的虚拟环境的系统1400的抽象动作。抽象可包括向上(0,1)、向下(0,-1)、向左(-1,0)和向右(1,0)。对角线可以包括(-1,-1)、(-1,1)、(1,1)和(1,-1)。在一个实施例中,虚拟环境可以具有在任何向量方向上导航的能力,允许实现真实的对角线移动;因此,切削刀具可以遵循平滑的、非离散化的零件表面。例如,要被切削刀具切削的区域1401可能需要比离散化、像素化环境更少的移动。对于系统1400,对角线移动可能只需要一个动作,而像素化环境可能需要两次移动,例如向上移动然后向左移动。
72.图14b描绘了用于制造中进行强化学习的虚拟环境的系统1402的“磁体动作”。磁体动作可包括向上、向下、向左和向右。在一个实施例中,移动动作的步长不需要预先定义为某个值。在一个实施例中,系统1402的抽象移动可以包括“磁性移动”,其中代理可以将切削刀具移动到尽可能靠近零件而不接触零件的位置。在一个实施例中,当切削刀具靠近目标材料时,磁体可以将切削刀具吸引至目标材料。
73.在一个实施例中,代理可以使用有限数量的动作可能性来学习越来越多的复杂动作。以这种方式,抽象移动可以包括在切削刀具“跟踪”或“遵循”待切削零件的表面时移动切削刀具。因此,抽象移动可以通过减少可用动作的数量来简化切削过程,同时还允许动作越来越复杂。更具体地,参考图14c,用于在制造中进行强化学习的虚拟环境的系统1404可以具有跟踪动作。跟踪动作可以包括用于沿着目标材料的轮廓跟踪切削刀具的时钟或逆时
钟方向,其中切削刀具和目标材料之间存在交叉点。
74.图15示出了计算设备实施例400的顶层功能框图的示例。示例操作环境被显示为包括处理器424(诸如,中央处理单元(cpu))、可寻址存储器427、外部设备接口426(例如,可选的通用串行总线端口和相关的处理和/或以太网端口和相关的处理)以及可选的用户接口429(例如,状态灯阵列和一个或更多个拨动开关、和/或显示器、和/或键盘、和/或指针-鼠标系统、和/或触摸屏)的计算设备420。可选地,可寻址存储器可以包括能够存储计算设备420可访问的数据的任何类型的计算机可读介质,诸如磁硬盘和软盘驱动器、光盘驱动器、盒式磁带、磁带驱动器、闪存卡、数字视盘(dvd)、伯努利盒式磁带、ram、rom、智能卡等。实际上,可以使用用于存储或传输计算机可读指令和数据的任何介质,包括到网络(诸如,lan、wan或互联网)的连接端口或节点。这些元件可以经由数据总线428彼此通信。在一些实施例中,经由操作系统425(例如支持web浏览器423和应用422的操作系统),处理器424可被配置为执行根据上述实施例建立通信信道和处理的过程的步骤。
75.系统实施例包括诸如服务器计算设备、买方计算设备和卖方计算设备的计算设备,每一个计算设备都包括处理器和可寻址存储器并且彼此进行电子通信。实施例提供了一种服务器计算设备,该服务器计算设备可以被配置为:注册一个或更多个买方计算设备并将每个买方计算设备与买方配置文件相关联;注册一个或更多个卖方计算设备并将每个卖方计算设备与卖方配置文件相关联;经由卖方搜索组件确定匹配一个或更多个买方标准的一个或更多个注册买方计算设备的搜索结果。然后,服务计算设备可以根据所确定的搜索结果将消息从注册卖方计算设备传输到注册买方计算设备,并且基于所传输的消息和相关联的买方计算设备经由远程访问组件向注册买方计算设备提供对注册卖方的一个或更多个所有物(property)的所有物的访问;以及经由观看者跟踪组件来跟踪注册买方计算设备在所访问的所有物中的移动。因此,该系统可以促进系统和卖方对买方进行跟踪(一旦买方针对该所有物),并帮助卖方搜索寻找针对他们所有物的买方。下面描述的附图提供了关于设备的实现以及它们如何可以使用所公开的技术相互交互的更多细节。
76.图16是示出计算系统的高级框图500,该计算系统包括用于实现本文公开的系统和过程的实施例的计算机系统。该系统的实施例可以在不同的计算环境中实现。计算机系统包括一个或更多个处理器502,并且可以进一步包括电子显示设备504(例如,用于显示图形、文本和其他数据)、主存储器506(例如,随机存取存储器(ram))、储存设备508、可移动储存设备510(例如,可移动储存驱动器、可移动存储器模块、磁带驱动器、光盘驱动器、其中存储有计算机软件和/或数据的计算机可读介质)、用户接口设备511(例如,键盘、触摸屏、小键盘、指向设备)和通信接口512(例如,调制解调器、网络接口(诸如以太网卡)、通信端口或pcmcia插槽和卡)。通信接口512允许软件和数据在计算机系统和外部设备之间传输。该系统还包括通信基础设施514(例如,通信总线、交叉杆或网络),前述设备/模块如所示连接到该通信基础设施。
77.经由通信接口514传送的信息可以是信号的形式,诸如电子、电磁、光学的信号或能够由通信接口514经由承载信号的通信链路516接收的其他信号,并且可以使用电线或电缆、光纤、电话线、蜂窝/移动电话链路、射频(rf)链路和/或其他通信信道来实现。表示本文中的框图和/或流程图的计算机程序指令可以被加载到计算机、可编程数据处理装置或处理设备上,以使得在其上执行的一系列操作产生计算机实现的过程。
78.已经参考根据实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图描述了多个实施例。这些图示/图表的每个块或其组合可以通过计算机程序指令来实现。当提供给处理器时,计算机程序指令产生机器,使得通过处理器执行的指令产生用于实现流程图和/或框图中指定的功能/操作的装置。流程图/框图中的每个块可以表示实现实施例的硬件和/或软件模块或逻辑。在替代实现方式中,在块中记录的功能可以不以在附图中记录的顺序同时出现等等。
79.计算机程序(即,计算机控制逻辑)存储在主存储器和/或辅助存储器中。计算机程序也可以通过通信接口512接收。这种计算机程序在被执行时,使得计算机系统能够执行本文讨论的实施例的特征。具体而言,计算机程序在被执行时使得处理器和/或多核处理器能够执行计算机系统的特征。这种计算机程序代表计算机系统的控制器。
80.图17示出了其中可以实现实施例的示例系统600的框图。系统600包括连接到一个或更多个服务器计算系统630的一个或更多个客户端设备601,诸如消费电子设备。服务器630包括总线602或用于传递信息的其他通信机构以及与总线602耦合的处理器(cpu)604以用于处理信息。服务器630还包括耦合到总线602的主存储器606(诸如,随机存取存储器(ram)或其他动态储存设备),用于存储信息和将由处理器604执行的指令。主存储器606还可以用于在待由处理器604执行的指令的执行期间储存临时变量或其他中间信息。服务器计算机系统630还包括耦合到总线602来储存用于处理器604的静态信息和指令的只读存储器(rom)608或其他静态储存设备。储存设备610(诸如磁盘或光盘)被提供并耦合到总线602用于储存信息和指令。总线602可以包含例如三十二条地址线,用于寻址视频存储器或主存储器606。总线602还可以包括例如32位数据总线,用于在诸如cpu 604、主存储器606、视频存储器和储存设备610的部件之间传送数据。可替代地,可以使用多路复用数据/地址线来代替单独的数据和地址线。
81.服务器630可以经由总线602耦合到显示器612,用于向计算机用户显示信息。输入设备614(包括字母数字和其他键)耦合到总线602用于向处理器604传递信息和命令选择。另一种类型的用户输入设备包括光标控件616,诸如用于向处理器604传递方向信息和命令选择以及用于控制光标在显示器612上的移动的鼠标、轨迹球或光标方向键。
82.根据一个实施例,功能由处理器604执行,该处理器执行被包含在主存储器606中的一个或更多个指令的一个或更多个序列。这样的指令可以从另一个计算机可读介质(诸如,储存设备610)读入主存储器606。主存储器606中包含的指令序列的执行使得处理器604执行本文描述的过程步骤。多处理布置中的一个或更多个处理器也可以用来执行包含在主存储器606中的指令序列。在替代实施例中,硬连线的电路可用于代替软件指令或与其组合来实现实施例。因此,实施例不限于硬件电路和软件的任何特定组合。
83.术语“计算机程序介质”、“计算机可用介质”、“计算机可读介质”和“计算机程序产品”通常用于指诸如主存储器、辅助存储器、可移动储存驱动器、安装在硬盘驱动器中的硬盘以及信号之类的介质。这些计算机程序产品是用于向计算机系统提供软件的装置。计算机可读介质允许计算机系统从计算机可读介质中读取数据、指令、消息或消息包以及其他计算机可读信息。例如,计算机可读介质可以包括非易失性存储器,诸如软盘、rom、闪存、磁盘驱动器存储器、cd-rom和其他永久储存设备。例如,它可以用于在计算机系统之间输送信息,诸如数据和计算机指令。此外,计算机可读介质可以包括暂时状态介质中的计算机可读
信息,诸如网络链路和/或网络接口,包括允许计算机读取这种计算机可读信息的有线网络或无线网络。计算机程序(也称为计算机控制逻辑)存储在主存储器和/或辅助存储器中。计算机程序也可以通过通信接口接收。这种计算机程序在被执行时,使得计算机系统能够执行本文讨论的实施例的特征。具体而言,计算机程序在被执行时使得处理器多核处理器能够执行计算机系统的特征。相应地,这种计算机程序代表计算机系统的控制器。
84.通常,如本文中所使用的术语“计算机可读介质”指的是参与向处理器604提供指令以用于执行的任何介质。这样的介质可采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。例如,非易失性介质包括光盘或磁盘,诸如储存设备610。易失性介质包括动态存储器,诸如主存储器606。传输介质包括同轴电缆、铜线和光纤,包括含有总线602的电线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。
85.例如,计算机可读介质的常见形式包括软盘、软磁盘、硬盘、磁带或任意其他磁介质、cd-rom、任何其他光介质、穿孔卡片、纸带、任何其他具有孔图案的物理介质、ram、prom、eprom、flash-eprom、任何其他存储芯片或盒式存储器、如下文描述的载波或计算机可从其读取的任何其他介质。
86.各种形式的计算机可读介质可涉及将一个或多个指令的一个或多个序列承载至处理器604以用于执行。例如,指令可最初承载在远程计算机的磁盘上。远程计算机可将指令加载到其动态存储器中并使用调制解调器通过电话线发送指令。服务器630本地的调制解调器可以接收电话线上的数据,并使用红外发射器将数据转换成红外信号。耦合到总线602的红外检测器可以接收红外信号中所承载的数据,并将该数据放置在总线602上。总线602将数据承载至主存储器606,处理器604从该主存储器检索并执行指令。从主存储器606接收的指令可以在由处理器604执行之前或之后可选地储存在储存设备610上。
87.服务器630还包括耦合到总线602的通信接口618。通信接口618提供耦合到网络链路620的双向数据通信,网络链路连接到现在通常称为互联网628的全球分组数据通信网络。互联网628使用承载数字数据流的电、电磁或光信号。通过各种网络的信号和网络链路620上且通过通信接口618的信号是输送信息的示例性形式或载波,这些信号承载去往和来自服务器630的数字数据。
88.在服务器630的另一个实施例中,接口618通过通信链路620连接到网络622。例如,通信接口618可以是综合业务数字网(isdn)卡或调制解调器,以提供到相应类型电话线的数据通信连接,该电话线可以包括网络链路620的一部分。作为另一示例,通信接口618可以是局域网(lan)卡,以提供到兼容lan的数据通信连接。也可以实现无线链路。在任何这样的实现方式中,通信接口618发送和接收承载代表各种类型信息的数字数据流的电磁或光电信号。
89.网络链路620通常通过一个或更多个网络向其他数据设备提供数据通信。例如,网络链路620可以通过局域网622提供到主计算机624或由互联网服务提供商(isp)操作的数据设备的连接。isp又通过互联网628提供数据通信服务。局域网622和互联网628都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号和网络链路620上且通过通信接口618的信号是输送信息的示例性形式或载波,这些信号承载去往和来自服务器630的数字数据。
90.服务器630可以通过网络、网络链路620和通信接口618发送/接收消息和数据,包括电子邮件、程序代码。此外,通信接口618可以包括usb/调谐器,并且网络链路620可以是天线或电缆,用于将服务器630连接到电缆提供商、卫星提供商或其他地面传输系统,用于从另一个源接收消息、数据和程序代码。
91.本文描述的实施例的示例版本可以实现为分布式处理系统(诸如包括服务器630的系统600)中的逻辑操作。实施例的逻辑操作可以被实现为在服务器630中执行的一系列步骤,以及系统600内互连的机器模块。实现方式是选择的问题,并且可以取决于实现实施例的系统600的性能。因此,构成实施例的所述示例版本的逻辑操作被称为例如操作、步骤或模块。
92.类似于上述服务器630,客户端设备601可以包括处理器、存储器、储存设备、显示器、输入设备和通信接口(例如,电子邮件接口),用于将客户端设备连接到互联网628、isp或lan 622,以与服务器630通信。
93.系统600还可以包括以与客户端设备601相同的方式操作的计算机(例如,个人计算机、计算节点)605,其中用户可以利用一个或更多个计算机605来管理服务器630中的数据。
94.现在参考图18,描绘了说明性云计算环境50。如所示,云计算环境50包括一个或更多个云计算节点10,云消费者使用的本地计算设备(诸如例如,个人数字助理(pda)、智能手机、智能手表、机顶盒、视频游戏系统、平板电脑、移动计算设备或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n)可以与这些云计算节点通信。节点10可以相互通信。它们可以被物理地或虚拟地分组(未示出)在一个或更多个网络中,诸如如上所述的私有云、社区云、公共云或混合云或它们的组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要在本地计算设备上维护资源的服务。应当理解,图18中所示的计算设备54a-n的类型仅仅是说明性的,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
95.上述公开的实施例可以包括确定加工刀具路径的示例性方法,如图19的顶层流程图所示。示例性步骤可以包括以下步骤:(a)由具有带有可寻址存储器的处理器的解释器组件(104)接收计算机数控(cnc)机床的刀具(130)的第一状态(步骤810);(b)由解释器组件(104)基于接收到的第一状态(130)确定奖励和奖励值,其中奖励是以下项中的至少一项:正的和负的(步骤820);(c)由解释器组件向代理组件(110)传输包括确定的奖励和奖励值的一组信息(步骤830);(d)由代理组件(110)执行至少一个动作(112)以生成刀具路径(180、182、184)并进入第二状态(132),其中第二状态(132)与第一状态(130)结合(步骤840);(e)由代理组件(110)基于所确定的与至少一个动作相关联的奖励和值来确定生成的刀具路径(步骤850)。可选的,该方法还可以包括:(f)其中至少一个动作(112)基于以下项中的至少一项进行确定:更换刀具、移动刀具、打开主轴和关闭主轴(步骤860)。
96.可以设想,上述实施例的特定特征和方面的各种组合和/或子组合可以被做出,并且仍然落在本发明的范围内。因此,应当理解,所公开的实施例的各种特征和方面可以与彼此组合或替代彼此,以便形成所公开的发明的变化模式。此外,本发明的范围在本文中旨在以示例的方式公开,并且不应受上述特定公开的实施例的限制。
再多了解一些

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

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

相关文献