Power tools are typically powered by portable battery packs. These battery packs range in battery chemistry and nominal voltage and can be used to power numerous power tools and electrical devices. A power tool battery charger includes one or more battery charger circuits that are connectable to a power source and operable to charge one or more power tool battery packs connected to the power tool battery charger.
The present disclosure provides a power tool battery charger that includes a housing, at least one charging circuit coupled to the housing and configured to charge a battery pack coupled thereto, and an electronic controller coupled to the housing and in communication with the at least one charging circuit. The electronic controller includes an electronic processor configured to receive power tool device data from a power tool device, where the power tool device data include data indicative of at least one of a use of the power tool device, feedback associated with the power tool device, or a location of the power tool device. The electronic controller is also configured to generate, based on the power tool device data, charger operation data indicating at least one of a charging rate of the at least one charging circuit, a charging target of the at least one charging circuit, or a time indication for when to adjust at least one of the charging rate or charging target of the at least one charging circuit. The electronic controller is configured to operate the at least one charging circuit based on the charger operation data.
Some embodiments provide a power tool battery charger that includes a housing, at least one charging circuit coupled to the housing and configured to charge a battery pack coupled thereto, a machine learning controller coupled to the housing, and an electronic controller coupled to the housing. The machine learning controller includes a first electronic processor, a first memory, and a machine learning control program, where the machine learning control program is a trained machine learning control program. The machine learning controller is configured to receive usage data indicating usage of a power tool device: process the usage data, using the machine learning control program; and generate, using the machine learning control program, an output based on the usage data. The electronic controller is in communication with the machine learning controller, includes a second electronic processor, and is configured to receive the output generated by the machine learning controller and operate the at least one charging circuit based on the received output.
The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the disclosure and, together with the description, serve to explain principles of the embodiments.
Some power tool battery chargers include sensors and a control system that uses hard-corded thresholds to, for example, change or adjust the operation of the battery charger. For example, a sensor may detect that a temperature is above a predetermined, hard-coded threshold. The power tool battery charger may then cease operation of the charging circuit to protect the battery pack and/or power tool battery charger. While these type of thresholds may be simple to implement and provide some benefit to the operation of a power tool battery charger, these type of hard-coded thresholds cannot adapt to changing conditions or applications during which the power tool battery charger is operated, and may not ultimately be helpful in detecting and responding to more complicated conditions such as, for example, when the power tool battery charger is connected to a power source that provides an inconsistent or unreliable source of power, when a user desires a change in charging operation based on working conditions, when usage of power tools and battery packs indicate usage patterns that can drive more optimized charger operation, when environmental or other external conditions (e.g., the power tool battery charger location) indicate that changes to charger operation may be optimal, and so on.
By knowing when a user might need their batteries charged, a power tool battery charger can be optimized for its charging and other power tool battery/power tool battery charger extras (e.g., cell balancing, maintenance/inspection). Additionally, by understanding the use patterns of the user(s), power tool batteries, and/or other factors (e.g., time of day, day of week, cost of electricity, jobsite needs, weather, expected availability of additional energy (e.g., availability of AC plugs, such as when plugged in at night: availability of additional battery supplies: etc.), and the like), a power tool battery charger can include more informed control logic and provide improved charging.
Described here are various systems in which a machine learning controller, or artificial intelligence controller, is utilized to control a feature or function of the power tool battery charger and/or battery. For example, the machine learning controller and/or artificial intelligence controller, instead of implementing hard-coded thresholds determined and programmed by, for example, an engineer, detects conditions based on power tool device data that may include usage data, maintenance data, feedback data, power source data, sensor data, environmental data, operator data, location data, among other data, which may be associated with a power tool device, such as a power tool battery charger, a battery pack, a power tool, and/or a power tool pack adapter.
The power tool device data may be collected while the power tool battery charger, battery pack, and/or power tool are being used, or during previous uses of the power tool battery charger, battery pack, and/or power tool. In some embodiments, the machine learning controller and/or artificial intelligence controller determines adjustable parameters and/or thresholds that are used to operate the power tool battery charger based on, for example, a particular charging target, a particular charging rate, a particular time-of-day to charge, an order in which to charge multiple connected battery packs, timing indications for when to adjust a charging rate and/or charging target, or combinations thereof. Accordingly, the parameters, thresholds, conditions, or combinations thereof are based on previous operation of the same type of power tool battery charger and may change based on input received from the user and further operations of the power tool battery charger (e.g., in response to power tool device data acquired while operating the power tool battery charger, battery pack, power tool, and/or power tool pack adapter).
Usage data may include usage data for a power tool battery charger, a power tool battery pack, a power tool, or other devices connected to a power tool device network, such as wireless communication devices, control hubs, access points, and/or peripheral devices (e.g., smartphones, tablet computers, laptop computers, portable music players, and the like).
Usage data for a power tool battery charger may include operation time of the power tool battery charger (e.g., how long the power tool battery charger is used in each session, the amount of time between sessions of power tool battery charger usage, and the like), times of day when battery packs are being put on and/or taken off of the power tool battery charger, unique identifiers of battery packs being put on and/or taken off of the power tool battery charger, specific hours when work is being performed on a jobsite (or being performed more or less frequently on the jobsite), days of the week when work is being performed on a jobsite (or being performed more or less frequently on the jobsite), charging patterns, and the like. In some embodiments, usage data may include data indicating the order in which batteries are put on a power tool battery charger with multiple charging ports, or on power tool battery chargers in a network of connected (e.g., wired or wirelessly) power tool battery chargers.
Usage data for a battery pack may include operation time of the battery pack (e.g., how long the battery pack is used in each session, the amount of time between sessions of battery pack usage, and the like), the types of power tool(s) on which the battery pack is being used, the frequency with which the battery pack is being used, the frequency with which the battery pack is being used with a particular power tool or power tool type, the frequency with which the battery pack is charged on a particular power tool battery charger or power tool battery charger type, the current charge capacity of the battery pack (e.g., the state of charge of the battery pack), the number of charge cycles the battery pack has gone through, the estimated remaining useful life of the battery pack, and the like. In some embodiments, usage data may include data indicating the usage of a particular battery.
For example, if a user commonly places a particular battery on a power tool battery charger so that the battery charges before other batteries, then the power tool battery charger may learn to prioritize that given battery. For instance, if a user commonly indicates they want a given battery charged at a faster rate, a power tool battery charger may adjust its charging action to prioritize speed over life for that particular battery, that particular type of battery, similar batteries, and the like.
Usage data for a power tool may include the operation time of the power tool (e.g., how long the power tool is used in each session, the amount of time between sessions of power tool usage, and the like): whether a particular battery pack is used with the power tool and/or the frequency with which the particular battery pack is used with the power tool: whether a particular battery pack type is used with the power tool and/or the frequency with which the particular battery pack is used with the power tool: the type of power tool applications the power tool is frequently used for: information regarding changes in bits, blades, or other accessory devices for the power tool; and the like.
Maintenance data may include maintenance data for a power tool battery charger, a power tool battery, and/or a power tool. For example, maintenance data may include a log of prior maintenance, suggestions for future maintenance, and the like.
Feedback data may include data indicating the manner in which a battery pack is put on a power tool battery charger, such as how forcefully the battery pack is put on the charger, whether a prolonged force is applied when placing the battery pack on the charger, whether the battery pack is rapidly and repeatedly put on and taken off of the charger, whether the battery pack is returned to the charger shortly after being taken off the charger, and the like. For example, a bounce detector may detect if a battery pack is placed smoothly or with high speed or high force on a charger. While a debounce logic is usually made to avoid the bouncing characteristic of electrical contacts, the contact/disconnect/reconnect logic can be used as a feedback and/or direct command on how a battery should be charged. In some embodiments, the feedback data may include data associated with a charging port that has a mechanical means of detecting user force or prolonged force. For instance, a load cell, strain sensor, spring, or biased charging port with a sensing for depression may be used as feedback or a direct command to a charger.
Power source data may include data indicating a type of power source (e.g., AC power source, DC power source, battery power source), a type of electricity input of the power source (e.g., 120 V wall outlet, 220 V wall outlet, solar power, gas inverter, wireless charger, another power tool battery pack, another power tool battery charger, an internal battery, a supercapacitor, an internal energy storage device, a vehicle), a cost of the electricity input of the power source, and the like.
In some embodiments, the power source data can include data indicating electrical characteristics or properties of the electrical grid or circuit associated with the power source. For example, the power source data can include data indicating whether the electrical grid is balanced. As another example, the power source data can include data indicating whether circuit breakers on the electrical circuit local to the power source are likely to be tripped. For instance, the power source data may include voltage curves that can be analyzed to predict when a breaker might trip, among other uses. Additionally or alternatively, the power source data can include current and/or phase angle data, which may be analyzed to predict when a breaker might trip, among other uses. As still another example, the power source data can include data indicating other characteristics of the power source, such as when the power source supplies power in a noncontinuous manner, as may be the case for solar power, then the power source data can indicate the noncontinuous manner in which power is supplied by the power source. In these instances, the power source data can be used to optimize the charging action of the power tool battery charger, such as by adjusting the charging rate in response to increases and decreases in the available power being supplied by the power source.
Sensor data may include sensor data collected using one or more sensors (e.g., voltage sensor, a current sensor, a temperature sensor, an inertial sensor) of the power tool battery charger, battery pack, and/or power tool. For example, the sensor data may include voltage sensor data indicating a measured voltage associated with the power tool battery charger, battery pack, and/or power tool. For example, such a measured voltage may include a voltage measured across positive and negative power terminals of a power tool battery charger, battery pack, and/or power tool. Likewise, the sensor data may include current sensor data indicating a measured current associated with the power tool battery charger, battery pack, and/or power tool. For example, such a measured current may include a charging current provided from a power tool battery charger and/or received by a battery pack (e.g., at power terminals of the power tool battery charger or battery pack). Additionally, such a measured current may include a discharge current provided from a battery pack and/or received by a power tool (e.g., at power terminals of the battery pack or power tool). Additionally or alternatively, the sensor data may include temperature sensor data that indicate an internal and/or operating temperature of the power tool battery charger, battery pack, and/or power tool. In some embodiments, the sensor data can include inertial sensor data, such as accelerometer data, gyroscope data, and/or magnetometer data. These inertial sensor data can indicate a motion of the power tool battery charger, battery pack, and/or power tool, and can be processed by an electronic controller to determine a force, angular rate, and/or orientation of the power tool battery charger, battery pack, and/or power tool.
Environmental data may include data indicating a characteristic or aspect of the environment in which the power tool battery charger, battery pack, and/or power tool is located. For example, environmental data can include data associated with the weather, a temperature (e.g., external temperature) of the surrounding environment, the humidity of the surrounding environment, and the like.
Operator data may include data indicating an operator and/or owner of a power tool battery charger, a battery pack, a power tool, and the like. For example, operator data may include an operator identifier (ID), an owner ID, or both.
Location data may include data indicating a location of a power tool battery charger, a battery pack, a power tool, and the like. In some embodiments, the location data may indicate a physical location of the power tool battery charger, the battery pack, and/or power tool. For example, the physical location may be represented using geospatial coordinates, such as those determined via GNSS or the like. As another example, the physical location may be represented as a jobsite location (e.g., an address, an identification of a jobsite location) and may include a location within a jobsite (e.g., a particular floor in a skyscraper or other building under construction). In some other embodiments, the location data may indicate a location of the power tool battery charger, the battery pack, and/or power tool for inventory management and tracking.
In the illustrated embodiment, the power tool battery charger 102 communicates with the external device 104. The external device 104 may include, for example, a smartphone, a tablet computer, a cellular phone, a laptop computer, a smart watch, and the like. The power tool battery charger 102 communicates with the external device 104, for example, to transmit at least a portion of the usage information for the power tool battery charger 102, to receive configuration information for the power tool battery charger 102, or a combination thereof. In some embodiments, the external device 104 may include a short-range transceiver to communicate with the power tool battery charger 102, and a long-range transceiver to communicate with the server 106. In the illustrated embodiment, the power tool battery charger 102 also includes a transceiver to communicate with the external device 104 via, for example, a short-range communication protocol such as Bluetooth® or Wi-Fi®. In some embodiments, the external device 104 bridges the communication between the power tool battery charger 102 and the server 106. For example, the power tool battery charger may 102 transmit operational data to the external device 104, and the external device 104 may forward the operational data from the power tool battery charger 102 to the server 106 over the network 108.
The network 108 may be a long-range wireless network such as the Internet, a local area network (“LAN”), a wide area network (“WAN”), or a combination thereof. In other embodiments, the network 108 may be a short-range wireless communication network, and in yet other embodiments, the network 108 may be a wired network using, for example, USB cables, or may include a combination of long-range, short-range, and/or wired connections. In some embodiments, the network 108 may include both wired and wireless devices and connections. Similarly, the server 106 may transmit information to the external device 104 to be forwarded to the power tool battery charger 102. In some embodiments, the power tool battery charger 102 bypasses the external device 104 to access the network 108 and communicate with the server 106 via the network 108. In some embodiments, the power tool battery charger 102 is equipped with a long-range transceiver instead of or in addition to the short-range transceiver. In such embodiments, the power tool battery charger 102 communicates directly with the server 106 or with the server 106 via the network 108 (in either case, bypassing the external device 104). In some embodiments, the power tool battery charger 102 may communicate directly with both the server 106 and the external device 104. In such embodiments, the external device 104 may, for example, generate a graphical user interface to facilitate control and programming of the power tool battery charger 102, while the server 106 may store and analyze larger amounts of operational data for future programming or operation of the power tool battery charger 102. In other embodiments, however, the power tool battery charger 102 may communicate directly with the server 106 without utilizing a short-range communication protocol with the external device 104.
The server 106 includes a server electronic control assembly having a server electronic processor 150, a server memory 160, a transceiver, and a machine learning controller 110. The transceiver allows the server 106 to communicate with the power tool battery charger 102, the external device 104, or both. The server electronic processor 150 receives usage data and/or other power tool device data from the power tool battery charger 102 (e.g., via the external device 104, via one or more sensors), stores the received usage data and/or other power tool device data in the server memory 160, and, in some embodiments, uses the received usage data and/or other power tool device data for constructing, training, adjusting, and/or executing a machine learning controller 110. That is, the machine learning controller 110 may be software or a set of instructions executed by the server processor 150 to implement the functionality of the machine learning controller 110 described herein. In some examples, the machine learning controller 110 includes a separate processor and memory (e.g., as described with respect to
The server 106 may maintain a database (e.g., on the server memory 160) for containing power tool device data, trained machine learning controls (e.g., trained machine learning model and/or algorithms) artificial intelligence controls (e.g., rules and/or other control logic implemented in an artificial intelligence model and/or algorithm), and the like.
Although illustrated as a single device, the server 106 may be a distributed device in which the server electronic processor 150 and server memory 160 are distributed among two or more units that are communicatively coupled (e.g., via the network 108).
The machine learning controller 110 implements a machine learning program, algorithm or model. In some implementations, the machine learning controller 110 is configured to construct a model (e.g., building one or more algorithms) based on example inputs, which may be done using supervised learning, unsupervised learning, reinforcement learning, ensemble learning, active learning, transfer learning, or other suitable learning techniques for machine learning programs, algorithms, or models. Additionally or alternatively, the machine learning controller 110 is configured to modify a machine learning program, algorithm, or model: to active and/or deactivate a machine learning program, algorithm, or model: to switch between different machine learning programs, algorithms, or models; and/or to change output thresholds for a machine learning program, algorithms, or model.
As a non-limiting example, the machine learning controller 110 can construct a machine learning program, algorithm, or model using supervised learning techniques, or alternatively can access a machine learning program, algorithm, or model previously constructed using supervised learning techniques. Supervised learning involves presenting a computer program with example inputs and their actual outputs (e.g., categorizations). In these instances, the machine learning controller 110 is configured to learn a general rule or model that maps the inputs to the outputs based on the provided example input-output pairs.
The machine learning algorithm may be configured to implement various different types of machine learning algorithms or models. For example, the machine learning controller 110 may implement decision tree learning, association rule learning, artificial neural networks, recurrent neural networks, long short-term memory models, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity and metric learning, sparse dictionary learning, genetic algorithms, k-nearest neighbors (“KNN”) classifiers, among others, such as those listed in Table 1 below.
The machine learning controller 110 can be programmed and trained to perform a particular task. For example, in some embodiments, the machine learning controller 110 is trained to adjust a charging target, a charging rate, a time-of-day when to charge, or combinations thereof, based on data regarding the operation of the power tool battery charger, the operating mode of the power tool battery charger, a condition encountered when operating the power tool battery charger, or other aspects. The task for which the machine learning controller 110 is trained may vary based on, for example, the type of power tool battery charger, a selection from a user, typical applications for which the power tool battery charger is used, the type of power source to which the power tool battery charger is connected, and the like.
The machine learning controller 110 can be programmed and trained to perform a particular task. For example, in some embodiments, the machine learning controller 110 is trained to adjust a charging target, a charging rate, a time-of-day when to charge, or combinations thereof, based on data regarding the operation of the power tool battery charger, the operating mode of the power tool battery charger, a condition encountered when operating the power tool battery charger, or other aspects. The task for which the machine learning controller 110 is trained may vary based on, for example, the type of power tool battery charger, a selection from a user, typical applications for which the power tool battery charger is used, the type of power source to which the power tool battery charger is connected, and the like.
Similarly, the way in which the machine learning controller 110 is trained also varies based on the particular task. For instance, the training examples, or data, used to train the machine learning controller 110 may include different information based on the task of the machine learning controller 110. As a non-limiting example in which the machine learning controller 110 is configured to adjust a charging target, charging rate, and/or time-of-day to charge based on the type of power source to which the power tool battery charger is connected, each training example may include a set of inputs such as power source voltage, power source current, cost of electricity supplied by the power source, and the like. Each training example generally also includes a specified output. For example, when the machine learning controller 110 is trained to identify the type of power source to which the power tool battery charger is connected, a training example may have an output that includes a classification of the power source type (e.g., a 120 V power source, a 220 V power source, a solar power source, a gas inverter power source, a wireless power source, whether another battery pack on a multi-bay charger is acting as the power source, whether the power source is an internal power source). Other training examples may include different values for each of the inputs and an output indicating charger operation data (e.g., charging rate(s), charging target(s), time indications of when to adjust charging rate(s) and/or target(s), order in which to charge battery packs on a multi-bay power tool battery charger). The training examples may be previously collected training examples from, for example, a plurality of power tool battery chargers, batteries, power tools, and the like. For example, the training examples may have been previously collected from, for example, several hundred power tool battery chargers of the same type over a span of, for example, one month, six months, one year, or another time period.
A plurality of different training examples is provided to the machine learning controller 110. The machine learning controller 110 uses these training examples to generate a model (e.g., a rule, a set of equations, and the like) that helps categorize or estimate the output based on new input data. The machine learning controller 110 may weigh different training examples differently to, for example, prioritize different conditions or outputs from the machine learning controller 110. For example, a training example corresponding to a first set of charger operation data may be weighted more heavily than a training example corresponding to a second set of charger operation data in order to prioritize the optimization of the first set of charger operation data relative to the second set of charger operation data in certain instances. For instance, the first set of charger operation data may indicate faster charging at the expense of battery wear and the second set of charger operation data may indicate more efficient charging that minimizes battery wear, and the operational needs of the power tool battery charger may indicate that faster charging would be preferable. In some embodiments, the training examples are weighted differently by associating a different cost function or value to specific training examples or types of training examples.
In one example, the machine learning controller 110 implements an artificial neural network. The artificial neural network generally includes an input layer, one or more hidden layers or nodes, and an output layer. Typically, the input layer includes as many nodes as inputs provided to the machine learning controller 110. As described above, the number (and the type) of inputs provided to the machine learning controller 110 may vary based on the particular task for the machine learning controller 110. Accordingly, the input layer of the artificial neural network of the machine learning controller 110 may have a different number of nodes based on the particular task for the machine learning controller 110.
The input layer connects to the one or more hidden layers. The number of hidden layers varies and may depend on the particular task for the machine learning controller 110. Additionally, each hidden layer may have a different number of nodes and may be connected to the next layer differently. For example, each node of the input layer may be connected to each node of the first hidden layer. The connection between each node of the input layer and each node of the first hidden layer may be assigned a weight parameter. Additionally, each node of the neural network may also be assigned a bias value. However, each node of the first hidden layer may not be connected to each node of the second hidden layer. That is, there may be some nodes of the first hidden layer that are not connected to all of the nodes of the second hidden layer. The connections between the nodes of the first hidden layers and the second hidden layers are each assigned different weight parameters. Each node of the hidden layer is associated with an activation function. The activation function defines how the hidden layer is to process the input received from the input layer or from a previous input or hidden layer. These activation functions may vary and be based on not only the type of task associated with the machine learning controller 110, but may also vary based on the specific type of hidden layer implemented.
Each hidden layer may perform a different function. For example, some hidden layers can be convolutional hidden layers which can, in some instances, reduce the dimensionality of the inputs, while other hidden layers can perform more statistical functions such as max pooling, which may reduce a group of inputs to the maximum value, an averaging layer, among others. In some of the hidden layers (also referred to as “dense layers”), each node is connected to each node of the next hidden layer. Some neural networks including more than, for example, three hidden layers may be considered deep neural networks.
The last hidden layer in the artificial neural network is connected to the output layer. Similar to the input layer, the output layer typically has the same number of nodes as the possible outputs. In an example in which the machine learning controller 110 identifies a use application of the battery charger 102, the output layer may include, for example, a number of different nodes, where each different node corresponds to a different set of charger operation data. A first node may indicate that the use application corresponds to an instance where faster charging is desired at the expense of battery wear, and a second node may indicate that the use application corresponds to an instance where more efficient charging is acceptable at the expense of overall charging time, and a third node may indicate that the use application corresponds to an unknown (or unidentifiable) set of charger operation data. In some embodiments, the machine learning controller 110 then selects the output node with the highest value and indicates the corresponding use application to the power tool battery charger 102 or to the user. In some embodiments, the machine learning controller 110 may also select more than one output node.
The machine learning controller 110 or the electronic controller of the power tool battery charger 102 (e.g., electronic controller 720) may then use the one or more outputs to control the power tool battery charger 102 (e.g., by controlling operation of one or more charging circuits of the power tool battery charger 102). For example, the machine learning controller 110 may identify the use application of the power tool battery charger 102 and may determine an optimal set of charger operation data (e.g., charging rate(s), charging target(s), time indications of when to adjust charging rate(s) and/or target(s), an order in which the prioritize charging battery packs) for the power tool battery charger 102. The machine learning controller 110 or the electronic controller of the power tool battery charger 102 may then, for example, control the charging circuit(s) (e.g., charging circuit(s) 758) to adjust the current supplied to the battery pack(s) in order to adjust the charging rate(s) and/or target(s). The machine learning controller 110 and the electronic processor of the power tool battery charger 102 may implement different methods of combining the outputs from the machine learning controller 110.
During training, the artificial neural network receives the inputs for a training example and generates an output using the bias for each node, and the connections between each node and the corresponding weights. The artificial neural network then compares the generated output with the actual output of the training example. Based on the generated output and the actual output of the training example, the neural network changes the weights associated with each node connection. In some embodiments, the neural network also changes the weights associated with each node during training. The training continues until a training condition is met. The training condition may correspond to, for example, a predetermined number of training examples being used, a minimum accuracy threshold being reached during training and validation, a predetermined number of validation iterations being completed, and the like. Different types of training algorithms can be used to adjust the bias values and the weights of the node connections based on the training examples. The training algorithms may include, for example, gradient descent, Newton's method, conjugate gradient, quasi-Newton, Levenberg-Marquardt, among others.
In another example, the machine learning controller 110 implements a support vector machine or other suitable machine learning classifier algorithm or model to perform classification. The machine learning controller 110 may, for example, classify the type of power source to which the power tool battery charger 102 is connected. In such embodiments, the machine learning controller 110 may receive inputs such as voltage and current. The machine learning controller 110 then defines a margin using combinations of some of the input variables (e.g., voltage, current, and the like) as support vectors to maximize the margin. In some embodiments, the machine learning controller 110 defines a margin using combinations of more than one of similar input variables (e.g., voltage, current). The margin corresponds to the distance between the two closest vectors that are classified differently. For example, the margin corresponds to the distance between a vector representing a first type of power source and a vector that represents a second type of power source. In some embodiments, the machine learning controller 110 uses more than one support vector machine to perform a single classification. For example, when the machine learning controller 110 classifies the type of power source to which the power tool battery charger 102 is connected, a first support vector machine may determine whether the power tool battery charger 102 is connected to a solar power source based on the voltage and current measured by sensors in the power tool battery charger 102, while a second support vector machine may determine whether the power tool battery charger 102 is connected to a solar power source based on usage data (e.g., prior use data indicating that the particular power tool battery charger 102 is frequently connected to a solar power source at particular times of the day and/or days of the week and/or at particular locations). The machine learning controller 110 may then determine whether the power tool battery charger 102 is connected to a solar power source when both support vector machines classify the power source type as a solar power source. In other embodiments, a single support vector machine can use more than two input variables and define a hyperplane that separates one power source type from other power source types.
The training examples for a support vector machine include an input vector including values for the input variables (e.g., voltage, current, and the like), and an output classification indicating whether the power source type is a solar power source. During training, the support vector machine selects the support vectors (e.g., a subset of the input vectors) that maximize the margin. In some embodiments, the support vector machine may be able to define a line or hyperplane that accurately separates solar power source types from other power source types. In other embodiments (e.g., in a non-separable case), however, the support vector machine may define a line or hyperplane that maximizes the margin and minimizes the slack variables, which measure the error in a classification of a support vector machine. After the support vector machine has been trained, new input data can be compared to the line or hyperplane to determine how to classify the new input data (e.g., what type of power source the power tool battery charger 102 is connected to).
In other embodiments, as mentioned above, the machine learning controller 110 can implement different machine learning algorithms to make an estimation or classification based on a set of input data.
In the example of
In particular, in the embodiment illustrated in
The power tool battery charger 102 receives the updated charger operation data, updates charging circuit controls according to the updated charger operation data, and operates according to the updated charger operation data when battery packs are put on the power tool battery charger 102 during the specified times of day. In some embodiments, the power tool battery charger 102 periodically transmits the usage data and/or other power tool device data to the server 106 based on a predetermined schedule (e.g., every eight hours). In other embodiments, the power tool battery charger 102 transmits the usage data and/or other power tool device data after a predetermined period of inactivity (e.g., when the power tool battery charger 102 has been inactive for two hours), which may indicate that a session of operation has been completed. In some embodiments, the power tool battery charger 102 transmits the usage data and/or other power tool device data in real time to the server 106 and may implement the updated thresholds and parameters in subsequent operations.
The power tool battery charger 202 communicates with the server 206 via, for example, the external device 104 as described above with respect to
Accordingly, the static machine learning controller 210 includes a trained machine learning program, algorithm, or model provided, for example, at the time of manufacture. During future operations of the power tool battery charger 202, the static machine learning controller 210 analyzes new usage data and/or other power tool device data from the power tool battery charger 202 and generates recommendations or actions based on the new usage data and/or other power tool device data. As discussed above with respect to the machine learning controller 110, the static machine learning controller 210 has one or more specific tasks such as, for example, determining a current application of the battery charger 102. In other embodiments, the task of the static machine learning controller 210 may be different. In some embodiments, a user of the power tool battery charger 202 may select a task for the static machine learning controller 210 using, for example, a graphical user interface generated by the external device 104. The external device 104 may then transmit the target task for the static machine learning controller 210 to the server 206. The server 206 then transmits a trained machine learning program, algorithm, or model, trained for the target task, to the static machine learning controller 210. Based on the estimations or classifications from the static machine learning controller 210, the power tool battery charger 202 may change its operation (e.g., change the operation of the charging circuit(s)), adjust one of the operating modes of the power tool battery charger 202, and/or adjust a different aspect of the power tool battery charger 202. In some embodiments, the power tool battery charger 202 may include more than one static machine learning controller 210, each having a different target task.
The power tool battery charger 302 of the third power tool battery charger system 300 transmits feedback to the server 306 (via, for example, the external device 104) regarding the operation of the adjustable machine learning controller 310. The power tool battery charger 302, for example, may transmit an indication to the server 306 regarding the number of operations that were incorrectly classified by the adjustable machine learning controller 310. The server 306 receives the feedback from the power tool battery charger 302, updates the machine learning program, algorithm, or model, and provides the updated program to the adjustable machine learning controller 310 to reduce the number of operations that are incorrectly classified. Thus, the server 306 updates or re-trains the adjustable machine learning controller 310 in view of the feedback received from the power tool battery charger 302. In some embodiments, the server 306 also uses feedback received from similar power tools and/or batteries to adjust the adjustable machine learning controller 310. In some embodiments, the server 306 updates the adjustable machine learning controller 310 periodically (e.g., every week or month). In other embodiments, the server 306 updates the adjustable machine learning controller 310 when the server 306 receives a predetermined number of feedback indications (e.g., after the server 306 receives two feedback indications). The feedback indications may be positive (e.g., indicating that the adjustable machine learning controller 310 correctly classified a condition, event, operation, or combination thereof), or the feedback may be negative (e.g., indicating that the adjustable machine learning controller 310 incorrectly classified a condition, event, operation, or combination thereof).
In some embodiments, the server 306 also utilizes new usage data and/or other power tool device data received from the power tool battery charger 302 and batteries or power tools to update the adjustable machine learning controller 310. For example, the server 306 may periodically re-train (or adjust the training of) the adjustable machine learning controller 310 based on the newly received usage data and/or other power tool device data. The server 306 then transmits an updated version of the adjustable machine learning controller 310 to the power tool battery charger 302.
When the power tool battery charger 302 receives the updated version of the adjustable machine learning controller 310 (e.g., when an updated machine learning program is provided to and stored on the machine learning controller 310), the power tool battery charger 302 replaces the current version of the adjustable machine learning controller 310 with the updated version. In some embodiments, the power tool battery charger 302 is equipped with a first version of the adjustable machine learning controller 310 during manufacturing. In such embodiments, the user of the power tool battery charger 302 may request newer versions of the adjustable machine learning controller 310. In some embodiments, the user may select a frequency with which the adjustable machine learning controller 310 is transmitted to the power tool battery charger 302.
In some embodiments, the power tool battery charger 402 re-trains the self-updating machine learning controller 410 when the power tool battery charger 402 is not in operation. For example, the power tool battery charger 402 may detect when a battery is not connected to the power tool battery charger 402, when a battery is connected to the power tool battery charger 402, but fully charged, or when the power tool battery charger 402 has not been operated for a predetermined time period, and start a re-training process of the self-updating machine learning controller 410 while the power tool battery charger 402 remains non-operational.
Training the self-updating machine learning controller 410 while the power tool battery charger 402 is not operating allows more processing power to be used in the re-training process instead of competing for computing resources typically used to operate the power tool battery charger 402. Additionally or alternatively, the power tool battery charger 402 may also re-train the self-updating machine learning controller 410 when the power tool battery charger 402 is in a particular operational mode or another operational condition is met. For instance, the power tool battery charger 402 may detect when a battery pack is put on the power tool battery charger 402, and start a re-training process of the self-updating machine learning controller 410 (e.g., based on power tool device data retrieved from the battery pack recently put on the power tool battery charger 402).
As shown in
The power tool battery charger 402 also communicates with the server 406 (e.g., via the external device 104). In some embodiments, the server 406 may also re-train the self-updating machine learning controller 410, for example, as described above with respect to
In some embodiments, the server 406 does not re-train the self-updating machine learning controller 410, but still exchanges information with the power tool battery charger 402. For example, the server 406 may provide other functionality for the power tool battery charger 402 such as, for example, transmitting information regarding various operating modes for the power tool battery charger 402.
Each of
The external device 104 may include, for example, a smartphone, a tablet computer, a cellular phone, a laptop computer, a smart watch, and the like. The server 106, 206, 306, 406 illustrated in
In some embodiments, the power tool battery charger 402 may not communicate with the external device 104 or the server 406. For example,
In the illustrated embodiment of
In some embodiments, the machine learning controller 510 is similar to the machine learning controller 310 of
In some embodiments, as discussed briefly above, the power tool battery charger 502 also includes a machine learning controller. The machine learning controller of the power tool battery charger 502 may be similar to, for example, the static machine learning controller 210 of
In still other embodiments, a power tool battery charger system can be implemented as a power tool battery pack adapter configured to be positioned between a battery pack and power tool. The power tool adapter can thus include an electronic controller, machine learning controller, and/or artificial intelligence controller that is configured to implement the methods described in the present disclosure (e.g., the process 800 of
Each of
Although the power tool battery charger 702 of
As shown in
The electronic controller 720 can include an electronic processor 730 and memory 740. The electronic processor 730, the memory 740, and the wireless communication device 750) can communicate over one or more control buses, data buses, etc., which can include a device communication bus 776. The control and/or data buses are shown generally in
The electronic processor 730 can be configured to communicate with the memory 740 to store data and retrieve stored data. The electronic processor 730 can be configured to receive instructions and data from the memory 740 and execute, among other things, the instructions. In particular, the electronic processor 730 executes instructions stored in the memory 740. Thus, the electronic controller 720 coupled with the electronic processor 730 and the memory 740 can be configured to perform the methods described herein (e.g., the process 800 of
The memory 740 can include read-only memory (“ROM”), random access memory (“RAM”), other non-transitory computer-readable media, or a combination thereof. The memory 740 can include instructions 742 for the electronic processor 730 to execute. The instructions 742 can include software executable by the electronic processor 730 to enable the electronic controller 720 to, among other things, determine charger operation data based on power tool device data received from the power tool battery charger 702, a battery pack, a power tool, or other related power tool device. The software can include, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. In some embodiments, the machine learning controller 710 may be stored in the memory 740 of the electronic controller 720 and can be executed by the electronic processor 730.
The electronic processor 730 is configured to retrieve from memory 740 and execute, among other things, instructions related to the control processes and methods described herein. The electronic processor 730 is also configured to store data on the memory 740 including usage data (e.g., usage data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), maintenance data (e.g., maintenance data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), environmental data, operator data, location data, and the like. Additionally, the electronic processor 730 can also be configured to store other data on the memory 740 including information identifying the type of power tool battery charger, a unique identifier for the particular power tool battery charger, user characteristics (e.g., identity, trade type, skill level), and other information relevant to operating or maintaining the power tool battery charger 702 (e.g., received from an external source, such as the external device 104 or pre-programed at the time of manufacture).
In some embodiments, the memory 740 may include a machine learning control (e.g., machine learning control 784 described below with respect to
In some other embodiments, the memory 740 may include an artificial intelligence control that, when acted upon by the electronic processor 730, enables the electronic controller 720 to function as an artificial intelligence controller. The artificial intelligence control may include instructions for implementing one or more artificial intelligence programs, algorithms, or models such as an expert system, a rules engine, a symbolic logic, one or more knowledge graphs, and so on.
The wireless communication device 750 is coupled to the electronic controller 720 (e.g., via the device communication bus 776). The wireless communication device 750 may include, for example, a radio transceiver and antenna, a memory, and an electronic processor. In some examples, the wireless communication device 750) can further include a GNSS receiver configured to receive signals from GNSS satellites, land-based transmitters, etc. The radio transceiver and antenna operate together to send and receive wireless messages to and from the external device 104, one or more battery packs, one or more power tools, one or more additional power tool battery chargers, a server (e.g., server 106, 206, 306, 406), and/or the electronic processor of the wireless communication device 750. The memory of the wireless communication device 750 stores instructions to be implemented by the electronic processor and/or may store data related to communications between the power tool battery charger 702 and the external device 104, one or more battery packs, one or more power tools, one or more additional power tool battery chargers, and/or a server (e.g., server 106, 206, 306, 406).
The electronic processor for the wireless communication device 750 controls wireless communications between the power tool battery charger 702 and the external device 104, one or more battery packs, one or more power tools, one or more additional power tool battery chargers, and/or a server (e.g., server 106, 206, 306, 406). For example, the electronic processor of the wireless communication device 750 buffers incoming and/or outgoing data, communicates with the electronic processor 730 and/or machine learning controller 710, and determines the communication protocol and/or settings to use in wireless communications.
In some embodiments, the wireless communication device 750 is a Bluetooth® controller. The Bluetooth® controller communicates with the external device 104, one or more battery packs, one or more power tools, one or more additional power tool battery chargers, and/or a server (e.g., server 106, 206, 306, 406) employing the Bluetooth® protocol. In such embodiments, therefore, the external device 104, one or more battery packs, one or more power tools, one or more additional power tool battery chargers, and/or a server (e.g., server 106, 206, 306, 406) and the power tool battery charger 702 are within a communication range (i.e., in proximity) of each other while they exchange data. In other embodiments, the wireless communication device 750 communicates using other protocols (e.g., Wi-Fi, cellular protocols, a proprietary protocol, etc.) over a different type of wireless network. For example, the wireless communication device 750 may be configured to communicate via Wi-Fi through a wide area network such as the Internet or a local area network, or to communicate through a piconet (e.g., using infrared or NFC communications). The communication via the wireless communication device 750 may be encrypted to protect the data exchanged between the power tool battery charger 702 and the external device 104, one or more battery packs, one or more power tools, one or more additional power tool battery chargers, and/or a server (e.g., server 106, 206, 306, 406) from third parties.
The wireless communication device 750, in some embodiments, exports usage data (e.g., usage data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), maintenance data (e.g., maintenance data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), environmental data, operator data, location data, and the like from the power tool battery charger 702 (e.g., from the electronic processor 730).
The server 106, 206, 306, 406, receives the exported data, either directly from the wireless communication device 750 or through an external device 104, and logs the data received from the power tool battery charger 702. As discussed in more detail below, the exported data can be used by the power tool battery charger 702, the external device 104, or the server 106, 206, 306, 406, to train or adapt a machine learning controller relevant to similar power tool battery chargers. The wireless communication device 750 may also receive information from the server 106, 206, 306, 406, the external device 104, a power tool, or another power tool battery charger, such as time and date data (e.g., real-time clock data, the current date), configuration data, operation threshold, maintenance threshold, mode configurations, programming for the power tool battery charger 702, updated machine learning controllers for the power tool battery charger 702, and the like. For example, the wireless communication device 750 may exchange information with a second power tool battery charger directly, or via an external device 104.
In some embodiments, the power tool battery charger 702 does not communicate with the external device 104 or with the server 106, 206, 306, 406 (e.g., power tool battery charger system 400 in
In some embodiments, the power tool battery charger 702 includes a data sharing setting. The data sharing setting indicates what data, if any, is exported from the power tool battery charger 702 to the server 106, 206, 306, 406. In one embodiment, the power tool battery charger 702 receives (e.g., via a graphical user interface generated by the external device 104) an indication of the type of data to be exported from the power tool battery charger 702. In one embodiment, the external device 104 may display various options or levels of data sharing for the power tool battery charger 702, and the external device 104 receives the user's selection via its generated graphical user interface. For example, the power tool battery charger 702 may receive an indication that only usage data is to be exported from the power tool battery charger 702, but may not export information regarding, for example, the modes implemented by the power tool battery charger 702, the location of the power tool battery charger 702, and the like. In some embodiments, the data sharing setting may be a binary indication of whether or not data regarding the operation of the power tool battery charger 702 (e.g., usage data) are transmitted to the server 106, 206, 306, 406. The power tool battery charger 702 receives the user's selection for the data sharing setting and stores the data sharing setting in memory to control the communication of the wireless communication device 750 according to the selected data sharing setting.
In some embodiments, the wireless communication device 750 can be within a separate housing along with the electronic controller 720 or another electronic controller, and that separate housing selectively attaches to the power tool battery charger 702. For example, the separate housing may attach to an outside surface of the power tool battery charger 702 or may be inserted into a receptacle of the power tool battery charger 702. Accordingly, the wireless communication capabilities of the power tool battery charger 702 can reside in part on a selectively attachable communication device, rather than integrated into the power tool battery charger 702. Such selectively attachable communication devices can include electrical terminals that engage with reciprocal electrical terminals of the power tool battery charger 702 to enable communication between the respective devices and enable the power tool battery charger 702 to provide power to the selectively attachable communication device. In other embodiments, the wireless communication device 750 can be integrated into the power tool battery charger 702.
In some embodiments, the power source 754 can be an AC power source or a DC power source, which can be in electrical communication with one or more power outlets (e.g., AC or DC outlets). For instance, the power source 754 can be an AC power source, for example, a conventional wall outlet, or the power source 754 can be a DC power source, for example, a photovoltaic cell (e.g., a solar panel). In some embodiments, the power source 754 may use a universal serial bus (“USB”) protocol for supplying power to the power tool battery charger 702. In these instances, the power tool battery charger 702 may include a USB input for power. As an example, the power source 754 may be a solar panel that uses a USB protocol, such as variable power-data object (“PDO”), for supplying power to the power tool battery charger 702.
Additionally or alternatively, the power source 754 can be a battery and the power tool battery charger 702 can be a portable power supply and/or a charging device for one or more power tool battery packs, power tools, or other peripheral devices. In these instances, the power tool battery charger 702 distributes the power from the power source 754 (i.e., battery) to provide power to one or more power tool battery packs, such as battery pack(s) 760, via the battery pack interface 752. Additionally, the power tool battery charger 702 can also distribute the power from the power source 754 (i.e., battery) to one or more peripheral devices (e.g., a smartphone, a tablet computer, a laptop computer, a portable music player, a power tool, and the like).
One or more characteristics of the power source 754 can be monitored by one or more of the sensors 772 of the power tool battery charger 702. For example, a voltage of the power source 754 can be monitored by a sensor 772 implemented as a voltage sensor, which can generate output as power source data that indicate a voltage measured, detected, or otherwise monitored on the power source 754: or a current of the power source 754 can be monitored by a sensor 772 implemented as a current sensor, which can generate output as power source data that indicate a current measured, detected, or otherwise monitored on the power source 754.
The power tool battery charger 702 also includes a power tool battery pack interface 752 that is configured to selectively receive and interface with one or more power tool battery packs 760 (e.g., the battery pack 656 or a similar battery pack without a machine learning controller). The power tool battery pack interface 752 may include one or more charging ports (e.g., for charging one or more battery packs). Each charging port of the battery pack interface 752 can include one or more power terminals and, in some cases, one or more communication terminals that interface with respective power terminals, communication terminals, etc., of the power tool battery pack(s) 760.
In some embodiments, the power tool battery pack interface 752 provides an electrical and mechanical connection for a battery pack 760. Additionally or alternatively, the power tool battery pack interface 752 can provide a wireless coupling to a battery pack 760 in order to provide wireless energy transfer from the power tool battery charger 702 to the battery pack 760. For example, in some configurations the power tool battery pack interface 752 may include one or more transmitter coils for charging a battery pack 760 using a wireless energy transfer (e.g., via electromagnetic induction).
The power tool battery pack(s) 760 can include one or more battery cells of various chemistries, such as lithium-ion (Li-Ion), nickel cadmium (Ni-Cad), etc. The power tool battery pack(s) 760 can further selectively latch and unlatch (e.g., with a spring-biased latching mechanism) to the power tool battery charger 702 to prevent unintentional detachment. The power tool battery pack(s) 760 can further include a pack electronic controller (pack controller) including a processor and a memory. The pack controller can be configured similarly to the electronic controller 720 of the power tool battery charger 702. The pack controller can be configured to regulate charging and discharging of the battery cells, and/or to communicate with the electronic controller 720. In some embodiments, the power tool battery pack(s) 760 can further include an antenna, similar to the wireless communication device 750, coupled to the pack controller via a bus similar to bus 776. Accordingly, the pack controller, and thus the power tool battery pack(s) 760, can be configured to communicate with other devices, such as the power tool battery charger 702 or other power tool battery chargers, a cellular tower, a Wi-Fi router, a mobile device, access points, etc. In some embodiments, the memory of the pack controller can include the instructions 742. The power tool battery pack(s) 760 can further include, for example, a charge level fuel gauge, analog front ends, sensors, etc.
The electronic controller 720 controls the charging circuit(s) 758 to charge the battery pack(s) 760. For example, charging circuit(s) 758 can each include controllable power switching elements (e.g., field effect transistors, IGBTs, and the like) that the electronic processor 730 of the electronic controller 720 selectively enables to provide power from the power source 754 to the respective battery pack(s) 760. Thus, the electronic controller 720 coupled with the electronic processor 730 and the memory 740 can be configured to control the charging circuit(s) 758 to perform the methods described herein (e.g., process 800 of
For instance, the instructions 742 can include software executable by the electronic processor 730 to enable the electronic controller 720 to, among other things, control the charging circuit(s) 758 to adjust a charging target for a battery pack 760, adjust a charging rate for a battery pack 760, adjust a time of day when to charge a battery pack 760, adjust an order in which to charge battery packs 760 connected to the battery pack interface 752, combinations thereof, and the like. Such charging actions can be characterized as charger operation data, which indicate controls for the charging circuit(s) 758 to adjust the charging rate(s) and/or charging target(s), and can include timing indications for when the charging rate(s) and/or target(s) should be changed. The charger operation data may also indicate an order in which to charge different battery packs 760 connected to a power tool battery charger 702 (e.g., connected to different charging bays of a multi-bay charger) and/or different sets of charging rate(s) and/or target(s) to be applied to different charging circuits 758 in order to prioritize different charging actions for different charging bays.
In some embodiments, the power tool battery charger 702 also optionally includes additional electronic components 770. The electronic components 770 can include, for example, one or more of a lighting element (e.g., an LED), an audio element (e.g., a speaker), a bounce detector, etc. In further examples, the electronic components 770 may include a radio frequency identification (“RFID”) reader to read a battery identification number stored on an RFID tag in the battery pack 760, a power tool identification number stored on an RFID tag in the power tool, and the like. As another example, the electronic components 770 may include a near-field communication (“NFC”) reader to read a battery identification number stored on an NFC tag in the battery pack 760, a power tool identification number stored on an NFC tag in the power tool, and the like.
In some embodiments, the electronic controller 720 is also connected to one or more sensors 772, which may include voltage sensors or voltage sensing circuits, current sensors or current sensing circuits, temperature sensors or temperature sensing circuits, inertial sensors or inertial sensing circuits (e.g., accelerometers, gyroscopes, magnetometers), or the like. The temperature sensor(s) may include, for example, a thermistor. Each temperature sensor sends a signal to the electronic controller 720 indicating a temperature of the battery pack (e.g., indicative of a temperature of battery cells within the pack), a temperature of the battery charger 702 (e.g., indicative of a temperature within a housing of the charger, of power switching elements, and/or other electronics of the battery charger 702), and/or an ambient temperature of the environment around the battery charger 702.
The one or more sensors 772 are coupled to the machine learning controller 710 and/or electronic processor 730 (e.g., via the device communication bus 776) and communicate to the machine learning controller 710 and/or electronic processor 730 various output signals indicative of different parameters of the power tool battery charger 702, the power source 754, the battery pack(s) 760, and/or the environment.
In some embodiments, the machine learning controller 710 uses the sensor data from the sensor(s) 772 to control the charging circuit(s) 758, such as by applying the sensor data to one or more machine learning programs, algorithms, or models in order to generate output as control signals that control an action of the charging circuit(s) 758. For example, sensor data including voltage data can be used to indicate the type of power source to which the power tool battery charger 702 is connected and charger operation data can be generated in response to control the charging action of the charging circuit(s) 758 according to the type of connected power source. As another example, current data can be used to monitor the charging rate and/or current draw of the power tool battery charger 702 and charger operation data can be generated in response to control the charging action of the charging circuit(s) 758 to limit the maximum current draw. As still another example, inertial sensor data (e.g., accelerometer data, gyroscope data, magnetometer data) can be used to determine a position of the power tool battery charger 702, from which charger operation data can be generated in response to control the charging action of the charging circuit(s) 758 to adjust the charging rate(s) and/or target(s) based on an estimated use application of the power tool battery charger 702 based on its location.
In some other embodiments, the electronic processor 730 uses power tool device data from the battery pack(s) 760 to control the charging circuit(s) 758. For example, usage data can be used to indicate various aspects of the power tool battery charger 702 use, or likely future uses of the power tool battery charger 702. These data can be used to generate charger operation data to control the charging action of the charging circuit(s) 758 in an optimized manner for the current usage of the power tool battery charger 702 and/or for future likely usage of the power tool battery charger 702.
The machine learning controller 710 is coupled to the electronic controller 720 (e.g., via the device communication bus), and in some embodiments may be selectively coupled such that an activation switch 774 (e.g., mechanical switch, electronic switch) can selectively switch between an activated state and a deactivated state. When the activation switch 774 is in the activated state, the electronic controller 720 is in communication with the machine learning controller 710 and receives decision outputs from the machine learning controller 710. When the activation switch 774 is in the deactivated state, the electronic controller 720 is not in communication with the machine learning controller 710. In other words, the activation switch 774 selectively enables and disables the machine learning controller 710.
As described above with respect to
In one embodiment, the activation switch 774 switches between an activated state and a deactivated state. In such embodiments, while the activation switch 774 is in the activated state, the electronic controller 720 controls the operation of the power tool battery charger 702 (e.g., changes the operation of the motor charging circuit(s) 758) based on the determinations from the machine learning controller 710. Otherwise, when the activation switch 774 is in the deactivated state, the machine learning controller 710 is disabled and the machine learning controller 710 does not affect the operation of the power tool battery charger 702. In some embodiments, however, the activation switch 774 switches between an activated state and a background state. In such embodiments, when the activation switch 774 is in the activated state, the electronic controller 720 controls the operation of the power tool battery charger 702 based on the determinations or outputs from the machine learning controller 710. However, when the activation switch 774 is in the background state, the machine learning controller 710 continues to generate output based on the usage data of the power tool battery charger or other collected data and may calculate (e.g., determine) thresholds or other operational levels, but the electronic controller 720 does not change the operation of the power tool battery charger 702 based on the determinations and/or outputs from the machine learning controller 710. In other words, in such embodiments, the machine learning controller 710 operates in the background without affecting the operation of the power tool battery charger 702.
In some embodiments, the activation switch 774 is not included on the power tool battery charger 702 and the machine learning controller 710 is maintained in the enabled state or is controlled to be enabled and disabled via, for example, wireless signals from the server (e.g., servers 106, 206, 306, 406) or from the external device 104.
In some embodiments, the power tool battery charger 702 may implement an artificial intelligence controller instead of, or in addition to, the machine learning controller 710. The artificial intelligence controller implements one or more AI programs, algorithms, or models. In some embodiments, the AI controller is configured to implement the one or more AI programs, algorithms, or models such as an expert system, a rules engine, a symbolic logic, one or more knowledge graphs, and so on. In some embodiments, the AI controller is integrated into and implemented by the electronic controller 720 (e.g., the electronic controller 720 may be referred to as an AI controller). In some embodiments, the AI controller is a separate controller from the electronic controller 720 and includes an electronic processor and memory, similar to the machine learning controller 710 as illustrated in
In some embodiments, the power tool battery charger 702 can include one or more inputs 790 (e.g., one or more buttons, switches, and the like) that allow a user to select a mode of the power tool battery charger 702 and indicates to the user the currently selected mode of the power tool battery charger 702. In some embodiments, the input 790 includes a single actuator. In such embodiments, a user may select an operating mode for the power tool battery charger 702 based on, for example, a number of actuations of the input 790. For example, when the user activates the actuator three times, the power tool battery charger 702 may operate in a third operating mode. In other embodiments, the input 790 includes a plurality of actuators, each actuator corresponding to a different operating mode. For example, the input 790 may include four actuators, when the user activates one of the four actuators, the power tool battery charger 702 may operate in a first operating mode. The electronic controller 720 receives a user selection of an operating mode via the input 790, and controls the electronic controller 720 such that the one or more charging circuits 758 are operated according to the selected operating mode.
In some embodiments, the power tool battery charger 702 does not include an input 790. In such embodiments, the power tool battery charger 702 may operate in a single mode, or may include a different selection mechanism for selecting an operation mode for the power tool battery charger 702. In some embodiments, as described in more detail below, the power tool battery charger 702 (e.g., the electronic controller 720) automatically selects an operating mode for the power tool battery charger 702 using, for example, the machine learning controller 710 and/or artificial intelligence controller. In some embodiments, the power tool battery charger 702 communicates with the external device 104, and the external device 104 generates a graphical user interface that enables a user to convey information to the power tool battery charger 702 without the need for input(s) 790 on the power tool battery charger 702 itself.
In some embodiments, the power tool battery charger 702 may include one or more outputs 792 that are also coupled to the electronic controller 720. The output(s) 792 can receive control signals from the electronic controller 720 to generate a visual signal to convey information regarding the operation or state of the power tool battery charger 702 to the user. The output(s) 792 may include, for example, LEDs or a display screen and may generate various signals indicative of, for example, an operational state or mode of the power tool battery charger 702, an abnormal condition or event detected during the operation of the power tool battery charger 702, and the like. For example, the output(s) 792 may indicate measured electrical characteristics of the power tool battery charger 702, the state or status of the power tool battery charger 702, an operating mode of the power tool battery charger 702, and the like.
In some embodiments, the power tool battery charger 702 does not include the output(s) 792. In some embodiments, the power tool battery charger 702 communicates with the external device 104, and the external device 104 generates a graphical user interface that conveys information to the user without the need for output(s) 792 on the power tool battery charger 702 itself.
As shown in
In the embodiment of
In other embodiments, however, the machine learning control 784 may be stored in memory 740 of the electronic controller 720 and may be implemented by the electronic processor 730. In yet other embodiments, the machine learning controller 710 is implemented in the separate electronic processor 780, but is positioned on the same PCB as the electronic controller 720 of the power tool battery charger 702. Embodiments with the machine learning controller 710 implemented as a separate processing unit from the electronic controller 720, whether on the same or different PCBs, allows selecting a processing unit to implement each of the machine learning controller 710 and the electronic controller 720 that has its capabilities (e.g., processing power and memory capacity) tailored to the particular demands of each unit. Such tailoring can reduce costs and improve efficiencies of the power tools. In some embodiments, as illustrated in
In some embodiments, the machine learning controller 710 is implemented in a plug-in chip or controller that is easily added to the power tool battery charger 702. For example, the machine learning controller 710 may include a plug-in chip that is received within a cavity of the power tool battery charger 702 and connects to the electronic controller 720. For example, in some embodiments, the power tool battery charger 702 includes a lockable compartment including electrical contacts that is configured to receive and electrically connect to the plug-in machine learning controller 710. The electrical contacts enable bidirectional communication between the plug-in machine learning controller 710 and the electronic controller 720, and enable the plug-in machine learning controller 710 to receive power from the power tool battery charger 702.
As discussed above with respect to
Although the battery pack 760 of
In some embodiments, the battery pack 760 does not include a machine learning controller 715. In these embodiments, the battery pack 760 can either be in communication with a remote machine learning controller (e.g., a machine learning controller on a server such as server 106, 206, 306, 406; a machine learning controller on another power tool device, such as another battery pack, a power tool battery charger, or a power tool: or a machine learning controller on an external device, such as external device 104) that is operable to control one or more aspects of the battery pack 760, or the battery pack 760 can be operable without machine learning functionality.
As shown in
The battery pack 760 is, for example, configured to provide power to a power tool. The battery pack 760 is further configured to receive charging current and to be charged by the power tool battery charger 702 or another power tool battery charger. To be received by the power tool battery charger 702 or power tool, the battery pack 760 may electrically and mechanically interface with the battery charger 702 and (at a different time) with a power tool.
In some aspects of this disclosure, the battery pack 760 may collect data about the battery pack 760 (e.g., power tool device data or other operational data of the battery pack), may collect data about a power tool used with the battery pack 760 (e.g., power tool device data or other operation data of the power tool), may collect data about the power tool battery charger 702 or other power tool battery charger used to charge the battery pack 760 (e.g., power tool device data or other operational data of the power tool battery charger 702 or other power tool battery charger), and/or store the collected data in a memory 745 of the battery pack 760.
In further aspects, the battery pack 760 may communicate with the power tool battery charger 702 while the battery pack 760 is electrically and mechanically connected in a charging dock of the power tool battery charger 702. Additionally or alternatively, the battery pack 760 may communicate with one or more other power tool battery chargers, battery packs, and/or power tools while the battery pack 760 is electrically and mechanically connected in a charging dock of the power tool battery charger 702.
In even further aspects, the battery pack 760 may wirelessly communicate with the power tool battery charger 702 (while being electrically and mechanically connected to the power tool battery charger 702, or otherwise), other power tool battery chargers, other battery packs, power tools, an external device 104, and/or a server using the wireless communication device 755 (e.g., communicating via the network 108, or directly with the respective device(s)).
The electrical power provided by the battery pack 760 is controlled, monitored, and regulated using control electronics within the battery pack 760, the power tool battery charger 702, and/or a power tool. For example, the battery pack 760 can include an electronic controller 725 that can be configured similarly to the electronic controller 720 of the power tool battery charger 702. The electronic controller 725 can be configured to regulate charging and discharging of the battery cells 756, and/or to communicate with the electronic controller 720 of the power tool battery charger 702. The electronic controller 725 can include an electronic processor 735 and memory 745. The electronic processor 735, the memory 745, and the wireless communication device 755 can communicate over one or more control buses, data buses, etc., which can include a device communication bus 777. The control and/or data buses are shown generally in
The electronic processor 735 can be configured to communicate with the memory 745 to store data and retrieve stored data. The electronic processor 735 can be configured to receive instructions and data from the memory 745 and execute, among other things, the instructions. In particular, the electronic processor 735 executes instructions stored in the memory 745. Thus, the electronic controller 725 coupled with the electronic processor 735 and the memory 745 can be configured to perform the methods described herein (e.g., the process 800 of
The memory 745 can include ROM, RAM, other non-transitory computer-readable media, or a combination thereof. The memory 745 can include instructions 747 for the electronic processor 735 to execute. The instructions 747 can include software executable by the electronic processor 735 to enable the electronic controller 725 to, among other things, determine charger operation data based on power tool device data received from the battery pack 760, another battery pack, a power tool battery charger, a power tool, or other related power tool device. The software can include, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. In some embodiments, the machine learning controller 715 may be stored in the memory 745 of the electronic controller 725 and can be executed by the electronic processor 735.
The electronic processor 735 is configured to retrieve from memory 745 and execute, among other things, instructions related to the control processes and methods described herein. The electronic processor 735 is also configured to store data on the memory 745 including usage data (e.g., usage data of the battery pack 760), another battery pack, a power tool battery charger, and/or one or more power tools), maintenance data (e.g., maintenance data of the battery pack 760, another battery pack, a power tool battery charger, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the battery pack 760, another battery pack, a power tool battery charger, and/or one or more power tools), environmental data, operator data, location data, and the like. Additionally, the electronic processor 735 can also be configured to store other data on the memory 745 including information identifying the type of battery pack, indicating a battery chemistry type for the battery pack 760, the total capacity of the battery pack 760 (e.g., the ampere hour rating of the battery pack 760), the present capacity of the battery pack 760, the remaining charge level of the battery pack 760, a unique identifier for the particular battery pack, user characteristics (e.g., identity, trade type, skill level), and other information relevant to operating or maintaining the battery pack 760 (e.g., received from an external source, such as the external device 104 or pre-programed at the time of manufacture).
In some embodiments, the memory 745 may include a machine learning control (e.g., machine learning control 784 described above with respect to
In some other embodiments, the memory 745 may include an artificial intelligence control that, when acted upon by the electronic processor 735, enables the electronic controller 725 to function as an artificial intelligence controller. The artificial intelligence control may include instructions for implementing one or more artificial intelligence programs, algorithms, or models such as an expert system, a rules engine, a symbolic logic, one or more knowledge graphs, and so on.
The wireless communication device 755 is coupled to the electronic controller 725 (e.g., via the device communication bus 777). The wireless communication device 755 may include, for example, a radio transceiver and antenna, a memory, and an electronic processor. In some examples, the wireless communication device 755 can further include a GNSS receiver configured to receive signals from GNSS satellites, land-based transmitters, etc. The radio transceiver and antenna operate together to send and receive wireless messages to and from the external device 104, one or more power tool battery chargers, one or more power tools, one or more additional battery packs, a server (e.g., server 106, 206, 306, 406), and/or the electronic processor of the wireless communication device 755. The memory of the wireless communication device 755 stores instructions to be implemented by the electronic processor and/or may store data related to communications between the battery pack 760 and the external device 104, one or more power tool battery chargers, one or more power tools, one or more additional battery packs, and/or a server (e.g., server 106, 206, 306, 406).
The electronic processor for the wireless communication device 755 controls wireless communications between the battery pack 760 and the external device 104, one or more power tool battery chargers, one or more power tools, one or more additional battery packs, and/or a server (e.g., server 106, 206, 306, 406). For example, the electronic processor of the wireless communication device 755 buffers incoming and/or outgoing data, communicates with the electronic processor 735 and/or machine learning controller 715, and determines the communication protocol and/or settings to use in wireless communications.
In some embodiments, the wireless communication device 755 is a Bluetooth® controller. The Bluetooth® controller communicates with the external device 104, one or more power tool battery chargers, one or more power tools, one or more additional battery packs, and/or a server (e.g., server 106, 206, 306, 406) employing the Bluetooth® protocol. In such embodiments, therefore, the external device 104, one or more power tool battery chargers, one or more power tools, one or more additional battery packs, and/or a server (e.g., server 106, 206, 306, 406) and the battery pack 760 are within a communication range (i.e., in proximity) of each other while they exchange data. In other embodiments, the wireless communication device 755 communicates using other protocols (e.g., Wi-Fi, cellular protocols, a proprietary protocol, etc.) over a different type of wireless network. For example, the wireless communication device 755 may be configured to communicate via Wi-Fi through a wide area network such as the Internet or a local area network, or to communicate through a piconet (e.g., using infrared or NFC communications). The communication via the wireless communication device 755 may be encrypted to protect the data exchanged between the battery pack 760 and the external device 104, one or more power tool battery chargers, one or more power tools, one or more additional battery packs, and/or a server (e.g., server 106, 206, 306, 406) from third parties.
The wireless communication device 755, in some embodiments, exports usage data (e.g., usage data of the battery pack 760, another battery pack, one or more power tool battery chargers, and/or one or more power tools), maintenance data (e.g., maintenance data of the battery pack 760, another battery pack, one or more power tool battery chargers, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the battery pack 760, another battery pack, one or more power tool battery chargers, and/or one or more power tools), environmental data, operator data, location data, and the like from the battery pack 760 (e.g., from the electronic processor 735).
The server 106, 206, 306, 406, receives the exported data, either directly from the wireless communication device 755 or through an external device 104, and logs the data received from the battery pack 760. As discussed in more detail below, the exported data can be used by the battery pack 760, the external device 104, or the server 106, 206, 306, 406, to train or adapt a machine learning controller relevant to similar battery packs. The wireless communication device 755 may also receive information from the server 106, 206, 306, 406, the external device 104, a power tool, a power tool battery charger, or another battery packs, such as time and date data (e.g., real-time clock data, the current date), configuration data, operation threshold, maintenance threshold, mode configurations, programming for the battery pack 760, updated machine learning controllers for the battery pack 760, and the like. For example, the wireless communication device 755 may exchange information with a second battery pack, a power tool, and/or a power tool battery charger directly, or via an external device 104.
In some embodiments, the battery pack 760 does not communicate with the external device 104 or with the server 106, 206, 306, 406 (e.g., power tool battery charger system 600 in
In some embodiments, the battery pack 760 includes a data sharing setting. The data sharing setting indicates what data, if any, is exported from the battery pack 760 to the server 106, 206, 306, 406. In one embodiment, the battery pack 760 receives (e.g., via a graphical user interface generated by the external device 104) an indication of the type of data to be exported from the battery pack 760. In one embodiment, the external device 104 may display various options or levels of data sharing for the battery pack 760, and the external device 104 receives the user's selection via its generated graphical user interface. For example, the battery pack 760 may receive an indication that only usage data is to be exported from the battery pack 760, but may not export information regarding, for example, the modes implemented by the battery pack 760, the location of the battery pack 760, and the like. In some embodiments, the data sharing setting may be a binary indication of whether or not data regarding the operation of the battery pack 760) (e.g., usage data) are transmitted to the server 106, 206, 306, 406. The battery pack 760 receives the user's selection for the data sharing setting and stores the data sharing setting in memory to control the communication of the wireless communication device 755 according to the selected data sharing setting.
In some embodiments, the wireless communication device 755 can be within a separate housing along with the electronic controller 725 or another electronic controller, and that separate housing selectively attaches to the battery pack 760. For example, the separate housing may attach to an outside surface of the battery pack 760, may be inserted into a receptacle of the battery pack 760, and/or may be coupled to the charger and tool interface 753. Accordingly, the wireless communication capabilities of the battery pack 760 can reside in part on a selectively attachable communication device, rather than integrated into the battery pack 760. Such selectively attachable communication devices can include electrical terminals that engage with reciprocal electrical terminals of the battery pack 760 to enable communication between the respective devices and enable the battery pack 760 to provide power to the selectively attachable communication device. In other embodiments, the wireless communication device 755 can be integrated into the battery pack 760.
The battery pack 760) also includes a charger and tool interface 753 that is configured to selectively receive and interface with a power tool battery charger (e.g., the power tool battery charger 702, a similar power tool battery charger without a machine learning controller), one or more power tools, and/or an adapter that couples a battery pack 760 to a power tool and provides communication (wired or wireless) to an external device 104, power tool battery charger 702, or other device in a power tool device network. The charger and tool interface 753 may include one or more charging ports (e.g., for charging one or more battery packs). Each charging port of the charger and tool interface 753 can include one or more power terminals and, in some cases, one or more communication terminals that interface with respective power terminals, communication terminals, etc., of the power tool battery charger 702, other power tool battery chargers, and/or power tools.
For example, the charger and tool interface 753 can include a combination of mechanical components (e.g., rails, grooves, latches, etc.) and electrical components (e.g., one or more terminals) configured to and operable for interfacing (e.g., mechanically, electrically, and communicatively connecting) the battery pack 760 with another device (e.g., a power tool, a power tool battery charger, an adapter coupling the battery pack 760 to a power tool and providing communication to an external device 104, etc.). The charger and tool interface 753 is configured, for example, to receive power via a power line between the one or more battery cells 756 and the charger and tool interface 753. The charger and tool interface 753 can also be configured to communicatively connect to the electronic controller 725 via a communications line (e.g., via device communication bus 777). For example, the charger and tool interface 753 communicates with the electronic controller 725 and receives electrical power from the charging circuit(s) 759, as described below.
In some examples, the charger and tool interface 753 may include a physical lock (e.g., using a solenoid locking mechanism) for the electronic controller 725 to lock and prevent the battery pack 760 from being removed from the power tool battery charger 702. For example, the electronic controller 725 may provide a lock signal to the solenoid locking mechanism, which may actuate a solenoid to extend or move a lock element (e.g., a pin, bar, bolt, shackle, etc.) into or through a lock receptacle on the power tool battery charger 702 (preventing removal of the battery pack), and may provide an unlock signal to de-actuate the solenoid to retract or move the lock element out or away from the lock receptacle on the power tool battery charger 702 (permitting removal of the battery pack).
The charger and tool interface 753 can further selectively latch and unlatch (e.g., with a spring-biased latching mechanism) to the power tool battery charger 702 (or power tool) to prevent unintentional detachment of the battery pack 760 therefrom.
The battery pack 760 can include one or more battery cells 756 of various chemistries, such as lithium-ion (Li-Ion), nickel cadmium (Ni-Cad), etc. The battery cells 756 within the battery pack 760 provide operational power (e.g., voltage and current) to a power tool. In some examples, the battery pack 760 may have a nominal voltage of approximately 12 volts (between 8 volts and 16 volts), approximately 18 volts (between 16 volts and 22 volts), approximately 72 volts (between 60 volts and 90 volts), or another suitable amount.
In some examples, the battery pack 760 may have a larger capacity so as to provide a longer run time when operating under similar circumstances as a battery pack 760 with a smaller capacity. To achieve additional capacity, the battery pack 760 may include an additional set of battery cells 756. For example, in one configuration the battery pack 760 may include a set of series-connected battery cells 756, while in another configuration the battery pack 760 may include two or more sets of series-connected battery cells 756, with each set being connected in parallel to the other set(s) of battery cells 756. A series-parallel combination of battery cells 756 allows for an increased voltage and an increased capacity of the battery pack 760).
The electronic controller 725 controls the charging circuit(s) 759 to charge and/or discharge the battery cells 756. For example, charging circuit(s) 759 can each include controllable power switching elements (e.g., field effect transistors, IGBTs, and the like) that the electronic processor 735 of the electronic controller 725 selectively enables to control the charging current to and discharge current from the battery cells 756. Thus, the electronic controller 725 coupled with the electronic processor 735 and the memory 745 can be configured to control the charging circuit(s) 759 to perform the methods described herein (e.g., the process 800 of
For instance, the instructions 747 can include software executable by the electronic processor 735 to enable the electronic controller 725 to, among other things, control the charging circuit(s) 759 to adjust a charging target for a battery pack 760, adjust a charging rate for a battery pack 760, adjust a time of day when to charge a battery pack 760, adjust an order in which to charge battery packs 760 connected to a power tool battery charger 702, combinations thereof, and the like. Such charging actions can be characterized as charger operation data, which indicate controls for the charging circuit(s) 759 to adjust the charging rate(s) and/or charging target(s), and can include timing indications for when the charging rate(s) and/or target(s) should be changed. The charger operation data may also indicate an order in which to charge different battery packs 760 connected to a power tool battery charger 702 (e.g., connected to different charging bays of a multi-bay charger) and/or different sets of charging rate(s) and/or target(s) to be applied to different charging circuits 759 in order to prioritize different charging actions for different battery cells 756.
In some embodiments, the electronic processor 735 uses power tool device data from the battery pack(s) 760 to control the charging circuit(s) 759. For example, usage data can be used to indicate various aspects of the battery pack 760 use (e.g., retake time, working hours), or likely future uses of the battery pack 760. These data can be used to generate charger operation data to control the charging action of the charging circuit(s) 759 in an optimized manner for the current usage of the battery pack 760 and/or for future likely usage of the battery pack 760. That is, in some embodiments, various types of power tool device data can be used to determine or otherwise select a charging state for the battery pack 760, which may be a one-dimensional charging state or a multidimensional charging state. From the determined charging state, charger control operation data may be generated and used by the electronic processor 730 to control the charging circuit(s) 759 to charge, or discharge, the battery pack 760 in accordance with the determined charging state.
In some embodiments, the battery pack 760 also optionally includes additional electronic components 771. The electronic components 771 can include, for example, one or more of a lighting element (e.g., an LED), a charge level fuel gauge, an audio element (e.g., a speaker), analog front ends, etc. In some embodiments, the electronic components 771 can include an RFID tag and/or an NFC tag, which may store a battery identification number for the battery pack 760
In some embodiments, the electronic controller 725 is also connected to one or more sensors 773, which may include voltage sensors or voltage sensing circuits, current sensors or current sensing circuits, temperature sensors or temperature sensing circuits, inertial sensors or inertial sensing circuits (e.g., accelerometers, gyroscopes, magnetometers), or the like. The temperature sensor(s) may include, for example, a thermistor. Each temperature sensor sends a signal to the electronic controller 725 indicating a temperature of the battery pack 760 (e.g., indicative of a temperature of battery cells 756 within the battery pack 760) and/or an ambient temperature of the environment around the battery pack 760.
The one or more sensors 773 are coupled to the machine learning controller 715 and/or electronic processor 735 (e.g., via the device communication bus 777) and communicate to the machine learning controller 715 and/or electronic processor 735 various output signals indicative of different parameters of the battery pack 760, the battery cells 756, and/or the environment.
In some embodiments, the machine learning controller 715 uses the sensor data from the sensor(s) 773 to control the charging circuit(s) 759, such as by applying the sensor data to one or more machine learning programs, algorithms, or models in order to generate output as control signals that control an action of the charging circuit(s) 759. For example, sensor data including current data can be used to monitor the charging rate and/or current draw of the battery pack 760 and charger operation data can be generated in response to control the charging action of the charging circuit(s) 759 to limit the maximum current draw. As still another example, inertial sensor data (e.g., accelerometer data, gyroscope data, magnetometer data) can be used to determine a position of the battery pack 760, from which charger operation data can be generated in response to control the charging action of the charging circuit(s) 759 to adjust the charging rate(s) and/or target(s) based on an estimated use application of the battery pack 760 based on its location.
The machine learning controller 715 is coupled to the electronic controller 725 (e.g., via the device communication bus), and in some embodiments may be selectively coupled such that an activation switch 775 (e.g., mechanical switch, electronic switch) can selectively switch between an activated state and a deactivated state. When the activation switch 775 is in the activated state, the electronic controller 725 is in communication with the machine learning controller 715 and receives decision outputs from the machine learning controller 715. When the activation switch 775 is in the deactivated state, the electronic controller 725 is not in communication with the machine learning controller 715. In other words, the activation switch 775 selectively enables and disables the machine learning controller 715.
As described above with respect to
In one embodiment, the activation switch 775 switches between an activated state and a deactivated state. In such embodiments, while the activation switch 775 is in the activated state, the electronic controller 725 controls the operation of the battery pack 760) (e.g., changes the operation of the charging circuit(s) 759) based on the determinations from the machine learning controller 715. Otherwise, when the activation switch 775 is in the deactivated state, the machine learning controller 715 is disabled and the machine learning controller 715 does not affect the operation of the battery pack 760. In some embodiments, however, the activation switch 775 switches between an activated state and a background state. In such embodiments, when the activation switch 775 is in the activated state, the electronic controller 725 controls the operation of the battery pack 760 based on the determinations or outputs from the machine learning controller 715. However, when the activation switch 775 is in the background state, the machine learning controller 715 continues to generate output based on the usage data of the power tool battery charger or other collected data and may calculate (e.g., determine) thresholds or other operational levels, but the electronic controller 725 does not change the operation of the battery pack 760 based on the determinations and/or outputs from the machine learning controller 715. In other words, in such embodiments, the machine learning controller 715 operates in the background without affecting the operation of the battery pack 760.
In some embodiments, the activation switch 775 is not included on the battery pack 760 and the machine learning controller 715 is maintained in the enabled state or is controlled to be enabled and disabled via, for example, wireless signals from the server (e.g., servers 106, 206, 306, 406) or from the external device 104.
In some embodiments, the battery pack 760 may implement an artificial intelligence controller instead of, or in addition to, the machine learning controller 715. The artificial intelligence controller implements one or more AI programs, algorithms, or models. In some embodiments, the AI controller is configured to implement the one or more AI programs, algorithms, or models such as an expert system, a rules engine, a symbolic logic, one or more knowledge graphs, and so on. In some embodiments, the AI controller is integrated into and implemented by the electronic controller 725 (e.g., the electronic controller 725 may be referred to as an AI controller). In some embodiments, the AI controller is a separate controller from the electronic controller 725 and includes an electronic processor and memory, similar to the machine learning controller 715 as illustrated in
In some embodiments, the battery pack 760 can include one or more inputs 791 (e.g., one or more buttons, switches, and the like) that allow a user to select a mode (e.g., a charging state, one or more charging rates for the battery pack 760, one or more charging targets for the battery pack 760, a charging schedule for the battery pack 760, etc.) of the battery pack 760 and that can indicate to the user the currently selected mode of the battery pack 760. In some embodiments, the input 791 includes a single actuator. In such embodiments, a user may select a charging state mode for the battery pack 760 based on, for example, a number of actuations of the input 791. For example, when the user activates the actuator three times, the battery pack 760 may be charged according to a third charging state mode. In other embodiments, the input 791 includes a plurality of actuators, each actuator corresponding to a different charging state mode. For example, the input 791 may include four actuators, when the user activates one of the four actuators, the battery pack 760 may operate in a first charging state mode. The electronic controller 725 receives a user selection of a charging state mode via the input 791, and controls the electronic controller 725 such that the one or more charging circuits 759 are operated according to the selected charging state mode.
In some embodiments, the battery pack 760) does not include an input 791. In such embodiments, the battery pack 760 may operate in a single mode, or may include a different selection mechanism for selecting a charging state mode for the battery pack 760. In some embodiments, the battery pack 760) (e.g., the electronic controller 725) automatically selects a charging state mode and corresponding charger operation data for the battery pack 760 using, for example, the machine learning controller 715 and/or artificial intelligence controller. In some embodiments, the battery pack 760) communicates with the external device 104, and the external device 104 generates a graphical user interface that enables a user to convey information to the battery pack 760 without the need for input(s) 791 on the battery pack 760 itself. In these instances, the external device 104 can enable the user to select or adjust the charging state mode for the battery pack 760.
In some embodiments, the battery pack 760) may include one or more outputs 793 that are also coupled to the electronic controller 725. The output(s) 793 can receive control signals from the electronic controller 725 to generate a visual signal to convey information regarding the operation or state of the battery pack 760 to the user (e.g., the selected charging state of the battery pack 760, the charge level of the battery pack 760, the charging rate at which the battery pack 760 is presently being charged, one or more charging targets set for the battery pack 760, etc.). The output(s) 793 may include, for example, LEDs or a display screen and may generate various signals indicative of, for example, a charging state or mode of the battery pack 760, an abnormal condition or event detected during the operation and/or charging of the battery pack 760, and the like. For example, the output(s) 793 may indicate a fuel gauge for the battery pack 760, a charging state for the battery pack 760, measured electrical characteristics of the battery pack 760, the state or status of the battery pack 760, an operating mode of the battery pack 760, and the like.
In some embodiments, the battery pack 760 does not include the output(s) 793. In some embodiments, the battery pack 760) communicates with the external device 104, and the external device 104 generates a graphical user interface that conveys information to the user without the need for output(s) 793 on the battery pack 760 itself.
In step 802, the server processor 150 accesses power tool device data, such as usage data and/or other power tool device data, previously collected from similar power tool battery chargers. Additionally, the server processor 150 accesses user characteristic information, such as characteristic information of a user using a respective power tool at a time the power tool is collecting tool usage information. For example, to build the machine learning control 784 for the power tool battery chargers of
In some embodiments, the server processor 150 accesses power tool device data from a network of connected power tool battery chargers, battery packs, power tools, external devices, and any connected wireless communication devices, control hubs, access points, gateway devices, or the like (e.g., a power tool device network). For example, many jobsites have specific hours during which work is regularly performed. In these instances, a network of power tool battery chargers may be used to collect power tool device data associated with the jobsite, such as usage data indicating the hours and/or days during which the power tool battery chargers are most commonly used at the jobsite. For example, the network of power tool battery chargers can collect usage data indicating when battery packs are being put on and/or take off of power tool battery chargers, when battery packs are being put on and/or taken off of power tools, charging patterns, and the like. The power tool device network can be linked based on the location of the devices. For instance, the power tool battery chargers, battery packs, power tools, external devices, and any connected wireless communication devices, control hubs, access points, gateway devices, or the like, being used at the same jobsite location may be connected as a power tool device network. In some embodiments, the jobsite may be a single floor on a building construction project (e.g., a skyscraper) where different trades may be grouped by floor.
In still other embodiments, the power tool device network may include power tool battery chargers, battery packs, power tools, external devices, and any connected wireless communication devices, control hubs, access points, gateway devices, or the like, that are owned in the same inventory (e.g., a digital inventory maintained by the server processor 150 on the server memory 160 linking such devices to an operator or other entity), and/or that are commonly used by the same group of users. In these instances, the operator data may be shared amongst the devices in the power tool device network and used to indicate which devices should be included in the power tool device network for data collection and storage.
The power tool device network may also include power tool battery chargers and power tools that are sharing a common group of battery packs. In these instances, the power tool device network can also include the battery packs being shared amongst the power tool battery chargers and power tools, as well as any connected devices, such as external devices, wireless communication devices, control hubs, access points, gateway devices, or the like. For example, if a particular battery pack is commonly put on a first and second power tool battery charger, then the battery pack and the first and second power tool battery chargers can be considered a power tool device network, and may aggregate their settings or other power tool device data amongst themselves.
The server electronic processor 150 then proceeds to build and train the machine learning control 784 based on the power tool device data, the user characteristic information, or both, as indicated at step 804. Building and training the machine learning control 784 may include, for example, determining the machine learning architecture (e.g., using a support vector machine, a decision tree, a neural network, or a different architecture). In the case of building and training a neural network, for example, building the neural network may also include determining the number of input nodes, the number of hidden layers, the activation function for each node, the number of nodes of each hidden layer, the number of output nodes, and the like. Training the machine learning control 784 includes providing training examples to the machine learning control 784 and using one or more algorithms to set the various weights, margins, or other parameters of the machine learning control 784 to make reliable estimations or classifications.
As will be described in more detail below, in some embodiments the machine learning control 784 constructed by the server electronic processor 150 can be deployed to power tool devices (e.g., a power tool battery charger 702) where the machine learning controller 710 can be updated or otherwise refined, and/or can have its output logic adjusted based on the initial machine learning controller 784. That is, the machine learning control 784 constructed by the server electronic processor 150 can be tuned (e.g., hand tuned) by an end user of the power tool device.
In some embodiments, building and training the machine learning control 784 includes building and training a recurrent neural network. Recurrent neural networks allow analysis of sequences of inputs instead of treating every input individually. That is, recurrent neural networks can base their determination or output for a given input not only on the information for that particular input, but also on the previous inputs. For example, when the machine learning control 784 is configured to identify a type of power source input supplying power to the power tool battery charger 702, the machine learning control 784 may determine that since the last three operations charged a battery pack to a specified charging target using a particular charging rate (or variable charging rate over a duration of time), the fourth operation is also likely to use the same charging operation parameters. Using recurrent neural networks helps compensate for some of the misclassifications the machine learning control 784 would make by providing and taking into account the context around a particular operation. Accordingly, when implementing a recurrent neural network, the learning rate affects not only how each training example affects the overall recurrent neural network (e.g., adjusting weights, biases, and the like), but also affects how each input affects the output of the next input.
The server electronic processor 150 builds and trains the machine learning control 784 to perform a particular task. For example, in some embodiments, the machine learning control 784 is trained to adjust the charging of one or more battery packs 760 based on usage data and/or other power tool device data (e.g., by determining a use application for the power tool battery charger 702 and adjusting the charger operation data accordingly). In other embodiments, the machine learning control 784 is trained to determine a type of power source to which the power tool battery charger 702 is connected and/or to adjust the charger operation based on the type of power source to which the power tool battery charger 702 is connected. In still other embodiments, the machine learning control 784 is trained to determine a cost of the electricity supplied by the power source to which the power tool battery charger 702 is connected and/or to adjust the charger operation based on the cost of the electricity supplied by the power source to which the power tool battery charger is connected. In other embodiments, the machine learning control 784 is trained to adjust the charging of one or more battery packs 760 based on the position and/or location of the power tool battery charger 702.
The task for which the machine learning control 784 is trained may vary based on, for example, the type of power tool battery charger 702, a selection from a user, typical applications for which the power tool battery charger is used, user characteristic information, other characteristics or operational parameters indicated in power tool device data, and the like. Various examples of particular tasks for which the machine learning control 784 is built and trained are described below in more detail. The server electronic processor 150 uses different power tool device data to train the machine learning control 784 based on the particular task.
In some embodiments, the particular task for the machine learning controller 710 (e.g., for the machine learning control 784) also defines the particular architecture for the machine learning control 784. For example, for a first set of tasks, the server electronic processor 150 may build a support vector machine, while, for a second set of tasks, the server electronic processor 150 may build a neural network. In some embodiments, each task or type of task is associated with a particular architecture. In such embodiments, the server electronic processor 150 determines the architecture for the machine learning control 784 based on the task and the machine learning architecture associated with the particular task.
After the server electronic processor 150 builds and trains the machine learning control 784, the server electronic processor 150 stores the machine learning control 784 in, for example, the memory 160 of the server, as indicated at step 806. The server electronic processor 150, additionally or alternatively, transmits the trained machine learning control 784 to the power tool battery charger 702. In such embodiments, the power tool battery charger 702 stores the machine learning control 784 in the memory 782 of the machine learning controller 710. In some embodiments, for example, when the machine learning control 784 is implemented by the electronic controller 720 of the power tool battery charger 702, the power tool battery charger 702 stores the machine learning control 784 in the memory 740 of the electronic controller 720.
Once the machine learning control 784 is stored, the power tool battery charger 702 operates the charging circuit(s) 758 according to (or based on) the outputs and determinations from the machine learning controller 710, as indicated at step 808. In embodiments in which the machine learning controller 710 (including the machine learning control 784) is implemented in the server 106, 206, the server 106, 206 may determine operational thresholds from the outputs and determinations from the machine learning controller 710. The server 106, 206 then transmits the determined operational thresholds to the power tool battery charger 702 to control the charging circuit(s) 758.
The performance of the machine learning controller 710 depends on the amount and quality of the data used to train the machine learning controller 710. Accordingly, if insufficient data is used (e.g., by the server 106, 206, 306, 406) to train the machine learning controller 710, the performance of the machine learning controller 710 may be reduced. Alternatively, different users may have different preferences and may operate the power tool battery charger 702 for different applications and in a slightly different manner (e.g., some users may place battery packs onto the power tool battery charger 702 at different times of the day, some may prefer a faster charging speed, and the like). These differences in usage of the power tool battery charger 702 may also compromise some of the performance of the machine learning controller 710 from the perspective of a user.
Optionally, to improve the performance of the machine learning controller 710, in some embodiments, the server electronic processor 150 receives feedback from the power tool battery charger 702 (or the external device 104) regarding the performance of the machine learning controller 710, as indicated at step 810. In other words, at least in some embodiments, the feedback is with regard to the control of the charging circuit(s) 758 from the earlier step 806. In other embodiments, however, the power tool battery charger 702 does not receive user feedback regarding the performance of the machine learning controller 710 and instead continues to operate the power tool battery charger 702 by executing the machine learning control 784 (e.g., the process may not proceed to blocks 810, 812, and 814). As explained in further detail below, in some embodiments, the power tool battery charger 702 includes specific feedback mechanism for providing feedback on the performance of the machine learning controller 710. In some embodiments, the external device 104 may also provide a graphical user interface that receives feedback from a user regarding the operation of the machine learning controller 710. The external device 104 then transmits the feedback indications to the server electronic processor 150.
In some embodiments, the power tool battery charger 702 may only provide negative feedback to the server 106, 206, 306, 406 (e.g., when the machine learning controller 710 performs poorly). In some embodiments, the server 106, 206, 306, 406 may consider the lack of feedback from the power tool battery charger 702 (or the external device 104) to be positive feedback indicating an adequate performance of the machine learning controller 710. In some embodiments, the power tool battery charger 702 receives, and provides to the server electronic processor 150, both positive and negative feedback.
In some embodiments, in addition to, or instead of, user feedback (e.g., directly input to the power tool battery charger 702), the power tool battery charger 702 senses one or more power tool battery charger characteristics via one or more sensors 772, and the feedback is based on the sensor data. For example, the power tool battery charger 702 can include a temperature sensor to sense a temperature of the power tool battery charger 702 during a charging operation, and the sensed output temperature is provided as feedback. The sensed output temperature may be evaluated locally on the power tool battery charger 702, or externally on the external device 104 or the server electronic processor 150, to determine whether the feedback is positive or negative (e.g., the feedback may be positive when the sensed output temperature is within an acceptable temperature range, and negative when outside of the acceptable temperature range). As discussed above, in some embodiments, the power tool battery charger 702 may send the feedback or other information directly to the server 106, 206, 306, 406 while in other embodiments, an external device 104 may serve as a bridge for communications between the power tool battery charger 702 and the server 106, 206, 306, 406 and may send the feedback to the server 106, 206, 306, 406.
The server electronic processor 150 then adjusts the machine learning control 784 based on the received user feedback, as indicated at step 812. In some embodiments, the server electronic processor 150 adjusts the machine learning control 784 after receiving a predetermined number of feedback indications (e.g., after receiving 100 feedback indications). In other embodiments, the server electronic processor 150 adjusts the machine learning control 784 after a predetermined period of time has elapsed (e.g., every two weeks or every two months). In yet other embodiments, the server electronic processor 150 adjusts the machine learning control 784 continuously (e.g., after receiving each feedback indication). Adjusting the machine learning control 784 may include, for example, re-training the machine learning controller 710 using the additional feedback as a new set of training data or adjusting some of the parameters (e.g., weights, support vectors, and the like) of the machine learning controller 710. Because the machine learning controller 710 has already been trained for the particular task, re-training the machine learning controller 710 with the smaller set of newer data requires less computing resources (e.g., time, memory, computing power, etc.) than the original training of the machine learning controller 710.
In some instances, transfer learning can be used to re-train or otherwise adjust the machine learning control 784, in which case the re-training and/or adjusting of the machine learning control 784 may occur locally on the power tool battery charger 702 rather than on the server 106, 206, 306, 406. For example, the electronic processor 780 of the machine learning controller 710 or the electronic processor 730 of the electronic controller 720 can implement transfer learning to re-train the machine learning control 784 based on the new set of training data.
In some embodiments, the machine learning control 784 includes a reinforcement learning control that allows the machine learning control 784 to continually integrate the feedback received by the user to optimize the performance of the machine learning control 784. In some embodiment, the reinforcement learning control periodically evaluates a reward function based on the performance of the machine learning control 784. In such embodiments, training the machine learning control 784 includes increasing the operation time of the power tool battery charger 702 such that the machine learning control 784 (e.g., reinforcement learning control) receives sufficient feedback to optimize the execution of the machine learning control 784. In some embodiments, when reinforcement learning is implemented by the machine learning control 784, a first stage of operation (e.g., training) is performed during manufacturing or before such that when a user operates the power tool battery charger 702, the machine learning control 784 can achieve a predetermined minimum performance (e.g., accuracy). The machine learning control 784, once the user operates his/her power tool battery charger 702, may continue learning and evaluating the reward function to further improve its performance. Accordingly, the power tool battery charger 702 may be initially provided with a stable and predictable algorithm, which may be adapted over time. In some embodiments, reinforcement learning is limited to portions of the machine learning control 784. For example, in some embodiments, instead of potentially updating weights/biases of the entire or a substantial portion of the machine learning control 784, which can take significant processing power and memory, the actual model remains frozen or mostly frozen (e.g., all but last layer(s) or outputs), and only one or a few output parameters or output characteristics of the machine learning control 784 are updated based on feedback.
In some embodiments, the machine learning controller 710 interprets the operation of the power tool battery charger 702 by the user as feedback regarding the performance of the machine learning controller 710. For example, if a user commonly places a particular battery pack 760 on the power tool battery charger 702 so that the battery pack charges before other battery packs, then the machine learning controller 710 may learn to prioritize that given battery pack 760. As another example, if a user commonly indicates they want a given battery pack 760 charged at a faster rate (e.g., via a button press such as using input 790, via a graphical user interface using the external device 104, by slamming the battery pack 760 on the power tool battery charger 702, by rapidly placing the battery pack 760 on and taking the battery pack 760 off the power tool battery charger 702), the machine learning controller 710 may learn to adjust its charging action to prioritize speed over life for that particular battery, that particular type of battery, similar batteries, and the like. For example, a bounce detector may detect if a battery pack 760 is placed smoothly or with high speed or high force on a charger. While a debounce logic is usually made to avoid the bouncing characteristic of electrical contacts, the contact/disconnect/reconnect logic can be used as a feedback and/or direct command on how a battery should be charged. In some embodiments, the feedback data may include data associated with a charging port that has a mechanical means of detecting user force or prolonged force. For instance, a load cell, strain sensor, spring, or biased charging port with a sensing for depression may be used as feedback or a direct command to a charger.
In some embodiments, the server 106, 206, 306, 406 receives power tool device data from a variety of different power tool battery chargers, battery packs, and/or power tools. Accordingly, when the server electronic processor 150 adjusts the machine learning control 784 based on the user feedback, the server electronic processor 150 may be adjusting the machine learning control 784 based on feedback from various users. In embodiments in which the machine learning controller 710 is fully implemented on the power tool battery charger 702 (e.g., such as discussed above with respect to
After the server electronic processor 150 adjusts the machine learning controller 710 based on the user feedback, the power tool battery charger 702 operates according to the outputs and determinations from the adjusted machine learning controller 710, as indicated at step 814. In some embodiments, such as the power tool battery charger system 300 of
In some embodiments, the user may also select a learning rate for the machine learning controller 710. Adjusting the learning rate for the machine learning controller 710) impacts the speed of adjustment of the machine learning controller 710 based on the received user feedback. For example, when the learning rate is high, even a small number of feedback indications from the user (or users) will impact the performance of the machine learning controller 710. On the other hand, when the learning rate is lower, more feedback indications from the user are used to create the same change in performance of the machine learning controller 710. Using a learning rate that is too high may cause the machine learning controller 710 to change unnecessarily due to an anomaly operation of the power tool battery charger 702. On the other hand, using a learning rate that is too low may cause the machine learning controller 710 to remain unchanged until a large number of feedback indications are received requesting a similar change. It will be appreciated also that multiple learning rates may also be implemented. For instance, different learning rates may be associated with different subregions of a machine learning control. A user may, for example, modify the learning rate (or switching rate) for the later stages of the machine learning control that map classifications and regressions to desired outputs.
In some embodiments, the power tool battery charger 702 includes a dedicated actuator to adjust the learning rate of the machine learning controller 710. In another embodiment, the activation switch 774 used to enable or disable the machine learning controller 710 may also be used to adjust the learning rate of the machine learning controller 710. For example, the activation switch 774 may include a rotary dial. When the rotary dial is positioned at a first end, the machine learning controller 710 may be disabled, as the rotary dial moves toward a second end opposite the first end, the machine learning controller 710 is enabled and the learning rate increases. When the rotary dial reaches the second end, the learning rate may be at a maximum learning rate. In other embodiments, an external device 104 (e.g., smartphone, tablet, laptop computer, an ASIC, and the like), may communicatively couple with the power tool battery charger 702 and provide a user interface to, for example, select the learning rate. In some embodiments, the selection of a learning rate may include a selection of a low, medium, or high learning rate. In other embodiments, more or less options are available to set the learning rate, and may include the ability to turn off learning (i.e., setting the learning rate to zero).
As discussed above, when the machine learning controller 710 implements a recurrent neural network, the learning rate (or sometimes referred to as a “switching rate”) affect how previous inputs or training examples affect the output of the current input or training example. For example, when the switching rate is high the previous inputs have minimal effect on the output associated with the current input. That is, when the switching rate is high, each input is treated more as an independent input. On the other hand, when the switching rate is low; previous inputs have a high correlation with the output of the current input. That is, the output of the current input is highly dependent on the outputs determined for previous inputs. In some embodiments, the user may select the switching rate in correlation (e.g., with the same actuator) with the learning rate. In other embodiments, however, a separate actuator (or graphical user interface element) is generated to alter the switching rate independently from the learning rate. The methods or components to set the switching rate are similar to those described above with respect to setting the learning rate.
The description of
In step 902, the power tool battery charger 702 receives a signal indicating that the power tool battery charger 702 is to begin an operation. For example, the battery pack interface 752 may have mechanical or other means of detecting that a battery pack 760 has been put on the battery pack interface 752 and that charging of that battery pack 760 should be initiated. In response to detecting a battery pack 760, the battery pack interface 752 may provide an indication of the detection that is received by the electronic controller 720. In some embodiments, this indication is the signal received by the power tool battery charger 702 indicating that the power tool battery charger 702 is to begin the operation.
During operation of the power tool battery charger 702, the electronic controller 720 receives power tool device data, as indicated at step 904, from the sensors 772 and/or a connected power tool device (e.g., an external device 104, a server 106, 206, 306, 406, a power tool, a battery pack, another power tool battery charger, a control hub). As discussed above, the power tool device data provide varying information regarding the operation of the power tool battery charger 702, the battery pack(s) 760, and/or one or more associated power tools, including, for example, usage data (e.g., usage data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), maintenance data (e.g., maintenance data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), environmental data, operator data, location data, and the like. The power tool device data may also include other operational parameter data, such as date, time, time since last use, mode, errors, history of past applications and charging rates, user input, external inputs, and the like.
In some embodiments, the electronic controller 720 can receive the power tool device data from one or more power tool devices in a connected power tool device network (e.g., a network of connected power tool battery chargers, battery packs, power tools, external devices, wireless communication devices, control hubs, access points, gateway devices, or the like). For example, the power tool device network can be linked based on the location of the devices. In some embodiments, the power tool device network can include devices being used at the same jobsite location. The jobsite may be a single floor on a building construction project (e.g., a skyscraper) where different trades may be grouped by floor, or other suitable geographical location where power tool devices are regularly used to perform work. In still other embodiments, the power tool device network may include devices that are owned in the same inventory, and/or that are commonly used by the same group of users. The power tool device network may also include power tool battery chargers and power tools that are sharing a common group of battery packs. In these instances, the power tool device network can also include the battery packs being shared amongst the power tool battery chargers and power tools, as well as any connected devices, such as external devices, wireless communication devices, control hubs, access points, gateway devices, or the like.
The electronic controller 720 then provides at least some of the power tool device data to the electronic processor 730, the machine learning controller 710, or additionally or alternatively an artificial intelligence controller, as indicated at step 906. In embodiments in which the electronic controller 720 implements the machine learning control 784 (or artificial intelligence control), the electronic controller 720 bypasses step 906. When the power tool battery charger 702 does not store a local copy of the machine learning controller 710 (or artificial intelligence controller), such as in the power tool battery charger system 100 of
The power tool device data transmitted to the electronic processor 730 and/or the machine learning controller 710 (or artificial intelligence controller) varies based on, for example, the particular task for the electronic controller 720, machine learning controller 710, or artificial intelligence controller. As discussed above, the task for the electronic controller 720, machine learning controller 710, (or artificial intelligence controller) may vary based on, for example, the type of power tool battery charger 702, the type of battery pack(s) 760 attached to the power tool battery charger 702, or so on.
For example, the machine learning controller 710 (or artificial intelligence controller) for the power tool battery charger 702 may be configured to identify a type of application of the power tool battery charger 702 and may use specific operational thresholds for each type of application. In such embodiments, the electronic controller 720 may transmit, for example, a first set of charger operation data indicating that a battery pack 760 should be charged according to a faster charging mode, but may not send a second set of charger operation data indicating that the battery pack 760 could be charged according to a slower charging mode that optimizes battery life.
The electronic processor 730, machine learning controller 710, or artificial intelligence controller then generates an output based on the received power tool device data and the particular task associated with the electronic controller 720, machine learning controller 710, or artificial intelligence controller, as indicated at step 908.
For example, the machine learning program, algorithm, or model executing on the machine learning controller 710 (or artificial intelligence program, algorithm, or model executing on an artificial intelligence controller, or other program, algorithm or model executing on the electronic controller 720) processes (e.g., classifies according to one of the aforementioned machine learning and/or artificial intelligence algorithms) the received power tool device data and generates an output.
In the example above, the output of the machine learning controller 710 may indicate a type of application for which the power tool battery charger 702 is being used, charger operation data for controlling the operation of charging circuit(s) 758 of the power tool battery charger 702, and the like.
The electronic controller 720 then operates the charging circuits(s) 758 based on the output from the electronic processor 730, machine learning controller 710, or artificial intelligence controller, as indicated at step 910.
For example, the electronic controller 720 may use the output from the electronic processor 730 or machine learning controller 710 to determine whether any operational thresholds (e.g., charging target(s), charging rate(s), time indications for changing charging rate(s), time-of-day to charge, and the like) are to be changed to increase the efficacy of the operation of the power tool battery charger 702. The electronic controller 720 then utilizes the updated operational thresholds or ranges to operate the charging circuit(s) 758.
In another example, the output may indicate a condition of a battery pack 760 connected to the power tool battery charger 702 and the electronic controller 720 controls the charging circuit(s) 758 dependent on the condition. For example, and as described in further detail below, the condition may indicate a temperature of the battery pack 760, a state of charge of the battery pack 760, an abnormal condition that is detected, or an operation that is finished (e.g., charging to a particular charging target, charging for a particular duration of time). The charging circuit(s) 758, in turn, may be controlled to stop, to increase charging rate, or decrease charging rate based on the condition, or may be controlled in other ways based on the condition. Although the particular task of the machine learning controller 710 may change as described in more detail below, the electronic controller 720 uses the output of the machine learning controller 710 to, for example, better operate the power tool battery charger 702 and achieve a greater operating efficiency.
In some embodiments, the electronic processor 730 or machine learning controller 710 receives user characteristics of the current user of the power tool battery charger 702 in step 906, in addition to or instead of sensor data, and then generates an output in step 908 based on the user characteristics or based on the user characteristics and the sensor data received in step 906. In some embodiments, in addition to or instead of controlling the charging circuit(s) 758 in step 910, another electronically controllable element is controlled. For example, in some embodiments, an LED of the power tool battery charger 702 is enabled, disabled, has its color changed, or has its brightness changed.
In some embodiments, the server 106, 206, 306, 406 may store a selection of various machine learning controls 784 in which each machine learning control 784 is specifically trained to perform a different task. In such embodiments, the user may select which of the machine learning controls 784 to implement with the power tool battery charger 702. For example, an external device 104 may provide a graphical interface that allows the user to select a type of machine learning control 784. A user may select the machine learning control 784 based on, for example, usage data, jobsite data (e.g., data indicating likely use applications for the power tool battery charger 702), energy costs for the power source supplying power to the power tool battery charger 702, the type of power source supplying power to the power tool battery charger 702, the position and/or location of the power tool battery charger 702 (e.g., determined via inertial sensors, GNSS signal data, and the like), amongst others. In such embodiments, the graphical user interface receives a selection of a type of machine learning control 784. The external device 104 may then send the user's selection to the server 106, 206, 306, 406. The server 106, 206, 306, 406 would then transmit a corresponding machine learning control 784 to the power tool battery charger 702, or may transmit updated operational thresholds based on the outputs from the machine learning control 784 selected by the user. Accordingly, the user can select which functions to be implemented with the machine learning control 784 and can change which type of machine learning control 784 is implemented by the server 106, 206, 306, 406 or the power tool battery charger 702 during the operation of the power tool battery charger 702.
As discussed above, a user may provide feedback indications regarding the operation of the electronic processor 730 or machine learning controller 710. In one example, a user may commonly place a particular battery pack 760 on the power tool battery charger 702 so that the battery pack charges before other battery packs, which may indicate to the machine learning controller 710 to implement a particular controller action for that battery pack 760. As another example, a user may indicate that they want a given battery pack 760 charged at a faster rate (e.g., via a button press such as using input 790, via a graphical user interface using the external device 104, by slamming the battery pack 760 on the power tool battery charger 702, by rapidly placing the battery pack 760 on and taking the battery pack 760 off the power tool battery charger 702), such that the machine learning controller 710 may implement a particular controller action associated with the user feedback indicating a faster charging rate is desired. That is, in some instances, the user may override a default machine learning control 784 of the machine learning controller 710. This overriding may include deactivating the machine learning controller 710 in favor of a manual control or adjustment of the power tool battery charger 702: switching the machine learning controller 710 to perform a different machine learning program, algorithm, or model; and/or adjusting the outputs of the machine learning controller 710.
In another example, the input(s) 790 of the power tool battery charger 702 may include one or more actuators that can receive user feedback regarding the operation of the power tool battery charger 702 and regarding the operation of the electronic processor 730 or machine learning controller 710, in particular. In some embodiments, the power tool battery charger 702 includes a first actuator and a second actuator. In some embodiments, each actuator may be associated with a different type of feedback. For example, the activation of the first actuator may indicate that the operation of the machine learning controller 710 is adequate (e.g., positive feedback), while the activation of the second actuator may indicate that the operation of the machine learning controller 710 is inadequate (e.g., negative feedback). For example, a user may indicate that changes made to the charging operation (e.g., charging target(s), charging rate(s), time indications for charging, time-of-day for charging, order of charging battery packs) are undesirable when the electronic controller 720 implemented a different charging operation due to a determination by the machine learning controller 710 that the power tool battery charger 702 is being utilized for a particular application.
In other embodiments, the first actuator and the second actuator (or an additional pair of buttons) are associated with increasing and decreasing the learning rate of the machine learning controller 710, respectively. For example, when the user wants to increase the learning rate (or switching rate) of the machine learning controller 710, the user may activate the first actuator. The first and second actuators may be positioned on any suitable portion of the housing of the power tool battery charger.
In another embodiment, the user may provide feedback to the electronic controller 720 by moving the power tool battery charger 702 itself. For example, the power tool battery charger 702 may include an accelerometer and/or a magnetometer (e.g., as a sensor 772) that provides an output signal to the electronic controller 720 indicative of a position, orientation, or combination thereof of the power tool battery charger 702. In such embodiments, sensor data from the sensors 772 may indicate aspects of the positional or location context for the power tool battery charger 702. Such contextual information may indicate prioritizing how and when to charge battery packs 760. A power tool battery charger 702 may also have sensors 772 such as a pressure sensor (to help measure altitude, such as height in a building) and/or a GPS or other GNSS receiver. These positional and/or locational sensor data can help understand the power tool battery charger 702 context. For example, a power tool battery charger 702 may be hung on a wall, secured in a vehicle, carried, placed on the ground, placed on an attachment system (e.g., a modular toolbox or storage system), etc.
By detecting, based on the sensor data, that a power tool battery charger 702 is secured in a vehicle that is moved, charger operation data can be generated to prioritize fast charging of the battery pack(s) 760, to prioritize charging battery packs 760 so they are sufficiently charged when the vehicle arrives at an estimated or otherwise identified location (e.g., based on user input via the external device 104 or estimated based on usage data and past location data), and the like. For instance, a moving power tool battery charger 702 may also indicate that the power tool battery charger 702 is moving in a toolbox or modular storage system and may have battery packs that are soon to be used. Additionally or alternatively, a moving power tool battery charger 702 may also indicate that the power tool battery charger 702 changing altitudes (e.g., between floors in a skyscraper) may soon be used, especially if the sensor data indicate that the power tool battery charger 702 is increasing in altitude.
The power tool battery charger 702 may have additional capabilities beyond just charging battery packs 760, including charging other peripheral devices (e.g., a smartphone, whether wirelessly or via wired connection), powering a light (possibly a light that is integrated in the power tool battery charger 702), and/or powering other peripheral devices (e.g., via a USB plug, such as USB-powered fans, USB-powered chargers). These additional capabilities, especially when employed, may imply that a user may be near or soon to revisit the power tool battery charger 702. In these instances, it may be desirable to make sure a battery pack 760 is sufficiently charged for a user to take. Usage data indicating these other charging uses can be received by the electronic controller 720 and used to determine whether users are nearby and may require a charged battery pack sooner. The power tool battery charger 702 may also prioritize these additional capabilities over charging of battery packs (especially if limited by a max current draw from an outlet or other power source).
As discussed above, the machine learning controller 710 is associated with one or more particular tasks. The machine learning controller 710 receives various types of data from the one or more power tool battery chargers, one or more battery packs, one or more power tools, a server, an external device, and/or the electronic controller 720 based on the particular task for which the machine learning controller 710 is configured. For example, the machine learning controller 710 can receive data from one or more batteries (e.g., battery pack(s) 760), one or more power tools, one or more external devices (e.g., external device 104, 504), one or more servers (e.g., server 106, 206, 306, 406), other power tool battery chargers, and the like.
As described above, various types of data or other information may be utilized by the machine learning controller 710 to generate outputs, make determinations and predictions, and the like. The machine learning controller may receive, for example, usage data (e.g., usage data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), maintenance data (e.g., maintenance data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), environmental data, operator data, location data, and the like.
The machine learning controller 710 may also receive information regarding the type of battery pack 760 used with the power tool battery charger 702 (e.g., a 12 V battery pack, an 18 V battery pack).
As discussed above, the input 790 may select an operating mode for the power tool battery charger 702. The operating mode may specify operation parameters and thresholds for the power tool battery charger 702 during operation in that mode. For example, each operation mode may define charger operation data such as charging rate(s), charging target(s), time indications of when to change charging rate(s) and/or charging target(s) (including durations of time at which different charging rates should be maintained), an order in which battery packs 760 should be charged, a time-of-day when battery pack(s) 760 should be charged, and a combination thereof. The combination of two or more operation parameters or thresholds define a battery charger use profile or mode. When the mode is selected by the user, the electronic controller 720 controls the charging circuit(s) 758 according to the operation parameters or thresholds specified by the selected mode, which may be stored in the memory 740.
The machine learning controller 710 also receives information regarding the operating mode of the power tool battery charger 702 such as, for example, the charging target(s) associated with the mode, the charging rate(s) associated with the mode, timing information for when to adjust charging rates and/or charging targets, and the like. The machine learning controller 710 also receives sensor data indicative of an operational parameter of the power tool battery charger 702 such as, for example, charging current, battery pack voltage, feedback from the input(s) 790, motion of the power tool battery charger, temperature of the power tool battery charger, and the like.
As discussed above, the machine learning controller 710 may also receive feedback from the user as well as an indication of a target learning rate. The machine learning controller 710 uses various types and combinations of the information described above to generate various outputs based on the particular task associated with the machine learning controller 710. For example, in some embodiments, the machine learning controller 710 generates suggested parameters for a particular mode. The machine learning controller 710 may generate a suggested starting or finishing charging rate, a suggested maximum charging target, a suggested time of day to charge the battery pack or at which to adjust the charging rate, and the like.
As discussed above, the architecture for the machine learning controller 710 may vary based on, for example, the particular task associated with the machine learning controller 710. In some embodiments, the machine learning controller 710 may include a neural network, a support vector machine, decision trees, logistic regression, and other machine learning architectures. The machine learning controller 710 may further utilize kernel methods or ensemble methods to extend the base structure of the machine learning controller 710. In some embodiments, the machine learning controller 710 implements reinforcement learning to update the machine learning controller 710 based on received feedback indications from the user.
In step 1002, the power tool battery charger 702 can receive power tool device data that include power source data indicating a cost of electricity and/or being associated with the cost or availability of electricity. The power tool battery charger 702 may receive the power tool device data via wireless communications (e.g., from an external device 104, a server 106, 206, 306, 406, or another wirelessly connected device), by user input (e.g., via a graphical user interface on a connected external device 104, via an input 790), or by a control hub that includes one or more external device 104, a server 106, 206, 306, 406, a network of power tool battery chargers, or the like. The power tool device data may be received from various sources, as described herein. For example, the power tool device data may be received by the electronic controller 720 of the power tool battery charger 702 from the power tool battery pack 760 (e.g., from a memory of the battery pack 760 populated by the battery pack 760 during use of the battery pack 760), from a memory for the power tool battery charger 702 (e.g., the memory 740), from the external device 104, from the server 106, 206, 306, 406, or a combination thereof. The source of the particular data making up the set of power tool device data may be provided by the device that collects or generates such data. For example, usage data for the power tool battery charger 702 may be retrieved from a memory of the power tool battery charger 702, while usage data for the power tool battery pack 760 may be provided to the power tool battery charger 702 from the power tool battery pack 760. Data of the set of power tool device data that are provided, in step 1002, to the power tool battery charger 702 from another device may be communicated via one or more of the wired or wireless connections and communication capabilities of the power tool battery charger 702, as described herein (e.g., with respect to
In step 1004, the received power tool device data (e.g., usage data, power source data) are processed by the electronic controller 720, machine learning controller 710, artificial intelligence controller, or other electronic processor or controller of a power tool device (e.g., external device 104, server 106, 206, 306, 406) connected to the power tool battery charger 702. In some implementations, the electronic controller 720 processes the received power tool device data (e.g., via the electronic processor 730) according to instructions 742 stored in the memory 740 of the electronic controller 720. For example, the power source data can be processed to determine the cost of electricity for the power source to which the power tool battery charger 702 is connected. In some other implementations, the machine learning controller 710 processes the power tool device data according to the machine learning control 784, and generates output data that are acted upon by the electronic processor 720 to control operation of the charging circuit(s) 758. Additionally or alternatively, an artificial intelligence controller may process the power tool device data according to an artificial intelligence control, and generates output data that are acted upon by the electronic processor 720 to control operation of the charging circuit(s) 758.
The received power tool device data may include other analytics of the connected power source, including a record of energy usage by the power tool battery charger 702, associated electricity costs, associated electricity savings, associated carbon emissions, associated carbon savings, and the like. These analytics of the connected power source may have been previously collected and stored in a memory, database, data storage device, or other data storage medium accessible by the power tool battery charger 702, including the memory 740 of the electronic controller 720, a memory of the external device 104, a server memory 160 of the server 106, 206, 306, 406, or the like. In one embodiment, the analytics of the power source are generated by the electronic controller 720, the external device 104, the server electronic processor 150, or another electronic controller or processor of a power tool device in a connected power tool device network (e.g., another external device, another power tool battery charger, a power tool, a wireless communication device, an access point, a gateway device, or the like). For example, the analytics of the power source can be generated based on received power tool device data (e.g., usage data, power source data indicating the cost of electricity) and arithmetic operations using the power tool device data (e.g., costs and/or savings associated with the usage of the power tool battery charger 702).
In some embodiments, the machine learning controller 710 is configured to process the power tool device data and to estimate charger operation data, such as charging rates, charging targets, time indications, and the like, that optimize, or otherwise modify, a charging action under an energy resource constraint based on the power source data, such as the cost of electricity and a target cost to be incurred at a jobsite. The power tool device data are received by the machine learning controller 710 while the power tool battery charger 702 is in use (e.g., while a battery pack is attached to and being charged by the power tool battery charger 702). Based on the received information, the machine learning controller 710 determines the optimal charger operation data to minimize energy costs while still achieving the necessary charging action for the battery pack(s). For example, the machine learning controller 710 may determine that, based on usage data, the battery pack will not be needed until 7:00 AM the following data and, therefore, may optimize charging rates, charging target, and the timing of charging actions and changes in order to minimize the cost of charging the battery pack based on the cost of electricity indicated in the power source data. In other instances, based on the received information, the machine learning controller 710 determines charger operation data that will adjust the charging action for the battery pack(s) (e.g., by delaying the time to charge, by reducing the charge current) in order to reduce the cost of operating the power tool battery charger 702. In still other instances, the determined charger operation data may indicate adjustments to the charging action for the battery pack(s) (e.g., delaying the time to charge, reducing the charge current, increasing the charge current, time indications for when to modify the charge current) that maintain the cost for operating the power tool battery charger 702 within a range of acceptable operating costs, or relative to a cost threshold.
The power tool device data may also be processed to generate output data that indicate charger operation data optimized to stabilize and/or balance the electricity grid to which the power tool battery charger 702 is connected, or to which a network of such power tool battery chargers are connected.
In step 1006, output data are generated based on processing the received power tool device data. For example, the electronic processor 730, machine learning controller 710, artificial intelligence controller, or electronic processor of power tool device in a connected power tool device network or control hub, may generate the output data. The output data can indicate controls for the charging circuit(s) 758 of the power tool battery charger 702. For example, the output data can include charging rate(s) at which the charge battery pack(s) 760, one or more charging target(s) to which battery pack(s) 760 should be charged, times-of-day during which battery pack(s) 760 should be charged, time indications for when a charging rate and/or charging target should be adjusted to a different value, the order in which multiple battery packs 760 should be charged, and the like.
In step 1008, the electronic controller 720 then operates the charging circuits(s) 758 based on the output data from the electronic processor 730, machine learning controller 710, artificial intelligence controller, or electronic processor of power tool device in a connected power tool device network or control hub, as described. For example, the charging circuit(s) 758 are controlled by the electronic controller 720 of the power tool battery charger 702.
In some other embodiments, in block 1002, power tool device data that include power source data indicating a cost of electricity can be received by a device other than the power tool battery charger 702, such as a control hub that may include one or more external devices 104, a server 106, 206, 306, 406, and/or a network of connected power tool battery chargers. In block 1004, the power tool device data may be processed by the control hub (e.g., by an electronic processor of the one or more external device 104: a server electronic processor 150 of the server 106, 206, 306, 406: or an electronic processor of one or more of the networked power tool battery chargers) to, in block 1006, generate output data that control the operation of the charging circuit(s) 758. In some embodiments, the control hub can generate output data that are communicated to multiple power tool battery chargers in a connected network of chargers (e.g., power tool battery chargers at the same jobsite, which may be connected to the same electrical service). In block 1008, the one or more power tool battery chargers, in turn, can operate based on the charger operation data received.
The control hub can be controlled by an operator associated with the jobsite or other location at which the power tool battery charger 702 is located, or by a third party. For example, the third party may include an outside company (e.g., a company renting or leasing the power tool battery charger 702, a company providing a licensing fee for use of the power tool battery charger 702) that may control the charging remotely. In some embodiments, the third party may partner with an energy provider and may adjust the control operation of the charging circuit(s) 758 of the power tool battery charger 702 based on analysis of the power tool device data (e.g., usage data of the power tool battery charger 702 and power source data indicating the cost of electricity). The control hub can communicate a command to the power tool battery charger 702 to enable the charger, disable the charger, or otherwise control the charger operation based on the determined charger operation data.
During operation of the power tool battery charger 702, the electronic controller 720 receives power tool device data, as indicated at step 1102, from the sensors 772 and/or a connected power tool device (e.g., an external device 104, a server 106, 206, 306, 406, a power tool, another power tool battery charger, a control hub). The power tool device data may be received from various sources, as described herein. For example, the power tool device data may be received by the electronic controller 720 of the power tool battery charger 702 from the power tool battery pack 760 (e.g., from a memory of the battery pack 760 populated by the battery pack 760 during use of the battery pack 760), from a memory for the power tool battery charger 702 (e.g., the memory 740), from the external device 104, from the server 106, 206, 306, 406, or a combination thereof. The source of the particular data making up the set of power tool device data may be provided by the device that collects or generates such data. For example, usage data for the power tool battery charger 702 may be retrieved from a memory of the power tool battery charger 702, while usage data for the power tool battery pack 760) may be provided to the power tool battery charger 702 from the power tool battery pack 760. Data of the set of power tool device data that are provided, in step 1102, to the power tool battery charger 702 from another device may be communicated via one or more of the wired or wireless connections and communication capabilities of the power tool battery charger 702, as described herein (e.g., with respect to
As discussed above, the power tool device data provide varying information regarding the operation of the power tool battery charger 702, the battery pack(s) 760, and/or one or more associated power tools, including, for example, usage data (e.g., usage data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), maintenance data (e.g., maintenance data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), feedback data, power source data, sensor data (e.g., sensor data of the power tool battery charger 702, another power tool battery charger, one or more battery packs, and/or one or more power tools), environmental data, operator data, location data, and the like. The power tool device data may also include other operational parameter data, such as date, time, time since last use, mode, errors, history of past applications and charging rates, user input, external inputs, and the like.
The electronic controller 720 then processes the data (e.g., using the electronic processor 730) or provides at least some of the power tool device data to the machine learning controller 710, or additionally or alternatively an artificial intelligence controller, as indicated at step 1104. When the power tool battery charger 702 does not store a local copy of the machine learning controller 710 (or artificial intelligence controller), such as in the power tool battery charger system 100 of
In some embodiments, the electronic controller 720 (e.g., using the electronic processor 730) is configured to identify the type of electricity input or power source to which the power tool battery charger 702 is connected based on analysis of the power tool device data. For example, the power tool device data can include power source data and/or sensor data that indicate a type of electricity input and/or characteristics of the electricity input (e.g., voltage, current), which may indicate the type of electricity input.
In some embodiments, the machine learning controller 710 and/or artificial intelligence controller is configured to identify the type of electricity input or power source to which the power tool battery charger 702 is connected. In such an embodiment, the machine learning controller 710 receives, for example, power tool device data such as power source data and/or sensor data indicating the type of electricity input, or characteristics of the electricity input.
As an example, the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller can monitor and evaluate an AC voltage based on the wave shape of the voltage. A pure sinusoidal shape versus imperfections in the input wave can be indicative of the power source type. Additionally or alternatively, deviations, droops, or more generally the response of the AC voltage to loading can also be indicative of the power source type. As another example, the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller can monitor and evaluate a DC voltage. For instance, a DC voltage droop under load (e.g., the characteristic droop, shape of the droop, response) can be indicative of the power source type.
The AC voltage may be be monitored and evaluated based on the wave shape of the voltage. The pure sinusoidal shape vs. imperfections in the input wave may be indicative of the power source. Deviations, droops, or more generally the response of the AC voltage to loading may also be indicative. Similarly, DC voltage may droop under load and the characteristic droop or shape of the droop or response may be indicative of the power source.
In one embodiment, the information (operational parameters) described above is generated by the electronic controller 720 based on sensor data from the sensors 772, arithmetic operations using the sensor data (e.g., calculating an electrical frequency value), and comparisons of the sensor data or calculated values with threshold (e.g., defining whether a sensed voltage corresponds to a particular electricity input type). The generated information is then received by the machine learning controller 710 while the power tool battery charger 702 is in use (e.g., while a battery pack is attached to and being charged by the power tool battery charger 702). Based on the received information, the machine learning controller 710 determines the type of power source input used in the operation of the power tool battery charger 702. In the illustrated embodiment, the machine learning controller 710 may utilize, for example, a neural network with multiple outputs such that each output corresponds to a different type of power source input. In some embodiments, the machine learning controller 710 may also generate an output indicating that the power source input type was unable to be identified.
In one example, the machine learning controller 710 may identify a power source input type from various potential power source input types. For example, the machine learning controller 710 differentiates between 120 V power sources, 220 V power sources, solar power sources, gas inverter power sources, wireless charging power sources, whether the power source is another battery pack 760 connected to the power tool battery charger 702, whether the power source is an internal power source to the power tool battery charger 702 (e.g., an internal battery, one or more supercapacitors, one or more other internal energy storage devices or media), whether the power source is a vehicle, among others. Accordingly, in the illustrated embodiment, the training examples for the machine learning controller 710 include an input vector indicating measurable parameters of the power source input (e.g., voltage, current), an indication of whether the power source input is cyclical, an indication of whether the power source input is on a balanced electrical grid, an indication of a cost of use of the power source, the selected mode of operation, and an output label indicating the type of power source input type.
As a non-limiting example, the machine learning controller 710 implements an artificial neural network to perform this classification. The artificial neural network includes, for example, one or more input nodes, and, for example, various different output nodes. Each output node, for example, corresponds to a different type of power source input identifiable by the machine learning controller 710, and an additional output to indicate to the power tool battery charger 702 when the power source input type does not correspond to any of the identifiable types of power source inputs. The artificial neural network may include more or less output nodes based on the number of power source input types able to be differentiated. In some embodiments, the neural network includes an additional layer including a single node. This additional layer may determine which output node has the highest values (which may correspond to the probability that the type of power source input is identified as the type of power source input corresponding to that output node), and outputs a value (e.g., one, two, three, or four) associated with the output node. The value of the output node may correspond to a type of power source input identified by the machine learning controller 710.
During training of the machine learning controller 710 to identify the type of power source input, the machine learning controller 710 adjusts the weights associated with each node connection of the neural network to achieve a set of weights that reliably classify the different types of power source inputs. Each node of a neural network may have a different activation network, so adjusting the weights of the neural network may also be affected by the activation functions associated with each layer or each node. Once the neural network is trained, the machine learning controller 710 receives the input variables (e.g., the values associated with each input variable), and applies the weights and connections through each layer of the neural network. The output or outputs from the trained neural network correspond to a particular type of power source input identifiable by the machine learning controller 710.
The machine learning controller 710 (or artificial intelligence controller) then generates an output based on the received power tool device data and the particular task associated with the machine learning controller 710 (or artificial intelligence controller), as indicated at step 1106. For example, the machine learning program, algorithm, or model executing on the machine learning controller 710 (or AI program, algorithm, or model executing on an artificial intelligence controller) generates the output based on the processing of the received power tool device data described with respect to block 1104 (e.g., based on a classification according to one of the aforementioned machine learning and/or artificial intelligence algorithms).
A power tool battery charger 702 may have multiple ways for receiving energy (including multiple plugs), and thus the electronic controller 720 can generate charger operation data based on the power tool device data in order to adjust the charger operation (e.g., by controlling operation of the charging circuit(s) 758) based on how the power tool battery charger 702 is receiving energy. Furthermore, as described above, in some embodiments the power tool battery charger 702 may act as a passthrough to another power tool battery charger, or to other devices. Monitoring such passthrough current may result in charger operation data that adjusts the ideal charging of the power tool battery charger 702.
The power tool battery charger 702 may also be able to have multiple swappable plugs and a transformer and regulator to appropriately adjust the output. As such, the power tool battery charger 702 can also process the power tool device data to determine its original voltage input in order to generate output data as charger operation data that can throttle the expected appropriate maximum energy draw so as to not trip breakers on the electrical grid to which the power tool battery charger 702 is connected. As one example, the charger operation data may indicate using a slow start for pass-through plugs to increase the current ramp time so as to mitigate tripping a circuit breaker. The power tool battery charger 702 can limit maximum current draw or other charger operation data based on power tool device data including a GPS input or other locational input, which may be provided or otherwise updated via the external device 104.
The power tool battery charger 702 may also have a way to limit maximum current draw or other charging aspects based on manual input from a user (e.g., via input(s) 790 or via a graphical user interface on the external device 104). For instance, the generated output data may be presented to a user via the external device 104 and enable the user to adjust a control of the charger operation in response.
As one example, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is a wall powered 120 V power source. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. For instance, when the power tool battery charger is a multiple bay charger, the charger operation data may indicate that for a 120 V power source input the maximum current draw is limited to 15 A at 120 V (common for some electrical breakers) and thus one or more battery packs 760 can be charged based on charging rates and/or targets so as to stay under a given limit.
As another example, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is a 220 V power source. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. For instance, when the power tool battery charger is a multiple bay charger, the charger operation data may indicate that for a 220 V power source input that the maximum current draw may be higher than for a 120 V power source and, therefore, allow more parallel charging and/or faster rate charger of battery packs 760 connected to the power tool battery charger 702 than for a 120 V power source.
As yet another example, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is a solar power source. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. Solar power may be less reliable than other power source input types (e.g., a solar power source may have voltage droop). In some embodiments, the charger operation data may indicate that for a solar power source input faster charging rates should be prioritized when power is available or otherwise reliable, even if at the expense of more battery wear. In some other embodiments, the charger operation data may indicate that more efficient charging should be prioritized. For instance, charging multiple battery packs in parallel may reduce heat generation losses and, therefore, may be more optimal when charging battery packs using a solar power source. In still other embodiments, for a power tool battery charger 702 connected to both a solar power source and a non-solar power source, the charger operation data may indicate prioritizing the solar power source to some degree, even if the non-solar power source may be more powerful at a given time.
As still another example, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is gas inverter (i.e., a gasoline-powered engine generator inverter, also referred to as engine generator, generator inverter, or gen-set). In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. In general, gas inverters tend to have less steady voltage and vary from inverter to inverter on what power draw is possible. A power tool battery charger 702 may determine that it is connected to a gas inverter (and/or may identify the source quality of the gas inverter) based on the power tool device data. For instance, the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller may identify a gas inverter power source based on its inconsistent voltage provided, especially under load.
The charger operation data may indicate that for a gas inverter power source input, the power tool battery charger 702 may throttle its maximum energy draw so as to not overdraw the gas inverter and/or operate at an expected improved efficiency of the gas inverter. Additionally or alternatively, the charger operation data may indicate or command that the power tool battery charger 702 should throttle its charging rates so as to maintain a more consistent voltage and/or current to the battery pack(s) 760.
In some instances, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is a wireless power source, such that wireless charging is being provided to the power tool battery charger 702. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. In general, wireless charging is less efficient than wired charging. Therefore, when the power tool battery charger is providing wireless charging to one or more battery pack(s) 760, the charger operation data may indicate that charging of battery packs 760 via wired charging should be prioritized over those battery packs 760 being charged via wireless charging. In these instances, the charger operation data can indicate the order in which the battery packs 760 should be charged.
Because the electrical charging efficiency for wireless charging can vary significantly with the relative position of the battery pack 760 and the power tool battery charger 702, the charger operation data may also indicate that battery packs 760 which are more optimally aligned relative to the power tool battery charger 702 (e.g., relative to a wireless charging coil, which may be implemented as part of the battery pack interface 752) should be charged before those battery packs 760 that are less optimally aligned in order to optimize charging efficiency and/or maximum wireless energy transfer. The electronic controller 720, machine learning controller 710, and/or artificial intelligence controller can determine the relative alignment of each battery pack 760 and the power tool battery charger 702 based on the power tool device data. For example, the power tool device data may include sensor data that indicate positional information (e.g., via one or more inertial sensors) and/or may include sensor data that indicate an efficiency of wireless charging being provided to each wirelessly charged battery pack 760.
As another example, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is one battery pack 760 connected to the power tool battery charger 702 and used to charge another battery pack 760 connected to the power tool battery charger 702. For instance, the first battery pack may have a nominal voltage of 18 V and the second battery pack may have a nominal voltage of 12 V. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. For instance, the charger operation data may indicate prioritizing more efficient charging since the energy for charging the second battery pack is limited by the energy available from the first battery pack.
In some embodiments, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is one or more internal batteries, supercapacitors, or other internal energy storage devices or media. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets.
For instance, the charger operation data may indicate that a higher total current draw can be used for charging than a wall outlet charging rate, potentially charging multiple batteries at once if a multiple bay charger. Higher current draw than a wall outlet would be ideal if the power tool battery charger 702 is also plugged into a wall outlet and can combine energy sources, as determined by processing the power tool device data. If the power tool battery charger 702 is not connected to a wall outlet, the charger operation data may indicate that more efficient charging should be prioritized as energy is limited.
In some embodiments, when the power tool battery charger 702 has an internal energy storage and is also connected to an inconsistent external power source (e.g., a gas generator or inverter), as determined by processing the power tool device data, the charger operation data may indicate controlling the charging circuit(s) 758 to use the internal power source to amplify or better regulate the external power source. A power tool battery charger 702 may also temporarily use such internal power source to continue charging, data transfer, user interface factors (e.g., output(s) 792, such as LEDs), etc., after being removed from an external power source.
In still other embodiments, processing the power tool device data (e.g., using the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller) may determine that the power source input type is a power source associated with a vehicle. In this example, the output data may include charger operation data indicating charging rate(s), charging target(s), and timing indications for when to adjust charging rates and/or charging targets. For instance, the charger operation data may indicate that charging efficiency should be prioritized (or charging fully stopped) if the vehicle's reserve is very low and/or typical use of the vehicle requires the full range, which may additionally be determined by processing the power tool device data with the electronic controller 720, machine learning controller 710, and/or artificial intelligence controller (e.g., by processing usage data, power source data, sensor data associated with the battery charger and/or the power source of the vehicle). A vehicle can communicate to the power tool battery charger 702 (e.g., wirelessly via Bluetooth, or the like) or can be identifiable due to its inverter properties. A power tool battery charger 702 may also prioritize faster charging as usually the vehicle energy would be much more than the battery energy.
The electronic controller 720 then operates the charging circuits(s) 758 based on the output from the electronic processor 730, the machine learning controller 710, and/or the artificial intelligence controller, as indicated at step 1108.
For example, the electronic controller 720 may use the output from the electronic processor 730, the machine learning controller 710, and/or the artificial intelligence controller to determine whether any operational thresholds (e.g., charging target, charging rate(s), time indications for changing charging rate(s), time-of-day to charge, and the like) are to be changed to increase the efficacy of the operation of the power tool battery charger 702. The electronic controller 720 then utilizes the updated operational thresholds or ranges to operate the charging circuit(s) 758.
As described, in some embodiments the output data may indicate a classification of the type of power source input. In these instances, the power tool battery charger 702 can be operated based on the output data by retrieving charger operation data (e.g., charging rate(s), charging target(s), timing indications for when to adjust charging rate(s) or target(s), order in which the charger battery packs 760) from a memory, database, or other data storage device or medium, which may be the memory 740 of the power tool battery charger 702, the server memory 160 of the server 106, 206, 306, 406, or a memory of the external device 104, another power tool battery charger, a power tool, or another connected power tool device. In some other embodiments, the generated output data may include the charger operation data that is optimized for the identified type of power source.
In some embodiments, the electronic processor 730) can receive and process power tool device data in order to determine the use application of the power tool battery charger 702 and, thus, the related charger operation data. In other embodiments, the machine learning controller 710 implements a machine learning control 784, and/or an artificial intelligence controller implements an artificial intelligence control, in order to determine the use application of the power tool battery charger 702 and, thus, the related charger operation data. As a non-limiting example, the machine learning controller 710 may implement a recurrent neural network, although other machine learning techniques may be used in other embodiments.
During an operation of the power tool battery charger 702, the electronic controller 720 receives sensor output signals from the sensor(s) 772 as sensor data or other power tool device data, as indicated at step 1202. As described above, the sensor data may include data collected using one or more sensors 772 (e.g., voltage sensor, a current sensor, a temperature sensor, an inertial sensor) of the power tool battery charger 702, battery pack(s) 760, and/or power tool(s), and the like. Additionally or alternatively, the electronic controller can receive other power tool device data, including usage data, maintenance data, feedback data, power source data, environmental data, operator data, location data, amongst others.
In step 1204, the electronic controller 720 sends at least some of the sensor data and/or other power tool device data to the electronic processor 730, machine learning controller 710, and/or artificial intelligence controller to use the sensor data and/or other power tool device data to determine a current application for which the power tool battery charger 702 is used.
In step 1206, the electronic processor 730, machine learning controller 710, and/or artificial intelligence controller receives at least some of the sensor data and/or other power tool device data from the electronic controller 720, which may be indicative of one or more operational parameters of the power tool battery charger 702. The electronic controller 720) may also calculate intermediary measurements that are then transmitted to the electronic processor 730, machine learning controller 710, and/or artificial intelligence controller as additional input data.
Additionally, in step 1206, the electronic processor 730, machine learning controller 710, and/or artificial intelligence controller receives a time indication. The time indication may include an elapsed time since the power tool battery charger 702 has been in operation, an elapsed time since the last operation of the power tool battery charger 702, the current time (e.g., received from the external device 104, from the server processor 150, or from a real-time clock that is on-board the power tool battery charger 702), or the like. The elapsed time may provide the machine learning controller 710 with an indication of how relevant the previous classifications or determinations may be for the current set of sensor data and/or other power tool device data.
The likely application of the power tool battery charger 702 is then determined based on the power tool device data and time indication(s) provided to the electronic processor 730, machine learning controller 710, and/or artificial intelligence controller, as indicated at step 1208. Based on the determined application for the power tool battery charger 702, charger operation data are generated (e.g., as described above), as indicated at step 1210, and used to control operation of the power tool battery charger 702 (e.g., by controlling the charging circuit(s) 758 as described above), as indicated at step 1212.
The application of the power tool battery charger 702 refers to the specific use of the power tool battery charger 702. For example, whether one or more battery packs should be charged in a rapid charging mode, whether one or more battery packs should be charged at a slower rate to maximize battery life, whether one or more battery packs should be charged before (or be charged using different a different charging profile than) others connected to the same power tool battery charger 702, and so on.
In the example where the machine learning controller 710 implements a recurrent neural network, in step 1206, the machine learning controller 710 also receives information regarding previous determinations from the machine learning controller 710 as well as the sensor data and/or other power tool device data corresponding to the previous determinations.
Additionally, in step 1206, the machine learning controller 710 receives a switching rate. The switching rate controls a weight associated with the past classifications or determinations made by the machine learning controller 710. Effectively, the switching rate affects how fast the output generated by the machine learning controller 710 will change based on new input data. For example, if the machine learning controller 710 has indicated that the last ten input sets have corresponded to a first application of the power tool battery charger 702 (e.g., one operating mode), the machine learning controller 710 may still determine that the eleventh input set corresponds to the first application of the power tool battery charger 702 even if the sensor data may be slightly different than expected for the first application of the power tool battery charger 702. When the switching rate is low, the machine learning controller 710 waits for a greater number of new input sets with different sensor data (e.g., sensor data more likely to correspond to another application of the power tool battery charger 702) before outputting a different application of the power tool battery charger 702. On the other hand, when the switching rate is high, a fewer number of input sets with different sensor data are necessary for the machine learning controller 710 to output a different application of the power tool battery charger 702. As discussed above, in some embodiments, a user may select a relative switching rate for the machine learning controller 710. For example, the machine learning controller 710 may receive a user input requesting an increase to the switching rate before the user switches from one type of use of the power tool battery charger 702 to another (e.g., from fastening wood screws to drilling a hole). The machine learning controller 710 will then rely less heavily on prior operations and more quickly adapt than if the switching rate had been maintained at the same level.
In some embodiments, the machine learning controller 710 analyzes the sensor data, the past classifications or determinations for previous input sets, and the time indication, and, using the switching rate, generates an automatic determination of the most likely application of the power tool battery charger 702. In some embodiments, the machine learning controller 710 only selects the most likely application of the power tool battery charger 702 based on the sensor data and the previous classifications. For example, the machine learning controller 710 may determine that the power tool battery charger 702 is most likely operating to charge multiple battery packs over a lunch break and should, therefore, prioritize charging those battery packs associated with usage data indicating they are most likely to be used again soon.
In some embodiments, the machine learning controller 710 outputs multiple applications that are likely to correspond to the current use of the power tool battery charger 702. For example, the machine learning controller 710 may indicate that based on the sensor data, the previous classifications, and the time indication, there is a certain percentage likelihood that the power tool battery charger 702 is currently being used to rapidly charge a battery pack for use on a power tool as quickly as possible, but there is another percentage likelihood that the power tool battery charger 702 is currently being used to charge a battery pack for use on a power tool the following day. In some embodiments, the machine learning controller 710 does not assign specific percentages to the likely applications.
The machine learning controller 710 then generates or selects an operating mode profile based on the determination of the most likely application of the power tool battery charger 702. In some embodiments, the memory 740 includes a database storing a plurality of operating mode profiles. Each operating mode profile includes various parameters and thresholds used to control the power tool battery charger 702. Each operating mode profile can be optimized for different applications or uses of the power tool battery charger 702. In such embodiments, the machine learning controller 710 may determine the most likely application of the power tool battery charger 702, select a corresponding operating mode profile from the database, and communicate with the electronic controller 720 to control the charging circuit(s) 758 according to the selected operating mode profile.
In other embodiments, the machine learning controller 710 generates an adequate operating mode profile based on, for example, multiple likely applications for the power tool battery charger 702. For example, when the machine learning controller 710 determines that the current use of the power tool battery charger 702 is likely to be one of two or three different applications, the machine learning controller 710 can combine the two or three operating mode profiles, each corresponding to the likely two or three applications. In one example, the machine learning controller 710 determines that there is a first percentage likelihood that the current application includes a first charging operation profile (e.g., 70% likelihood), and there is a second percentage likelihood that the current application includes a second charging operation profile (e.g., a 30% likelihood). In such an example, the machine learning controller 710 may combine the operating mode profile for first charging operation and the operating mode profile for second charging operation such that a third charging operation profile with a set of charging operation data (e.g., charging rate(s), charging target(s), time indications for when the adjust charging rate(s) and/or target(s)) based on the first and second charging operation profiles is generated.
In some embodiments, the power tool battery charger 702 also includes an activation switch 774 for determining whether the machine learning controller 710 is to control the operation of the charging circuit(s) 758. The machine learning controller 710 determines whether the activation switch is in the on state. When the activation switch is in the on state, the machine learning controller 710 uses the generated or selected operating mode profile to control the charging circuit(s) 758. On the other hand, when the activation switch is in the off state, the machine learning controller 710 uses the default profile to operate the charging circuit(s) 758. The electronic controller 720 then operates the power tool battery charger 702 (e.g., the charging circuit(s) 758) according to either the default operating mode profile or a selected or generated operating mode profile.
When the machine learning controller 710 receives positive or negative feedback from the power tool battery charger 702, the machine learning controller 710 re-trains the machine learning control 784, and then proceeds to implement the re-trained machine learning control 784. For example, a feedback indication from the power tool battery charger 702 may indicate that the power source input type was identified incorrectly, and may, in some embodiments, include the correct type of power source input. The machine learning controller 710 would then re-train the machine learning control 784 using the input data and the correct type of power source input. The re-trained machine learning control 784 may be communicated to a server (e.g., server 106, 206, 306, 406) for storage in the server memory 160 (e.g., so the re-trained machine learning control 784 can be accessed by and/or shared with other power tool battery chargers).
In some embodiments, the machine learning control 784 may be adjusted, but not necessarily re-trained, based on the feedback received regarding the operation of the power tool battery charger 702. For example, in some embodiments, the machine learning controller 710 utilizes the feedback to immediately correct an aspect of the operation of the power tool battery charger 702 (e.g., increases the charging rate during the operation of the power tool battery charger 702).
Similarly, the machine learning control 784 may change an output (e.g., classifications) based on feedback, without retraining. The machine learning controller 710 may receive an indication that faster charging was requested by the user during the power tool battery charger operation (e.g., via a graphical user interface of the external device 104), indicating that the estimated charging rate was lower than the actual charging rate. The machine learning controller 710 may then re-train the machine learning control 784 based on the received input signals and the received feedback, and also provide a faster charging rate to the current operation of the power tool battery charger 702. As another example, the machine learning controller 710 may receive an indication that a detected abnormal condition (e.g., abnormal charging condition, abnormal battery pack condition) was not actually present. Accordingly, the more the machine learning controller 710 is implemented, the more accurate its determinations and estimations can become.
The power tool battery pack(s) 656, 760 and power tool battery charger(s) 102, 202, 302, 402, 502, 702 described herein are just some examples of such packs and chargers. In some embodiments, the power tool battery charger(s) 202, 302, 402, 502, 702 have another configuration. For example, the power tool battery charger(s) 202, 302, 402, 502, 702 may have additional or fewer charging docks, may have a different electrical and/or mechanical interface for interfacing with a power tool battery pack, and/or may be configured to charge a different type (or combinations of types) of power tool battery packs (e.g., having different capacities or nominal voltage levels). For example,
The power tool battery chargers 102, 202, 302, 402, 502, 702 and 1305, 1310, and 1315 may include standalone power tool battery chargers, as shown in the illustrated embodiments. In some other configurations, the power tool battery chargers 102, 202, 302, 402, 502, 702 and 1305, 1310, and 1315 may be integrated in a power source, integrated in a power tool, integrated in a light, and/or integrated into another peripheral device or equipment.
Similarly, in some embodiments, the power tool battery pack(s) 656, 760 have another configuration. For example, the power tool battery pack(s) 656, 760 may have a different electrical and/or mechanical interface for interfacing with power tools and/or power tool battery pack chargers and/or may be configured to be charged by a different type of power tool battery chargers (e.g., one or more of the chargers 1305, 1310, 1315), may have a different capacity, and/or may have a different nominal voltage level. For example,
In some examples, the power tool battery packs 1410 and 1415 have a second nominal voltage of approximately 12 volts, of between 8 volts and 16 volts, or another amount. In some examples, the power tool battery pack 1410 has a larger capacity than the pack 1415, generally providing a longer run time than the pack 1415 when operating under similar circumstances. To achieve additional capacity, the pack 1410 may include an additional set of battery cells relative to the pack 1415. For example, the pack 1415 may include a set of series-connected battery cells, while the battery pack 1410 may include two or more sets of series-connected battery cells, with each set being connected in parallel to the other set(s) of cells.
In some examples, the power tool battery packs 1420 and 1425 have a third nominal voltage of approximately 72 volts, of between 60 volts and 90 volts, or another amount. In some examples, the power tool battery pack 1420 has a larger capacity than the pack 1425, generally providing a longer run time than the pack 1425 when operating under similar circumstances. To achieve additional capacity, the pack 1420 may include an additional set of battery cells relative to the pack 1425. For example, the pack 1425 may include a set of series-connected battery cells, while the battery pack 1420 may include two or more sets of series-connected battery cells, with each set being connected in parallel to the other set(s) of cells.
Accordingly, at least in some embodiments, the packs 1420 and 1425 have a higher nominal voltage than the packs 1405, 1410, and 1415, and the pack 1405 has a higher nominal voltage than the packs 1410 and 1415.
In some embodiments, the power tool battery charger 702 can be implemented as a portable power system.
The sensors 1562 transmit output signals indicative of sensed characteristics to the electronic controller 1520 of the power box 1502. The electronic controller 1520 transmits at least a portion of the sensor output signals to the server 1506 via, for example, a transceiver of the wireless communication device 1550. The server 1506 includes the machine learning controller 1510. In the illustrated embodiment, the machine learning controller 1510 (similar machine learning controller 110 of
In one embodiment, the machine learning controller 1510 of
In another embodiment, the machine learning controller 1510 implements, for example, a hierarchical clustering algorithm. In such an example, the machine learning controller 1510 starts by assigning each data point to a separate cluster. The machine learning controller 1510 then gradually combines data points into a smaller set of clusters based on a distance between two data points. The distance may refer to, for example, a Euclidean distance, a squared Euclidean distance, a Manhattan distance, a maximum distance, and Mahalanobis distance, among others. Similar to the k-means clustering algorithm, the hierarchical clustering algorithm does not use training examples, but rather uses all the known data points to separate the data points into different clusters.
After receiving the sensor output signals from the power box 1502, the machine learning controller 1510 identifies the different power usage of different power tool battery chargers and/or battery packs (e.g., by implementing, for example, one of the clustering algorithms described above). As shown in
In still other embodiments, the electronic controller 1520 of the power box 1502 includes an electronic processor 1530 that can be configured to receive instructions and data from a memory 1540 and execute, among other things, the instructions. In particular, the electronic processor 1530 executes instructions stored in the memory 1540. Thus, the electronic controller 1520 coupled with the electronic processor 1530 and the memory 1540 can be configured to perform the methods described herein (e.g., the process 800 of
It is to be understood that the disclosure is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The disclosure is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including.” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless specified or limited otherwise, the terms “mounted,” “connected,” “supported,” and “coupled” and variations thereof are used broadly and encompass both direct and indirect mountings, connections, supports, and couplings. Further, “connected” and “coupled” are not restricted to physical or mechanical connections or couplings.
Some embodiments, including computerized implementations of methods according to the disclosure, can be implemented as a system, method, apparatus, or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a processor device (e.g., a serial or parallel processor chip, a single- or multi-core chip, a microprocessor, a field programmable gate array, any variety of combinations of a control unit, arithmetic logic unit, and processor register, and so on), a computer (e.g., a processor device operatively coupled to a memory), or another electronically operated controller to implement aspects detailed herein. Accordingly, for example, embodiments of the disclosure can be implemented as a set of instructions, tangibly embodied on a non-transitory computer-readable media, such that a processor device can implement the instructions based upon reading the instructions from the computer-readable media. Some embodiments of the disclosure can include (or utilize) a control device such as an automation device, a computer including various computer hardware, software, firmware, and so on, consistent with the discussion below. As specific examples, a control device can include a processor, a microcontroller, a field-programmable gate array, a programmable logic controller, logic gates, etc., and other typical components that are known in the art for implementation of appropriate functionality (e.g., memory, communication systems, power sources, user interfaces and other inputs, etc.). Also, functions performed by multiple components may be consolidated and performed by a single component. Similarly, the functions described herein as being performed by one component may be performed by multiple components in a distributed manner. Additionally, a component described as performing particular functionality may also perform additional functionality not described herein. For example, a device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier (e.g., non-transitory signals), or media (e.g., non-transitory media). For example, computer-readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, and so on), optical disks (e.g., compact disk (“CD”), digital versatile disk (“DVD”), and so on), smart cards, and flash memory devices (e.g., card, stick, and so on). Additionally, it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (“LAN”). Those skilled in the art will recognize that many modifications may be made to these configurations without departing from the scope or spirit of the claimed subject matter.
Certain operations of methods according to the disclosure, or of systems executing those methods, may be represented schematically in the figures or otherwise discussed herein. Unless otherwise specified or limited, representation in the figures of particular operations in particular spatial order may not necessarily require those operations to be executed in a particular sequence corresponding to the particular spatial order. Correspondingly, certain operations represented in the figures, or otherwise disclosed herein, can be executed in different orders than are expressly illustrated or described, as appropriate for particular embodiments of the disclosure. Further, in some embodiments, certain operations can be executed in parallel, including by dedicated parallel processing devices, or separate computing devices configured to interoperate as part of a large system.
As used herein in the context of computer implementation, unless otherwise specified or limited, the terms “component.” “system.” “module,” and the like are intended to encompass part or all of computer-related systems that include hardware, software, a combination of hardware and software, or software in execution. For example, a component may be, but is not limited to being, a processor device, a process being executed (or executable) by a processor device, an object, an executable, a thread of execution, a computer program, or a computer. By way of illustration, both an application running on a computer and the computer can be a component. One or more components (or system, module, and so on) may reside within a process or thread of execution, may be localized on one computer, may be distributed between two or more computers or other processor devices, or may be included within another component (or system, module, and so on).
In some implementations, devices or systems disclosed herein can be utilized or installed using methods embodying aspects of the disclosure. Correspondingly, description herein of particular features, capabilities, or intended purposes of a device or system is generally intended to inherently include disclosure of a method of using such features for the intended purposes, a method of implementing such capabilities, and a method of installing disclosed (or otherwise known) components to support these purposes or capabilities. Similarly, unless otherwise indicated or limited, discussion herein of any method of manufacturing or using a particular device or system, including installing the device or system, is intended to inherently include disclosure, as embodiments of the disclosure, of the utilized features and implemented capabilities of such device or system.
As used herein, unless otherwise defined or limited, ordinal numbers are used herein for convenience of reference based generally on the order in which particular components are presented for the relevant part of the disclosure. In this regard, for example, designations such as “first.” “second.” etc., generally indicate only the order in which the relevant component is introduced for discussion and generally do not indicate or require a particular spatial arrangement, functional or structural primacy or order.
As used herein, unless otherwise defined or limited, directional terms are used for convenience of reference for discussion of particular figures or examples. For example, references to downward (or other) directions or top (or other) positions may be used to discuss aspects of a particular example or figure, but do not necessarily require similar orientation or geometry in all installations or configurations.
As used herein, unless otherwise defined or limited, the phase “and/or” used with two or more items is intended to cover the items individually and both items together. For example, a device having “a and/or b” is intended to cover: a device having a (but not b): a device having b (but not a); and a device having both a and b.
This discussion is presented to enable a person skilled in the art to make and use embodiments of the disclosure. Various modifications to the illustrated examples will be readily apparent to those skilled in the art, and the generic principles herein can be applied to other examples and applications without departing from the principles disclosed herein. Thus, embodiments of the disclosure are not intended to be limited to embodiments shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein and the claims below. The provided detailed description is to be read with reference to the figures, in which like elements in different figures have like reference numerals. The figures, which are not necessarily to scale, depict selected examples and are not intended to limit the scope of the disclosure. Skilled artisans will recognize the examples provided herein have many useful alternatives and fall within the scope of the disclosure.
Various features and advantages of the disclosure are set forth in the following claims.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 63/272,563, filed on Oct. 27, 2021, and entitled “SMART POWER TOOL BATTERY CHARGER,” which is herein incorporated by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2022/078721 | 10/26/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63272563 | Oct 2021 | US |