Various example embodiments relate generally to retail theft deterrent and merchandise protection devices, and more particularly relate to methods and devices for improving location accuracy of security tags employed for such purposes.
Security devices have continued to evolve over time to improve the functional capabilities and reduce the cost of such devices. Some security devices are currently provided to be attached to individual products or objects in order to deter or prevent theft of such products or objects. In some cases, the security devices include tags or other such components that can be detected by gate devices at the exit of a retail establishment and/or tracked while being moved in the retail establishment. These tags may sometimes also be read for inventory management purposes, and may include or otherwise be associated with specific information about the type of product to which they are attached.
In order to improve the ability of retailers to deter theft and/or manage inventory, various improvements may be introduced to attempt to improve location accuracy or to carry out certain specific desired functions related to tracking tags which may also be impacted by location accuracy. Thus, the accuracy of determining the location of the tags may be considered to be an important aspect when determining the appropriate balance of characteristics for a given system.
In some cases, the processing power, memory, or other components that impact the capability of systems or devices to handle computational loads may be somewhat limited. Thus, although fairly complex methods for improving location accuracy have been determined in the past, it is important for some applications to choose a locationing method that provides good performance without providing a heavy computational burden on the systems and devices that are available for use.
Some example embodiments may provide tag locationing that is not only accurate, but also is not computationally burdensome. Accordingly, tag positioning equipment that can provide for accurate locationing of security tags with a relatively low computational cost can be provided.
In one example embodiment, a mobile tag reader that may be configured to wirelessly communicate with a security tag is provided. The mobile tag reader may include a position estimator, which includes processing circuitry configured to receive information indicative of a position of the mobile tag reader. The processing circuitry may be further configured to receive information indicative of location coordinates of the security tag based on wireless communications between the mobile tag reader and the security tag. The processing circuitry may be further configured to calculate an estimated position of the security tag based on information indicative of the position of the mobile tag reader and the information indicative of the location coordinates of the security tag.
According to another example embodiment, a tag positional estimating system is provided. The security system may include at least one security tag disposed on a product in a monitoring environment; and at least one mobile tag reader configured to wirelessly communicate with a security tag. The mobile tag reader may include a position estimator. The position estimator may include a positioning module; a tag locating module; and processing circuitry. The processing circuitry may be configured to receive information indicative of a position of the mobile tag reader. The processing circuitry may be further configured to receive information indicative of location coordinates of the security tag based on wireless communications between the mobile tag reader and the security tag. The processing circuitry may be even further configured to calculate an estimated position of the security tag based on information indicative of the position of the mobile tag reader and the information indicative of the location coordinates of the security tag.
In another example embodiment, a method of performing tag position estimation for a tag disposed on a product in a monitoring environment is provided. The method may include receiving information indicative of a position of a mobile tag reader. The method may further include receiving information indicative of location coordinates of the security tag based on wireless communications between the mobile tag reader and the security tag. Even further, the method may include calculating an estimated position of the security tag based on information indicative of the position of the mobile tag reader and the information indicative of the location coordinates of the security tag.
Having thus described some example embodiments in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some example embodiments now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments are shown. Indeed, the examples described and pictured herein should not be construed as being limiting as to the scope, applicability, or configuration of the present disclosure. Like reference numerals refer to like elements throughout. Furthermore, as used herein, the term “or” is to be interpreted as a logical operator that results in true whenever one or more of its operands are true. As used herein, “operable coupling” should be understood to relate to direct or indirect connection that, in either case, enables at least a functional interconnection of components that are operably coupled to each other.
As used herein, the terms “component,” “module,” and the like are intended to include a computer-related entity, such as but not limited to hardware, firmware, or a combination of hardware and software. For example, a component or module may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, and/or a computer. By way of example, both an application running on a computing device and/or the computing device can be a component or module. One or more components or modules can reside within a process and/or thread of execution and a component/module may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets, such as data from one component/module interacting with another component/module in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal. Each respective component/module may perform one or more functions that will be described in greater detail herein. However, it should be appreciated that although this example is described in terms of separate modules corresponding to various functions performed, some examples may not necessarily utilize modular architectures for employment of the respective different functions. Thus, for example, code may be shared between different modules, or the processing circuitry itself may be configured to perform all of the functions described as being associated with the components/modules described herein. Furthermore, in the context of this disclosure, the term “module” should not be understood as a nonce word to identify any generic means for performing functionalities of the respective modules. Instead, the term “module” should be understood to be a modular component that is specifically configured in, or can be operably coupled to, the processing circuitry to modify the behavior and/or capability of the processing circuitry based on the hardware and/or software that is added to or otherwise operably coupled to the processing circuitry to configure the processing circuitry accordingly.
Some example embodiments may enable provision of a system and device capable of monitoring, detecting, and locating security devices (e.g., tags) that are attached to objects such as retail products. In some cases, the tags may be radio frequency identification (RFID) tags. The tags may be read by a mobile tag reader (e.g., a handheld reader, robot, RFID reader, and/or the like) to allow the presence of the tag to be detected and identifying information on the tag to be read. The mobile tag reader may be configured to determine its location and an estimated location of the tags in the monitoring environment. The estimated tag position may be determined for inventory management or theft detection purposes. The process of determining an estimated tag position may be referred to as “locationing” or “tag locationing”.
In this regard, example embodiments may provide for a tag positional estimating system that can simplify the tag position determining processes employed in the system so that accurate positioning may be accomplished with relatively low computational power. In this regard, example embodiments may identify a subset of locating devices that appear to provide the highest quality position determining capability, and then employ a locating calculation or algorithm that greatly simplifies the location determination process, but still provides a relatively accurate locating result. A lighter-weight and potentially cheaper locating system may therefore be employed while still providing relatively accurate tracking and locating capability. The addition of other functionalities that may be desired may therefore be employed with available resources that would otherwise be consumed by costly calculations associated with tag position determination.
An example embodiment will be described herein as it relates to a mobile tag reader that is configured to wirelessly communicate with a tag in order to determine the estimated location of the tag.
As further shown in
The mobile tag reader 140 may move throughout the first and second monitoring zones 120 and 130 and measure the location of tags 110 located in such zones. The mobile tag reader 140 may read the location of a tag 110 from a plurality of positions in the monitoring zone. For example, the mobile tag reader 140 may read the location of the tag 110 disposed in the first monitoring zone 120 from a plurality of positions that may include a first position 140a, a second position 140b, and a third position 140c. The mobile tag reader 140 may move to the second monitoring zone 130 and measure the location of a second tag 110′ disposed in the second monitoring zone 130 from a plurality of positions that may include a first position 140a′, a second position 140b′, and a third position 140c′.
In order to estimate the location coordinates of the tag 110, various forms of technology may be employed by the mobile tag reader 140. For example, angle of arrival (“AOA”) technology may be used. The mobile tag reader 140 may include at least one antenna and may be configured to read signals transmitted by the tag 110. Based on the signals read by the mobile tag reader 140, the mobile tag reader 140 may be configured to estimate an AOA and use the AOA to determine an estimated location of the tag 110. Even further, received signal strength indication (“RSSI”) technology may be used by the mobile tag reader 140. The mobile tag reader 140 may be include at least one antenna and may be configured to determine the power levels of signals transmitted by the tag 110 to use RSSI to determine tag location. Based on the RSSI determined based on signals read by the mobile tag reader 140, the mobile tag reader 140 may be configured to estimate a location of the tag 110.
As shown in
In an example embodiment, the processing circuitry 310 may include one or more instances of a processor 312 and memory 314 that may be in communication with or otherwise control a device interface 320. As such, the processing circuitry 310 may be embodied as a circuit chip (e.g., an integrated circuit chip) configured (e.g., with hardware, software, or a combination of hardware and software) to perform operations described herein.
The device interface 320 may include one or more interface mechanisms for enabling communication with other devices (e.g., tag 110, system controller 360, and/or other devices). In some cases, the device interface 320 may be any means such as a device or circuitry embodied in either hardware, or a combination of hardware and software that is configured to receive and/or transmit data from/to devices or components in communication with the processing circuitry 310 via internal and/or external communication mechanisms. Accordingly, for example, the device interface 320 may further include wireless communication equipment (e.g., one or more antennas) for at least communicating with tags 110 and/or a system controller 360. The device interface 320 may therefore include one or more antenna arrays that may be configured or configurable to receive and/or transmit properly formatted signals associated with the tags 110 and/or the system controller 360. The device interface 320 may further include radio circuitry configured to encode and/or decode, modulate and/or demodulate, or otherwise process wireless signals received by or to be transmitted by the antenna array(s).
The processor 312 may be embodied in a number of different ways. For example, the processor 312 may be embodied as various processing means such as one or more of a microprocessor or other processing element, a coprocessor, a controller or various other computing or processing devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), or the like. In an example embodiment, the processor 312 may be configured to execute instructions stored in the memory 314 or otherwise accessible to the processor 312. As such, whether configured by hardware or by a combination of hardware and software, the processor 312 may represent an entity (e.g., physically embodied in circuitry—in the form of processing circuitry 310) capable of performing operations according to embodiments of the present invention while configured accordingly. Thus, for example, when the processor 312 is embodied as an ASIC, FPGA or the like, the processor 312 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor 312 is embodied as an executor of software instructions, the instructions may specifically configure the processor 312 to perform the operations described herein in reference to execution of an example embodiment.
In some examples, the processor 312 (or the processing circuitry 310) may be embodied as, include or otherwise control the operation of the position estimator 300 based on inputs received by the processing circuitry 310. As such, in some embodiments, the processor 312 (or the processing circuitry 310) may be said to cause each of the operations described in connection with the position estimator 300 in relation to operation of the position estimator 300 relative to undertaking the corresponding functionalities associated therewith responsive to execution of instructions or algorithms configuring the processor 312 (or processing circuitry 310) accordingly. In particular, the processor 312 (or processing circuitry 310) may be configured to enable the position estimator 300 to communicate with the tag 110 to provide information to the system controller 360 that enables the system controller 360 to perform other functions based on the monitoring, detecting, and locationing of the tag 110 or other information received from the position estimator 300 that is determinable from the communications with the position estimator 300.
In an exemplary embodiment, the memory 314 may include one or more non-transitory memory devices such as, for example, volatile and/or non-volatile memory that may be either fixed or removable. The memory 314 may be configured to store information, data, applications, instructions, or the like for enabling the processing circuitry 310 to carry out various functions in accordance with exemplary embodiments of the present invention. For example, the memory 314 may be configured to buffer input data for processing by the processor 312. Additionally or alternatively, the memory 314 may be configured to store instructions for execution by the processor 312. As yet another alternative or additional capability, the memory 314 may include one or more databases that may store a variety of data sets or tables useful for operation of the position estimator 300. Among the contents of the memory 314, applications or instruction sets may be stored for execution by the processor 312 in order to carry out the functionality associated with each respective application or instruction set. In some cases, the applications/instruction sets may include instructions for carrying out some or all of the operations described in reference to the calculations, algorithms, or flow charts described herein. In particular, the memory 314 may store executable instructions that enable the computational power of the processing circuitry 310 to be employed to improve the functioning of the position estimator 300 relative to the functions described herein. As such, the improved operation of the computational components of the position estimator 300 transforms the position estimator 300 into a more capable tracking, notifying, and alarming device relative to the physical objects to which the tag 110 is attached. The processing circuitry 310 may therefore be configured (e.g., by instruction execution) to receive signals from the mobile tag reader 140 and transform attributes of the received signals into data describing the location of the tags 110 for presentation to a user on a terminal or to trigger other functionalities of the mobile tag reader 140.
In an example embodiment, the position estimator 300 may include a positioning module 350. The position estimator 300 may utilize the positioning module 350 to determine the position of the mobile tag reader 140 and define the navigational path of the mobile tag reader 140 as it moves throughout monitoring environment 100. Positional determinations of the mobile tag reader 140 may be made using an accelerometer measuring direction and distance from a known location (e.g., a charging station), GPS, Bluetooth, locating beacons, visual location, LIDAR, and/or other positioning techniques or combinations thereof.
In an example embodiment, the position estimator 300 may also include a tag locater module 340. The position estimator 300 may utilize the tag locater module 340 to receive and determine the location coordinates of the tag 110 based on wireless communications between the mobile tag reader 140 and the tag 110. For example, as described above, the tag locating module 340 may estimate the location coordinates of the tag 110 from a plurality of positions as the mobile tag reader 140 moves throughout the monitoring environment 100. In an example embodiment, the location coordinates may be estimated based on signal strength received from the tags 110. In some cases, the signal strength may be received RSSI technology. In a further example embodiment, the location coordinates may be based on estimating the AOA.
Once the tag locating module 340 estimates the location coordinates of the tag 110 from the plurality of positions in the monitoring environment 100, the position estimator 300 may be configured to estimate the position of the tag 110 by averaging the x coordinates and the y coordinates estimated at the plurality of positions in the monitoring environment 100. The average of all x coordinates may be the estimated x position in the monitoring environment 100. The average of all y coordinates may be the estimated y position in the monitoring environment 100.
Even further, the position estimator 300 may estimate the position of the tag 110 by performing a second order polynomial fit of the x coordinates and the y coordinates estimated at the plurality of positions in the monitoring environment 100. Based on the second order polynomial fit of the x coordinates and the y coordinates, the determined x1 and y1 location may be the estimated position of the tag 110 in the monitoring environment 100. If RSSI is used to measure the locations coordinates of the tag 110, the position estimator 300 may be configured to weight RSSI measurements associated with each tag 110 read prior to calculating the estimated position of the tag 100. The weighting may therefore be accomplished based on signal strength. However, in other cases, temporal factors (e.g., most recently received data) or other factors may be used for weighting.
In some embodiments, the processing circuitry 610 may be embodied in physical and functional form in a similar manner to that which has been described above. However, according to some example embodiments, the processing circuitry 610 may have expanded capabilities with respect to processing speed and communication throughput relative to the processing circuitry 310 utilized by the position estimator 300. For example, the system controller may be configured to receive data from multiple tag readers 140 located within different monitoring zones in a monitoring environment 100. In particular, the system controller 360 may receive data from multiple tag readers 140 and may simultaneously estimate the location of multiple tags 110 located in multiple monitoring zones in a monitoring environment 100 based on the data received from the multiple tag readers 100.
The system controller 360 may be configured to execute the operations described above for the position estimator 300 embodied at the mobile tag reader 140. When the position estimator 300 is not implemented at the system controller 360, the position estimator 300 may process information remotely and act accordingly based on the information. When the position estimator 300 and the system controller 360 split functions, the position estimator 300 and system controller 360 may communicate cooperatively to execute example embodiments. From a technical perspective, processing circuitry embodied at the position estimator 300 or either at the system controller 350 described above may be used to support some or all of the operations described above.
As such, the platforms described in
Accordingly, blocks of the flowchart support combinations of means for performing the specified functions and combinations of operations for performing the specified functions. It will also be understood that one or more blocks of the flowchart, and combinations of blocks in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
In this regard,
Many modifications and other examples of the embodiments set forth herein will come to mind to one skilled in the art to which these embodiments pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that example embodiments are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. In cases where advantages, benefits or solutions to problems are described herein, it should be appreciated that such advantages, benefits and/or solutions may be applicable to some example embodiments, but not necessarily all example embodiments. Thus, any advantages, benefits or solutions described herein should not be thought of as being critical, required or essential to all embodiments or to that which is claimed herein. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.