Methods and systems to focus an imager for machine vision applications

Methods and systems to focus an imager for machine vision applications are disclosed. A disclosed example machine vision method includes: capturing, via an imaging assembly, an image of an indicia appearing within a field of view (FOV) of the imaging assembly; recognizing, via a controller, the indicia as a focus adjustment trigger, the focus adjustment trigger operative to trigger an adjustment of at least one focus parameter associated with the imaging assembly; adjusting the at least one focus parameter based at least in part on the indicia; locking the at least one focus parameter such that the at least one focus parameter remains unaltered for a duration; and responsive to the locking of the at least one focus parameter, capturing, via the imaging assembly, at least one subsequent image of an object of interest.

FIELD OF THE DISCLOSURE

This disclosure relates generally to machine vision, and, more particularly, to methods and systems to focus an imager for machine vision applications.

BACKGROUND OF THE INVENTION

Machine vision is use of automated imaging-based inspection and analysis for such applications as part inspection, process control, and robot guidance, usually in industry. In typical machine vision systems, focusing distance of an imaging system is fixed. If necessary, the focus has to be manually adjusted to a particular distance to focus on an object of interest. However, manual focusing requires an external computer and display for an operator. If no computer with a display is available and a limited number of discrete focusing position is used, then the focusing may be not accurate enough. While an autofocus system can alleviate this problem they tend to be slow and cannot be used effectively in a moving system such as a conveyer belt. In a presence of multiple objects within the field of view (FOV) of an imager, an auto focus algorithm may select a wrong object to focus on, which may result in a blurry image of an intended object of interest. Accordingly, there is a need for solutions that solve issues regarding focusing of imaging systems for machine vision systems.

Connecting lines or connectors shown in the various figures presented are intended to represent example functional relationships and/or physical or logical couplings between the various elements. In general, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.

Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, components may been represented where appropriate by conventional symbols in the drawings, and may show only those specific details that are pertinent to understanding the embodiments of the invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. Further, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the invention.

DETAILED DESCRIPTION

In various embodiments of the present disclosure, methods and machine vision systems to focus based on special-purpose indicia present on or presented in connection with an object of interest are disclosed. Example imaging systems have an electronically controllable focusing mechanism, such as a liquid lens or a voice coil motor, which are traditionally used in auto focusing systems. Benefits can be obtained by adjusting and freezing focus at the right distance for an object of interest based on a special indicia (e.g., a barcode, a fiducial mark, or any other special designated pattern) presented on the object of interest, in connection with an object of interest, etc. When an imaging system sees the indicia it identifies a focus distance to an imaging plane for the object of interest based on the indicia, focusses at that focus distance and freezes the focus parameters for that focus distance. When multiple objects are present within a camera's FOV, a traditional auto focus algorithm may not select the intended object of interest and, thus, not properly focus on the intended object of interest. However, with the use of a special-purpose indicia the machine vision system can determine, based on the indicia, the focus distance for an intended object of interest, focus and freeze focus parameters for that distance, and capture a correctly focused image of the intended object of interest. The use of indicia to determine, set and freeze focus distances reduces or eliminates the need for auto-focusing, thereby obtaining several benefits including reducing system complexity, reducing cost, reducing man power, reducing misfocus, reduce focusing on incorrect object of interest, increasing system throughput, for example. Furthermore, the machine vision system can search for an object of interest starting from the focus distance indicated by the indicia. Focus distance information may be encoded in the special-purposed indicia using, for example, a pattern of the indicia, etc.

A disclosed example machine vision method includes: capturing, via an imaging assembly, an image of an indicia appearing within a field of view (FOV) of the imaging assembly; recognizing, via a controller, the indicia as a focus adjustment trigger, the focus adjustment trigger operative to trigger an adjustment of at least one focus parameter associated with the imaging assembly; adjusting the at least one focus parameter based at least in part on the indicia; locking the at least one focus parameter such that the at least one focus parameter remains unaltered for a duration; and responsive to the locking of the at least one focus parameter, capturing, via the imaging assembly, at least one subsequent image of an object of interest.

A disclosed example machine vision system includes an imaging assembly, a processor, and a non-transitory machine-readable memory storing machine-readable instructions that, when executed by the processor, cause the machine vision system to: capture, via the imaging assembly, an image of an indicia appearing within a field of view (FOV) of the imaging assembly; recognize the indicia as a focus adjustment trigger, the focus adjustment trigger operative to trigger an adjustment of at least one focus parameter associated with the imaging assembly; adjust the at least one focus parameter based at least in part on the indicia; lock the at least one focus parameter such that the at least one focus parameter remains the unaltered for a duration; and responsive to the locking of the at least one focus parameter, capture, via the imaging assembly, at least one subsequent image of an object of interest.

Another disclosed example machine vision system includes: an imaging sensor configured to capture an image of an indicia appearing within a field of view (FOV) of the imaging assembly; a controller configured to recognize the indicia as a focus adjustment trigger and, responsive to the recognition, determine at least one focus parameter based on the indicia responsive to recognition; and a focus controller configured to adjust at least one focus element according to the at least one focus parameter and lock the at least one focus parameter such that the at least one focus parameter remains unaltered for a duration, wherein responsive to the locking of the at least one focus parameter, capturing with the imaging sensor at least one subsequent image of an object of interest.

Reference will now be made in detail to non-limiting examples, some of which are illustrated in the accompanying drawings.

FIG. 1illustrates an example environment100where embodiments of this disclosure may be implemented. In the illustrated example ofFIG. 1, the environment100includes a machine vision system102where objects of interest (two of which are designated at reference numerals104and106) are moved through a FOV108of the machine vision system102or placed in the FOV108for imaging and inspection. For example, the objects of interest104,106may be moving on a scanning surface110such as on a conveyor belt, along an assembly line, etc. The objects of interest104,106may be moved continuously relative to the FOV108of the machine vision system102, or moved in a discretized manner where at least part of the time an object of interest104,106is held still for a period of time sufficient to allow one or more images to be captured of the object of interest104,106.

To capture images, the example machine vision system102includes an imaging assembly112having any number and/or type(s) of imaging sensor114(e.g., a complementary metal-oxide semiconductor (CMOS) imaging array). The imaging sensor114under control of, for example, a processor116captures one or more images of an object of interest104,106.

To focus on objects of interest, the example imaging assembly112includes any number and/or type(s) of variable focus elements118positioned between the imaging sensor114and a window (not shown) of the machine vision system102, and any number and/or type(s) of actuators120to activate, operate, etc. the variable focus elements118under the control of a focus controller122. Example variable focus elements118include, but are not limited to, a liquid lens, a voice coil motor, etc. Example actuators120include a focusing lens drive, a shift lens drive, a zoom lens drive, an aperture drive, angular velocity drive, voice coil motor drive, etc. In the illustrated example, the processor116sets one or more focus parameters, two of which are designated at reference numbers124and126, that the focus controller122uses to control the actuators120. In this manner, the processor116can control the focus distance to an imaging plane of the imaging assembly112to an intended or needed focus distance. In some examples, the imaging assembly112is configured such that if the imaging assembly112has an autofocus module or autofocus operation that the autofocus operation is disabled for at least one image capture operation and focus distance is controlled by the processor116via the focus parameters124,126for that image capture operation.

To identify to the machine vision system102the focus distance(s) at which an object of interest104,106is to be imaged, objects of interest104,106have one or more respective indicia, two of which are designated at reference numerals104A and106A. In some examples, more than one indicia104A,106A is associated with an object of interest104,106. Additionally or alternatively, an indicia104A,106A may represent more than one focus distance for more than one object of interest104,106. When the indicia104A,106A represent multiple focus distances for an object of interest104,106, the focus distances may be associated with different portions, parts, members, aspects, etc. of an object of interest104,106. An indicia104A,106A need not be positioned at the focus distance(s) represented by the indicia104A,106A. For example, an indicia104A,106A may be sized and placed to be recognized without the use of auto-focus, the indicia104A,106A may be placed at a default focus distance the machine vision system102uses to image and identify indicia104A,106A, etc. Indicia104A,106A may be placed on an object of interest104,106, alongside an object of interest104,106, etc. Example indicia104A,106A include, but are not limited to, a barcode (one-dimensional (1D), two-dimensional (2D) or three-dimensional (3D)), a fiducial mark, or any other special designated pattern that may be used to convey information.

In some examples, the imaging assembly112is fixedly mounted at a known location and is selectively focusable on objects of interest104,106that are different distances away from the known location based on focus distances encoded in indicia104A,106A. In some examples, the imaging assembly112is moveably mounted and positionable (e.g., in one, two or three dimensions) at different known positions, and is focused on objects of interest104,106that are different distances away relative to a current known position based on focus distances encoded in indicia104A,106A. In some instances, an indicia104A,106A encodes imaging assembly position and focus distance(s). The indicia104A,106A may further encode other imaging properties such as zoom, aperture, etc.

When an indicia processing module128recognizes an indicia104A,106A in an image as a focus adjustment trigger, the indicia processing module128decodes the indicia104A,106A to obtain predetermined payload data or information encoded in the indicia104A,106A. Example payload data or information includes focus distances to imaging planes, size or dimensions of an object of interest104,106. The payload data or information may be encoded in the indicia104A,106A according to any past, present or future industry standard such as Code 39 barcodes, GS1 barcodes, Interleaved 2 of 5 (ITF) barcodes, etc. The processor116determines configures the imaging assembly112to each of the identified focus distances. In some examples, the processor116queries a focus parameter database130to obtain the focus parameters124,126corresponding to the focus distance identified by a captured indicia104A,106A. In some examples, the known dimension(s) of an indicia104A,106A, the current known FOV, and the size of the indicia104A,106A in an image (e.g., in pixels) can be used to determine (e.g., calculate, estimate, etc.) the distance to the indicia104A,106A. In some examples, the FOV is considered constant or fixed regardless of focus distance. In some examples, the focus distance can be calibrated using a frozen focus and calibrated FOV.

For each identified focus distance to an imaging plane, the processor116writes, stores, etc. the corresponding focus parameters124,126to the imaging assembly112, and controls the focus controller122to set the focus distance of the imaging assembly112according to the focus parameters124,126, and freeze (e.g., maintain, hold, lock, etc.) the focus parameters124,126. Once the focus distance has been set, the processor116controls the imaging sensor114to capture one or more images of an object of interest104,106. Because the focus distance is known a priori to correspond to the object of interest104,106, a captured image will be properly focused for one or more desired aspects of the object of interest104,106, and non-desired aspects or other objects cannot result in improper focus. In some examples, the number of images to capture is encoded in the indicia104A,106A. When a number of images is to be captured, the indicia104A,106A may further encode times between image captures to accommodate, for example, movement of a conveyor belt, assembly line, etc. The time duration that focus parameters124,126are held may be until another or subsequent indicia focus adjustment trigger is identified. In examples including auto-focus, the focus distance encoded in an indicia104A,106A can be used to set a starting focus distance for auto-focus to, for example, accommodate variations in object of interest to imaging sensor separation.

In the illustrated example ofFIG. 1, the machine vision system102includes a computing assembly132that includes one or more processors (one of which is designated at reference numeral116), program memory134, random-access memory (RAM)136, input/output (I/O) interfaces138, and network interfaces140, all of which are interconnected via an address/data bus142. The program memory134may store software and/or instructions144, which may be executed by the processor116. Different portions of the example machine vision system102, for example, the imaging assembly112and the computing assembly132, may be implemented separately by different computing systems. Thus, the processor116and the focus controller122may be implemented as two different processors and/or controllers. However, in other examples, the processor116and the focus controller122are implemented by the same processor and/or controller.

The processor116and the focus controller122of the illustrated example may be hardware, and may be semiconductor based (e.g., silicon based) devices. Example processors116and focus controller122include a programmable processor, a programmable controller, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), a field programmable logic device (FPLD), etc. In this example, the processor116implements the indicia processing module128. In some examples, the processor116implements instructions that inspect objects of interest104,106using images taken based on focus distances determined from indicia104A,106A.

The program memory134may include any number and/or type(s) of volatile and/or non-volatile storage media or disks storing the software, machine- or computer-readable instructions, or computer- or machine-executable instructions144, and the focus parameter database130. The software and instructions144may be executed by the processor116to implement the indicia processing module128, and inspect objects of interest104,106using images taken based on focus distances determined from indicia. The software and instructions144may be stored on separate non-transitory computer- or machine-readable storage mediums or disks, or at different physical locations.

The memories134,136include any number or type(s) of volatile or non-volatile non-transitory computer- or machine-readable storage media or disks, such as a semiconductor memory, a magnetically readable memory, an optically readable memory, a hard disk drive (HDD), an optical storage drive, a solid-state storage device, a solid-state drive (SSD), a read-only memory (ROM), a RAM, a compact disc (CD), a compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a Blu-ray disk, a redundant array of independent disks (RAID) system, a cache, a flash memory, or any other storage device or storage disk in which information may be stored for any duration (e.g., permanently, for an extended time period, for a brief instance, for temporarily buffering, for caching of the information, etc.).

As used herein, the term non-transitory computer-readable medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, the term non-transitory machine-readable medium is expressly defined to include any type of machine-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media.

The I/O interfaces138may include any number and/or type(s) of different types of I/O circuits or components that enable the processor116to communicate with peripheral I/O devices. Example I/O interfaces138include a universal serial bus (USB), a Bluetooth® interface, a near field communication (NFC) interface, an infrared transceiver, and/or a PCI express interface. The peripheral I/O devices may be any desired type of I/O device such as a keyboard, a display146(a liquid crystal display (LCD), a cathode ray tube (CRT) display, a light emitting diode (LED) display, an organic light emitting diode (OLED) display, an in-place switching (IPS) display, a touch screen, etc.), a navigation device (a mouse, a trackball, a capacitive touch pad, a joystick, etc.), a speaker, a microphone, a printer, a button, a communication interface, an antenna, etc.

The machine vision system102includes one or more network interfaces140for connecting the machine vision system102to a server148. These devices may be connected via any suitable communication means, including wired and/or wireless connectivity components that implement one or more past, present or future industry communication protocol standards like, for example, a TCP/IP interface, a Wi-Fi™ transceiver (according to the 802.11 family of standards), an Ethernet transceiver, a cellular network radio, a satellite network radio, a cable modem, a digital subscriber line (DSL) modem, a dialup modem, or any other suitable communication protocols or standards.

In some embodiments, the imaging assembly112is implemented separately from other parts of the machine vision system102(e.g., separately from the computing assembly132) and is coupled to the other parts of the machine vision system102via the I/O interfaces138and/or the network interfaces140. In some such embodiments, the other parts of the machine vision system102are implemented on a cloud-based platform at a remote location.

While an example machine vision system102is illustrated inFIG. 1, one or more of the elements, processes and/or devices illustrated inFIG. 1may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. For example, the processor116and the focus controller122may be implemented by the same programmable processor, programmable controller, GPU, DSP, an ASIC, a PLD, an FPGA, an FPLD, etc. Further, the machine vision system102may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated inFIG. 1, and/or may include more than one of any or all of the illustrated elements, processes and devices. As used herein, the phrase “in communication,” including variations thereof, encompasses direct communication and/or indirect communication through one or more intermediary components, and does not require direct physical (e.g., wired) communication and/or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and/or one-time events.

In some examples, the server148includes, among other things, program memory storing software or instructions that, when executed by a processor of the server148cause the server148to inspect objects of interest104,106based on images taken by the machine vision system102using focus distances determined from indicia104A,106A.

In some embodiments, the server148(and/or other connected devices) may be located in the same location as the machine vision system102. In other embodiments, server148(and/or other connected devices) may be located at a remote location, such as on a cloud-platform or other remote location. In still other embodiments, server148(and/or other connected devices) may be formed of a combination of local and cloud-based computers.

A flowchart200representative of example processes, methods, software, firmware, and computer- or machine-readable instructions for implementing the machine vision system102ofFIG. 1is shown inFIG. 2. The processes, methods, software and instructions may be an executable program or portion of an executable program for execution by a processor such as the processor116and/or the focus controller122. The program may be embodied in software or instructions stored on a non-transitory computer- or machine-readable storage medium or disk associated with the processor116and/or the focus controller122. Further, although the example program is described with reference to the flowchart illustrated inFIG. 2, many other methods of implementing the example machine vision systems102may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. Additionally, or alternatively, any or all of the blocks may be implemented by one or more hardware circuits (e.g., discrete and/or integrated analog and/or digital circuitry, an ASIC, a PLD, an FPGA, an FPLD, a logic circuit, etc.) structured to perform the corresponding operations without executing software or firmware. Of course, a combination of the two approaches could be used.

The process ofFIG. 2begins with imaging sensor114capturing an image (block202), and the indicia processing module128identifying whether a focus adjustment trigger indicia104,106is present in the image (block204). If a focus adjustment trigger indicia104,106is present in the image (block204), the indicia processing module128determines focus distance data or information from the indicia104,106(block206), and the processor116determines one or more focus parameters124,126based on the focus distance data (block208). The focus controller122controls focusing of the imaging assembly112according to the focus parameters124,126(block210), and freezes the focusing (block212). One or more images are captured of one or more objects of interest104,106using the frozen focusing (block214) until, for example, another focus adjustment trigger indicia104,106is identified (block216) and control returns to block204. Otherwise, if, for example, a timer expires (block2168), control exits from the example process ofFIG. 2.

Example methods and systems to focus an imager for machine vision applications are disclosed herein. Further examples and combinations thereof include at least the following.

Example 1 is a machine vision method comprising: capturing, via an imaging assembly, an image of an indicia appearing within a field of view (FOV) of the imaging assembly; recognizing, via a controller, the indicia as a focus adjustment trigger, the focus adjustment trigger operative to trigger an adjustment of at least one focus parameter associated with the imaging assembly; adjusting the at least one focus parameter based at least in part on the indicia; locking the at least one focus parameter such that the at least one focus parameter remains unaltered for a duration; and responsive to the locking of the at least one focus parameter, capturing, via the imaging assembly, at least one subsequent image of an object of interest.

Example 2 is the machine vision method of example 1, wherein the duration extends until a subsequent indicia appears within the FOV of the imaging assembly, and wherein the subsequent indicia is recognized as another focus adjustment trigger for another object of interest.

Example 3 is the machine vision method of example 1 or example 2, further comprising determining, via the controller, a focus distance to an imaging plane based at least in part on the indicia, wherein the adjusting the at least one focus parameter includes the adjusting the at least one focus parameter based at least in part on the focus distance.

Example 4 is the machine vision method of example 3, wherein determining, via the controller, the focus distance to the imaging plane based at least in part on the indicia includes determining the focus distance to the imaging plane based at least in part on payload data conveyed by the indicia.

Example 5 is the machine vision method of example 4, further comprising decoding, via the controller, payload data of the indicia to determine the focus distance.

Example 6 is the machine vision method of example 4, further comprising: recognizing, via the controller, the indicia according to an industry standard; and determining, via the controller, the payload data based on recognizing that the indicia conforms to the industry standard.

Example 7 is the machine vision method of example 3, wherein determining, via the controller, the focus distance to the imaging plane based at least in part on the indicia includes decoding the indicia to read predetermined distance data.

Example 8 is the machine vision method of any of examples 1 to 7, wherein adjusting the at least one focus parameter based at least in part on the indicia includes focusing, via an autofocus module, the imaging assembly on the indicia.

Example 9 is the machine vision method of any of examples 1 to 8, further comprising: further adjusting the at least one focus parameter based at least in part on the indicia; locking the further adjusted at least one focus parameter such that the further adjusted at least one focus parameter remains unaltered for another duration; and responsive to the locking of the further adjusted at least one focus parameter, capturing, via the imaging assembly, at least one additional subsequent image of another object of interest.

Example 10 is a machine vision system comprising: an imaging assembly; one or more processors; and a non-transitory machine-readable memory storing machine-readable instructions that, when executed by the one or more processors, cause the machine vision system to: capture, via the imaging assembly, an image of an indicia appearing within a field of view (FOV) of the imaging assembly; recognize the indicia as a focus adjustment trigger, the focus adjustment trigger operative to trigger an adjustment of at least one focus parameter associated with the imaging assembly; adjust the at least one focus parameter based at least in part on the indicia; lock the at least one focus parameter such that the at least one focus parameter remains unaltered for a duration; and responsive to the locking of the at least one focus parameter, capture, via the imaging assembly, at least one subsequent image of an object of interest.

Example 11 is the machine vision system of example 10, wherein the duration extends until a subsequent indicia appears within the FOV of the imaging assembly, and wherein the subsequent indicia is recognized as another focus adjustment trigger.

Example 12 is the machine vision system of example 10 or example 11, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to determine a focus distance to an imaging plane based at least in part on the indicia, wherein the adjusting the at least one focus parameter includes the adjusting the at least one focus parameter based at least in part on the focus distance.

Example 13 is the machine vision system of example 12, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to determine the focus distance to the imaging plane based at least in part on the indicia includes determining the focus distance to the imaging plane based at least in part on payload data conveyed by the indicia.

Example 14 is the machine vision system of example 13, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to decode payload data of the indicia to determine the focus distance.

Example 15 is the machine vision system of example 13, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to: recognize the indicia according to an industry standard; and determine the payload data based on recognizing that the indicia conforms to the industry standard.

Example 16 is the machine vision system of example 12, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to determine the focus distance to the imaging plane based at least in part on the indicia includes decoding the indicia to read distance data.

Example 17 is the machine vision system of any of examples 10 to 16, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to adjust the at least one focus parameter based at least in part on the indicia includes focusing, via an autofocus module, the imaging assembly on the indicia.

Example 18 is the machine vision system of any of examples 10 to 17, including further machine-readable instructions that, when executed by the one or more processors, further cause the machine vision system to: further adjust the at least one focus parameter based at least in part on the indicia; lock the further adjusted at least one focus parameter such that the further adjusted at least one focus parameter remains unaltered for another duration; and responsive to the locking of the further adjusted at least one focus parameter, capture, via the imaging assembly, at least one additional subsequent image of another object of interest.

Example 19 is a machine vision system comprising: an imaging sensor configured to capture an image of an indicia appearing within a field of view (FOV) of the imaging sensor; a first processor configured to recognize the indicia as a focus adjustment trigger and, responsive to the recognition of the indicia as the focus adjustment trigger, determine at least one focus parameter based on the indicia responsive to recognition; and a second processor configured to adjust at least one focus element according to the at least one focus parameter and lock the at least one focus parameter such that the at least one focus parameter remains unaltered for a duration, wherein responsive to the locking of the at least one focus parameter, capturing with the imaging sensor at least one subsequent image of an object of interest.

Example 20 is the machine vision system of example 19, wherein the first processor determines the at least one focus parameter based on the indicia by determining a focus distance based at least in part on the indicia, and determining the at least one focus parameter based at least in part on the focus distance.

In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made in view of aspects of this disclosure without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications made in view of aspects of this disclosure are intended to be included within the scope of present teachings.

The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims.

Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, A, B or C refers to any combination or subset of A, B, C such as (1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) B with C, and (7) A with B and with C. As used herein, the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. Similarly, the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. The term “and/or” when used, for example, in a form such as A, B, and/or C refers to any combination or subset of A, B, C such as (1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) B with C, and (7) A with B and with C.

As used herein, the expressions “in communication,” “coupled” and “connected,” including variations thereof, encompasses direct communication and/or indirect communication through one or more intermediary components, and does not require direct physical (e.g., wired) communication and/or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and/or one-time events.

This patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.