自动阶梯式钻头的检测
1.相关申请的交叉引用
2.本技术要求于2020年1月30日提交的美国临时专利申请号62/967,702的权益和优先权,该美国临时专利申请的全部内容通过援引并入本文。
技术领域
3.本技术涉及检测阶梯式钻头推进到工件中的进度的电动工具。
技术实现要素:4.提供了一种用于自动控制电动工具中的阶梯式钻头操作的方法。该方法包括通过该电动工具的传感器生成指示该电动工具的操作参数的传感器数据,其中,阶梯式钻头联接到该电动工具。该电动工具的电子控制组件接收该传感器数据,其中,该电子控制组件包括电子处理器和存储器。该存储器存储由该电子处理器执行的机器学习控制程序。该电子控制组件使用该电子控制组件的机器学习控制程序来处理该传感器数据,并使用该机器学习程序基于该传感器数据生成输出。该输出指示阶梯式钻头进度信息。该电子控制组件基于该输出来控制由该电动工具的壳体支撑的马达。
5.在一些实施例中,基于该输出来控制由该电动工具的壳体支撑的马达包括停止该马达或改变该马达的转速。
6.在一些实施例中,该阶梯式钻头进度信息指示选自以下各项的组中的至少一项:阶梯式钻头相对于预期阶梯推进到工件中的程度、阶梯之间的有效推进、在该阶梯式钻头推进到该工件中时检测到的阶梯、推进到该工件中的阶梯计数、在该工件中钻出的孔的直径、由该阶梯式钻头在该工件中钻出的孔的深度、以及用于在该阶梯式钻头推进到该工件中时检测该阶梯式钻头的阶梯的置信度值。
7.在一些实施例中,该预期阶梯是将该阶梯式钻头推进到该工件中的下一阶梯或将该阶梯式钻头推进到该工件中的进一步阶梯。
8.在一些实施例中,通过该电子控制组件使用该机器学习程序,通过计数在该阶梯式钻头推进到该工件中时该阶梯式钻头的阶梯数来检测该预期阶梯。
9.在一些实施例中,基于选自以下各项的组中的至少一项在该电动工具中配置该预期阶梯:该电动工具的离合器环设置、从外部设备接收的配置参数、该电动工具的用户输入机制设置、以及该电动工具的所选阶梯式钻头模式。
10.在一些实施例中,基于选自以下各项的组中的至少一项向该电动工具的指示器或外部设备发送信号以提醒用户:该阶梯式钻头进度信息、从电动工具传感器接收到的信号的质量、算法的置信度、基于正向进给速率的反馈值、基于所确定的力的反馈值、以及该阶梯式钻头的状况。
11.在一些实施例中,指示该电动工具的操作参数的传感器数据包括电流、电压、触发器输入、转速、所施加的扭矩、该马达的加载量、加速度、来自距离传感器的距离、以及来自陀螺仪的旋转运动中的至少一项。
12.在一些实施例中,基于用户输入将该电动工具配置为指定模式,其中,该指定模式与选自以下各项的组中的至少一项相关联:将阶梯式钻头推进到工件中的预定阶梯数、阶梯式钻头上包括的阶梯数、特定阶梯式钻头、待钻入的工件的材料、该电动工具的阶梯计数功能、要采取的附加阶梯数、特定阶梯值、以及该阶梯式钻头上的特征。
13.在一些实施例中,该电子控制组件使用该机器学习程序基于传感器数据来辨识该阶梯式钻头的特性配置文件,并且在该电动工具的多次使用中学习选自以下各项的组中的至少一项:钻出孔的常见尺寸、钻孔的常见阶梯数、以及该电动工具的多次使用中所利用的阶梯式钻头的类型。对该马达的控制是基于选自以下各项的组中的至少一项:钻出孔的常见尺寸、钻孔的常见阶梯数、以及该多次使用中所利用的阶梯式钻头的类型。
14.提供了一种用于自动控制阶梯式钻头操作的电动工具。该电动工具包括壳体、由该壳体支撑的马达和由该壳体支撑的传感器。该传感器被配置为生成指示该电动工具的操作参数的传感器数据。该电动工具还包括存储器和电子控制组件,该电子控制组件包括联接到该存储器的电子处理器。该存储器存储机器学习控制程序,该机器学习控制程序当由该电子处理器执行时将该电子控制组件配置为:接收该传感器数据,使用该机器学习控制程序处理该传感器数据,并使用该机器学习控制程序基于该传感器数据生成输出。该输出指示联接到该电动工具的阶梯式钻头的阶梯式钻头进度信息。该电子控制组件基于该输出来控制由该电动工具的壳体支撑的马达。
15.在一些实施例中,基于该输出来控制由该电动工具的壳体支撑的马达包括停止该马达或改变该马达的转速。
16.在一些实施例中,该阶梯式钻头进度信息指示选自以下各项的组中的至少一项:阶梯式钻头相对于预期阶梯推进到工件中的程度、在该阶梯式钻头推进到该工件中时检测到的阶梯、阶梯之间的有效推进、推进到该工件中的阶梯计数、在该工件中钻出的孔的直径、由该阶梯式钻头在该工件中钻出的孔的深度、以及用于在该阶梯式钻头推进到该工件中时检测该阶梯式钻头的阶梯的置信度值。
17.在一些实施例中,该预期阶梯是将该阶梯式钻头推进到该工件中的下一阶梯或将该阶梯式钻头推进到该工件中的进一步阶梯。
18.在一些实施例中,该电子控制组件进一步被配置为使用该机器学习程序通过计数在该阶梯式钻头推进到工件中时该阶梯式钻头的阶梯数来检测该预期阶梯。
19.在一些实施例中,基于选自以下各项的组中的至少一项在该电动工具中配置该预期阶梯:该电动工具的离合器环设置、从外部设备接收的配置参数、该电动工具的用户输入机制设置、以及该电动工具的所选阶梯式钻头模式。
20.在一些实施例中,该电子控制组件进一步被配置为基于选自以下各项的组中的至少一项向该电动工具的指示器或外部设备发送信号以提醒用户:该阶梯式钻头进度信息、从电动工具传感器接收到的信号的质量、算法的置信度、基于所确定的进给速率的反馈值、基于所确定的力的反馈值、以及该阶梯式钻头的状况。
21.在一些实施例中,指示该电动工具的操作参数的传感器数据包括以下至少一项:电流、电压、触发器输入、转速、所施加的扭矩、该马达的加载量、加速度、来自陀螺仪的旋转运动、来自距离传感器的距离、以及来自一个或多个感应冲击传感器的冲击运动。
22.在一些实施例中,该电子控制组件进一步被配置为基于用户输入将该电动工具配
置为指定模式,其中,该指定模式与选自以下各项的组中的至少一项相关联:将阶梯式钻头推进到工件中的预定阶梯数、阶梯式钻头上包括的阶梯数、特定阶梯式钻头、待钻入的工件的材料、一组最可能期望的阶梯、以及该电动工具的阶梯计数功能。
23.在一些实施例中,该电子控制组件进一步被配置为:使用该机器学习控制程序基于该传感器数据来辨识该阶梯式钻头的特性配置文件,以及使用该机器学习控制程序在该电动工具的多次使用中学习选自以下各项的组中的至少一项:钻出孔的常见尺寸、钻孔的常见阶梯数、以及该电动工具的多次使用中所利用的阶梯式钻头的类型。对该马达的控制是基于选自以下各项的组中的至少一项:钻出孔的常见尺寸、钻孔的常见阶梯数、以及该多次使用中所利用的阶梯式钻头的类型。
24.提供了一种用于自动提供阶梯式钻头操作的电动工具。该电动工具包括壳体、由该壳体支撑的马达、由该壳体支撑的传感器、存储器和电子控制组件。该传感器被配置为生成指示该电动工具的操作参数的传感器数据。该电子控制组件包括联接到该存储器的电子处理器,并且该存储器存储机器学习控制程序,该机器学习控制程序当由电子处理器执行时将该电子控制组件配置为接收传感器数据,使用该机器学习控制程序处理该传感器数据,以及使用该机器学习控制程序基于该传感器数据生成输出,其中,该输出指示联接到该电动工具的阶梯式钻头的阶梯式钻头进度信息。该电子装置进一步被配置为使用该机器学习控制程序基于该传感器数据或用户对该阶梯式钻头的使用来辨识该阶梯式钻头的一个或多个特性配置文件,以及基于该输出来控制由该电动工具的壳体支撑的马达。
25.在一些实施例中,该特性配置文件包括选自以下各项的组中的至少一项:钻出孔的常见尺寸、钻孔的常见阶梯数、以及该电动工具的多次使用中所利用的阶梯式钻头的类型。
26.在一些实施例中,对该马达的控制是基于选自以下各项的组中的至少一项:钻出孔的常见尺寸、钻孔的常见阶梯数、以及该多次使用中所利用的阶梯式钻头的类型。
27.在一些实施例中,控制该马达包括选自以下各项的组中的至少一项:减慢该马达的转速、停止该马达、降低该马达的扭矩、以及以脉冲方式驱动该马达。
28.在一些实施例中,该电动工具进一步包括用于提醒用户的指示器。
29.在一些实施例中,该指示器是选自以下各项的组中的至少一项:视觉指示器和听觉指示器。
30.在一些实施例中,该电子控制组件进一步被配置为检测来自该传感器的低清晰度信号。
31.在一些实施例中,该电子控制组件进一步被配置为响应于检测到该低清晰度信号而降低该马达的转速。
32.在一些实施例中,该机器学习控制程序是选自以下各项的组中的至少一项:循环神经网络、长短期记忆模型、门控循环单元模型、马尔可夫过程、强化学习、深度神经网络、卷积神经网络、transformer、λ网络、支持向量机、异常检测、逻辑回归、决策树/森林、随机梯度下降、线性判别分析、二次判别分析和最近邻分类/回归。
33.在详细解释任何实施例之前,应理解的是,本技术并不限制在以下说明书中阐述的或在以下附图中展示出的构造细节和部件布置中。实施例能够以多种不同的方式来实践或实施。而且,应理解的是,在本文中使用的措辞和术语是用于描述的目的,而不应被视为
是限制性的。在本文中使用“包括”、“包含”、“具有”及其变化形式旨在涵盖其后所列的项目和其等同形式以及额外项目。术语“安装”、“连接”、“支撑”和“联接”被广泛地使用并且涵盖直接和间接的安装、连接和联接。进一步地,“连接”和“联接”不限于物理或机械的连接或联接,而是可以包括电气连接或联接,无论是直接的还是间接的。
34.应注意的是,可以利用多个基于硬件和软件的设备以及多个不同的结构部件来实施本文披露的实施例。此外,并且如在随后的段落中所描述的,附图中所展示的特定配置旨在作为示例实施例,并且其他替代配置也是可能的。除非另外说明,否则术语“处理器”、“中央处理单元”和“cpu”是可互换的。在术语“处理器”、“中央处理单元”或“cpu”被用作标识执行特定功能的单元的情况下,应理解的是,除非另外说明,否则这些功能可以由单个处理器或以任何形式布置的多个处理器来执行,处理器包括并行处理器、串行处理器、纵列式处理器、或云处理配置/云计算配置。
附图说明
35.图1展示了第一电动工具系统。
36.图2展示了第二电动工具系统。
37.图3展示了第三电动工具系统。
38.图4a至图4b展示了第四电动工具系统。
39.图4c展示了第四电动工具系统。
40.图4d展示了第五电动工具系统。
41.图5a是图1至图4c的电动工具系统的示例电动工具的框图。
42.图5b是图5a的电动工具的机器学习控制器的框图。
43.图6是展示了为图5a的电动工具构建和实施机器学习控制器的方法的流程图。
44.图7是展示了根据机器学习控制器来操作图5a的电动工具的方法的流程图。
45.图8a展示了包括反馈致动器的电动工具。
46.图8b是旋转电动工具以提供反馈信息的展示。
47.图9是机器学习控制器可以利用的各种类型的信息的示意图。
48.图10是可以被机器学习控制器用于执行阶梯式钻头控制程序的各种类型的信息的示意图。
49.图11是展示了使用机器学习控制器来识别阶梯式钻头类型的方法的流程图。
50.图12a至图12b展示了阶梯式钻头的两个示例。
51.图13展示了用于检测随时间推进到金属板工件中的阶梯式钻头的阶梯的经缩放传感器输出值。
52.图14是用于通过使用静态逻辑来训练和操作具有机器学习的电动工具的流程图。
53.图15展示了用于自动控制电动工具中的阶梯式钻头操作的过程。
具体实施方式
54.一些电动工具包括传感器和控制系统,该系统例如使用硬编码阈值来改变或调整工具的操作。例如,传感器可以检测到电池电压低于预定的硬编码阈值。然后电动工具可以停止马达的操作以保护电池包。虽然这些类型的阈值可能很容易实施并为电动工具的操作
提供一些好处,但这些类型的硬编码阈值不能适应电动工具操作期间不断变化的状况或应用,并且可能最终无助于检测和响应更复杂的状况,例如,当电动工具经历反冲时。
55.本技术描述了各种系统,在这些系统中利用机器学习控制器来控制电动工具的特征或功能。例如,机器学习控制器不是实施由例如工程师确定和编程的硬编码阈值,而是基于在电动工具的先前操作期间收集的数据来检测状况。在一些实施例中,机器学习控制器例如基于电动工具的特定应用或在电动工具的特定模式期间确定用于操作工具的可调阈值。相应地,阈值、状况或其组合是基于相同类型的电动工具的先前操作并且可以基于从用户接收的输入和电动工具的进一步操作而改变。
56.一些电动工具(比如钻具、液压脉冲工具和冲击驱动器)可以用于驱动阶梯式钻头进行钻孔。阶梯式钻头为用户提供的好处是易于控制位置、钻出干净的孔、能够扩大现有的孔并能灵活地产生各种非常独特的尺寸。然而,用户对阶梯式钻头的一个常见苦恼是很容易意外超出期望的阶梯,从而使孔过大。
57.另外,对于电动工具而言,在阶梯式钻头被驱动时识别每个阶梯并非易事,因为操作钻具的用户的行为、工件特性、阶梯式钻头特性、用户的力以及其他因素的变化都会导致传感器反馈信号带有噪声。
58.本文描述的各种实施例涉及使用执行机器学习控制程序的控制器在阶梯式钻头被电动工具驱动到工件中时识别或计数阶梯,并采取响应动作以辅助用户在驱动阶梯式钻头时控制电动工具。机器学习控制程序非常适合监测在阶梯式钻头驱动期间的各种特性,以识别或计数阶梯。在一些实施例中,电动工具可以接收指示期望的阶梯数、孔宽度或孔深度的用户输入。然后,在操作期间,当阶梯式钻头被驱动到工件中时,工具会计数或识别每个阶梯。一旦电动工具达到或接近最终期望的阶梯,或对其计数失去信心,就会采取响应动作。响应动作的示例包括向用户提供已达到期望阶梯、停止马达或减慢马达的通知。因此,本文披露的实施例降低了用户制造的孔过大的可能性。
59.图1展示了第一电动工具系统100。第一电动工具系统100包括电动工具105、外部设备107、服务器110和网络115。电动工具105包括在电动工具105的操作期间收集使用信息的各种传感器和设备。使用信息可替代地称为电动工具105的操作信息,并且是指例如关于马达操作的数据(例如,转速、位置、加速度、温度、使用时间等)、电动工具105的操作模式(例如,驱动模式、冲击模式、每种模式下的操作时间、每种模式下的操作频率等)、操作期间遇到的状况(例如,马达过热等)、以及其他方面(例如,电池的荷电状态、放电率等)。
60.在所示实施例中,电动工具105与外部设备107通信。外部设备107可以包括例如智能电话、平板计算机、蜂窝电话、膝上型计算机、智能手表等。电动工具105与外部设备107通信,例如,以传输电动工具105的使用信息的至少一部分、接收电动工具105的配置信息、或其组合。在一些实施例中,外部设备可以包括用于与电动工具105通信的短距离收发器以及用于与服务器110通信的长距离收发器。在所示实施例中,电动工具105也包括收发器以例如经由诸如等短距离通信协议与外部设备进行通信。在一些实施例中,外部设备107桥接电动工具105与服务器110之间的通信。即,电动工具105将操作数据传输到外部设备107,并且外部设备107将来自电动工具105的操作数据通过网络115转发到服务器110。网络115可以是长距离无线网络,比如因特网、局域网(“lan”)、广域网(“wan”)或其组合。在其他实施例中,网络115可以是短距离无线通信网络,并且在又一些实施例中,网络
115可以是例如使用串行协议(例如,usb、usb-c、firewire等)的有线网络。类似地,服务器110可以将信息传输到外部设备107以转发到电动工具105。在一些实施例中,作为短距离收发器的替代或补充,电动工具105配备有长距离收发器。在这样的实施例中,电动工具105直接与服务器110通信。在一些实施例中,电动工具105可以直接与服务器110和外部设备107两者进行通信。在这样的实施例中,例如,外部设备107可以生成图形用户界面以促进对电动工具105的控制和编程,而服务器110可以存储和分析更大量的操作数据以用于电动工具105的未来编程或操作。然而,在其他实施例中,电动工具105可以直接与服务器110通信,而不利用与外部设备107的短距离通信协议。
61.服务器110包括服务器电子控制组件,该服务器电子控制组件具有服务器电子处理器425、服务器存储器430、收发器427和机器学习控制器120。收发器427允许服务器110与电动工具105、外部设备107、或这两者进行通信。服务器电子处理器425从电动工具105接收工具使用数据(例如,经由外部设备107),将接收到的工具使用数据存储在服务器存储器430中,并且在一些实施例中,使用接收到的工具使用数据来构建或调整机器学习控制器120。
62.机器学习控制器120实施机器学习程序。机器学习控制器120被配置为基于示例输入来构建模型(例如,构建一个或多个算法)。监督学习涉及向计算机程序提供示例输入及其实际输出(例如,分类)。机器学习控制器120被配置为学习基于所提供的示例输入-输出对将输入映射到输出的一般规则或模型。机器学习算法可以被配置为使用各种类型的方法来执行机器学习。例如,机器学习控制器120可以使用决策树学习、关联规则学习、人工神经网络、循环人工神经网络、长短期记忆神经网络、归纳逻辑编程、支持向量机、聚类、贝叶斯网络、强化学习、表示学习、相似性和度量学习、稀疏字典学习、遗传算法、k-最近邻(knn)、transformer和λ网络以及如下表1中列出的那些来实施机器学习程序。
[0063][0064]
机器学习控制器120被编程和训练以执行特定任务。例如,在一些实施例中,机器学习控制器120被训练以识别电动工具105所用于的应用(例如,使用阶梯式钻头)。训练机
器学习控制器120所针对的任务可以基于例如电动工具的类型、来自用户的选择、电动工具所用于的典型应用等而变化。类似地,机器学习控制器120的训练方式也基于特定任务而变化。特别地,用于训练机器学习控制器的训练样例可以包括不同的信息,并且可以基于机器学习控制器120的任务而具有不同的维度。在机器学习控制器120被配置为识别电动工具105的使用应用的上述示例中,每个训练样例可以包括一组输入,比如马达转速、马达电流和电压、当前由电动工具105实施的操作模式、以及电动工具105的运动(例如,来自加速度计)。每个训练样例还包括指定的输出。例如,当机器学习控制器130识别电动工具105的使用应用时,训练样例可以具有包括电动工具105的特定使用应用的输出,比如推进阶梯式钻头中的一定数量的阶梯。其他训练样例,包括每个输入的不同值和指示使用应用是例如在木制工件上钻孔的输出。训练样例可以是从例如多个相同类型的电动工具中预先收集的训练样例。例如,训练样例可能先前已经在例如一年的跨度内从例如两百个相同类型的电动工具(例如,钻具)收集。
[0065]
向机器学习控制器120提供多个不同的训练样例。机器学习控制器120使用这些训练样例来生成有助于基于新输入数据对输出进行分类或估计的模型(例如,规则、一组方程等)。机器学习控制器120可以对不同的训练样例施加不同的权重,例如,对来自机器学习控制器120的不同状况或输出进行优先级排序。例如,与反冲状况相对应的训练样例的权重可以比与剥落状况相对应的训练样例的权重更大,以相对于剥落状况优先考虑反冲状况的正确识别。在一些实施例中,通过将不同的成本函数或值与特定的训练样例或训练样例类型相关联,对各训练样例施加不同的权重。
[0066]
在一个示例中,机器学习控制器120实施人工神经网络。人工神经网络通常包括输入层、多个隐藏层或节点以及输出层。通常,输入层包括与提供给机器学习控制器120的输入一样多的节点。如上所述,提供给机器学习控制器120的输入的数量(和类型)可以基于机器学习控制器120的特定任务而变化。相应地,基于机器学习控制器120的特定任务,机器学习控制器120的人工神经网络的输入层可以具有不同数量的节点。输入层连接到隐藏层。隐藏层的数量会变化并且可能取决于机器学习控制器120的特定任务。另外,每个隐藏层可能具有不同数量的节点,并且可能以不同方式连接到下一层。例如,输入层的每个节点可以连接到第一隐藏层的每个节点。输入层的每个节点与第一隐藏层的每个节点之间的连接可以被指派权重参数。另外,还可以为神经网络的每个节点指派偏置值。然而,第一隐藏层的每个节点可能不连接到第二隐藏层的每个节点。即,可能有第一隐藏层的一些节点未连接到第二隐藏层的所有节点。第一隐藏层的节点与第二隐藏层的节点之间的连接分别被指派不同的权重参数。隐藏层的每个节点都与激活函数相关联。激活函数定义隐藏层如何用于处理从输入层或前一个输入层接收到的输入。这些激活函数可以变化,并且不仅基于与机器学习控制器120相关联的任务的类型,而且还可以基于所实施的隐藏层的特定类型而变化。
[0067]
每个隐藏层可以执行不同的功能。例如,一些隐藏层可以是在一些情况下可以减少输入的维数的卷积隐藏层,而其他隐藏层可以执行更多的统计功能,比如最大池化,其可以将一组输入减少到最大值平均层等。在一些隐藏层(也称为“密集层”)中,每个节点都连接到下一个隐藏层的每个节点。包括多于例如三个隐藏层的一些神经网络可以被认为是深度神经网络。最后一个隐藏层连接到输出层。与输入层类似,输出层通常具有与可能的输出相同数量的节点。在机器学习控制器120识别电动工具105的使用应用的上述示例中,输出
层可以包括例如四个节点。第一节点可以指示使用应用对应于安装石膏板,第二节点可以指示使用应用对应于在金属或木制工件上钻孔,第三节点可以指示使用应用对应于扩大孔,并且第四节点可以指示使用应用对应于未知(或无法识别)的任务。在一些实施例中,机器学习控制器120然后选择具有最高值的输出节点并向电动工具105或向用户指示对应的使用应用。在一些实施例中,机器学习控制器120还可以选择多于一个输出节点。机器学习控制器120或电子处理器550然后可以使用多个输出来控制电动工具500。例如,机器学习控制器120可以将具有特定形状和特定阶梯数的特性的阶梯式钻头类型识别为最可能的候选项。机器学习控制器120或电子处理器550然后可以例如基于阶梯式钻头的形状根据斜升转速来控制马达100,但是当达到阶梯式钻头的一个或多个阶梯时减速、暂停或停止。机器学习控制器120和电子处理器550可以实施将来自机器学习控制器120的输出进行组合的不同方法。
[0068]
在训练期间,人工神经网络接收训练样例的输入,并使用每个节点的偏置以及每个节点之间的连接和对应权重来生成输出。然后,人工神经网络将生成的输出与训练样例的实际输出进行比较。基于生成的输出和训练样例的实际输出,神经网络改变与每个节点连接相关联的权重。在一些实施例中,神经网络还在训练期间改变与每个节点相关联的权重。训练继续进行,直到满足训练条件。训练条件可以对应于例如使用了预定数量的训练样例、在训练和验证期间达到了最小准确度阈值、完成了预定数量的验证迭代等。不同类型的训练算法可以用于基于训练样例来调整节点连接的偏置值和权重。训练算法可以包括例如梯度下降法、牛顿法、共轭梯度法、拟牛顿法、列文伯格-马夸尔特等,再次参见表1。
[0069]
在另一示例中,机器学习控制器120实施支持向量机以执行分类。机器学习控制器120可以例如对阶梯式钻头是否已达到目标阶梯、目标直径或目标深度(其可以被称为钻出孔的预期阶梯、预期直径、预期长度或深度)进行分类。在这样的实施例中,机器学习控制器120可以接收输入,比如马达转速、输出扭矩和操作时间(例如,电动工具105已经在阶梯上工作了多长时间)。机器学习控制器120然后使用一些输入变量(例如,马达转速、输出扭矩、操作时间等)的组合作为支持向量来定义余量,以最大化余量。在一些实施例中,机器学习控制器120使用多于一个相似输入变量的组合来定义余量。余量对应于被不同分类的两个最近向量之间的距离。例如,余量对应于表示未达到目标阶梯(或直径)的钻孔操作的向量与表示已达到目标阶梯(或直径)的钻孔操作的向量之间的距离。在一些实施例中,机器学习控制器120使用多于一个支持向量机来执行单个分类。例如,当机器学习控制器120对阶梯式钻头是否达到目标阶梯进行分类时,第一支持向量机可以基于马达转速和操作时间来确定是否已达到目标阶梯,而第二支持向量机可以基于马达转速和输出扭矩来确定是否已达到目标阶梯。当这两个支持向量机都将钻孔操作分类为已经达到目标阶梯时,机器学习控制器120然后可以确定是否达到目标阶梯。在其他实施例中,单个支持向量机可以使用多于两个输入变量并定义超平面,该超平面将已经达到目标阶梯的那些操作与那些没有达到目标阶梯的操作分开。
[0070]
支持向量机的训练样例包括输入向量以及指示是否已达到阶梯的输出分类,该输入向量包括输入变量(例如,马达转速、操作时间、输出扭矩、加速度等)的值。在训练期间,支持向量机选择使余量最大化的支持向量(例如,输入向量的子集)。在一些实施例中,支持向量机可能能够定义准确地分离何时已达到目标阶梯和何时未达到目标阶梯的线或超平
面。然而,在其他实施例中(例如,在不可分离的情况下),支持向量机可以定义使余量最大化并且使松弛变量最小化的线或超平面,这些松弛变量衡量支持向量机的分类中的误差。在训练了支持向量机之后,可以将新输入数据与线或超平面进行比较以确定如何对新输入数据进行分类(例如,确定是否已达到目标阶梯)。在其他实施例中,如上所述,机器学习控制器120可以实施不同的机器学习算法以基于一组输入数据进行估计或分类。下表2列出了输入数据、处理技术和机器学习算法配对的一些示例。在下表中列为时间序列数据的输入数据包括例如本文描述的时间序列工具使用信息的各种示例中的一个或多个。
[0071][0072]
在图1的示例中,服务器110从电动工具105接收使用信息。在一些实施例中,服务器110使用接收到的使用信息作为附加训练样例(例如,当实际值或分类也已知时)。在其他实施例中,服务器110将接收到的使用信息发送到训练后的机器学习控制器120。机器学习
控制器120然后基于输入使用信息来生成估计值或分类。服务器电子处理器425然后为电动工具105的未来操作生成推荐。例如,训练后的机器学习控制器120可以确定已经达到目标阶梯。服务器电子处理器425然后可以确定对于所选操作模式可以使用较慢的马达转速以防止阶梯式钻头超过目标阶梯。然后服务器110可以将建议的操作参数传输到外部设备107。外部设备107可以显示对操作参数的建议改变并且在将这些改变转发到电动工具105之前请求用户确认以实施建议改变。在其他实施例中,外部设备107将建议改变转发给电动工具105并显示建议改变以通知用户电动工具105所实施的改变。
[0073]
特别地,在图1所示的实施例中,服务器电子控制组件生成推荐用于电动工具105在特定模式下的操作的一组参数和更新阈值。例如,机器学习控制器120可以检测到,在电动工具105在冲击模式下的各种操作期间,电动工具105可以受益于在操作的前十秒期间更快的平均马达旋转速度。机器学习控制器120然后可以调整冲击模式的马达转速阈值,使得电动工具105的冲击模式的前十秒期间的马达转速增加。然后服务器110经由外部设备107将更新的马达转速阈值传输到电动工具105。
[0074]
电动工具105接收更新的马达转速阈值,根据更新的马达转速阈值更新冲击模式,并且当在冲击模式下时根据更新的马达转速阈值进行操作。在一些实施例中,电动工具105基于预定时间表(例如,每八小时)周期性地将使用数据传输到服务器110。在其他实施例中,电动工具105在预定的不活动时段之后(例如,当电动工具105已经两个小时不活动时)传输使用数据,该不活动时段可以指示操作环节已经完成。在一些实施例中,电动工具105将使用数据实时传输到服务器110,并且可以在后续操作中实施更新的阈值和参数。
[0075]
图2展示了第二电动工具系统200。第二电动工具系统200包括电动工具205、外部设备107、服务器210和网络215。电动工具205类似于图1的电动工具系统100的电动工具,并收集与关于图1描述的类似的使用信息。与第一电动工具系统100的电动工具105不同,第二电动工具系统200的电动工具205包括静态机器学习控制器220。在所示实施例中,电动工具205通过网络215从服务器210接收静态机器学习控制器220。在一些实施例中,电动工具205在制造期间接收静态机器学习控制器220,而在其他实施例中,电动工具205的用户可以选择在电动工具205已经制造之后接收静态机器学习控制器220,并且在一些实施例中,在电动工具205的操作之后接收。静态机器学习控制器220是类似于训练后的机器学习控制器120的训练后的机器学习控制器,其中,机器学习控制器120已经使用各种训练样例进行训练,并且被配置为接收新的输入数据并针对新输入数据生成估计或分类。
[0076]
电动工具205经由例如上文关于图1描述的外部设备107与服务器210通信。外部设备107还可以向电动工具205提供附加功能(例如,生成图形用户界面)。电动工具系统200的服务器210可以利用来自与电动工具205类似的电动工具的使用信息(例如,当电动工具205是钻具时,服务器210可以从各种其他钻具接收使用信息),并且使用从电动工具接收到的使用信息中的训练样例来训练机器学习程序。然后,服务器210将训练后的机器学习程序传输到电动工具205的机器学习控制器220,以便在电动工具205的未来操作期间执行。
[0077]
相应地,静态机器学习控制器220包括例如在制造时提供的训练后的机器学习程序。在电动工具205的未来操作期间,静态机器学习控制器220分析来自电动工具205的新使用数据并基于新使用数据生成推荐或动作。如上文关于机器学习控制器120所讨论的,静态机器学习控制器220具有一个或多个特定任务,如例如确定电动工具205的当前应用。在其
他实施例中,静态机器学习控制器220的任务可能不同。在一些实施例中,电动工具205的用户可以使用例如由外部设备107生成的图形用户界面来为静态机器学习控制器220选择任务。然后,外部设备107可以将静态机器学习控制器220的目标任务传输到服务器210。然后服务器210将针对目标任务训练的训练后的机器学习程序传输到静态机器学习控制器220。基于来自静态机器学习控制器220的估计或分类,电动工具205可以改变其操作、调整电动工具205的操作模式之一、和/或调整电动工具205的不同方面。在一些实施例中,电动工具205可以包括多于一个静态机器学习控制器220,每个具有不同的目标任务。
[0078]
图3展示了第三电动工具系统300。第三电动工具系统300也包括电动工具305、外部设备107、服务器310和网络315。电动工具305类似于上述电动工具105、205,并且包括监测电动工具305的各种类型的使用信息(例如,马达转速、输出扭矩、电池包的类型、电池包的荷电状态等)的类似传感器。然而,第三电动工具系统300的电动工具305包括可调机器学习控制器320,而不是第二电动工具205的静态机器学习控制器220。在所示实施例中,电动工具305的可调机器学习控制器320通过网络315从服务器310接收机器学习程序。与第二电动工具205的静态机器学习控制器220不同,服务器310可以将机器学习程序的更新版本传输到可调机器学习控制器320以替换之前的版本。
[0079]
第三电动工具系统300的电动工具305将与可调机器学习控制器320的操作相关的反馈传输到服务器310(例如,经由外部设备107)。例如,电动工具305可以向服务器310传输关于被可调机器学习控制器320错误分类的操作数量的指示。服务器310接收来自电动工具305的反馈,更新机器学习程序,并将更新的程序提供给可调机器学习控制器320以减少错误分类的操作的数量。因此,服务器310鉴于从电动工具305接收到的反馈来更新或重新训练可调机器学习控制器320。在一些实施例中,服务器310还使用从类似电动工具接收的反馈来调整可调机器学习控制器320。在一些实施例中,服务器310周期性地(例如,每月)更新可调机器学习控制器320。在其他实施例中,当服务器310接收到预定数量的反馈指示时(例如,在服务器310接收到两个反馈指示之后),服务器310更新可调机器学习控制器320。反馈指示可以是正面的(例如,指示可调机器学习控制器320正确分类了状况、事件、操作或其组合),或者反馈可以是负面的(例如,指示可调机器学习控制器320错误分类了状况、事件、操作或其组合)。
[0080]
在一些实施例中,服务器310还利用从电动工具305和其他类似电动工具接收的新使用数据来更新可调机器学习控制器320。例如,服务器310可以基于新接收的使用数据周期性地重新训练可调机器学习控制器320(或调整对可调机器学习控制器的训练)。服务器310然后将可调机器学习控制器320的更新版本传输到电动工具305。
[0081]
当电动工具305接收到可调机器学习控制器320的更新版本时(例如,当更新机器学习程序被提供并存储在机器学习控制器320上时),电动工具305将可调机器学习控制器320的当前版本替换为更新版本。在一些实施例中,电动工具305在制造期间配备有可调机器学习控制器320的第一版本。在这样的实施例中,电动工具305的用户可以请求可调机器学习控制器320的较新版本。在一些实施例中,用户可以选择向电动工具305传输可调机器学习控制器320的频率。
[0082]
图4a展示了第四电动工具系统400。第四电动工具系统400包括电动工具405、外部设备107、网络415和服务器410。电动工具405包括自更新机器学习控制器420。例如,自更新
机器学习控制器420在制造期间首先被加载到电动工具405上。自更新机器学习控制器420进行自我更新。换言之,自更新机器学习控制器420从电动工具405中的传感器接收新的使用信息、指示对操作参数的期望改变(例如,用户想要增加马达转速或输出扭矩)的反馈信息、指示机器学习控制器420作出的分类是否错误的反馈信息、或其组合。自更新机器学习控制器420然后使用接收到的信息来重新训练自更新机器学习控制器420。
[0083]
在一些实施例中,当电动工具405未运行时,电动工具405重新训练自更新机器学习控制器420。例如,电动工具405可以检测马达在预定时间段内未运行,并且在电动工具405保持未运行时启动自更新机器学习控制器420的重新训练过程。在电动工具405未运行时训练自更新机器学习控制器420允许在重新训练过程中使用更多的处理能力,而不是争用通常用于操作电动工具405的计算资源。
[0084]
如图4a所示,在一些实施例中,电动工具405还与外部设备107和服务器410通信。例如,外部设备107与电动工具405通信,如上文关于图1至图3所描述的。外部设备107生成图形用户界面以促进对电动工具405的操作参数的调整。外部设备107还可以桥接电动工具405与服务器410之间的通信。例如,如上文关于图2所描述的,在一些实施例中,外部设备107接收对机器学习控制器420的目标任务的选择。然后,外部设备107可以从服务器410请求对应的机器学习程序以传输到电动工具405。电动工具405还与服务器410通信(例如,经由外部设备107)。在一些实施例中,服务器410还可以重新训练自更新机器学习控制器420,例如,如上文关于图3所描述的。服务器410可以使用来自其他类似电动工具的附加训练样例。使用这些附加训练样例可以提供更大的可变性并最终使机器学习控制器420更可靠。在一些实施例中,电动工具405在电动工具405未运行时重新训练自更新机器学习控制器420,而服务器410可以在电动工具405保持运行时重新训练机器学习控制器420(例如,当在机器学习控制器420的预先安排的再训练期间电动工具405处于运行时)。相应地,在一些实施例中,自更新机器学习控制器420可以在电动工具405上重新训练、由服务器410重新训练、或通过它们的组合重新训练。在一些实施例中,服务器410不重新训练自更新机器学习控制器420,但仍与电动工具405交换信息。例如,服务器410可以为电动工具405提供其他功能,如例如传输关于电动工具405的各种操作模式的信息。
[0085]
图1至图4a中的每一个描述了电动工具系统100、200、300、400,其中电动工具105、205、305、405与服务器110、210、310、410以及与外部设备107通信。如上文关于图1所讨论的,外部设备107可以桥接电动工具105、205、305、405与服务器110、210、310、410之间的通信。即,电动工具105、205、305、405可以直接与外部设备107通信。然后,外部设备107可以将从电动工具105、205、305、405接收的信息转发到服务器110、210、310、410。类似地,服务器110、210、310、410可以将信息传输到外部设备107以转发到电动工具105、205、305、405。在这样的实施例中,电动工具105、205、305、405可以包括收发器以例如经由诸如bluetooth(r)等短距离通信协议与外部设备107进行通信。外部设备107可以包括用于与电动工具105、205、305、405通信的短距离收发器,并且还可以包括用于与服务器110、210、310、410通信的长距离收发器。在一些实施例中,在外部设备107与电动工具105、205、405之间提供有线连接(例如经由usb电缆),以实现外部设备107与电动工具105、205、305、405之间的直接通信。提供有线连接可以在外部设备107与电动工具105、205、305、405之间提供更快和更可靠的通信方法。
[0086]
外部设备107可以包括例如智能电话、平板计算机、蜂窝电话、膝上型计算机、智能手表等。图1至图4a中所示的服务器110、210、310、410至少包括服务器电子处理器425、服务器存储器430、以及用于经由网络115、215、315、415与电动工具105、205、305、405通信的收发器。服务器电子处理器425从电动工具105、205、305、405接收工具使用数据,将工具使用数据存储在服务器存储器430中,并且在一些实施例中,使用接收到的工具使用数据来构建或调整机器学习控制器120、220、320、420。术语“外部系统设备”在本文中可以用于指代外部设备107和服务器110、210、310和410中的一个或多个,因为每个都在电动工具105、205、305、405的外部。进一步地,在一些实施例中,外部系统设备是无线集线器,比如放置在施工现场上的信标设备,以监测工具、用作网关网络设备(例如,提供网络)、或两者兼有。如本文所述,外部系统设备至少包括用于通信的输入/输出单元(例如,无线或有线收发器)、存储指令的存储器、以及用于执行存储在存储器上的指令以执行归属于外部系统设备的功能的电子处理器。
[0087]
在一些实施例中,电动工具405可能不与外部设备107或服务器410通信。例如,图4b展示了未连接到外部设备107或服务器410的电动工具405。相反,由于电动工具405包括自更新机器学习控制器420,电动工具405可以在不与外部设备107或服务器410通信的情况下实施机器学习控制器420、接收用户反馈并更新机器学习控制器420。
[0088]
图4c展示了包括电动工具455和外部设备107的第五电动工具系统450。外部设备107使用上文关于图1至图4a描述的各种方法与电动工具455通信。特别地,电动工具455将关于电动工具455的操作的操作数据传输到外部设备107。外部设备107包括用户应用程序并生成图形用户界面,以促进对电动工具455的操作参数的调整并向用户提供关于电动工具455的操作的信息或接收来自用户的输入。在图4c所示的实施例中,外部设备107包括机器学习控制器460。在一些实施例中,机器学习控制器460类似于图1的机器学习控制器120。在这样的实施例中,机器学习控制器460从电动工具455接收使用信息,并为电动工具455的未来操作生成推荐。在这样的实施例中,机器学习控制器460可以生成推荐用于电动工具105在特定模式下的操作的一组参数和更新阈值。外部设备107然后将更新的一组参数和更新的阈值传输到电动工具455以供实施。
[0089]
在一些实施例中,机器学习控制器460类似于图3的机器学习控制器320。在这样的实施例中,外部设备107可以基于例如从电动工具455接收的反馈和/或来自电动工具455的其他操作数据来更新机器学习控制器460。在这样的实施例中,电动工具455还包括与例如图3的可调机器学习控制器320类似的机器学习控制器。外部设备107然后可以修改和更新可调机器学习控制器320并将对机器学习控制器320的更新传送到电动工具455以供实施。例如,外部设备107可以使用来自用户的反馈来重新训练机器学习控制器460,继续训练实施强化学习控制的机器学习控制器460,或者在一些实施例中,可以使用反馈来调整例如循环神经网络上的切换率。
[0090]
在一些实施例中,如上文简要讨论的,电动工具455还包括机器学习控制器。电动工具455的机器学习控制器可以类似于例如图2的静态机器学习控制器220、如上所述的图3的可调机器学习控制器320、或者图4a的自更新机器学习控制器420。
[0091]
图4d展示了包括电池包480的第六电动工具系统475。电池包480可以包括机器学习控制器485。尽管未展示,但在一些实施例中,电池包480可以通过例如网络与外部设备
107、服务器或其组合进行通信。可替代地或附加地,电池包可以与电动工具455通信,比如附接到电池包480的电动工具455。外部设备107和服务器可以类似于上文关于图1至图4a描述的外部设备107和服务器110、210、310、410。电池包480的机器学习控制器485可以类似于上述机器学习控制器220、320、420中的任何一个。在一个实施例中,机器学习控制器220、320、420控制电池包480的操作。例如,机器学习控制器485可以帮助识别可能对电池包480有害的不同电池状况并且可以自动改变(例如,增加或减少)由电池包480提供的电流量,和/或可以改变调节电池包480的操作的一些阈值。例如,电池包480可以根据机器学习控制器485的指令降低功率以防止电池单体过热。在一些实施例中,电池包480与电动工具(例如,类似于电动工具105、205、305、405、455)通信,并且机器学习控制器485控制电动工具的至少一些方面和/或操作。例如,电池包480可以从电动工具接收使用数据(例如,传感器数据)并生成输出以控制电动工具的操作。电池包480然后可以将控制输出传输到电动工具的电子处理器。
[0092]
在另外的其他实施例中,提供了包括充电器(例如,用于为电池包480或不具有机器学习控制器的类似电池包充电)的电源系统,其中,充电器包括与本文描述的那些类似的机器学习控制器。
[0093]
图1至图4c展示了呈冲击驱动器105、205、305、405形式的示例电动工具。然而,本文展示和描述的特定电动工具105、205、305、405仅仅是代表性的。在其他实施例中,本文所述的电动工具系统100、200、300、400可以包括不同类型的电动工具,如例如电动钻、锤钻、切管机、砂光机、打钉机、滑脂枪等。电动工具系统100、200、300、400的电动工具105、205、305、405被配置为执行一个或多个特定任务(例如,钻孔、切割、紧固、挤压、润滑剂涂敷、砂磨、加热、研磨、弯曲、成形、冲击、抛光、照明等)。例如,冲击扳手与产生旋转输出的任务相关联(例如,用于驱动钻头),而往复锯与产生往复输出运动的任务相关联(例如,用于推动和拉动锯片)。与特定工具相关联的(多个)任务也可以被称为该工具的(多个)主要功能。每个电动工具都包括专门为电动工具的主要功能设计的驱动设备。例如,在电动工具对应于冲击驱动器的所示实施例中,驱动设备是套筒。然而,在电动工具是例如电动钻的实施例中,驱动设备可以包括可调卡盘作为钻头驱动器。
[0094]
图1至图4d中的每一个展示了不同类型的机器学习控制器120、220、320、420与电动工具105、205、305、405结合使用的各种实施例。在一些实施例中,每个电动工具105、205、305、405可以包括多于一个机器学习控制器120、220、320、420,并且每个机器学习控制器120、220、320、420可以是不同类型的。例如,电动工具105、205、305、405可以包括如关于图2描述的静态机器学习控制器220,并且还可以包括如关于图4a描述的自更新机器学习控制器420。在另一示例中,电动工具105、205、305、405可以包括静态机器学习控制器220。静态机器学习控制器220可以随后被移除并由例如可调机器学习控制器320代替。换言之,相同的电动工具可以包括上文关于图1至图4b中描述的任何机器学习控制器120、220、320、420。另外,图5a和图5b所示的关于图6描述的并且进一步详细描述的机器学习控制器540是可以用作机器学习控制器120、220、320、420、460和485中的一个或多个的示例控制器。
[0095]
图5a是呈冲击驱动器形式并且包括机器学习控制器的代表性电动工具500的框图。类似于图1至图4c的示例电动工具,电动工具500代表各种类型的电动工具。相应地,关于电动工具500的描述同样适用于其他类型的电动工具。电动工具500的机器学习控制器可
以是与第二电动工具205的静态机器学习控制器220类似的静态机器学习控制器、与第三电动工具305的可调机器学习控制器320类似的可调机器学习控制器、或与第四电动工具405的自更新机器学习控制器420类似的自更新机器学习控制器。虽然图5a的电动工具500被描述为与外部设备107或服务器通信,但在一些实施例中,电动工具500在机器学习方面是自给式的或封闭的,并且无需与外部设备107或服务器通信也能执行下文将详细描述的机器学习控制器540的功能。
[0096]
如图5a所示,电动工具500包括马达505、触发器510、电源接口515、开关网络517、电源输入控制520、无线通信设备525、模式板527、多个传感器530、多个指示器535和电子控制组件536。电子控制组件536包括机器学习控制器540、激活开关545和电子处理器550。马达505致动电动工具500的驱动设备并允许驱动设备执行电动工具500的特定任务。马达505通过电源接口515从外部电源接收电力。在一些实施例中,外部电源包括ac电源。在这样的实施例中,电源接口515包括可连接到例如ac插座的ac电源线。在其他实施例中,外部电源包括电池包。在这样的实施例中,电源接口515包括电池包接口。电池包接口可以包括电动工具500上的电池包接收部分,该电池包接收部分被配置为接收并联接到电池包(例如,电池包485或者不具有机器学习控制器的类似电池包)。电池包接收部分可以包括用于接合固定电池包的机构的连接结构和用于将电池包电连接到电动工具500的接线盒。
[0097]
马达505基于触发器510的状态而被通电。通常,当触发器510被激活时,马达505被通电,而当触发器510被停用时,马达被断电。在一些实施例中,如图1至图4c所示的电动工具105、205、305、405,触发器510沿着电动工具的手柄的长度部分地向下延伸并且可移动地联接到手柄,使得触发器510相对于电动工具壳体移动。在所示实施例中,触发器510联接到触发器开关555,使得当触发器510被按下时,触发器开关555被激活,并且当触发器被释放时,触发器开关555被停用。在所示实施例中,触发器510被偏置(例如,用偏置构件,比如弹簧),使得当用户释放触发器510时,触发器510在背离电动工具500的手柄的第二方向上移动。换言之,除非用户按下触发器510并激活触发器开关555,否则触发器开关555的默认状态是停用。
[0098]
开关网络517使电子处理器550能够控制马达505的操作。开关网络517包括多个电子开关(例如,fet、双极晶体管等),这些电子开关连接在一起以形成使用脉宽调制(pwm)信号控制马达505的激活的网络。例如,开关网络217可以包括六fet桥,其从电子处理器550接收脉宽调制(pwm)信号以驱动马达505。通常,当触发器510如触发器开关555的输出所指示的被按下时,电流从电源接口515经由开关网络517供应到马达505。当触发器510未被按下时,电流不从电源接口515供应到马达505。如下文更详细地讨论的,在一些实施例中,触发器开关555检测到的触发器拉动量与马达505的期望旋转速度相关或相对应。在其他实施例中,触发器拉动量对应于期望扭矩。
[0099]
响应于电子处理器550从触发器开关555接收到激活信号,电子处理器550激活开关网络517以向马达505提供电力。开关网络517控制马达505可用的电流量,从而控制马达505的转速和扭矩输出。模式板527允许用户选择电动工具500的模式,并向用户指示电动工具500的当前所选模式。在一些实施例中,模式板527包括单个致动器。在这样的实施例中,用户可以基于例如模式板527的致动次数来选择电动工具500的操作模式。例如,当用户激活致动器三次时,电动工具500可以在第三操作模式下操作。在其他实施例中,模式板527包
括多个致动器,每个致动器对应于不同的操作模式。例如,模式板527可以包括四个致动器,当用户激活这四个致动器之一时,电动工具500可以在第一操作模式下操作。电子处理器550经由模式板527接收用户对操作模式的选择,并控制开关网络517使得马达505根据所选操作模式进行操作。在一些实施例中,电动工具500不包括模式板527。在这样的实施例中,电动工具500可以在单一模式下操作,或者可以包括用于选择电动工具500的操作模式的不同选择机制。在一些实施例中,如下文更详细描述的,电动工具500(例如,电子控制组件536)使用例如机器学习控制器540自动选择电动工具500的操作模式。在一些实施例中,模式板527或其他用户输入565可以被设置为配置要进行计数的阶梯式钻头的阶梯数或配置如本文所述的用于自动检测阶梯的其他参数。
[0100]
传感器530联接到电子处理器550,并向电子处理器550传送指示电动工具500或马达505的不同参数的各种输出信号。传感器530包括例如霍尔效应传感器,马达电流传感器,马达电压传感器,温度传感器,扭矩传感器,诸如加速度计或陀螺仪等位置或运动传感器,诸如激光距离传感器、红外(ir)距离传感器、超声波距离传感器等距离传感器,等等。在一些实施例中,电动工具可以包括多个距离传感器以允许电子处理器550确定从电动工具500上的各个点到工件的距离。通过确定电动工具上的各个点与工件之间的距离,电子处理器550可以确定工具是否与工件成斜角。
[0101]
霍尔效应传感器向电子处理器550输出马达反馈信息,比如与马达的位置、速度和马达505的转子的加速度有关的指示(例如,脉冲)。在一些实施例中,电子处理器550使用来自霍尔效应传感器的马达反馈信息来控制开关网络517以驱动马达505。例如,通过选择性地启用和禁用开关网络517,选择性地向马达505提供电力以使马达以特定转速、特定扭矩或其组合旋转。电子处理器550还可以基于包括在电动工具500中的其他传感器来控制开关网络517和马达505的操作。例如,在一些实施例中,电子处理器550基于指示由电动工具500递送的冲击次数的传感器输出信号、指示电动工具500的砧转速的传感器输出信号等来改变控制信号。来自传感器的输出信号用于确保对开关网络517的控制信号的正确定时,并且在一些情况下,提供闭环反馈以将马达505的转速控制在目标范围内或处于目标水平。
[0102]
指示器535也联接到电子处理器550。指示器535从电子处理器500接收控制信号以生成视觉信号,以将关于电动工具500的操作或状态的信息传达给用户。指示器535可以包括例如led、扬声器或显示屏,并且可以生成指示例如电动工具500的操作状态或模式、在电动工具500的操作期间检测到的异常状况或事件等的各种信号。例如,指示器530可以指示所测量的电动工具500的电气特性、电动工具500的状态或状况、电动工具500的操作模式(下文将进一步详细讨论)等。在一些实施例中,指示器535包括通过听觉或触觉输出向用户传达信息的元件。在一些实施例中,电动工具500不包括指示器535。在一些实施例中,电动工具500的操作提醒用户关于电动工具的状况。例如,马达505的快速减速可以指示存在异常状况。在一些实施例中,电动工具500与外部设备107通信,并且外部设备107生成将信息传达给用户的图形用户界面,而无需电动工具500本身上的指示器535。
[0103]
电源接口515联接到电源输入控制520。电源接口515将从外部电源接收的电力传输给电源输入控制520。电源输入控制520包括有源部件和/或无源部件(例如,降压控制器、电压转换器、整流器、滤波器等),以调节或控制通过电源接口515接收的到电子处理器550和电动工具500的其他部件(比如无线通信设备525)的电力。
[0104]
无线通信设备525联接到电子处理器550。在图1至图4a和图4c的示例电动工具105、205、305、405中,无线通信设备525位于电动工具105、205、305、405(参见图1至图4)的支脚附近,以节省空间并确保马达505的磁活动不会影响电动工具500与服务器110、210、310、410之间或与外部设备107之间的无线通信。在特定示例中,无线通信设备525位于模式板527下方。无线通信设备525可以包括例如无线电收发器和天线、存储器、处理器和实时时钟。无线电收发器和天线一起操作以向外部设备107、第二电动工具500或服务器110、210、310、410和处理器发送无线消息并从其接收无线消息。无线通信设备525的存储器存储将由处理器实施的指令和/或可以存储与电动工具500与外部设备107、第二电动工具500或服务器110、210、310、410之间的通信相关的数据。无线通信设备525的处理器控制电动工具500与外部设备107、第二电动工具500或服务器110、210、310、410之间的无线通信。例如,无线通信设备525的处理器缓冲传入和/或传出的数据,与电子处理器550通信,并确定要在无线通信中使用的通信协议和/或设置。
[0105]
在一些实施例中,无线通信设备525是控制器。控制器与外部设备107、第二电动工具500或服务器110、210、310、410采用协议进行通信。因此,在这样的实施例中,外部设备107、第二电动工具500或服务器110、210、310、410和电动工具500在它们交换数据时处于彼此的通信范围内(即,接近彼此)。在其他实施例中,无线通信设备525在不同类型的无线网络上使用其他协议(例如,wi-fi、蜂窝协议、专用协议等)进行通信。例如,无线通信设备525可以被配置为通过比如因特网等广域网或局域网经由wi-fi进行通信,或者通过微微网(例如,使用红外或nfc通信)进行通信。经由无线通信设备525的通信可以被加密以保护在电动工具500与外部设备107、第二电动工具500或服务器110、210、310、410之间交换的数据不受第三方影响。
[0106]
在一些实施例中,无线通信设备525包括实时时钟(rtc)。rtc独立于其他电动工具部件递增和保持时间。rtc在外部电源连接到电动工具500时从电源接口515接收电力,并且在外部电源未连接到电动工具500时可以从备用电源接收电力。rtc可以对来自电动工具500的操作数据加时间戳。另外,当rtc的时间超过由用户确定的锁定时间时,rtc可以启用安全特征,其中电动工具500被禁用(例如,锁定并且变得不可操作)。
[0107]
在一些实施例中,无线通信设备525从电动工具500(例如,从电动工具电子处理器550)导出工具使用数据、维护数据、模式信息、驱动设备信息等。例如,导出的数据可以指示工作何时完成以及该工作是否已按规范完成。导出的数据还可以提供已执行工作的时间顺序记录、跟踪工具使用的持续时间等。服务器110、210、310、410直接从无线通信设备525或通过外部设备107接收导出的信息,并记录从电动工具500接收的数据。如下文更详细讨论的,导出的数据可以被电动工具500、外部设备107或服务器110、210、310、410用来训练或适配与类似电动工具相关的机器学习控制器。无线通信设备525还可以从服务器110、210、310、410、外部设备107或第二电动工具500接收信息,比如配置数据、操作阈值、维护阈值、模式配置、对电动工具的编程500、用于电动工具500的更新的机器学习控制器等。例如,无线通信设备525可以直接或经由外部设备107与第二电动工具500交换信息。
[0108]
在一些实施例中,电动工具500不与外部设备107或不与服务器110、210、310、410通信(例如,图4b中的电动工具405)。相应地,在一些实施例中,电动工具500不包括上述无
线通信设备525。在一些实施例中,电动工具500包括有线通信接口以与例如外部设备107或不同设备(例如,另一个电动工具500)通信。有线通信接口可以提供比无线通信设备525更快的通信路由。
[0109]
在一些实施例中,电动工具500包括数据共享设置。数据共享设置指示将什么数据(如果有的话)从电动工具500导出到服务器110、210、310、410。在一个实施例中,电动工具500接收(例如,经由外部设备107生成的图形用户界面)对要从电动工具500导出的数据类型的指示。在一个实施例中,外部设备107可以显示用于电动工具500的数据共享的各种选项或级别,并且外部设备107经由其生成的图形用户界面接收用户选择。例如,电动工具500可以接收仅从电动工具500导出使用数据(例如,马达电流和电压、递送的冲击次数、与每次冲击相关联的扭矩等)的指示,而可以例如不导出关于由电动工具500实施的模式、电动工具500的位置等的信息。在一些实施例中,数据共享设置可以是是否将关于电动工具500的操作的数据(例如,使用数据)传输到服务器110、210、310、410的二元指示。电动工具500接收用户对数据共享设置的选择并将数据共享设置存储在存储器中以根据所选数据共享设置来控制无线通信设备525的通信。
[0110]
电子控制组件536电气地和/或通信地连接到电动工具500的各种模块或部件。电子组件536基于来自机器学习控制器540的输出和确定来控制马达505。特别地,电子控制组件136包括电子处理器550(也称为电子控制器)、机器学习控制器540和对应的激活开关545。在一些实施例中,电子处理器550包括为电子处理器550和/或电动工具500内的部件和模块提供电力、操作控制和保护的多个电气部件和电子部件。例如,电子处理器550尤其包括处理单元557(例如,微处理器、微控制器或另一个合适的可编程设备)、存储器560、输入单元565和输出单元570。处理单元557尤其包括控制单元572、算术逻辑单元(“alu”)574和多个寄存器576。在一些实施例中,电子处理器550部分地或全部在半导体(例如,现场可编程门阵列[“fpga”]半导体)芯片或专用集成电路(“asic”)(比如通过寄存器传输级(“rtl”)设计过程开发的芯片)上实施。
[0111]
例如,存储器560包括程序存储区域580和数据存储区域582。程序存储区域580和数据存储区域582可以包括不同类型存储器的组合,比如只读存储器(“rom”)、随机存取存储器(“ram”)(例如,动态ram[“dram”]、同步dram[“sdram”]等)、电可擦除可编程只读存储器(“eeprom”)、闪速存储器、硬盘、sd卡或其他合适的磁存储器设备、光存储器设备、物理存储器设备或电子存储器设备。电子处理器230连接到存储器560并执行软件指令,这些软件指令能够存储在存储器560的ram(例如,在执行期间)中、存储器560的rom(例如,通常永久地)中或者如另一存储器或盘等另一非暂态计算机可读介质中。包括在电动工具500的实施方式中的软件可以存储在电子处理器550的存储器560中。该软件包括例如固件、一个或多个应用程序、程序数据、过滤器、规则、一个或多个程序模块以及其他可执行指令。在一些实施例中,机器学习控制器540可以存储在电子处理器550的存储器560中并且由处理单元557执行。
[0112]
电子处理器550被配置为从存储器560进行检索并尤其执行与本文描述的控制过程和方法相关的指令。电子处理器550还被配置为在存储器560上存储电动工具信息,包括工具使用信息、标识工具类型的信息、特定工具的唯一标识符、用户特性(例如,身份、行业类型、技能水平)、以及与操作或维护电动工具500相关的其他信息(例如,从诸如外部设备
107等外部源接收的或在制造时预编程的信息)。工具使用信息(比如电流水平、马达转速、马达加速度、马达方向、冲击次数)可以从传感器530输出的数据中捕获或推断。更具体地,表3示出了可以由电子处理器550捕获或推断的工具使用信息的示例类型。在其他构造中,电子处理器550包括附加的、更少的或不同的部件。
[0113][0114]
机器学习控制器540联接到电子处理器550和激活开关545。激活开关545在激活状态与停用状态之间切换。当激活开关545处于激活状态时,电子处理器550与机器学习控制器540通信并从机器学习控制器540接收决策输出。当激活开关545处于停用状态时,电子处理器550不与机器学习控制器540通信。换言之,激活开关545选择性地启用和禁用机器学习控制器540。如上文关于图1至图4d所描述的,机器学习控制器540包括训练后的机器学习控制器,其利用先前收集的电动工具使用数据来分析和分类来自电动工具500的新使用数据。
如下文更详细解释的,机器学习控制器540可以识别电动工具的状况、应用和状态。在一个实施例中,激活开关545在激活状态与停用状态之间切换。在这样的实施例中,当激活开关545处于激活状态时,电子处理器550基于来自机器学习控制器540的确定来控制电动工具500的操作(例如,改变马达505的操作)。否则,当激活开关545处于停用状态时,机器学习控制器540被禁用并且机器学习控制器540不影响电动工具500的操作。然而,在一些实施例中,激活开关545在激活状态与后台状态之间切换。在这样的实施例中,当激活开关545处于激活状态时,电子处理器550基于来自机器学习控制器540的确定或输出来控制电动工具500的操作。然而,当激活开关545处于后台状态时,机器学习控制器540继续基于电动工具500的使用数据生成输出并且可以计算(例如,确定)阈值或其他操作水平,但是电子处理器550不基于来自机器学习控制器540的确定和/或输出来改变电动工具500的操作。换言之,在这样的实施例中,机器学习控制器540在后台运行而不影响电动工具500的操作。在一些实施例中,电动工具500上不包括激活开关545,并且机器学习控制器540保持在启用状态或经由例如来自服务器或来自外部设备107(例如,服务器110、210、310、410)的无线信号而被控制为启用和禁用。
[0115]
如图5b所示,机器学习控制器540包括电子处理器575和存储器580。存储器580存储机器学习控件585。机器学习控件585可以包括如上文关于图1至图4d所描述的训练后的机器学习程序。在所示实施例中,电子处理器575包括图形处理单元。在图5b的实施例中,机器学习控制器540作为电动工具500的电子处理器550定位在单独的印刷电路板(pcb)上。电子处理器550的pcb和机器学习控制器540例如用电线或电缆联接以使电动工具500的电子处理器550能够基于来自机器学习控制器540的输出和确定来控制马达505。然而,在其他实施例中,机器学习控件585可以存储在电子处理器550的存储器560中并且可以由处理单元557实施。在这样的实施例中,电子控制组件536包括单个电子处理器550。在又一些实施例中,机器学习控制器540在单独的电子处理器575中实施,但与电动工具500的电子处理器550定位在同一pcb上。将机器学习控制器540实施为与电子处理器550分离的处理单元的实施例,无论是在相同的还是不同的pcb上,都允许选择处理单元来实施机器学习控制器540和电子处理器550中的每一个,该处理单元具有针对每个单元的特定需求定制的能力(例如,处理能力和内存容量)。这种定制可以降低成本并提高电动工具的效率。在一些实施例中,如图4c所示,例如,外部设备107包括机器学习控制器540,并且电动工具500与外部设备107通信以从机器学习控制器540接收估计或分类。在一些实施例中,机器学习控制器540在易于添加到电动工具500的插入式芯片或控制器中实施。例如,机器学习控制器540可以包括插入式芯片,该插入式芯片被接收在电动工具500的空腔内并且连接到电子处理器550。例如,在一些实施例中,电动工具500包括可锁定隔室,该可锁定隔室包括电触点,该可锁定隔室被配置为接收并电连接到插入式机器学习控制器540。电触点实现插入式机器学习控制器540与电子处理器550之间的双向通信,并使插入式机器学习控制器540能够从电动工具500接收电力。
[0116]
如上文关于图1所讨论的,机器学习控件585可以由服务器110构建和操作。在其他实施例中,机器学习控件585可以由服务器110构建,但由电动工具500(类似于图2和图3)实施,并且在又一些实施例中,电动工具500(例如,电子处理器550、电子处理器575或它们的组合)构建并实施机器学习控件585(类似于图4b)。图6展示了构建和实施机器学习控件585
的方法600。方法600是关于电动工具500描述的,但是如之前关于图5描述的,电动工具500代表在图1至图4c的相应系统中描述的电动工具105、205、305、405。相应地,类似的方法可以由图1至图4d的相应系统的电动工具105、205、305、405实施。在步骤605中,服务器电子处理器425访问先前从类似电动工具收集的工具使用信息。另外,服务器电子处理器425访问用户特性信息,比如在电动工具收集工具使用信息时使用相应电动工具的用户的特性信息。例如,为了构建用于图1至图4c和图5a的冲击驱动器的机器学习控件585,服务器电子处理器425访问先前从其他冲击驱动器(例如,经由网络115)收集的工具使用数据。工具使用数据包括例如马达电流、马达电压、马达位置和/或速度、使用时间、电池荷电状态、电动工具的位置、输出轴的位置或速度、冲击次数等。另外,服务器电子处理器425访问先前收集的用户特性信息(例如,经由网络115)。服务器电子处理器425然后继续基于工具使用数据、用户特性信息或两者来构建和训练机器学习控件585(步骤610)。
[0117]
构建和训练机器学习控件585可以包括例如确定机器学习架构(例如,使用支持向量机、决策树、神经网络或不同的架构)。在构建和训练神经网络的情况下,例如,构建神经网络还可以包括确定输入节点的数量、隐藏层的数量、每个节点的激活函数、每个隐藏层的节点数量、输出节点的数量等。训练机器学习控件585包括向机器学习控件585提供训练样例并且使用一种或多种算法来设置机器学习控件585的各种权重、余量或其他参数以进行可靠的估计或分类。
[0118]
在一些实施例中,构建和训练机器学习控件585包括构建和训练循环神经网络。循环神经网络允许分析输入序列,而不是单独处理每个输入。即,循环神经网络可以使其对给定输入的确定或输出不仅基于该特定输入的信息,还可以基于先前输入。例如,当机器学习控件585被配置为识别与电动工具500一起使用的阶梯式钻头的类型时,机器学习控件585可以确定由于最后三个操作使用了特定阶梯式钻头,所以第四次操作也可能使用相同的阶梯式钻头。使用循环神经网络有助于补偿机器学习控件585由于提供和考虑有关特定操作的背景而做出的一些错误分类。相应地,在实施循环神经网络时,学习率不仅会影响每个训练样例如何影响整个循环神经网络(例如,调整权重、偏置等),还会影响每个输入如何影响下一个输入的输出。
[0119]
服务器电子处理器425构建并训练机器学习控件585以执行特定任务。例如,在一些实施例中,机器学习控件585被训练以识别电动工具500所用于的应用(例如,用于使用阶梯式钻头钻孔)。在其他实施例中,机器学习控件585被训练以检测有害状况何时存在或突出(例如,检测反冲)。训练机器学习控件585所针对的任务可以基于例如电动工具500的类型、来自用户的选择、电动工具所用于的典型应用、用户特性信息等而变化。图12a至图15扩展了构建和训练机器学习控件585所针对的特定任务的示例。服务器电子处理器425基于特定任务使用不同的工具使用数据来训练机器学习控件585。
[0120]
在一些实施例中,机器学习控制器540(例如,机器学习控件585)的特定任务还定义了机器学习控件585的特定架构。例如,对于第一组任务,服务器电子处理器425可以构建支持向量机,而对于第二组任务,服务器电子处理器425可以构建神经网络。在一些实施例中,每个任务或任务类型与特定架构相关联。在这样的实施例中,服务器电子处理器425基于任务和与特定任务相关联的机器学习架构来确定机器学习控件585的架构。
[0121]
在服务器电子处理器构建并训练机器学习控件585之后,服务器电子处理器425将
机器学习控件585存储在例如服务器110的存储器430中(步骤615)。附加地或可替代地,服务器电子处理器425将训练后的机器学习控件585传输到电动工具500。在这样的实施例中,电动工具500将机器学习控件585存储在机器学习控制器540的存储器580中。在一些实施例中,例如,当机器学习控件585由电动工具500的电子处理器550实施时,电动工具500将机器学习控件585存储在电子控制组件536的存储器560中。
[0122]
一旦机器学习控件585被存储,电动工具500就根据(或基于)来自机器学习控制器540的输出和确定来操作马达505(步骤620)。在机器学习控制器540(包括机器学习控件585)在服务器110、210中实施的实施例中,服务器110、210可以根据来自机器学习控制器540的输出和确定来确定操作阈值。服务器110、210然后将确定的操作阈值传输到电动工具500以控制马达505。
[0123]
机器学习控制器540的性能取决于用于训练机器学习控制器540的数据的数量和质量。相应地,如果(例如,由服务器110、210、310、410)使用不充分的数据来训练机器学习控制器540,则机器学习控制器540的性能可能会降低。可替代地,不同的用户可能具有不同的偏好,并且可以针对不同的应用并以稍微不同的方式操作电动工具500(例如,一些用户可能用更大的力将电动工具500压靠在工作表面上,一些用户可能更喜欢更快的完成转速等)。从用户的角度来看,电动工具500的这些使用差异也可能损害机器学习控制器540的一些性能。
[0124]
可选地,为了提高机器学习控制器540的性能,在一些实施例中,服务器电子处理器425从电动工具500(或外部设备107)接收与机器学习控制器540的性能相关的反馈(步骤625)。换言之,至少在一些实施例中,反馈是关于较早步骤620的马达控制。然而,在其他实施例中,电动工具500不接收与机器学习控制器540的性能相关的用户反馈,而是继续通过执行机器学习控件585来操作电动工具500。如下文进一步详细解释的,在一些实施例中,电动工具500包括用于提供关于机器学习控制器540的性能的反馈的特定反馈机制。在一些实施例中,外部设备107还可以提供从用户接收与机器学习控制器540的操作相关的反馈的图形用户界面。外部设备107然后将反馈指示传输到服务器电子处理器425。在一些实施例中,电动工具500可以仅向服务器110、210、310、410提供负反馈(例如,当机器学习控制器540表现不佳时)。在一些实施例中,服务器110、210、310、410可以将缺乏来自电动工具500(或外部设备107)的反馈视为指示机器学习控制器540的足够性能的正反馈。在一些实施例中,电动工具500接收并向服务器电子处理器425提供正反馈和负反馈两者。在一些实施例中,作为(例如,直接输入到电动工具500的)用户反馈的补充或替代,电动工具500经由一个或多个传感器530感测一个或多个电动工具特性,并且反馈是基于感测到的(多个)电动工具特性。例如,在电动工具500的扭矩扳手实施例中,扭矩扳手包括扭矩传感器以在阶梯式钻头操作期间感测输出扭矩,并且感测到的输出扭矩被提供为反馈。可以在电动工具500上本地评估感测的输出扭矩,或者在外部设备107或服务器电子处理器425上通过外部方式评估,以确定反馈是正的还是负的(例如,当感测到的输出扭矩在可接受的扭矩范围内时反馈可以是正的,并且当在可接受的扭矩范围之外时为负的)。如上文所讨论的,在一些实施例中,电动工具500可以将反馈或其他信息直接发送到服务器110、210、310、410,而在其他实施例中,外部设备107可以用作电动工具500与服务器110、210、310、410之间的通信桥梁,并且可以将反馈发送到服务器110、210、310、410。
[0125]
服务器电子处理器425然后基于接收到的用户反馈调整机器学习控件585(步骤630)。在一些实施例中,服务器电子处理器425在接收到预定数量的反馈指示之后(例如,在接收到100个反馈指示之后)调整机器学习控件585。在其他实施例中,服务器电子处理器425在预定时间段过去之后(例如,每两个月)调整机器学习控件585。在又一些实施例中,服务器电子处理器425连续地(例如,在接收到每个反馈指示之后)调整机器学习控件585。调整机器学习控件585可以包括例如使用附加反馈作为新的训练数据集来重新训练机器学习控制器540,或调整机器学习控制器540的一些参数(例如,权重、支持向量等)。因为机器学习控制器540已经针对特定任务进行了训练,所以用较小的较新数据集重新训练机器学习控制器540需要比机器学习控制器540的初始训练更少的计算资源(例如,时间、内存、计算能力等)。
[0126]
在一些实施例中,机器学习控件585包括强化学习控件,该强化学习控件允许机器学习控件585持续整合用户接收的反馈以优化机器学习控件585的性能。在一些实施例中,强化学习控件基于机器学习控件585的性能周期性地评估奖励函数。在这样的实施例中,训练机器学习控件585包括增加电动工具500的操作时间,使得强化学习控件585接收足够的反馈以优化机器学习控件585的执行。在一些实施例中,当机器学习控件585实施强化学习时,在制造期间或之前执行第一阶段的操作(例如,训练),使得当用户操作电动工具500时,机器学习控件585可以实现预定的最低性能(例如,准确性)。一旦用户操作他/她的电动工具500,机器学习控件585就可以继续学习和评估奖励函数以进一步提高其性能。相应地,电动工具最初可设置有稳定且可预测的算法,该算法可以随时间而适配。在一些实施例中,强化学习被限于机器学习控件585的一部分。例如,在一些实施例中,不是潜在地更新机器学习控件585的全部或大部分的权重/偏置,这可能需要大量的处理能力和内存,而是实际模型保持冻结或大部分冻结(例如,除了最后一层(多层)或输出之外),并且仅基于反馈而更新机器学习控件585的一个或几个输出参数或输出特性。
[0127]
在一些实施例中,机器学习控制器540将用户对电动工具500的操作解释为与机器学习控制器540的性能相关的反馈。例如,如果用户在特定模式的执行期间更用力地按下触发器,则机器学习控制器540可以确定由机器学习控制器540选择的马达转速不够高,并且可以直接增加马达转速,使用接收的反馈来重新训练或修改机器学习控制器或其组合。相应地,电动工具500的操作可以在电动工具500的触发器510的两次相同的连续拉动之间变化。在一些实施例中,变化的量基于用户反馈、学习率或这两者。例如,下表4指示了用户对电动工具500的一些控制,以及机器学习控制器540如何将各种类型的控制解释为与机器学习控制器540相关的反馈。这种类型的反馈可以允许机器学习控制器540在例如机器学习控制器540缺少与电动工具500的操作相关的一些信息时确定适当的马达控制阈值和参数。例如,这些反馈机制使得机器学习控制器540可以改变操作模式以使用阶梯式钻头钻出未知长度的孔。
[0128][0129]
在一些实施例中,在例如框625中,服务器110、210、310、410从各种不同的电动工具接收工具使用数据。相应地,当服务器电子处理器425基于用户反馈调整机器学习控件585(框630)时,服务器电子处理器425可以基于来自各种用户的反馈来调整机器学习控件585。在机器学习控制器540完全在电动工具500上实施的实施例中(例如,如上文关于图4a至图4b所讨论的),电子处理器550可以仅使用来自电动工具405的反馈指示来调整同一电动工具405的机器学习控制器420。换言之,一些电动工具500可以仅使用来自特定用户的反馈信息来调整机器学习控件585。使用来自特定用户的反馈信息可以帮助为该特定工具的用户定制电动工具500的操作。
[0130]
在服务器电子处理器425基于用户反馈调整机器学习控制器540之后,电动工具500根据来自调整后的机器学习控制器540的输出和确定进行操作(步骤635)。在一些实施例中,比如图3的电动工具系统300,服务器310将调整后的机器学习控件585传输到电动工具500。然后,电动工具500将调整后的机器学习控件585存储在机器学习控制器540的存储器580中(或存储在电动工具500的存储器560中),并根据调整后的机器学习控制器540来操
作马达505。调整后的机器学习控制器540通过使用更大和更多样化的数据集(例如,通过接收来自不同用户的反馈指示)来提高其性能以训练机器学习控制器540。
[0131]
在一些实施例中,用户还可以选择机器学习控制器540的学习率。基于接收到的用户反馈调整机器学习控制器540的学习率会影响机器学习控制器540的调整速度。例如,当学习率高时,即使来自用户(或多个用户)的少量反馈指示也会影响机器学习控制器540的性能。另一方面,当学习率较低时,来自用户的更多反馈指示被用于创建机器学习控制器540的相同性能改变。使用太高的学习率可能导致机器学习控制器540由于电动工具500的异常操作而不必要地改变。另一方面,使用太低的学习率可能导致机器学习控制器540在接收到请求类似改变的大量反馈指示之前保持不变。在一些实施例中,电动工具500包括专用致动器以调整机器学习控制器540的学习率。在另一个实施例中,用于启用或禁用机器学习控制器540的激活开关545也可以用于调整机器学习控制器540的学习率。例如,激活开关545可以包括旋转拨盘。当旋转拨盘位于第一端时,机器学习控制器540可以被禁用,随着旋转拨盘向与第一端相反的第二端移动,机器学习控制器540被启用并且学习率增加。当旋转拨盘达到第二端时,学习率可以处于最大学习率。在其他实施例中,外部设备107(例如,智能手机、平板电脑、膝上型计算机、asic等)可以与电动工具500通信地联接并且提供用户界面以例如选择学习率。在一些实施例中,学习率的选择可以包括选择低、中或高学习率。在其他实施例中,更多或更少的选项可用于设置学习率,并且可以包括关闭学习的能力(即,将学习率设置为零)。
[0132]
如上文所讨论的,当机器学习控制器540实施循环神经网络时,学习率(或有时称为“切换率”)影响先前输入或训练样例如何影响当前输入或训练样例的输出。例如,当切换率很高时,先前输入对与当前输入相关联的输出的影响最小。即,当切换率高时,每个输入更多地被视为独立的输入。另一方面,当切换率较低时,先前输入与当前输入的输出具有高度相关性。即,当前输入的输出高度依赖于为先前输入确定的输出。在一些实施例中,用户可以与学习率相关地选择切换率(例如,使用相同的致动器)。然而,在其他实施例中,生成单独的致动器(或图形用户界面元素)以独立于学习率来改变切换率。设置切换率的方法或部件与上述关于设置学习率的方法或部件类似。
[0133]
图6的描述集中于服务器电子处理器425训练、存储和调整机器学习控件585。然而,在一些实施例中,电动工具500的电子处理器550可以执行上文关于图6描述的一些或所有步骤。例如,图4展示了示例电动工具系统400,其中电动工具405存储和调整机器学习控制器540。相应地,在该系统400中,电子处理器550执行上文关于图6描述的一些或所有步骤。类似地,在一些实施例中,机器学习控制器540的电子处理器575或外部设备107执行上文关于图6描述的一些或所有步骤。
[0134]
图7是展示了如图6的步骤620中提到的根据机器学习控制器540来操作电动工具500的方法700的流程图。在步骤705中,电动工具500从触发器510接收指示电动工具500将开始操作的触发信号。在电动工具500的操作期间,电子处理器550从传感器530接收输出传感器数据(步骤710)。如上文所讨论的,输出传感器数据提供与电动工具500的操作相关的变化信息(称为操作参数),包括例如马达位置、马达转速、主轴位置、主轴转速、输出扭矩、电动工具500的位置、电池包荷电状态、日期、时间、时间、自上次使用以来的时间、模式、离合器设置、方向、电池类型、侧手柄的存在、错误、过去应用历史和切换率、用户输入、外部输
入、挡位等,再次参见表3。电子处理器550然后将至少一些传感器数据提供给机器学习控制器540(步骤715)。在电子处理器550实施机器学习控件585的实施例中,电子处理器550绕过步骤715。当电动工具500例如在图1的电动工具系统100中不存储机器学习控制器540的本地副本时,电子处理器550将一些或全部传感器信息传输到服务器110,其中机器学习控制器540实时、近实时、在稍后的时间分析接收到的信息或根本不分析接收到的信息。
[0135]
传输到机器学习控制器540的传感器信息例如基于机器学习控制器540的特定任务而变化。如上文所讨论的,机器学习控制器的任务可以基于例如电动工具500的类型而变化。例如,在冲击驱动器的背景下,用于电动工具500的机器学习控制器540可以被配置为识别电动工具500的应用类型并且可以为每种应用类型使用特定的操作阈值。在这样的实施例中,电子处理器550可以传输例如马达505的转速、主轴的转速、电动工具的操作模式,但可以不发送电池包的荷电状态。机器学习控制器540然后基于接收到的传感器信息和与机器学习块540相关联的特定任务来生成输出(步骤720)。例如,在机器学习控制器540上执行的机器学习程序处理(例如,根据上述机器学习算法之一分类)接收到的传感器信息并生成输出。在以上示例中,机器学习控制器540的输出可以指示电动工具500正被用于的应用类型。电子处理器550然后基于来自机器学习控制器540的输出来操作马达505(步骤725)。例如,电子处理器550可以使用来自机器学习控制器540的输出来确定是否要改变任何操作阈值(例如,开始转速、最大转速、完成转速、旋转方向、冲击次数等)以提高电动工具500的操作效率。然后电子处理器550利用更新的操作阈值或范围来操作马达505。在另一示例中,输出可以指示工具的状况并且电子处理器550根据状况来控制马达。例如,并且如下文进一步详细描述的,该状况可以指示马达的输出扭矩值、检测到的障碍物、检测到的异常附件状况、检测到的反冲、或完成的操作(例如,完成阶梯式钻头的钻孔操作)。进而,可以基于该状况来控制马达停止、增加速度或减小转速,或者可以基于该状况以其他方式控制马达。尽管机器学习控制器540的特定任务可以如以下更详细描述的那样改变,但是电子处理器550使用机器学习控制器540的输出来例如更好地操作电动工具500并实现更高的操作效率。
[0136]
在一些实施例中,作为传感器数据的补充或替代,机器学习控制器540在步骤715中接收电动工具500的当前用户的用户特性,然后在步骤720中基于用户特性或基于用户特性和在步骤715中接收到的传感器数据来生成输出。在一些实施例中,作为在步骤725中控制马达的补充或替代,控制另一个电子可控元件。例如,在一些实施例中,电动工具的一个或多个led(例如,指示器535)被启用、禁用、改变其颜色或改变其亮度;改变电动工具的传动比(例如,增加或减小传动比,或从多个传动比中选择一个传动比),启用或禁用电动工具的螺线管,或针对故障或有噪的传感器来调整电子滤波率。
[0137]
在一些实施例中,服务器110、210、310、410可以存储各种机器学习控件585的选择,其中每个机器学习控件585被专门训练以执行不同的任务。在这样的实施例中,用户可以选择用电动工具500实施机器学习控件585中的哪一个。例如,外部设备107可以提供允许用户选择机器学习控件585的类型的图形界面。用户可以基于例如用户经常将电动工具500用于的应用(例如,如果用户经常安装石膏板)或常用的电动工具(例如,用户经常使用冲击驱动器)来选择机器学习控件585。在这样的实施例中,图形用户界面接收对机器学习控件585的类型的选择。外部设备107然后可以将用户的选择发送到服务器110、210、310、410。服务器110、210、310、410然后将对应的机器学习控件585传输到电动工具500,或者可以基于
来自用户选择的机器学习控件585的输出来传输更新的操作阈值。相应地,用户可以选择用机器学习控件585实施哪些功能,并且可以在电动工具500的操作期间改变服务器110、210、310、410或电动工具500实施的机器学习控件585的类型。
[0138]
图8a展示了提供致动器以接收关于电动工具500的操作并且特别是关于机器学习控制器540的操作的用户反馈的又一实施例。在所展示的实施例中,电动工具500包括第一致动器785和第二致动器790。在一些实施例中,每个致动器785、790可以与不同类型的反馈相关联。例如,第一致动器785的激活可以指示机器学习控制器540的操作是适当的(例如,正反馈),而第二致动器790的激活可以指示机器学习控制器540的操作是不适当的(例如,负反馈)。例如,当电子处理器550由于机器学习控制器540确定电动工具500正用于特定应用而实施不同的完成转速时,用户可以指示对完成转速的改变是不希望的。在其他实施例中,第一致动器785和第二致动器790(或另外的一对按钮)分别与增加和减小机器学习控制器540的学习率相关联。例如,当用户想要增加机器学习控制器540的学习率时,用户可以激活第一致动器785。图8a展示了电动工具500的手柄上的第一致动器785和第二致动器790。然而,在其他实施例中,第一致动器和第二致动器可定位在电动工具500的支脚上、手柄下方、或手柄上方的马达壳体部分上。
[0139]
在另一个实施例中,用户可以通过移动电动工具500本身来向电子处理器550提供反馈。例如,电动工具500可以包括向电子处理器550提供指示电动工具500的位置、取向或其组合的输出信号的加速度计和/或磁力计(例如,作为传感器530)。在这样的实施例中,如图8b所示的电动工具的顺时针或逆时针旋转可以向电子处理器550提供反馈信息。例如,顺时针旋转电动工具可以对应于请求电子处理器550增加马达505的转速,而逆时针旋转电动工具500可以对应于请求电子处理器550降低马达505的转速。在一些实施例中,电子处理器550可以使用类似的传感器检测电动工具500的摇晃运动。摇晃电动工具500可以指示电动工具500没有按照用户预期的那样运行以提供负反馈。例如,当机器学习控制器500确定对电动工具500的当前任务的错误应用时,用户可以摇晃电动工具500。如上文所讨论的,提供这样的反馈允许机器学习控制器540更新其参数以提高其性能。
[0140]
如上文所讨论的,机器学习控制器540与一个或多个特定任务相关联。机器学习控制器540基于机器学习控制器540被配置用于的特定任务从电动工具500和电子处理器550接收各种类型的信息。例如,图9展示了可以被机器学习控制器540用来生成输出、做出确定和预测等各种类型的信息的示意图900。在所示的图中,机器学习控制器540可以接收例如对电动工具500的操作时间的指示(例如,电动工具500在每个环节中使用多长时间、电动工具使用的各环节之间的时间量等)905、关于用于电动工具500的钻头、刀片或其他附件设备的变化的信息910、电池包的荷电状态915、电池包已经使用的时间量、电池包最近是否更换过920等。机器学习控制器540还可以接收关于与电动工具500一起使用的电池包类型923(例如,18v电池包)的信息。
[0141]
如上文所讨论的,模式板527选择电动工具的操作模式。操作模式可以指定电动工具500在该模式下的操作期间的操作参数和阈值。例如,每个操作模式可以定义最大扭矩、最小扭矩、平均扭矩、开始转速、完成转速、非冲击转速、冲击转速、转速斜坡(例如,马达505达到目标转速的速度有多快)、目标冲击次数、旋转方向、每个旋转方向的转速及其组合。两个或更多个操作参数或阈值的组合定义了工具使用配置文件或模式。当用户选择了模式
时,电子处理器550根据所选模式所指定的操作参数或阈值来控制马达505,这些操作参数或阈值可以存储在存储器560中。机器学习控制器540还接收关于电动工具500的操作模式的信息925,如例如与模式相关联的(多个)转速、模式扭矩、模式斜坡等。机器学习控制器还接收指示电动工具500的操作参数的传感器信息945,如例如马达电流、马达电压、触发器激活或来自触发器的反馈、电动工具的运动、马达转速、输出轴转速等。
[0142]
如上文所讨论的,机器学习控制器540还可以接收来自用户的反馈927以及对目标学习率的指示928。机器学习控制器540基于与机器学习控制器540相关联的特定任务使用上述各种类型的信息及其组合来生成各种输出。例如,在一些实施例中,机器学习控制器540为特定模式生成建议参数。机器学习控制器540可以生成建议的开始或完成转速930、建议的(多个)模式扭矩935和建议的模式斜坡940。电动工具500或外部设备107的图形用户界面可以显示针对特定操作模式的建议扭矩水平和建议触发斜坡。另外,机器学习控制器540可以确定可能的工件材料(例如,电动工具500是用在木头还是石膏板上)955。在一些实施例中,机器学习控制器540可以确定附接到电动工具500的钻头或刀片960的状况。在一些实施例中,机器学习控制器540还可以识别特定事件,比如超出目标阶梯、损坏钻头、反冲等。然后,电动工具500可以向用户生成已经检测到这样的事件或状况的指示,从而可以采取纠正措施。在一些实施例中,例如,当机器学习控制器540实施循环神经网络时,特定事件的识别被输入(例如,发送)到机器学习控制器540以帮助识别电动工具500的操作的其他事件和/或其他方面。例如,当机器学习控制器540确定已经超过目标阶梯时,机器学习控制器540然后可以在钻另外的(多个)孔时改变完成转速以防止在第二(多个)孔中超过目标阶梯。
[0143]
如上文所讨论的,机器学习控制器540的架构可以基于例如与机器学习控制器540相关联的特定任务而变化。在一些实施例中,机器学习控制器540可以包括神经网络、支持向量机、决策树、逻辑回归和其他机器学习架构。机器学习控制器540可以进一步利用内核方法或集成方法来扩展机器学习控制器540的基本结构。在一些实施例中,机器学习控制器540实施强化学习以基于从用户接收的反馈指示来更新机器学习控制器540。
[0144]
图10展示了用于机器学习控制器540的示例使用的图1000。在所示实施例中,机器学习控制器540被配置为识别由电动工具500驱动的阶梯式钻头的类型或阶梯式钻头配置文件。在这样的实施例中,机器学习控制器540接收例如转数1005、负载扭矩1010、马达转速1015、扭矩或转速斜坡斜率1020、关于负载是否单调增加的信息1025、关于在接近操作结束时负载是否迅速增加的信息1030、关于工具运动的信息1035(例如,电动工具500的旋转、来自加速度计的输出信号)以及电动工具500的所选操作模式1040。在一个实施例中,上述信息(操作参数)由电子处理器550基于来自传感器530的传感器数据、使用传感器数据进行算术运算(例如,计算斜率)以及传感器数据或计算的值与阈值的比较(例如,定义增大是否是快速的)而生成。然后,在电动工具500的每次操作完成之后(例如,在已经达到一个或多个阶梯、阶梯式钻头完全就位或阶梯式钻头已经被移除之后),机器学习控制器540接收所生成的信息。基于接收到的信息,机器学习控制器540确定在电动工具500的操作中使用的特性阶梯式钻头配置文件。在所示实施例中,机器学习控制器540可以利用例如具有多个输出的神经网络,使得每个输出对应于不同类型的阶梯式钻头配置文件。在一些实施例中,机器学习控制器540还可以生成指示无法识别阶梯式钻头的输出。
[0145]
在一个示例中,机器学习控制器540可以识别阶梯式钻头和/或阶梯式钻头过程的一个或多个特性,以从各种潜在阶梯式钻头配置文件类型中确定阶梯式钻头配置文件。例如,机器学习控制器540可以基于阶梯直径区分阶梯式钻头,或被设计用于钻入木材的阶梯式钻头与被设计用于金属的阶梯式钻头以及其他类型的阶梯式钻头(例如,参见图12a和图12b)。相应地,在图10所示的实施例中,机器学习控制器540的训练样例包括指示以下各项的输入向量:转数1005、负载扭矩1010、马达转速1015、扭矩或转速斜坡斜率1020、负载是否单调增加的指示1025、指示在接近操作结束时负载是否迅速增加的指示1030、关于工具运动的指示1035、所选操作模式1040、以及指示阶梯式钻头类型的输出标签。在所示实施例中,机器学习控制器540实施人工神经网络以执行该分类。人工神经网络包括例如六个输入节点和例如一百个输出节点。例如,每个输出节点对应于机器学习控制器540可识别的不同类型的阶梯式钻头,并且附加输出用于向电动工具500指示所讨论的阶梯式钻头不对应于任何可识别类型的阶梯式钻头。基于能够被区分的阶梯式钻头的数量,人工神经网络可以包括更多或更少的输出节点。在一些实施例中,神经网络包括包含单个节点的附加层。该附加层可以确定哪个输出节点具有最高值(这可以对应于阶梯式钻头的类型被识别为与该输出节点相对应的阶梯式钻头类型的概率),并输出与输出节点相关联的值(例如,一、二、三或四)。输出节点的值可以对应于由机器学习控制器540识别的阶梯式钻头的类型。
[0146]
在训练机器学习控制器540以识别有关阶梯式钻头和/或阶梯式钻头过程的一个或多个特性期间,机器学习控制器540调整与神经网络的每个节点连接相关联的权重,以实现可靠地对不同类型的阶梯式钻头进行分类的一组权重。如上文关于图1所讨论的,神经网络的每个节点可能有不同的激活网络,因此调整神经网络的权重也可能会受到与每一层或每个节点相关联的激活函数的影响。一旦神经网络被训练,机器学习控制器540就接收输入变量(例如,与每个输入变量相关联的值),并在神经网络的每一层上应用权重和连接。来自训练后的神经网络的一个或多个输出对应于机器学习控制器540可识别的特定类型的阶梯式钻头。来自训练后的神经网络的一个或多个输出还可以对应于与阶梯式钻头相关联的各种特性(例如,阶梯式钻头钝度、阶梯式钻头的阶梯的不均匀性等)和/或阶梯式钻头过程(例如,典型的用户正向速率、典型的施加的压力、材料性质,如厚度等)。在一些实施例中,机器学习控制器540可以使用阶梯式钻头和/或阶梯式钻头过程的特性来在未来操作中更好地识别阶梯。在其他实施例中,机器学习控制器可以向接收机器学习控制器540的输出的一个或多个后续计数或处理算法提供阶梯式钻头和/或阶梯式钻头过程的特性。
[0147]
图11是展示了使用机器学习控制器540识别阶梯式钻头类型的方法1050的流程图。方法1050还可以被配置为使用机器学习控制器540来确定阶梯式钻头的一个或多个特性,比如阶梯式钻头钝度、阶梯式钻头的阶梯的不均匀性和/或阶梯式钻头过程特性,比如典型的用户正向速率、典型的施加的用户压力和材料性质。在步骤1055处,电子处理器550从触发器510接收指示用户正在操作电动工具500的信号。电子处理器550开始操作电动工具500并从传感器530接收传感器数据(步骤1060)。如上文所讨论的,传感器数据指示电动工具的一个或多个操作参数,并且可以包括例如马达转速和/或位置信息、扭矩信息、冲击信息、工具运动信息、关于所选模式的信息等。电子处理器550然后将传感器数据的至少一个子集发送到机器学习控制器540(步骤1065)。如上文关于图10所讨论的,所示实施例的机器学习控制器540接收马达转速、扭矩和扭矩斜坡以及所执行的转数。机器学习控制器540
接收的一些信号可以由电子处理器550计算,而不是直接从传感器530接收。例如,电子处理器550可以确定电动工具500上的负载是否单调增加,或者负载是否在操作完成时迅速增加(例如,尖峰)。电子处理器550还在步骤1065中将(例如,由电子处理器550基于来自传感器530的信号计算或确定的)这些中间输入作为传感器数据发送到机器学习控制器540。在步骤1067中,机器学习控制器540还接收对电动工具500的所选操作模式的指示。
[0148]
机器学习控制器540然后生成标识电动工具500使用的阶梯式钻头的类型的输出(步骤1070)。如上文关于图10所讨论的,机器学习控制器540通过使用人工神经网络生成标识阶梯式钻头类型的输出。在其他实施例中,机器学习控制器540可以实施不同的架构来识别电动工具500使用的阶梯式钻头的类型。特别地,机器学习控制器540接收输入变量的值并使用这些值在神经网络的各层中使用节点连接权重和每个节点的激活函数来前进。如上所述,输出层可以包括指示电动工具500使用的阶梯式钻头的类型或指示机器学习控制器540无法识别阶梯式钻头的类型的一个或多个输出节点。
[0149]
在步骤1075中,基于所识别的阶梯式钻头的类型生成对电动工具的操作模式的建议改变。然后由电子处理器550将所生成的建议改变存储在存储器560的工具配置文件中作为操作参数或阈值(例如,作为在下文将进一步详细描述框1510中使用的进度阈值)。建议改变由从机器学习控制器540接收识别的阶梯式钻头类型的电子处理器生成,比如实施机器学习控制器540的电子处理器或不实施机器学习控制器540的另一个电子处理器,其取决于实施例可以是电子处理器550、外部设备107的电子处理器或服务器电子处理器425。可以使用所识别的阶梯式钻头类型作为查找表(存储在与特定电子处理器相关联的存储器中)的输入来生成建议改变,该查找表将阶梯式钻头类型映射到电动工具500的建议操作参数。在步骤1091中,机器学习控制器540根据改变的工具配置文件来操作马达505。
[0150]
机器学习控制器540具有各种应用并且可以为电动工具500提供分析各种类型的传感器数据和接收到的反馈的能力。通常,机器学习控制器540可以向电动工具500的用户提供各种级别的信息和可用性。例如,在一些实施例中,机器学习控制器540分析来自电动工具500的使用数据并提供帮助用户做出更有根据的决策的分析。下表5列出了机器学习控制器540的多个不同实施方式或应用。对于每个应用,表5列出了机器学习控制器540的潜在输入,这些输入将为机器学习控制器540提供足够的洞察力以提供(多个)列出的潜在输出。如上所述,输入由诸如传感器530或用户输入等各种源提供。
[0151]
[0152]
[0153][0154]
在一个实施例中,机器学习控制器540可以用于分析工具500的操作数据以识别当前使用该工具的用户。由于用户可能以不同的方式或针对不同的任务操作相同的工具500,机器学习控制器540可以基于识别的用户的特性(比如用户的行业、目前的地理区域、年龄、性别、力量、身体尺寸或任何其他期望的特性)改变电动工具500的操作或对机器学习控制器540的训练。相应地,相应电动工具500中的多个机器学习控制器540可以为相应用户提供电动工具500之间的类似体验。关于图7,例如,传感器信号被输入到机器学习控制器540(步骤715)。然后机器学习控制器可以基于传感器信号来输出(步骤720)当前使用工具的用户的身份,然后基于该输出(即,用户的身份)来操作工具(步骤725)。例如,电动工具可以基于当前使用工具的用户的身份(这可以指示用户偏好或用户特性)以降低的最大马达电流或更灵敏的抗反冲特征和降低的触发阈值来操作。用户的特定身份可以与本地存储在电动工
具500上或远程存储在外部系统设备上的查找表中的一个或多个用户偏好或特性相关联。在一些实施例中,用户的身份被反馈到机器学习控制器540的另一机器学习程序中,该机器学习程序用于生成马达的操作所基于的另一输出。
[0155]
在一个实施例中,机器学习控制器540可以用于在执行应用的工具500的开发期间分析工具500的运动数据,然后可以将所得的模式识别信息包括在出售的机器学习控制器540上,以使工具被预训练。
[0156]
在另一个实施例中,直接用户反馈(按钮、手动电话输入、摇晃/撞击工具、应用模式的超控)也可以是机器学习控制器540的有用输入。用户可以提供“在多大程度上服从机器学习控制器540的推荐与触发器”设置,使得存在超控能力。这可以经由app、工具输入(例如,滑块、拨盘、按钮)或经由触发器开关555(多级、输入功能、非线性触发条件等)。
[0157]
另外,机器学习控制器540的编程可以通过更新(例如,通过无线更新等)定期调整。具有“最常见应用”和其他定义特性或偏好(“我喜欢保留刀片而不是快速切割,”“我非常喜欢振动最小化”等)的用户输入都可以被馈入机器学习控制器540。在一些实施例中,用户偏好或特性在电动工具之间或跨电动工具持续存在。例如,对于最小化振动的用户偏好可以用于训练机器学习控制器540或操作用户先前使用的类似类型的电动工具。可替代地或附加地,这样的用户偏好或用户特性可以用于训练机器学习控制器540或操作用户先前使用的不同类型的电动工具。例如,可以向具有冲击驱动器中的最小化振动的偏好的用户提供具有针对最小化振动预训练的机器学习程序的往复式锯。
[0158]
相应地,如上文所讨论的,机器学习控制器540可以为电动工具500提供分析各种类型的传感器数据并通过以下方式中的一种或多种向用户提供反馈的能力:实施或建议改变电动工具500的操作模式,改变电动工具500的操作,或提供关于特定电动工具或电动工具设备(例如,电源盒)的使用的分析。
[0159]
如上所述,诸如电动工具105等电动工具可以用于各种目的。在一个具体应用中,电动工具(如钻头、冲击驱动器、螺丝刀、液压脉冲工具和冲击工具)可以被电动工具用户用来驱动阶梯式钻头并使用机器学习来改进阶梯式钻头的操作。
[0160]
传统上,用于改进工具操作的技术包括使用基于扭矩的机械或电气离合器(比如钻头和电动螺丝刀上的离合器);接触式传感器和离合器(比如螺丝刀上的传感器和离合器);以及其他工具中使用的不同工具模式。工具模式可能会限制诸如输出转速、马达电流或应用持续时间等参数,并且通常使用配置文件和/或基本状态机来执行期望的操作。这些工具模式存在于一些钻头、脉冲工具和冲击工具上。工具模式可以与多种感官输入一起使用,比如电流、电压、温度、触发器输入、运动、力、接触和位置检测(例如,冲击驱动器中的感应传感器)。这种工具模式的编程通常已被实施为一系列连续的工具状态(例如,基本状态机),其中电动工具可能需要从斜升状态移动到维持输出状态、到计数了固定冲击次数的状态、到停止状态。替代状态可以响应于信号而出现,比如在某些工具(如钻头)的情况下检测到反冲的情况下。
[0161]
一般工具模式的上述编程通常是固定的,这意味着没有采用记忆,不能使用来自先前使用的信号或结果并将其应用于未来运行以获得自适应特性输出响应。传统工具模式的编程通常关注点狭窄(如使用钻头)、控制简单(如设置目标转速),或者如果应用范围较广(如一般的
‘
扭矩水平’)则往往性能不一致。下表6展示了用于钻孔的传统电动工具与如
本文所述的机器学习阶梯式钻头电动工具的特征、方面和主题的比较。
[0162]
[0163]
[0164]
[0165][0166]
如上所述,可以在电动工具105上使用各种传感器以出于特定目的来实现机器学习。现在转到表7,其中示出了使用机器学习来实现使用阶梯式钻头进行钻孔操作的潜在传感器设备。
[0167][0168]
再次参考图10,提供了用于将机器学习控制器540与诸如电动工具500等电动工具一起使用的示例实施例。在示例实施例中,机器学习控制器540被配置为确定阶梯式钻头朝向联接到电动工具500的阶梯式钻头的目标阶梯的推进程度(例如,图12b中所示的阶梯式钻头1210的阶梯1212b)。在其他示例中,机器学习控制器540被配置为确定从一个阶梯到下一阶梯的有效推进。例如,机器学习控制器540确定阶梯式钻头何时接近推进到工件中与从
阶梯式钻头的前端到目标阶梯的距离长度相对应的深度的程度,并继续确定推进程度,直到(例如,在工件的表面)达到目标阶梯。在这样的实施例中,机器学习控制器540接收与工具500相关联的多个操作参数(输入)。这些操作参数可以包括转数1005、测量扭矩1010、特性转速1015、一个或多个电压1008、一个或多个电流1006、工具500的所选操作模式1040、流体温度1014(例如,用于液压脉冲工具)、工具与工件表面之间的距离或取向(例如,经由距离传感器提供)、以及工具运动信息1016(例如,经由陀螺仪、运动传感器等提供)。在一个实施例中,上述信息(操作参数)由电子处理器550基于来自传感器530的传感器数据、使用传感器数据进行算术运算(例如,计算扭矩)以及传感器数据或计算的值与阈值的比较(例如,定义操作参数的增大或降低是否是快速的)而生成。然后在工具操作期间由机器学习控制器540接收生成的信息。基于接收到的信息,机器学习控制器540确定阶梯式钻头的推进程度1018并将其输出到电子处理器550,并且电子处理器550相应地控制工具500的输出。例如,机器学习控制器540可以指示电子处理器550在推进正在接近目标阶梯时减慢工具的旋转,和/或在阶梯式钻头完全推进到工件中阶梯式钻头的长度达到目标阶梯时停止工具的操作。在一个实施例中,机器学习控制器540可以利用例如具有多个输出的神经网络,使得每个输出对应于工具500的转速值。在一些示例中,神经网络可以相对较小,从而允许电子处理器550执行机器学习控制器540的功能,而无需首先显著增加处理容量或能力,或者以其他方式升级处理器550的硬件。
[0169]
阶梯式钻头的配置文件、直径和整体特性可能变化很大。电动工具500捕获的传感器信号的清晰度取决于阶梯式钻头的特性以及阶梯式钻头正在钻入的工件的特性以及操作工具时的用户行为。图12a至图12b展示了阶梯式钻头的两个示例。阶梯式钻头1202包括多个阶梯,其中两个标记为阶梯1204a和阶梯1204b。阶梯式钻头1210也包括多个阶梯,其中三个被标记为阶梯1212a、阶梯1212b和阶梯1212c。阶梯式钻头1210具有比阶梯式钻头1202更大的长度,以及与阶梯式钻头1202不同的阶梯配置文件。例如,阶梯式钻头1202和1210的每个阶梯都具有相关联的直径。阶梯式钻头1202的直径范围大于阶梯式钻头1210的直径范围,阶梯式钻头1202的最大阶梯(阶梯1204b)大于阶梯式钻头1210的最大阶梯(阶梯1212c),并且阶梯式钻头1210的最小阶梯(未标记)小于阶梯式钻头1202的最小阶梯(未标记)。然而,阶梯式钻头1210的最大阶梯1212c大于阶梯式钻头1202的一个或多个较小阶梯。阶梯式钻头1202和1210可以分别联接到电动工具500并且基于本文描述的机器学习技术由马达505驱动。
[0170]
图13展示了用于检测随时间推进到金属板工件中的阶梯式钻头的阶梯的经缩放传感器输出值的曲线图1300。各种传感器530可以生成由工具500的机器控制器540接收的输出信号。传感器输出信号可用于检测和计数与电动工具500联接并由马达505驱动的阶梯式钻头的阶梯。例如,(多个)传感器530的输出信号可以指示(例如,马达或电池的)电流、(例如,马达或电池的)电压、触发器激活或拉动深度、马达转速(例如,基于感测转子旋转的霍尔传感器输出)、马达加速度(例如,基于感测转子旋转的霍尔传感器输出)、工具加速度计(例如,来自加速度计)、旋转运动或工具取向(例如,来自陀螺仪)、力或扭矩(例如,来自液压脉冲工具和钻头中的测力传感器)、锤和/或砧位置、部件运动(例如,针对液压脉冲工具和冲击)、感应位置感测(冲击)。参考图13的曲线图1300,数据表示阶梯式钻头进入1/8英寸的铝板以产生1/2英寸直径的孔。阶梯式钻头被配置用于从1/8英寸到1/2英寸的范围以
1/32英寸的增量制造十三个孔尺寸。传感器信号1402(来自陀螺仪530)、传感器信号1404(来自加速度计530)和传感器信号1406(来自电流传感器530)可以用于对推进到金属板工件中的阶梯进行计数。图13中的传感器信号示出了十三个阶梯响应,这在陀螺仪输出信号1402的输出中可能最为明显。该曲线图展示了由于信号中的广泛变化和噪声而导致的与计数阶梯式钻头的阶梯相关联的困难。然而,本文讨论的机器学习算法能够检测信号中捕获的阶梯。
[0171]
现在转到图14,提供了用于使用静态逻辑来训练和操作具有机器学习的电动工具(如电动工具500)的过程1400。在一个实施例中,机器学习由机器学习控制器执行,比如上述机器学习控制器540。然而,也可以使用其他机器学习控制器。在一些示例中,静态逻辑的使用可以降低用于实现机器学习的计算能力,比如由于需要更小的神经网络。通过降低所需的计算能力和/或其他处理资源,过程机器学习控制器540可以集成到处理器550中,如上所述。然而,如上所述,在其他示例中,机器学习控制器540可以具有其自己的处理器。
[0172]
在静态逻辑工具中,机器学习控制器540可以在工具被提供给用户之前(例如,在制造期间)被编程,并且随后不被更新。静态逻辑可以用于与阶梯式钻头联接的各种工具,比如钻头、脉冲或冲击工具。在一些实施例中,工具具有多种模式,比如阶梯式钻头模式和各种钻头类型模式。静态逻辑工具也可以是能够施加精准钻孔扭矩的钻头、脉冲或冲击工具。
[0173]
在过程框1402处,收集工具数据。在一些实施例中,工具数据是在产品开发和/或制造期间收集的。该工具可以在各种情况下使用以生成数据。使用了多个数据点,因为有许多变量可能会影响确定阶梯式钻头何时推进到工件中以及它推进的程度。如图14所示,包括陀螺仪信号1402、加速度计信号1404和电流传感器信号1406的传感器输出的示例指示阶梯式钻头的推进。信号1402、1404和1406的峰值说明检测到工件中达到的阶梯。因此,机器学习控制器540使用经由多个输入的多个数据点来有效地生成适当的算法。
[0174]
在一些实施例中,为了收集工具数据,阶梯式钻头的钻孔操作被执行多次和/或使用大量阶梯式钻头。对于每个阶梯式钻头操作,都会收集各种数据,如例如:阶梯式钻头的类型、长度;阶梯数;直径;材料类型和厚度;材料层数和顺序;用户体验、尺寸和年龄;电池类型、充电水平和使用年限;由工具传感器生成的感测数据(例如,电流、电压、加速度、温度、马达旋转速度、马达旋转加速度、扭矩);由外部传感器生成的感测数据(例如,扭矩、工具加速度);对阶梯式钻头推进的指示,以及对阶梯计数成功的指示。不同的用户可能会在用于生成数据的许多阶梯式钻头操作过程中操作工具,例如,不同的用户有不同的握持和操作工具的方式,这可能导致使用不同的力、转速等将阶梯式钻头推进到工件中。在数据收集期间,也可以改变并评估电源类型。例如,在工具540是电池供电工具的情况下,在收集工具数据期间可以使用各种电池,比如1.5ah、2ah、3ah、5ah、6ah、9ah和/或12ah的电池。此外,可以使用具有各种荷电状态的电池。在工具数据的收集期间,也可以使用或分层使用各种材料组合。在一个实施例中,这些组合是两层组合。然而,也可以设想分层组合的其他值。另外,可以使用多种不同类型的阶梯式钻头来收集工具数据。即使工具被编程为使用一种类型的阶梯式钻头,比如金属阶梯式钻头,也可以使用多种不同的长度和阶梯式钻头配置文件来收集工具数据。另外,之前在一个应用(甚至是未知或未标记的应用)上训练的模型可以用于帮助训练另一个应用(例如,石膏板数据或其他未标记的现场数据可能与用于为金
属设计的阶梯式钻头的模型有关)
[0175]
在一个示例中,扭矩值是使用液压脉冲工具内的测力传感器确定的。在一些实施例中,扭矩测量可以为机器学习控制器540提供更好的数据以确定阶梯式钻头的状况。例如,可以将特性扭矩(例如,每个脉冲所经历的持续加载量)直接馈送到循环神经网络(rnn)中。在其他示例中,可以将特性扭矩输入或缓冲到dnn或cnn中。机器学习控制器540然后可以使用特性扭矩来评估阶梯式钻头的状况。在一个实施例中,机器学习算法有助于估计工具的持续加载量以及其他传感器数据,尤其是当持续加载量变得更难确定时。
[0176]
在收集工具数据后,在过程框1404处建立和训练与机器学习控制器540相关联的机器学习控件,比如上述机器学习控件585。在一个实施例中,服务器电子处理器425构建和训练机器学习控件,如上所述。构建和训练机器学习控件585可以包括例如确定机器学习架构(例如,使用支持向量机、决策树、神经网络或不同的架构)。在构建和训练神经网络的情况下,例如,构建神经网络还可以包括确定输入节点的数量、隐藏层的数量、每个节点的激活函数、每个隐藏层的节点数量、输出节点的数量等。另外,构建神经网络可能涉及特征工程,由此选择理想的输入和潜在的滤波、组合或计算。此外,可以将神经网络输出提供给神经网络上的一个或多个输出滤波器,使得有噪的传感器数据估计过早地越过阈值。在一些实施例中,使用机器学习来优化输出滤波器的参数。训练机器学习控件585包括向机器学习控件585提供如上所述的那些训练样例并且使用一种或多种算法来设置机器学习控件的各种权重、余量或其他参数以进行可靠的估计和/或分类。
[0177]
在一些实施例中,构建和训练机器学习控件585包括构建和训练循环神经网络。循环神经网络(rnn)允许分析输入序列,而不是单独处理每个输入。即,循环神经网络可以使其对给定输入的确定或输出不仅基于该特定输入的信息,还可以基于先前输入。rnn可以以不同的方式操作。在第一示例中,每个工具操作或“运行”可以被认为是独立的,没有上次运行的先前记忆。然而,rnn可能会在运行期间聚合和使用部分或全部时间序列数据。因此,rnn的一个版本可以提供比具有滤波数据、处理数据、缓冲数据或原始数据的dnn更稳健的输出。rnn很方便,因为它们在多个步骤中处理数据,并且至少在一些实施例中,无需保存所有先前运行时间序列数据的存储器。该处理特别有用,因为运行的持续时间可能会有所不同并且可能相当长。此外,除了确定何时停止工具操作之外,rnn还可以高效地馈送控制输出转速的多个输出。
[0178]
在第二示例中,rnn还可以从一次运行中保存其状态的至少一部分,并在后续运行中使用它。例如,当机器学习控件585被配置为监测阶梯式钻头的推进时,机器学习控件585可以确定由于前三个操作将阶梯式钻头推进到第一直径,第四操作也可能推进到第一直径。使用rnn有助于补偿机器学习控件585由于提供和考虑有关特定操作的背景而做出的一些错误分类。其他用例包括识别特性用户手部刚度、工具的跳动度特性、电池状态、润滑脂性质、工件刚度、适配器的使用、附件的状况等。这些信息可以反馈到下一次运行或一系列运行中。作为另一示例,当机器学习控件585被配置为监测阶梯式钻头的推进时,机器学习控件585可以确定用户倾向于松手。典型rnn中的这些信息可能会被大量编码。然后可以在下一次运行中使用来自先前运行的松手信息,由此旋转或其他运动传感器可以在操作期间表现出更高程度的运动,因此算法可以在操作期间预期更夸张的运动信号,从而提高其一致性。
[0179]
有助于在后续运行之间传递的其他常见特性是对阶梯式钻头尖端锐度的估计、典型的用户进给速率、阶梯之间的典型间距、阶梯锐度、使用的电池类型(额定功率和/或其增加的质量)、典型的金属板厚度(例如其商业或住宅应用)等。然后机器学习控件585可以如上所述使用rnn确定要停止的阶梯式钻头的确切阶梯,或者在其他示例中,使用似然矩阵,如马尔可夫链,如下文进一步描述的。
[0180]
在第三示例中,rnn的另一种用途是使用基本非循环的神经网络,比如dnn或cnn,其中先前运行的一些输出子集作为一组输入馈送到机器学习算法中。一个示例是dnn,其通过更新可能用例的矩阵来识别特定阶梯式钻头的使用。然后将该可能用例的矩阵作为输入之一馈送到机器学习算法中。在信息从一个运行传递到下一个运行的上述一些示例中,信息可能会被滤波、隐藏、聚合或重置,具体取决于诸如使用案例之间的时间、模式切换、电池切换、指示工具运动的传感器数据、或附件更换等信息。可以使用更复杂的循环算法,其中先前检测到的钻孔状态为随后的特定阶梯式钻头提供导向孔。在一个示例中,这种复杂的算法是另一种rnn。在其他示例中,该算法是马尔可夫链的变体,它可以控制机器学习控件585的输入。
[0181]
在一些情况下,dnn或cnn可以用于阶梯可疑的位置附近或周围的信号或滤波信号。然后,dnn或cnn可以用于基于信号或滤波信号来评估典型的阶梯突出度。突出度信息可以在对应阶梯之前被馈入到以后的运行中,以再次帮助设置阈值标准。在该示例中,dnn或cnn的输入是在阶梯的每个短时间段上。dnn或cnn还可以用于获取与一个或多个可疑阶梯相关联的数据(例如,基于阶梯的突出度、阶梯的间距、其他特性等),并且随后输出可能正被使用的阶梯式钻头。这种类型的阶梯式钻头模型将有助于未来的分类。在该示例中,dnn或cnn的输入是在一系列单独的阶梯上,其中输入的一个维度最好对应于工具所采取的每个阶梯。
[0182]
如上所述,机器学习控件585被训练以执行特定任务,比如将阶梯式钻头准确地推进到工作材料中到指定阶梯。另外,机器学习控件585被训练以在确定阶梯水平和如何控制阶梯式钻头时检测和解释有害状况,比如材料变化、结、反冲等。训练机器学习控件585所针对的任务可以基于例如电动工具500的类型(例如,钻具/驱动器、脉冲、冲击等)、来自用户的选择、用户特性信息等而变化。
[0183]
在机器学习控件585已经被建立和训练之后,在过程框1406处保存机器学习控件。在一些实施例中,机器学习控件585被保存在服务器110的存储器430中。机器学习控件585也可以存储在机器学习控制器540的存储器580中。在一些实施例中,例如,当机器学习控件585由电动工具500的电子处理器550实施时,电动工具500将机器学习控件585存储在电子控制组件536的存储器560中。
[0184]
一旦机器学习控件585被存储,电动工具500在过程框1408处基于机器学习控件585以阶梯式钻头模式操作。下文关于图15的方法1500更详细地解释了用于在阶梯式钻头模式下操作电动工具500的各种示例技术。在机器学习控制器540(包括机器学习控件585)在服务器110、210中实施的实施例中,服务器110、210可以根据来自机器学习控制器540的输出和确定来确定操作阈值。服务器110、210然后将确定的操作阈值传输到电动工具500以控制马达505。
[0185]
如上所述,机器学习控制器540的性能取决于用于训练机器学习控制器540的数据
的数量和质量。相应地,如果(例如,由服务器110、210、310、410)使用不充分的数据来训练机器学习控制器540,则机器学习控制器540的性能可能会降低。可替代地,不同的用户可能具有不同的偏好并且可能以不同于其他用户的方式操作电动工具500(例如,一些用户可能以更大的力将电动工具500压靠在工作材料上,一些用户可能更喜欢更快的完成转速,等等)。从用户的角度来看,电动工具500的这些使用差异也可能损害机器学习控制器540的一些性能。
[0186]
自适应逻辑的使用允许某些逻辑是静态的,但也允许参数从一次运行到下一次运行之间发生变化。这些变化可以允许工具在操作之间更新给定阶梯式钻头的类型或特性(例如,材料硬度)的可能性。这种自适应逻辑提供了预测在钻孔操作期间接近的阶梯(并且可能减慢速度)的能力。自适应方面可以包括机器学习算法的阈值(比如本文所述的那些)、配置文件参数(例如,理想的斜升、最大转速等)、预期旋转等。在一个实施例中,自适应逻辑使用如上所述的rnn。在一个示例中,自适应逻辑用于突出显示从一次运行到下一次运行的信息,这些信息以不使用机器学习的方式进行处理(但实际上仍作为神经网络发挥作用,比如rnn)。一个示例是条件语句,由此如果工具在十分钟(或另一个指定的时间)内未被使用,则来自先前运行的历史信息将被重置为默认值。自适应方面可以对具有机器学习控件585的工具的输出性能产生实质性影响,而无需对整个机器学习逻辑进行潜在的计算密集训练。
[0187]
在一些实施例中,在过程框1410处,接收用户反馈。在一个实施例中,服务器电子处理器425从电动工具500(和/或外部设备107)接收与机器学习控制器540的性能相关的反馈。因此,在至少一些实施例中,反馈是关于较早步骤1408的马达控制。然而,在其他实施例中,电动工具500不接收与机器学习控制器540的性能相关的用户反馈,而是继续通过执行机器学习控件585来操作电动工具500。如上文所解释的,在一些实施例中,电动工具500包括用于提供关于机器学习控制器540的性能的反馈的特定反馈机制。在一些实施例中,外部设备107还可以提供从用户接收与机器学习控制器540的操作相关的反馈的图形用户界面。外部设备107然后将反馈指示传输到服务器电子处理器425。在其他实施例中,电动工具500可以仅向服务器110、210、310、410提供负反馈(例如,当机器学习控制器540表现不佳时)。
[0188]
在其他实施例中,服务器110、210、310、410可以将缺乏来自电动工具500(或外部设备107)的反馈视为指示机器学习控制器540的足够性能的正反馈。在一些实施例中,电动工具500接收并向服务器电子处理器425提供正反馈和负反馈两者。在一些实施例中,作为(例如,直接输入到电动工具500的)用户反馈的补充或替代,电动工具500经由一个或多个传感器530感测一个或多个电动工具特性,并且反馈是基于感测到的(多个)电动工具特性。例如,在电动工具500的脉冲工具实施例中,脉冲工具包括扭矩传感器以在阶梯式钻头操作期间感测输出扭矩,并且感测到的输出扭矩被提供为反馈。可以在电动工具500上本地评估感测的输出扭矩,或者在外部设备107或服务器电子处理器425上通过外部方式评估,以确定反馈是正的还是负的(例如,当感测到的输出扭矩在可接受的扭矩范围内时反馈可以是正的,并且当在可接受的扭矩范围之外时为负的)。如上文所讨论的,在一些实施例中,电动工具500可以将反馈或其他信息直接发送到服务器110、210、310、410,而在其他实施例中,外部设备107可以用作电动工具500与服务器110、210、310、410之间的通信桥梁,并且可以将反馈发送到服务器110、210、310、410。此外,随机化可以用于测试机器学习控件585的替
代逻辑是否更合适。
[0189]
然后在过程框1412处基于用户反馈调整机器学习控件585。在一个实施例中,服务器电子处理器调整机器学习控件。例如,服务器电子处理器425在接收到预定数量的反馈指示之后(例如,在接收到50或100个反馈指示之后)调整机器学习控件。在其他实施例中,服务器电子处理器425在预定时间段过去之后(例如,每两周或两个月)调整机器学习控件585。在又一些实施例中,服务器电子处理器425连续地(例如,在接收到每个反馈指示之后)调整机器学习控件585。调整机器学习控件585可以包括例如使用附加反馈作为新的训练数据集来重新训练机器学习控制器540,或调整机器学习控制器540的一些参数(例如,权重、支持向量等)。因为机器学习控制器540已经针对特定任务进行了训练,所以用较小的较新数据集重新训练机器学习控制器540需要比机器学习控制器540的初始训练更少的计算资源(例如,时间、内存、计算能力等)。
[0190]
在一些实施例中,机器学习控件585包括强化学习控件,该强化学习控件允许机器学习控件585持续整合用户接收的反馈以优化机器学习控件585的性能。在一些实施例中,强化学习控件基于机器学习控件585的性能周期性地评估奖励函数。在这样的实施例中,训练机器学习控件585包括增加电动工具500的操作时间,使得强化学习控件585接收足够的反馈以优化机器学习控件585的执行。在一些实施例中,当机器学习控件585实施强化学习时,在制造期间或之前执行第一阶段的操作(例如,训练),使得当用户操作电动工具500时,机器学习控件585可以实现预定的最低性能(例如,准确性)。一旦用户操作他/她的电动工具500,机器学习控件585就可以继续学习和评估奖励函数以进一步提高其性能。相应地,电动工具最初可设置有稳定且可预测的算法,该算法可以随时间而适配。在一些实施例中,强化学习被限于机器学习控件585的一部分。例如,在一些实施例中,不是潜在地更新机器学习控件585的全部或大部分的权重/偏置,这可能需要大量的处理能力和内存,而是实际模型保持静态或大部分静态(例如,除了最后一层(多层)或输出之外),并且仅基于反馈而更新机器学习控件585的一个或几个输出参数或输出特性。
[0191]
在一些实施例中,机器学习控制器540将用户对电动工具500的操作解释为与机器学习控制器540的性能相关的反馈。例如,如果用户在特定模式的执行期间更用力地按下触发器,则机器学习控制器540可以确定由机器学习控制器540选择的马达转速不够高,并且可以直接增加马达转速,使用接收的反馈来重新训练或修改机器学习控制器或其组合。相应地,电动工具500的操作可以在电动工具500的触发器510的两次相同的连续拉动之间变化。在一些实施例中,变化的量基于用户反馈、学习率、随机化或其组合。
[0192]
在调整机器学习控制器之后,在过程框1414处,基于来自机器控制器540的更新输出来操作马达。在一个实施例中,服务器电子处理器425基于用户反馈来调整机器学习控制器540,并且电动工具500根据来自调整后的机器学习控制器540的输出和确定进行操作。在一些实施例中,比如图3的电动工具系统300,服务器310将调整后的机器学习控件585传输到电动工具500。然后,电动工具500将调整后的机器学习控件585存储在机器学习控制器540的存储器580中(或存储在电动工具500的存储器560中),并根据调整后的机器学习控制器540来操作马达505(框1414)。
[0193]
图15展示了用于自动控制电动工具500中的阶梯式钻头操作的流程图1500,也称为方法1500。在一些实施例中,方法1500被执行以实施图14的过程框1408。在根据方法1500
使用阶梯式钻头(例如阶梯式钻头1202、1210或另一阶梯式钻头)在工件中钻孔的电动工具500操作之前,可以对电动工具500进行配置(例如,在配置模式下)。例如,电动工具500的机器学习控制器540可以被训练用于使用阶梯式钻头进行操作,或者可以从诸如服务器120、210或310、外部设备107或电池包480(参见例如上述过程框1402-1406)之一的另一设备接收用于使用阶梯式钻头进行操作的静态或可调机器学习控制程序。在一些实施例中,电动工具500可以被设置为阶梯式钻头操作模式和/或可以检测联接到电动工具500的阶梯式钻头。阶梯式钻头模式可以与阶梯式钻头的阶梯数、阶梯式钻头的特定类型(例如,阶梯式钻头配置文件、长度、直径、阶梯数等)和/或工件类型或使用联接到电动工具500的阶梯式钻头钻入的工件的特性。在一些实施例中,工具可以利用联接到电动工具的阶梯式钻头(例如,阶梯式钻头1202或1210)开始钻孔操作,并使用机器学习而不是使用诸如阶梯式钻头模式等用户输入来辨识阶梯式钻头的类型或阶梯式钻头配置文件(或其他特性)。在一些实施例中,用户可以将电动工具500配置为具有用于方法1500的特定进度阈值,比如指示在采取特定控制动作之前钻入工件时要计数的阶梯数。例如,电动工具500上的离合器环(例如,参见图8b中具有离合器环501的工具500)可以用作工具500的机器学习控制器的输入,以指示要用阶梯式钻头钻出的期望阶梯数,其中,离合器环传感器(例如,电位计或霍尔传感器)可以提供对离合器环的旋转位置的指示,该旋转位置映射到对应的期望阶梯数。例如,离合器环的每个可选择的旋转位置可以映射到特定的阶梯数(例如,1至10之间、1至20之间的数字等)。在一些实施例中,当达到进度阈值时,比如当接近阶梯时、当出现阶梯时或当在钻孔期间刚刚出现阶梯时,用户可以通过选择要采取的特定动作来为方法1500配置电动工具500,比如减慢马达505的旋转或停止马达505的旋转。可以通过电动工具500上的一个或多个用户输入(比如电动工具500上的上述离合器环、输入按钮、触发器或拨盘,或者通过外部设备107上的用户输入,该用户输入然后被传送到电动工具500)将配置数据提供给机器学习控制器540。例如,用户可以在用户应用程序(例如,在外部设备107)中输入常见的孔尺寸、对应的阶梯式钻头偏斜和/或常见的工件材料,并且用户应用程序基于用户输入向电动工具500传输进度阈值。在一些实施例中,电动工具500被配置为在制造商处执行方法1500(例如,使用默认设置)。
[0194]
当用户激活触发器510以将阶梯式钻头(例如,阶梯式钻头1202或1210)驱动到工作材料中时,配置的电动工具500在阶梯式钻头模式下的操作可以开始。在框1502中,电动工具500的一个或多个传感器530生成指示电动工具的操作参数的传感器数据。例如,传感器数据和/或操作参数可以指示在阶梯式钻头由马达505驱动时生成的马达电流、电压、加速度、温度、马达旋转速度、马达旋转加速度、输出扭矩、阶梯式钻头的旋转速度和反作用力(例如,经由陀螺仪传感器530)中的一个或多个。此外,示例操作参数可以指示马达位置、主轴位置、主轴转速、电动工具500的位置、电池包荷电状态、日期、时间、自上次使用以来的时间、模式、(多个)离合器设置、方向、电池类型、侧手柄或其他附件的存在、错误、过去应用的历史、切换率、用户输入、外部输入、挡位等。(参见上表3。)
[0195]
在框1504中,机器学习控制器540从传感器530接收传感器数据。如上所述,传感器数据可以提供与电动工具500的操作相关的多个操作参数。
[0196]
在框1506中,机器学习控制器540使用机器学习程序(例如,机器学习控件585)来处理传感器数据。如上所述,可以实施各种类型的机器学习算法来处理传感器数据。传感器
数据的处理是根据由机器学习程序实施的机器学习算法的类型来执行的,如上文进一步详细讨论的。例如,该处理可以包括根据机器学习程序的训练算法对被接收作为机器学习程序的输入的传感器数据进行分类。例如,机器学习控制器540可以在时间序列数据和/或其滤波器上利用分类器或回归器函数来确定使用诸如钻头、脉冲工具或冲击工具等工具的阶梯式钻头进度状况。在一些实施例中,可以使用各种机器学习算法来估计阶梯式钻头的旋转以确定阶梯式钻头的进度何时达到新的阶梯。在电动工具500是脉冲工具的实施例中,机器学习控制器540可以使用各种机器学习算法来解释扭矩传感器读数以预测实际阶梯式钻头扭矩。进一步地,在一些实施例中,机器学习控制器540的处理导致检测到诸如以下状况:阶梯式钻头达到目标深度或特定阶梯(例如,阶梯1212a)的可能性;发生异常的可能性(例如,阶梯式钻头钻穿整个工件(阶梯式钻头自由自旋)、阶梯式钻头最初开始部分地接合在工件中的可能性(例如,工具停止并重新启动)、材料裂开、损坏阶梯式钻头、与工件失去接合等);通过制动或惯性滑行工具可能会将阶梯式钻头推进到特定阶梯、直径、深度、或深度特性的可能性。
[0197]
在框1508中,机器学习控制器540基于在框1506中处理的传感器数据生成指示阶梯式钻头进度的输出。例如,机器学习控制器540对传感器数据的处理生成指示正在推进到工件中的阶梯式钻头的进度的输出(例如,当接近阶梯时、正在出现阶梯、刚刚出现阶梯、达到的阶梯计数等)。例如,生成的输出可能指示:阶梯式钻头的下一阶梯已进入工件;阶梯式钻头的下一阶梯即将进入工件;实际阶梯式钻头扭矩预测;阶梯式钻头达到目标深度或特定阶梯(例如,阶梯1212a)的可能性;发生异常的可能性(例如,阶梯式钻头钻穿整个工件(阶梯式钻头自由自旋)、材料裂开、损坏阶梯式钻头、与工件失去接合等);通过制动或惯性滑行工具可能会将阶梯式钻头推进到特定阶梯、直径、深度、或深度特性的可能性;等等。
[0198]
在框1510中,机器学习控制器540确定是否已经达到阶梯式钻头的进度阈值。在一些实施例中,进度阈值是选自以下各项的组中的至少一项:阶梯式钻头的特定阶梯已进入工件;阶梯式钻头的下一阶梯已经进入工件(即,不是特定阶梯,而是出现了一个增量阶梯);阶梯式钻头的下一阶梯即将进入工件;阶梯式钻头扭矩阈值;阶梯式钻头钻出的孔的特定深度;所钻孔的特定宽度;阶梯式钻头部分接合在工件中的可能性(例如,工具停止并重新启动)等。当已经达到进度阈值时,机器学习控制器540推进到框1512。当未达到进度阈值时,机器学习控制器540循环回到框1502。在一些实施例中,作为在框1510中检测是否已经达到进度阈值的代替或补充,机器学习控制器540基于框1508的输出检测到已经发生异常。在这样的情况下,当检测到异常时,机器学习控制器540可以进行到框1512。
[0199]
在一些实施例中,在进度阈值是阶梯式钻头进入工件中的特定阶梯(即,预期阶梯)的情况下,机器学习控制器540检测是否已经使用机器学习程序检测到阶梯式钻头的预期阶梯。例如,返回参考框1506和1508,机器学习程序可以被训练以处理传感器数据并基于接收到的传感器数据来提供对阶梯式钻头的当前阶梯已经进入工件的指示。机器学习程序可以循环以在钻孔操作的过程期间连续处理传感器数据,并连续输出对阶梯式钻头的当前阶梯已进入工件的指示。在这种情况下,在框1510中,机器学习控制器540将指示的当前阶梯与预期阶梯(在该示例中为进度阈值)进行比较。当当前阶梯等于进度阈值(即,阶梯式钻头已达到预期阶梯)时,机器学习控制器540推进到框1512。当当前阶梯不等于进度阈值(即,阶梯式钻头未达到预期阶梯)时,机器学习控制器540循环回到框1502。在一些实施例
中,不是机器学习控制器540指示阶梯式钻头的当前阶梯,而是机器学习控制器540使用计数器和阶梯阈值,由此(例如,在控制器540上执行的软件中实施的)计数器在每次机器学习程序输出(例如,在框1508中)阶梯式钻头已经在工件中进入另一个阶梯的指示时递增。机器学习控制器540然后在框1510中将计数与预期阶梯(进度阈值)进行比较。当计数器达到进度阈值(即,阶梯式钻头已达到预期阶梯)时,机器学习控制器540推进到框1512。当计数器尚未达到进度阈值(即,阶梯式钻头未达到预期阶梯)时,机器学习控制器540循环回到框1502。如上所述,可以在框1502之前的配置步骤中接收预期阶梯(或进度阈值)(例如,经由上述离合器环)。
[0200]
在框1512中,机器学习控制器540控制电动工具500的操作。例如,在一些实施例中,机器学习控制器540减慢或停止马达505的旋转。例如,机器学习控制器540向开关网络517提供零百分比(0%)占空比的脉冲宽度修改(pwm)信号以停止马达505、递减pwm信号的占空比以减慢马达505、或为pwm信号选择低占空比。在其他示例中,机器学习控制器540降低马达505的扭矩(例如,通过改变离合器值、降低马达的转速或电流等)。在更进一步的实施例中,机器学习控制器540使工具500以脉冲方式运行(例如,通过重复地反转或中断马达505的电流)。在一些实施例中,作为马达控制的代替或补充,在框1512中,机器学习控制器540激活指示器535作为对用户的提醒(例如,在每个预定阶梯、在接近完成一个或多个阶梯、和/或达到最后阶梯时)。指示器535可以提供例如视觉或听觉提醒(例如,激活、停用或改变led 535的发射质量或使扬声器535发声)
[0201]
在以下段落中,提供了在电动工具500上实施方法1500的几个更具体的示例。例如,在一些实施例中,框1508的进度阈值是预期阶梯,并且在确定达到进度阈值时,机器学习控制器540在框1512中停止马达505。
[0202]
在一些实施例中,框1508的进度阈值是接近阶梯式钻头的下一个增量阶梯,并且在确定达到进度阈值时(即,阶梯式钻头的另一个阶梯即将进入工件),机器学习控制器540在框1512中减慢马达505。在一些实施例中,机器学习控制器540可以在检测到阶梯之前显著降低马达505的转速以允许更多用户输入来控制电动工具500(例如,使得用户可以更容易地在阶梯式钻头的下一阶梯进入工件中的同时释放触发器)。
[0203]
在一些实施例中,框1508的进度阈值是阶梯式钻头的下一个增量阶梯,并且在确定达到进度阈值时(即,阶梯式钻头的另一个阶梯已经进入工件),机器学习控制器540在框1512中停止马达505。
[0204]
在一些实施例中,框1508的进度阈值是阶梯式钻头的下一个增量阶梯,并且在确定达到进度阈值时(即,阶梯式钻头的另一个阶梯已经进入工件),机器学习控制器540在框1512中减慢马达505。在一些实施例中,在框1512中降低马达的转速之后,机器学习控制器540返回到过程框1504以接收进一步的信号,从而控制电动工具500的马达515的步骤在阶梯式钻头操作期间执行多次。例如,框1504-1512可以在循环中执行以随着阶梯式钻头的每个阶梯进入工件而逐渐减慢马达505。在其中在循环中执行框1504-1512以逐渐减慢马达505的一些实施例中,提供阶梯式钻头的预期阶梯作为附加进度阈值,并且当达到预期阶梯时(如在框1510中确定的),机器学习控制器540在框1512中停止马达505。
[0205]
在一些实施例中,作为是否已经达到单个进度阈值的二元确定的补充或代替,机器学习控制器540可以确定朝向预期阶梯(例如,阶梯1212a)、朝向孔直径、或朝向孔深度的
进度程度,例如,在一定值范围之间。例如,值的范围可以是0-10,其中0指示阶梯式钻头(例如,阶梯式钻头1210)尚未达到预期阶梯,1指示阶梯式钻头刚刚开始(例如,朝向预期阶梯的路径的10%),以此类推,并且10指示在阶梯式钻头钻入工件中时已经达到阶梯(例如,阶梯1212a)。进而,框1512中的控制操作是基于进度程度。例如,机器学习控制器540可以在进度程度越来越接近100%时逐渐减慢马达505的转速(或pwm占空比),这可以有助于保持阶梯式钻头的寿命。在一些实施例中,减慢的量与同框1508中生成的输出相关联的置信水平成比例地增加。相应地,当机器学习控制器540以高置信度输出阶梯式钻头在工件中达到预期阶梯的路径的90%的指示时,马达505以比低置信度的阶梯式钻头在工件中达到预期阶梯的路径的90%的指示更慢的旋转速度操作。
[0206]
在一些实施例中,机器学习控制器540可以充当电子离合器(“e-clutch”)。例如,机器学习控制器540可以充当e-clutch,其中进度阈值或所生成的指示阶梯式钻头进度的输出可以主要基于扭矩值。在电动工具500的配置期间,e-clutch的输入设置可以提供预期扭矩的目标范围、给出特定阶梯的目标深度范围、或提供附加灵敏度。当特定机器学习算法的置信度低时,附加灵敏度可以用于提供机器学习控制器540应当有多保守的指示。
[0207]
在一个示例操作中,电动工具500可以被配置为阶梯式钻头模式。在电动工具500的配置期间,电动工具500的离合器环(或其他可调的用户输入)接收用户输入(例如,由用户旋转)并向机器学习控制器540指示与在停止阶梯式钻头(例如,阶梯式钻头1210)的推进之前要计数的阶梯数相对应的值。用户可以例如使用触发器510来激活电动工具500。机器学习控制器540可以在阶梯式钻头推进到工件中时识别每个阶梯(循环遍历框1502-1510),并且可以在达到预期阶梯或最后的阶梯(例如,出现或刚刚出现)之后(如在框1510中确定的)停止马达505以及因此阶梯式钻头的旋转(在框1512中)。
[0208]
在另一示例操作中,电动工具500可以由用户置于阶梯式钻头模式。在电动工具500的配置期间,用户可以将电动工具500的拨盘或其他输入机制设置为与电动工具500的输出响应程度相对应的数字。用户可以例如使用触发器510来激活电动工具500。机器学习控制器540可以在阶梯式钻头推进到工件中时识别每个阶梯(循环遍历框1502-1510)。每次在框1520中识别出阶梯时,机器学习控制器540推进到框1512并在循环回到框1502之前短暂地暂停或减慢马达505以及因此阶梯式钻头的旋转。在这点上,电动工具500可以为用户提供时间以随着阶梯式钻头推进而更准确地计数阶梯。暂停或减慢的持续时间可以基于在电动工具500的配置期间输入的拨盘或其他用户输入机制的用户设置。
[0209]
在另一示例操作中,电动工具500可以被置于与预定阶梯数(即,方法1500的框1510的进度阈值)相关联的阶梯式钻头模式。阶梯式钻头模式还可以与阶梯式钻头的特定类型(例如,阶梯式钻头1210)和/或待钻孔的工件材料类型(例如,金属、木材、石膏板等)相关联。例如,用户可以从多个阶梯式钻头模式中进行选择(例如,经由电动工具500上的拨盘或按钮选择器),每个模式与预定阶梯数、阶梯式钻头类型、要采取的附加阶梯数、特定阶梯、阶梯式钻头的一个或多个特征、用户对阶梯式钻头的使用和工件材料的类型中的一个或多个相关联。每个阶梯式钻头的模式进一步与各种电动工具500的操作特性(例如,pwm占空比或马达转速、以及用于实施方法1500的框1512的控制动作)相关联。在一些实施例中,阶梯数、阶梯式钻头的类型和/或工件材料的类型可以与阶梯式钻头模式预先关联,而在一些实施例中,电动工具500可以接收用户输入以在电动工具500的配置期间选择这些参数。
用户可以例如使用触发器510来激活电动工具500。机器学习控制器540可以在阶梯式钻头推进到工件中时识别每个阶梯(通过循环遍历框1502-1510),并且当接近预期阶梯时(或之后)(如框1510中确定的),机器学习控制器540控制马达505以暂停、减慢或以脉冲方式运行(框1512)。在一些示例中,附加地或替代地,机器学习控制器540可以在阶梯式钻头推进到工件中时识别每个阶梯,并且作为响应,(在框1512中)激活指示器535作为对用户的提醒(例如,在每个预定阶梯、在接近完成一个或多个阶梯、和/或达到最后阶梯时)。在一些示例中,机器学习控制器540可以控制工具的转速或其他输出特性,以便增强每个附加阶梯的信号以便更好地识别每个阶梯。指示器535可以提供例如视觉和/或听觉提醒(例如,激活、停用或改变led 535的发射质量或使扬声器535发声)。
[0210]
在另一示例操作中,用户可以例如使用触发器510来激活电动工具500。在电动工具500的配置期间,机器学习控制器540可以使用机器学习辨识联接到电动工具500的阶梯式钻头(例如,阶梯式钻头1210)的特性阶梯式钻头配置文件。在多次使用中,机器学习控制器540获知孔的哪个(哪些)尺寸和/或多少阶梯是常见的用户目标。在一些实施例中,机器学习控制器540可以识别由多个用户使用的阶梯式钻头。在其他实施例中,机器学习控制器540识别在工具的第一次操作期间采取的阶梯数,然后在随后的工具使用中重复该阶梯数。机器学习控制器540可以在配置期间利用所获知的孔尺寸和/或阶梯数的常见目标作为进度阈值(用于在框1510中使用),进而控制马达505(在框1512中)在接近(多个)目标时减速,在每一阶梯之后短暂暂停或减速,和/或在最常见的目标之后完全停止等。机器学习控制器540还可以基于确认或识别该钻头实际上是阶梯式钻头而不是另一种钻头类型来控制马达。机器学习控制器540还可以评估阶梯式钻头的其他参数,比如阶梯式钻头的状况(例如,锐度)。
[0211]
在另一示例操作中,电动工具500可以被置于阶梯式钻头模式。用户可以例如使用触发器510来激活电动工具500。机器学习控制器540可以辨识出阶梯式钻头(例如,阶梯式钻头1210)已经穿过工件并且正在自由自旋,并且在框1508中生成指示该异常的输出和/或停止电动工具。在一些实施例中,方法1500包括检测异常的步骤(例如,基于将框1508中生成的输出与异常阈值进行比较)。作为响应,工具500(例如,电子处理器550)可以至少暂时停止马达505的操作(在框1512中)。
[0212]
在另一示例操作中,在电动工具500的配置期间,用户可以选择参数,比如孔尺寸、对应的阶梯式钻头偏斜和/或电动工具500经常或常用于的应用。例如,可以在用户设备107或服务器(例如,服务器110、210、310、410)上的用户应用程序中进行选择。用户应用程序将所选参数传送到电动工具500以用作框1510中的(多个)进度阈值。用户可以例如使用触发器510来激活电动工具500。通过使用上述技术循环遍历方法1500,电动工具500(例如,电子处理器550)可以在预期每个目标孔尺寸出现时至少短暂地停止马达505的操作。
[0213]
在另一示例操作中,电动工具500可以在操作之前被置于阶梯式钻头模式。在使用如上所述的技术循环遍历方法1500时,机器学习控制器540可以检测进入工件的阶梯式钻头的每个阶梯,并且机器学习控制器540可以基于每个阶梯和/或在指定时间修改目标转速来提供更一致的阶梯式钻头切削率、改进一个或多个接收到的传感器530信号的清晰度并延长附件(阶梯式钻头)的寿命。
[0214]
在另一示例操作中,电动工具500可以被置于阶梯式钻头模式。电动工具500可以
联接到阶梯式钻头,比如阶梯式钻头1210。用户可以通过致动触发器510来激活电动工具500并开始钻入工件。机器学习控制器540检测一个或多个传感器530信号并计数阶梯式钻头中的阶梯数。机器学习控制器540可以确定关于计数的阶梯数的置信水平,并且可以经由指示器535向用户传输信号以指示置信水平。计数的阶梯数可以存储在存储器582中。此后,当工具处于相同的阶梯式钻头模式并使用阶梯式钻头执行钻孔操作时,机器学习控制器540计数在将阶梯式钻头推进到工件中时达到的阶梯数并在(例如,由用户配置的)期望阶梯数后停止。
[0215]
在另一示例操作中,作为方法1500的替代或补充,机器学习控制器540检测到传感器530提供低清晰度的信号、算法置信度降低、与当前正向进给速率和/或力相关的一个或多个反馈值超过预定值,或检测到联接的阶梯式钻头处于磨损状况。作为响应,电动工具500可以激活指示器535,比如点亮led作为对用户的提醒。机器学习控制器540可以通过确定噪声程度并将确定的噪声程度与噪声阈值进行比较来检测低清晰度的信号。当噪声程度超过噪声阈值时,机器学习控制器540确定传感器530具有低清晰度的信号。在另一示例中,机器学习控制器540可以通过分析rnn、dnn或cnn的置信度输出来确定低清晰度的信号。例如,rnn、dnn和cnn算法输出在特定时间(例如,每毫秒)正在进行某一阶梯的置信度。如果输出接近“1”或“0”的值,则确定输入信号是以高清晰度接收的。然而,如果信号的输出趋于在中间值(例如“0.5”的值)附近达到峰值或悬停,则确定信号不提供高置信度,然后确定传感器是没有充分计数阶梯。在其他示例中,辅助rnn、dnn或cnn算法和/或其他非机器学习算法在可疑阶梯附近的数据段上给出了信号清晰度的度量。信号噪声、异常、损坏的传感器、磨损状况等都是可以使用辅助算法检测到的状况。
[0216]
机器学习控制器540可以确定(例如,基于在框1506中处理传感器数据)阶梯式钻头处于磨损状况,并且在框1508中生成指示该异常的输出。在一些实施例中,方法1500包括检测异常的步骤(例如,基于将框1508中生成的输出与异常阈值进行比较)。可替代地或附加地,工具500(例如,电子处理器550)可以经由无线通信设备525向外部设备107传输信号,以使用外部设备上的应用程序激活外部设备上的提醒。
[0217]
在另一示例操作中,作为方法1500的代替或补充,机器学习控制器540检测由于在阶梯式钻头推进到工件中时阶梯式钻头旋转太快和/或用户在电动工具上太用力按压而导致的低清晰度的传感器530信号。作为响应,电子处理器550减慢马达输出以增加一个或多个阶梯的信号清晰度。在进一步的示例操作中,工具的响应性使得工具可以在低信号清晰度的情况下增加斜升转速和斜降转速的持续时间以减少浪涌和/或可能使传感器530信号失真的其他影响。
[0218]
上述方法主要用于阶梯式钻头;然而,本文描述的方法也适用于其他钻头类型和电动工具。例如,其他钻头类型可以包括埋头孔钻头(带或不带导向钻头)、阶梯式孔锯钻头、具有深度硬停止的钻头、具有中间特征的锥形钻头、具有中间特征的阶梯式钻头和/或钻头丝锥钻头。其他工具的示例可以包括液压脉冲工具、冲击工具、电动扭矩扳手、电动棘轮、钻床和电动螺丝刀。
[0219]
为了便于描述,上述方法1500是在机器学习控制器540接收和处理传感器数据、生成输出、确定是否达到进度阈值以及控制马达505方面来描述的。然而,方法1500的一个或多个过程框可以由电子处理器550执行(例如,框1510和1512),或者这些步骤中的一个或多
个的部分可以由电子处理器550执行,而其他部分由机器学习控制器540的电子处理器575执行。在一些实施例中,机器学习控制器540通过将控制信号传送到电子处理器550来执行一个或多个步骤。例如,响应于在框1510中达到进度阈值,电子控制组件536的机器学习控制器540可以向电子控制组件536的电子处理器550发送控制信号,这些控制信号指示电子处理器550以特定方式操作马达505。电子处理器550进而根据控制信号来操作马达505。相应地,上述方法1500也可以被描述为由电子控制组件536执行,或者由电子控制组件536的一个或多个电子处理器执行。
[0220]
许多机器学习方法可以用于实现本文所述的实施例(例如,框1506的各种实施例)。例如,机器学习控制器540可以利用rnn识别。例如,由gru和/或lstm层组成的rnn接收工具输入或传感器数据,比如电流、电压、触发条件、陀螺仪、加速度等。一些接收到的信号或数据可能以不同的速率接收(例如,加速度计可以以比其他传感器更高的速度提供输出),并且可以独立地进行预处理以与其他信号合并、或进行下采样和池化以进行匹配。在一个示例中,rnn可以提供阶梯式钻头中的总阶梯数的输出特性。可替代地或附加地,rnn可以提供短期分类以指示钻头是否正在出现和/或刚刚出现。输出可能会通过滤波器以减少误报。在一些实施例中,用于峰值检测或检测高于分类阈值的次数的基本辅助计数算法可以用于对阶梯式钻头的阶梯进行计数。在一些示例中,辅助计数算法使用机器学习方法来解释峰值幅度、间距和这些彼此相关的值。
[0221]
可替代地或附加地,rnn可以以向量格式提供计数的阶梯数的概率输出,其中,向量中的每个元素对应于已经达到这样的阶梯的可能性。如果rnn对其计数失去信心或置信水平超过目标阶梯的阈值,则该工具可能会以提前关闭进行响应。在一些实施例中,如果置信水平太低而不可靠,则电动工具500会提醒用户(例如,经由指示器535或通过向外部设备107传输信号)。
[0222]
可替代地或附加地,rnn可以检测用户是否开始使用阶梯式钻头钻入现有孔中。由于初始加载量的特性以及工具500的运动,这种状况可以被(多个)传感器530检测到。因此,机器学习控制器560可以提供指示工具操作应当改变的输出、用户应当经由指示器535得到提醒、或者马达505应当在检测到每个阶梯后在减速方面反应更灵敏等。
[0223]
在一些实施例中,机器学习控制器540使用滑动窗口cnn,其中,当阶梯刚刚出现或正在出现时输出时间序列分类。然后可以使用辅助算法(例如,与对cnn输出进行滤波相结合)来计数推进到工件中的阶梯式钻头的(多个)阶梯。识别阶梯的低置信度可能导致机器学习控制器540以特定方式进行响应(例如,停止或减慢马达505)。
[0224]
在一些实施例中,机器学习控制器540可以使用dnn来进行阶梯识别。识别阶梯的替代方式是将工具变量传递通过各种滤波器(例如,低通滤波器)或滑动窗口,并在一些时间步长序列中将输出馈送到dnn。然后,dnn可以对刚刚出现或正在出现的阶梯进行分类。辅助计数算法(例如,在对dnn输出进行滤波之后)然后可以对检测到的总阶梯进行计数。识别阶梯的低置信度可能导致机器学习控制器540以特定方式进行响应(例如,停止或减慢马达505)。
[0225]
在一些实施例中,替代机器学习方法可以用于检测阶梯式钻头的阶梯。例如,以与可以接收固定大小输入(无论是滑动窗口还是一组滤波的输入)的cnn和dnn类似的方式,其他模型也可能适用,比如决策树、随机森林、svm、knn等。在一些实施例中,可以应用硬编码
滤波器组来检测阶梯式钻头的阶梯。
[0226]
在一些实施例中,机器学习控制器540可以适于识别常用的或重复使用的阶梯式钻头结束标准或停止标准。例如,机器学习控制器540可以通过识别阶梯式钻头是否在使用中(例如,经由rnn分类器或通过处于阶梯式钻头模式)来识别常用的阶梯式钻头结束标准。在另一示例中,可以记录和存储历史记录,可以记下阶梯式钻头结束标准,可以创建概率直方图,或者可以使用替代编码。替代编码可以拥有输出标准(例如,可能停止的阶梯)以及其他信息(例如,包含导出的特性加载量、阶梯的清晰度、阶梯持续时间等的参数)。在另一示例中,机器学习控制器和/或电子处理器550可以利用历史记录信息来控制马达505以随着每个钻出的孔来停止或减慢阶梯式钻头。
[0227]
在一些实施例中,阶梯式钻头被配置有增强的特征,这些增强的特征提高机器学习控制器540感测阶梯已经或即将进入工件的能力。当阶梯已经或即将进入工件时,这种增强的特征可以引起更独特的轨迹或传感器信号(例如,来自传感器530)。可替代地或附加地,这种增强的特征使机器学习控制器540能够检测特定阶梯式钻头与电动工具500联接。在一些实施例中,电动工具500被配置为处于阶梯式钻头模式(例如,通过用户致动电动工具500上的模式选择器,并且模式选择器向电子控制组件536的处理器提供信号)。然后在阶梯式钻头未与工件接合时按下电动工具500的触发器,从而驱动马达505并且阶梯式钻头自由旋转(即,阶梯式钻头自由自旋)。当阶梯式钻头自由自旋时,生成传感器数据(类似于框1502),机器学习控制器540接收传感器数据(类似于框1504),机器学习控制器540处理传感器数据(类似于框1506),并且机器学习控制器540基于对传感器数据的处理来生成输出(类似于框1508)。特定阶梯式钻头的传感器数据将根据其特定的惯性特性而变化。例如,每个阶梯式钻头可以包括独特的特性配置文件、刀面角、阶梯距离、整体惯性、交替阶梯尺寸以及因此加载量、点几何形状等中的一个或多个,使得机器学习控制器540更容易识别这样的阶梯式钻头。相应地,机器学习控制器540的训练后的机器学习控件585被配置为处理或分类传感器数据并生成指示阶梯式钻头类型(例如,阶梯式钻头1202或阶梯式钻头1210)的输出。例如,在一些实施例中,用于关于图11的框1070识别阶梯式钻头类型的处理技术同样适用于此。在一些实施例中,所识别的阶梯式钻头可以具有一个或多个相关联的进度阈值,然后机器学习控制器540从存储器中检索该进度阈值以供电动工具500在实施方法1500时使用。在一些实施例中,当电动工具500在阶梯式钻头模式下操作时,所识别的阶梯式钻头信息被提供给机器学习控制器1500以在处理框1506中使用。通过在操作开始时知道阶梯式钻头的类型,机器学习控制器540对传感器数据的处理可以更准确。换言之,阶梯式钻头的类型被输入到机器学习控制器540,作为对被执行以处理传感器数据的机器学习程序的输入。该输入辅助机器学习算法对传感器数据进行分类,因为不同的阶梯式钻头可以在操作期间产生不同的传感器数据,并且机器学习算法可以在处理框1506期间使用特定于阶梯式钻头类型的训练数据。
[0228]
在一些实施例中,电动工具500使用离合器环在一些时间点向电子控制组件536指示期望离合器设置,并在其他时间点(例如,当电动工具500处于阶梯式钻头模式时)指示进度阈值(对于方法1500,例如框1510)。然而,在一些实施例中,电动工具500具有替代的阶梯式钻头设置环。阶梯式钻头设置环可以是具有与离合器环(例如,离合器环501)类似的构造的可旋转环。例如,阶梯式钻头设置环还可以围绕电动工具500的筒旋转(例如,定位在离合
器环的前面或后面),并且阶梯式钻头设置环还被配置为向电子控制组件536提供指示环的旋转位置的信号。电子控制组件536然后可操作以将旋转位置转换或映射到进度阈值以用于方法1500。另外,可以在阶梯式钻头设置环上提供与阶梯式钻头相关的标记。例如,阶梯式钻头设置环可以包括孔直径或预期阶梯(阶梯计数)的列表,阶梯式钻头设置环的多个旋转位置中的每一个位置(例如,每10、20度或30度)处都有一个孔直径或预期阶梯。
[0229]
因此,本文描述的实施例尤其提供了包括机器学习控制器的电动工具和相关系统以控制电动工具或相关系统的特征或功能,比如自动检测阶梯式钻头中的阶梯。在所附权利要求中阐述了实施例的各种特征和优点。