Position awareness using an inertial measurement unit

By generating and comparing path signatures from IMU readings, the method addresses the error-prone nature of existing IMU-based location estimation, enhancing indoor positioning accuracy through normalization and standardization techniques.

JP7801434B2Active Publication Date: 2026-01-16HID GLOBAL CORP
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2024516759
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-09-17
Publication Date
2026-01-16
Estimated Expiration
2041-09-17

AI Technical Summary

Technical Problem

Existing methods for estimating a person's location using inertial measurement units (IMUs) are prone to significant errors due to noise and bias, especially over short distances, making them unreliable for accurate positioning in indoor environments.

Method used

A method involving the use of IMUs to generate and compare path signatures for known locations of interest (LOIs) within an environment, where a current path signature is matched against stored reference signatures to determine the user's location, utilizing normalization and standardization of IMU readings to compensate for orientation and position variations.

Benefits of technology

Provides a more reliable and accurate method for locating a person using IMUs by comparing current path signatures with reference signatures, reducing errors and improving positioning accuracy within indoor environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007801434000001
    Figure 0007801434000001
  • Figure 0007801434000002
    Figure 0007801434000002
  • Figure 0007801434000003
    Figure 0007801434000003
Patent Text Reader

Abstract

An exemplary computer-readable medium for determining a location of a device within an environment comprises program code that, when executed by one or more processors, causes the one or more processors to determine a current path signature for a device moving within the environment, compare the current path signature to a stored reference path signature corresponding to a location of interest (LOI) within the environment, and determine that the location of the device is the same as the location of the LOI within the environment if the current path signature is determined to correspond to the stored reference path signature.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] SUMMARY OF THE INVENTION The embodiments described herein generally relate to recognizing the location of a person based on signals from an inertial measurement unit (IMU) held or carried by the person. [Background technology]

[0002] Many digital services and features require accurate estimation of a user's location. In outdoor environments, location estimation is often performed using signals from global navigation satellite systems (GNSS), such as the Global Positioning System (GPS). However, GNSS signals are generally unavailable or unreliable inside buildings and other environments where satellite signals are attenuated. In these environments, various radio frequency (RF) technologies can be used to provide real-time location services (RTLS). For example, beacon and receiver devices using Bluetooth or ultra-wideband (UWB) frequencies and protocols may be used with multilateration algorithms to estimate the location of the beacon device. However, such technologies generally require expensive infrastructure and setup. WiFi fingerprinting is another technique that has been used for RTLS in indoor environments. However, with WiFi fingerprinting, performing initial calibration and maintaining system accuracy as access points change can be burdensome.

[0003] Unlike RF-based RTLS technologies, a person's position can be estimated using an inertial measurement unit (IMU) held by the person, worn by the person, or attached to some part of the body. In particular, the IMU available and present in most modern smartphones can be used to estimate the smartphone holder's position. These IMUs typically include a three-axis accelerometer, a three-axis gyroscope, and a three-axis magnetometer. There are various techniques for estimating a person's movement by combining signals from these different measurement systems and integrating the direction and distance of each step. However, due to noise and bias in IMU sensors, estimating a person's path and position by integration is generally prone to significant error, especially as the time since the last known position increases. Therefore, estimating a person's path and position by integration can be significantly off even over short distances.

[0004] For at least these reasons, there is a need in the art for more reliable methods and systems for locating a person using an IMU. Summary of the Invention

[0005] The following presents a simplified summary of one or more embodiments of the present disclosure in order to provide a basic understanding of such embodiments. This summary is not an extensive overview of all possible embodiments, and is intended to neither identify key or key elements of all embodiments nor to delineate the scope of some or all embodiments.

[0006] In one or more embodiments, the present disclosure relates to a non-transitory computer-readable medium including executable program code that, when executed by one or more processors, causes the one or more processors to identify one or more locations of interest (LOIs) within an environment, determine a reference path signature for each of the one or more LOIs, and, for each reference path signature, store the reference path signature along with data indicating which LOI the reference path signature corresponds to.

[0007] The present disclosure, in one or more embodiments, further relates to a non-transitory computer-readable medium including executable program code that, when executed by one or more processors, causes the one or more processors to: determine a current path signature of a device moving within an environment; compare the current path signature to at least a portion of a stored reference path signature corresponding to a location of interest (LOI) within the environment; and determine that the location of the device is the same as the location of the LOI within the environment if it is determined that the current path signature corresponds to at least a portion of the stored reference path signature.

[0008] The present disclosure, in one or more embodiments, further relates to a method for calibrating an environment, the method including identifying one or more points of interest (LOIs) within the environment, determining a reference path signature for each of the one or more LOIs, and, for each reference path signature, storing the reference path signature along with data indicating which LOI the reference path signature corresponds to.

[0009] The present disclosure, in one or more embodiments, further relates to a method for determining a location of a device within an environment, the method including determining a current path signature of a device moving within the environment, comparing the current path signature to at least a portion of a stored reference path signature corresponding to a location of interest (LOI) within the environment, and determining that the location of the device is the same as the location of the LOI within the environment if it is determined that the current path signature corresponds to at least a portion of the stored reference path signature.

[0010] While multiple embodiments are disclosed, still other embodiments of the present disclosure will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative embodiments of the invention. As will be understood, the various embodiments of the present disclosure can be modified in various obvious aspects, all without departing from the scope of the present disclosure. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive. [Brief explanation of the drawings]

[0011] In the drawings, which are not necessarily drawn to scale, like numbers indicate like elements in different views. Like numbers with different letter suffixes may represent different instances of like elements. Several embodiments are illustrated in the figures of the accompanying drawings, by way of example, and not by way of limitation. [Figure 1] FIG. 1 shows an exemplary environment that includes multiple distinct locations of interest. [Figure 2] FIG. 2 illustrates a block schematic diagram of various exemplary components of an exemplary machine that may be used, for example, as a user device or server device of the present disclosure. [Figure 3] FIG. 3 is a flowchart generally illustrating an exemplary method for calibrating an environment, such as the exemplary environment of FIG. [Figure 4] FIG. 4 is a flowchart generally illustrating an exemplary method for identifying or recognizing the location of a person based on signals from an IMU held or carried by the person. DETAILED DESCRIPTION OF THE INVENTION

[0012] The present disclosure generally relates to recognizing a person's location based on signals from an inertial measurement unit (IMU) held or carried by the person. At a very general level, as the person moves from a first known location to a second known location (or destination) in an environment, a series of IMU readings (e.g., a time sequence of IMU readings) can be used as a signature of the second known location. The person or other user can perform calibrations or measurements for each known location in the environment to generate one or more reference signatures for each known location, and then compare the unknown signature to each reference signature to determine the person's current location in the environment.

[0013] More specifically, in many cases, a relatively immediate path to a location within an environment, such as, but not limited to, a doorway or other entrance, a room, or other defined space, differs from a relatively immediate path to other nearby locations within the environment. For example, when a person enters a building at a controlled entry point (e.g., a known location), the person may walk a certain number of steps in a particular direction before arriving at and entering their office, which differs from one or more directions and / or number of steps the person may take to enter another office or a particular conference room within the building. As another example, when a person enters their own home, the path the person takes to get to the kitchen (e.g., a certain direction or directions and / or number of steps) differs from the path the person takes to get to the family room. In this way, the path a person takes while approaching a destination location or location of interest (LOI) becomes the "signature" of the LOI. Thus, rather than attempting to use multiple readings from an IMU held or carried by the person to continuously estimate the person's path using an integration method (which is prone to significant errors that accumulate over time and distance), the sequence of steps (e.g., a particular direction or directions and / or number of steps) completed by the person relatively shortly before reaching the LOI can be used as or to generate a current path signature. Such a current path signature is distinct from path signatures corresponding to other locations of interest (LOIs) in the same environment. The current path signature may be compared to a set of reference path signatures previously generated for multiple LOIs in the environment, and the person's current location may be identified or recognized as the LOI corresponding to the previously generated reference path signature that most closely matches the current path signature.

[0014] 1 , an exemplary environment 100 is shown that includes multiple separate LOIs 102, 104, 106, 108, 110. The multiple LOIs may be located anywhere within the environment 100, such as, but not limited to, a room, office, or other defined space (e.g., LOIs 104, 106, 108), a doorway or other entrance (e.g., LOIs 102, 110), etc. A person or user 112 within or entering the environment 100 may hold or carry a device 114 that has an IMU. The IMU may include one or more sensors that measure and provide multiple readings of a specific force or acceleration of an object or body, the angular velocity of the object or body, the orientation of the object or body, and / or the magnetic field around the object or body. In examples, the IMU may include one or more of an accelerometer (e.g., a three-axis accelerometer), a gyroscope (e.g., a three-axis gyroscope), a magnetometer (e.g., a three-axis magnetometer), or any other suitable sensor for measuring or sensing a specific force or acceleration of an object or body, an angular velocity of an object or body, an orientation of an object or body, and / or a magnetic field around an object or body. The device 114 may be or include, for example, but not limited to, a personal computer (PC), a tablet PC, a personal digital assistant (PDA), a mobile phone, a smartphone, or the like. Some example environments 100 may further include a network 116 over which the device 114 may communicate with one or more server devices 118.Exemplary networks suitable for network 116 may include, among others, a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile phone network (e.g., a cellular network), a plain old telephone (POT) network, a wireless data network (e.g., the IEEE 802.11 family of standards known as Wi-Fi or the IEEE 802.16 family of standards known as WiMAX), a network based on the IEEE 802.15.4 family of standards, and / or a peer-to-peer (P2P) network.

[0015] FIG. 2 shows a more specific schematic block diagram of exemplary components of an exemplary machine 200 that may be used as device 114 or server 118, on which a set or sequence of instructions may be executed to cause the machine to perform any one of the methods described herein, or any portion thereof. Examples described herein may generally include or operate by logic or components, modules, or mechanisms within machine 200. Modules may be hardware, software, or firmware communicatively connected to one or more processors to perform the operations described herein. Generally, the circuitry (e.g., processing circuitry) of exemplary machine 200 includes a collection of circuits implemented within the tangible entity of the machine, including hardware (e.g., simple circuits, gates, logic, etc.). Circuit membership may be flexible over time. A circuit includes members that, when operating alone or in combination, can perform defined operations. In some examples, the hardware of a circuit may be designed (e.g., hardwired) in an invariable manner to perform specific operations. In some examples, the hardware of a circuit may include physical components (e.g., execution units, transistors, simple circuits, etc.) connected in a changeable manner, including machine-readable media that are physically modified to encode specific operational instructions (e.g., magnetically and electrically movable arrangements of immutable mass particles, etc.). When connecting the physical components, the underlying electrical properties of the hardware components may be changed, for example, from insulators to conductors, or vice versa. The instructions enable the embedded hardware (e.g., execution units or loading mechanisms) to create members of the circuit within the hardware through the changeable connections to perform a portion of a specific operation when in operation. Thus, in some examples, the machine-readable media element is part of the circuit or is communicatively coupled to other components of the circuit when the device is operating. In some examples, any of the physical components may be used in multiple members of multiple circuits.For example, in operation, an execution unit may be used in a first circuit of a first circuit configuration at one time, and may be reused at a different time by a second circuit in the first circuit configuration, or by a third circuit in the second circuit. Additional and / or more specific examples of components related to machine 200 are provided below.

[0016] In some embodiments, machine 200 can operate as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, machine 200 can operate in the capacity of a server machine, a client machine, or both in a server-client network environment. In some examples, machine 200 can function as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. Machine 200 can be or include, for example, a PC, a tablet PC, a PDA, a mobile phone, a web appliance, a network router, a switch, or a bridge, or any machine capable of executing instructions (sequential or otherwise) that define operations to be performed by the machine. Furthermore, although only a single machine is shown, the term “machine” should be interpreted to include any collection of machines that individually or cooperatively execute one or more sets of instructions to perform any one or more of the methodologies described herein, such as cloud computing, Software as a Service (SaaS), other computer cluster configurations, etc. In one example, machine 200 may include a combination of device 114 and server 118 .

[0017] The machine (e.g., computer system) 200 may include a hardware processor 202 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), and main memory 204, static memory (e.g., firmware, microcode, basic input / output (BIOS), Unified Extensible Firmware Interface (UEFI), etc.) 206, and / or mass storage 208 (e.g., a hard drive, tape drive, flash storage, or other block device), some or all of which may communicate with each other via an interlink (e.g., bus) 234. The machine 200 may further include a display device 210 and input devices 212 and / or user interface (UI) navigation devices 214. Exemplary input devices and UI navigation devices include, but are not limited to, one or more buttons, a keyboard, a touch-sensitive surface, a stylus, a camera, a microphone, etc. In some examples, one or more of the display device 210, the input device 212, and / or the UI navigation device 214 may be a combined unit, such as a touchscreen display. The machine 200 may further include a signal generating device 218 (e.g., a speaker), a network interface device 220, and one or more sensors 216, such as a Global Positioning System (GPS) sensor, a compass, an accelerometer, or other sensor. The machine 200 may include an output controller 228, such as a serial (e.g., Universal Serial Bus (USB), parallel, or other wired or wireless (e.g., Infrared (IR), NFC, etc.) connection, to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.).

[0018] Processor 202 may correspond to one or more computer processing devices or resources. For example, processor 202 may be provided as silicon, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), any other type of integrated circuit (IC) chip, a collection of IC chips, etc. As a more specific example, processor 202 may be provided as a microprocessor, a central processing unit (CPU), or multiple microprocessors or CPUs configured to execute a set of instructions stored in internal memory 222 and / or memories 204, 206, 208.

[0019] Any of memories 204, 206, and 208 can be used in connection with the execution of application programming or instructions by processor 202, and for temporary or long-term storage of program instructions or instruction sets 224 and / or other data. Any of memories 204, 206, and 208 can include computer-readable media, which can be any medium capable of containing, storing, communicating, or transferring data, program code, or instructions 224 used by or in connection with machine 200. A computer-readable medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of suitable computer-readable media include, but are not limited to, an electrical connection having one or more wires, or a tangible storage medium such as a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or EEPROM), a dynamic RAM (DRAM), a solid-state storage device, typically a compact disc read-only memory (CD-ROM), or other optical or magnetic storage device. Computer readable medium should not be confused with, but includes, computer readable storage media, which is intended to cover all physical, non-transitory, or similar embodiments of computer readable media.

[0020] Network interface device 220 includes hardware that enables communication with other devices over a communications network, such as network 160, using any one of several transport protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Example communications networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile phone network (e.g., a cellular network), a Plain Old Telephone (POTS) network, a wireless data network (e.g., the IEEE 802.11 family of standards called Wi-Fi®, the IEEE 802.16 family of standards called WiMax®), a network based on the IEEE 802.15.4 family of standards, and a peer-to-peer (P2P) network. In some examples, network interface device 220 may include an Ethernet port or other physical jack, a Wi-Fi card, a network interface card (NIC), a cellular interface (e.g., antennas, filters, and associated circuitry), etc. In some examples, network interface device 220 may include one or more antennas to communicate wirelessly using, for example, at least one of Single-Input Multiple-Output (SIMO), Multiple-Input Multiple-Output (MIMO), or Multiple-Input Single-Output (MISO) techniques.

[0021] The antenna 230 may correspond to one or more antennas and may be configured to provide wireless communication between any of the devices described herein, such as, but not limited to, direct or indirect wireless communication between the device 114, the server 118, and / or IoT devices (e.g., devices 142, 144, 146, 148, 150, 152, 154, described in further detail below). The one or more antennas 230 may be configured to operate using one or more wireless communication protocols and operating frequencies, including, but not limited to, IEEE 802.15.1, Bluetooth, Bluetooth Low Energy (BLE), near field communication (NFC), ZigBee, GSM, CDMA, Wi-Fi, RF, UWB, etc. By way of example, the one or more antennas 230 may be RF antennas and thus capable of transmitting / receiving RF signals over free space to be received / forwarded by another device having an RF transceiver.

[0022] Power source 232 may be any suitable internal power source, such as a battery, a capacitive power source, or similar type of charge storage device, and / or may include one or more power conversion circuits suitable for converting external power into appropriate power for the components of machine 200 (e.g., converting externally supplied AC power to DC power). Power source 232 may also include some implementations of surge protection circuitry for protecting the components of machine 200 from power surges.

[0023] The one or more sensors 216 may include any suitable sensor or sensors. As discussed above, in the examples herein, the one or more sensors 216 may include an IMU. The IMU may include one or more of an accelerometer, a gyroscope, a magnetometer, or any other suitable sensor for measuring or sensing a specific force or acceleration of an object or body, an angular velocity of an object or body, an orientation of an object or body, and / or a magnetic field around an object or body. Other suitable sensors 216 for machine 200 include, for example, a global positioning system (GPS) sensor or a compass.

[0024] As mentioned above, machine 200 may include one or more interlinks or buses 234 operable to transmit communications between the various hardware components of the machine. System bus 234 may be any of several types of commercially available bus structures or architectures.

[0025] While various exemplary components of exemplary machine 200 are described and illustrated, not all components are required in each machine or device described herein, and the machines or devices described herein are not limited to including only the exemplary components described and illustrated herein. For example, any of the various devices described herein, such as device 114 or server 118, may include different sets and / or combinations of the exemplary components described and illustrated herein.

[0026] FIG. 3 is a flowchart generally illustrating an example method 300 for calibrating an environment, such as the example environment 100 of FIG. 1, for subsequent use in a method for identifying or recognizing a person's position based on signals from an IMU held or carried by the person, as described further herein. In step 302, one or more LOIs 102, 104, 106, 108, 110 may be identified or determined, such as by a user 112 bringing a device 114 to the location of each LOI and instructing the device to record or store each location as an LOI. However, any other method of identifying or determining one or more LOIs may be used. In some examples, identifying or determining the locations of multiple LOIs may be completed collectively by multiple users 112 and / or using multiple devices 114. In step 304, one or more reference path signatures are collected for each LOI based on one or more reference paths 120, 122, 124, 126, 128, or portions thereof, to or between the LOIs. In additional or alternative examples, separate reference path signatures may be collected for several separate approaches or approach paths 130 to the LOI, which may include paths preceding the LOI, and possibly immediately preceding the LOI, at any suitable distance. For example, if a room can be approached from a hallway in either of two directions, multiple reference path signatures may be collected for each of these directions. In some examples, steps 302 and 304 may be performed substantially simultaneously, e.g., in that multiple LOIs 102, 104, 106, 108, 110 may be dynamically identified or determined as one or more reference path signatures are collected.

[0027] In one example, collecting one or more reference path signatures for a given LOI (e.g., 104) may include step 306 in which the device 114 is carried to the given LOI from at least one other distinct location, such as one or more of the other LOIs (e.g., 102, 106, 108, 110), and / or from one or more distinct approach directions, to create one or more distinct paths (e.g., 120, 126) or approaches (e.g., 130) to the given LOI. While the device 114 is carried, such as by the user 112, to the given LOI (e.g., 104) from a known starting point, the device may record a temporal sequence of IMU readings or signals corresponding to each distinct path (e.g., 120, 126) or approach (e.g., 130) to the given LOI. The IMU readings or signals may be recorded at any suitable interval, such as substantially continuously, periodically, randomly, or according to any other repeating or non-repeating pattern or algorithm. As described above, the IMU of device 114 may include one or more of an accelerometer, a gyroscope, a magnetometer, or any other suitable sensor. The series of IMU readings corresponding to each distinct path (e.g., 120, 126) or approach (e.g., 130) to a given LOI (e.g., 104) may include a temporal sequence of individual readings from any one or more of the IMU's various sensors, or one or more combinations thereof, such as a concatenation or mathematical combination, where the one or more combinations include multidimensional temporal sequences of readings from multiple sensors of any of the IMU's various sensors. In some examples, collecting reference path signatures for one or more LOIs may be completed collectively by multiple users 112 and / or using multiple devices 114.

[0028] In step 308, to compensate for different orientations and positions of the device 114 relative to the body of the user 112 and / or the ground, floor, or surface, in one example, the raw IMU readings in the recorded series of IMU readings corresponding to each distinct path (e.g., 120, 126) or approach (e.g., 130) to a given LOI (e.g., 104) may be normalized or standardized. That is, in one example, the recorded series of IMU readings corresponding to each distinct path, approach, or portion thereof may be transformed from the local coordinate system of the device 114 (e.g., a phone-local coordinate system) to a normalized coordinate system, such as an Earth-based coordinate system (i.e., an Earth-local coordinate system) or a coordinate system referenced to some other known or fixed reference coordinate system. In other examples, the IMU readings may be normalized or standardized according to any suitable method or means and / or based on any suitable reference coordinate system. In one example, IMU readings can be normalized by applying sensor fusion and / or filtering and / or by using gravity and magnetic north to rotate the signals into a standard reference frame that is independent of the orientation of the device 114.

[0029] In step 310, for each distinct path (e.g., 120, 126) or approach (e.g., 130) to a given LOI (e.g., 104), a set of normalized or standardized IMU readings for the path, approach, or portion thereof may be stored as a reference path signature for the path or approach. In one example, the reference path signature for a given path (e.g., 120, 126), approach (e.g., 130), or portion thereof may simply include a concatenation or other suitable combination of normalized or standardized IMU readings for the path, approach, or portion thereof. For example, the reference path signature for a given path (e.g., 120, 126), approach (e.g., 130), or portion thereof may simply include a concatenation or combination of normalized or standardized accelerometer and / or gyroscope readings of the IMUs corresponding to the path, approach, or portion thereof. In another example, accelerometer and / or gyroscope readings of an IMU, or more generally, normalized or standardized readings from multiple sensors of any of the IMU's various sensors, may be combined into a multidimensional time sequence, and this sequence may be used as a reference signature for a given path (e.g., 120, 126), approach (e.g., 130), or portion thereof. Of course, other readings or signals may be used in addition to or in place of readings from the accelerometer or gyroscope to create a path signature. For example, the complexity of some environments, such as a physical layout with many corners, staircases, uniquely shaped rooms or hallways, uniquely spaced rooms or hallways, or other physical features, may create an environment in which the paths or approaches to the environment's various LOIs are substantially unique and different. However, in other environments, the paths or approaches to many of the LOIs may be less unique. In such an environment, for example, magnetometer readings or signals from an IMU may additionally or alternatively be used to form a reference path signature (e.g., alone or concatenated or combined with other readings).This can be particularly advantageous in locations where the magnetic field varies or has anomalies, such as, but not limited to, magnetic field anomalies due to nearby equipment or structures. In some examples, the environment (e.g., 100) may be intentionally provided with magnetic markers 132, 134, 136, such as electromagnets or other suitable magnets of various strengths and / or field orientations, appropriately positioned within the environment to help generate distinct path or approach signatures for the LOI.

[0030] In some examples, there may be further processing of the normalized or standardized series of IMU readings for a path (e.g., 120, 126), an approach (e.g., 130), or a portion thereof, to determine or generate a reference path signature. Any suitable additional processing may be used. In one example, the IMU readings for a given path, approach, or portion thereof may be analyzed to define step, stride, and / or heading information. The step, stride, and / or heading information may be used alone or in combination, such as via concatenation or other mathematical combination, to determine or generate a reference path signature. The step, stride, and / or heading information may be used in combination with the normalized or standardized IMU readings. In another example, the normalized or standardized series of IMU readings for a given path, approach, or portion thereof may be approximated by a method such as, but not limited to, Piecewise Aggregate Approximation (PAA). In yet another example, the normalized or standardized series of IMU readings for a given route, approach, or portion thereof may be further processed by methods such as Symbolic Aggregate approximation (SAX) or Symbolic Fourier Approximation (SFA) to generate a symbolic representation of the IMU readings, which may then be stored as at least a portion of a reference route signature for the given route or approach.

[0031] Each reference path signature may be stored with an identifier and a label that associates the reference path signature with a given LOI, such as 104. The reference path signature may also be stored with any other suitable information.

[0032] In another example, identifying multiple LOIs and / or collecting one or more reference path signatures for one or more LOIs may include identifying or determining any LOIs and / or reference path signatures during a training or learning period. For example, in step 312, a training period may be initiated. The training period may begin, for example, when the user 112 and / or device 114 first enters the environment 100. However, the training period may begin at any appropriate time, for example, but not limited to, following a command to begin the training period received from the user 112 to the device 114. In an example, the training period may be a predetermined length of time, such as, but not limited to, a number of days, weeks, etc. In some examples, the training period may extend indefinitely or until an end trigger event occurs. The termination trigger event may include, but is not limited to, a user 112 giving a command, e.g., via device 114, to terminate the training period, reaching a certain or predetermined number of LOIs, reaching a certain or predetermined number of reference path signatures, reaching a limitation of the device (e.g., 114), such as a particular memory capacity, etc.

[0033] In step 314, during a training period, while the device 114 is being carried throughout the environment 100, such as by the user 112, one or more reference paths (e.g., 120, 122, 124, 126, 128) or approaches (e.g., 130) to one or more LOIs (e.g., 102, 104, 106, 108, 110) in the environment may be learned or identified based on multiple temporal readings or signals from one or more IMUs of one or more devices. In one example, the LOIs in the environment may be identified by the user 112 before or at the beginning of the training period. For example, the user 112 may bring the device 114 to specific or predetermined locations within the environment 100 and instruct the device to record or store each location as an LOI. In another example, the user 112 may dynamically define one or more LOIs during the training period. For example, at any time during the training period, the user 112 may visit or bring the device 114 to a location within the environment 100 that the user desires to add as an LOI. The user 112 may then instruct the device 114 to record or store such location as an LOI. In another example, the device 114 may automatically learn or identify multiple locations within the environment 100 for inclusion as an LOI. The device 114 may use any suitable method for learning or determining whether a location should be added as an LOI. For example, the device 114 may learn or determine that a location should be included as an LOI because the user 112 (with the device 114) frequently visits the particular location, such as a predefined number of times, because the user 112 (with the device 114) stays at the particular location for an extended or predefined period of time, e.g., based on a machine learning model trained with a training dataset including existing environment and LOI data or other suitable data, and / or based on any other suitable information. In some examples, the device 114 may request confirmation input from the user 112 before adding such a learned location as an LOI.

[0034] As previously indicated, in some examples, identifying or determining the locations of multiple LOIs may be completed collectively at any suitable time (e.g., before or during a training period) by multiple users 112 and / or using multiple devices 114. Similarly, in some examples, collecting reference route signatures for one or more LOIs may be completed collectively during a training period by multiple users 112 and / or using multiple devices 114. Further, in some examples, the start and / or end of a training period may be completed by any one of a group of users 112 and / or using any one of multiple devices 114. Indeed, in some examples, information from multiple users may be incorporated or combined to more completely learn LOIs, routes, and / or approaches within an environment such as a large office complex or a hospital.

[0035] In step 316, the raw IMU readings in the recorded series of IMU readings corresponding to each distinct route or approach determined in step 314 may be normalized or standardized. Normalizing or standardizing the raw IMU readings in step 316 may be performed similarly to that described above with respect to step 308. In step 318, for each distinct route or approach determined in step 314, the normalized or standardized series of IMU readings for the route, approach, or portion thereof may be stored as a reference route signature for the route or approach, or may optionally be further processed before being stored as a reference route signature for the route or approach. Further processing of the normalized or standardized IMU readings and / or storage of the reference route signatures in step 318 may be performed similarly to that described above with respect to step 310.

[0036] Yet another example of identifying multiple LOIs and / or collecting one or more reference path signatures for one or more LOIs (i.e., steps 302, 304) may again include identifying or determining any LOIs and / or reference path signatures during a training or learning period. Such training or learning periods and determining LOIs within environment 100 are described above with respect to step 312. However, in one example, environment 100 may further include one or more network-connected devices, smart devices, or Internet-of-Things (IoT) devices, such as, but not limited to, smart light bulbs (e.g., 142, 144, 146), smart switches (e.g., 148), such as those for controlling other electronic devices, such as lights, appliances, televisions, stereo systems, fireplaces, smart thermostats (e.g., 150), and smart locks (e.g., 152, 154). The device 114 may communicate directly (e.g., using Bluetooth, BLE, RF, infrared, etc.) or networked (e.g., via the network 116 or other suitable network) with any or each of these network-connected devices, smart devices, or IoT devices (which may be collectively referred to herein as IoT devices for simplicity) to monitor or interact with them. In a step similar to step 314, one or more correlations between any given LOI and one or more of the IoT devices may be learned or identified based on changes in one or more states of the one or more IoT devices while the device 114 is carried throughout the environment 100 during a training period. For example, a common correlation between the smart light bulb 142 turning on and the user 112 (and device 114) being at the LOI 104 may be learned or identified. Similarly, for example, a common correlation between the smart light bulb 144 and the smart switch 148 (e.g., connected to a TV) both turning on and the user 112 (and device 114) being at the LOI 106 may be learned or identified.As yet another example, a common correlation may be learned or identified between the thermostat 150 changing state (e.g., turning down the temperature), the smart lock 154 being locked, and the user 112 (and devices 114) being at the LOI 110. Any other suitable information, such as the time of day, day of the week, or order of affected IoT devices, may also be used to identify correlations. For example, a common correlation may be learned or identified between the smart light bulb 144 and the smart switch 148 both turning off at night (e.g., between approximately 9:00 PM and midnight) and the user 112 (and devices 114) staying at the LOI 104 until approximately 6:00 AM the next morning. The above correlations between user location and IoT device state changes may be stored directly as or part of a reference path signature, alone or in combination with IMU readings (as described above), or may be stored as additional data associated with the respective reference path signatures already determined based on IMU readings. In some examples, there may be further processing of the correlation before determining or generating a reference pathway signature or before storing it as additional data. Any suitable additional processing may be used.

[0037] Any of the exemplary methods for identifying multiple LOIs and / or collecting one or more reference path signatures for one or more LOIs can be used alone or in combination with each other. That is, while any of the aforementioned exemplary methods for identifying multiple LOIs and / or collecting one or more reference path signatures for one or more LOIs can be used alone, these methods are not mutually exclusive and can be used in any combination to determine reference path signatures in environment 100. Furthermore, although the flowchart of FIG. 3 depicts the exemplary method as including sequential steps or processes having a particular order of operations, some or many of the steps or operations in the flowchart can be performed in parallel or simultaneously, and the flowchart should be read in the context of various exemplary embodiments of the present disclosure. The order of the steps or process operations of the method depicted in FIG. 3 can be rearranged for some embodiments. Similarly, the method depicted in FIG. 3 could have additional steps or operations not included therein or fewer steps or operations than those depicted. Furthermore, many of the steps of the exemplary method of FIG. 3 can be performed by device 114 and / or are described as being performed by device 114. However, in other examples, many of the steps of the example method of FIG. 3 may be performed by the server 116 or by a combination of the device 114 and the server 116 .

[0038] Once one or more reference path signatures have been collected for the environment 100, the reference path signatures can be used to identify or recognize a person's location, or possibly their predicted future location, within the environment based on multiple IMU readings or signals of a device held or carried by the person and generated during a recent or current path taken by the person. FIG. 4 is a flowchart generally illustrating an example method 400 for identifying or recognizing a person's location based on signals from an IMU held or carried by the person, with reference to the environment 100 of FIG. 1. In step 402, a user 112 holding or carrying a device 114 having an IMU enters the environment 100. The user 112 and / or device 114 may, but need not be, the same user(s) and / or device(s) used to calibrate the environment 100, as described above with respect to FIG. 3. In step 404, the device 114 can record a temporal sequence of IMU readings or signals while the device is carried about the environment by the user 112. The IMU readings or signals may be recorded at any suitable intervals, such as substantially continuously, periodically, randomly, or according to any other repeating or non-repeating pattern or algorithm. In step 406, to compensate for different orientations and positions of the device 114 relative to the body of the user 112 and / or the ground, floor, or surface, in one example, the raw IMU readings in the recorded series of IMU readings may be normalized or standardized. The normalization or standardization of the raw IMU readings in step 406 may be performed similarly to that described above with respect to step 308 of FIG. 3. In step 408, at any time t corresponding to the user's current location, at least a portion of the normalized or standardized series of IMU readings preceding time t may be used to identify or generate a current path signature of the current path or approach 138 preceding the user's location at time t (e.g., the user's current location 140 represented by the device in a virtual line).In one example, any portion of the normalized or standardized series of IMU readings preceding time t may be used to identify or generate a current path signature for user 112. Similarly, multiple current path signatures of the path or approach 138 preceding the user's current location 140 may be identified or generated from different portions or time periods of the normalized or standardized series of IMU readings preceding time t. Methods and examples for determining or generating a path signature (e.g., for a reference path signature) based on IMU readings are described above with respect to step 310 of FIG. 3, and the same methods or examples may be used to identify or generate a current path signature.

[0039] In step 410, the current path signature may be compared or analyzed with one or more stored reference path signatures for environment 100 to determine whether the current path signature substantially matches, substantially aligns, or corresponds to any reference path signatures or any portions of the reference path signatures. In one example, the current path signature may be compared or analyzed with one or more stored reference path signatures, or any one or more portions thereof, for environment 100 to determine whether the current path signature matches or aligns with any reference path signatures or portions thereof within a predefined or predetermined tolerance. Determining whether the current path signature substantially matches, substantially aligns, or corresponds to a reference path signature or portion thereof may be performed using any suitable method or methods, algorithm or combination thereof. For example, determining whether the current path signature substantially matches, substantially aligns with, or corresponds to a reference path signature or a portion thereof may be performed using one or more methods or algorithms, such as a k-nearest neighbors algorithm (k-NN), a Mahalanobis distance measure either directly or after decomposition, for example, by principle component analysis (PCA), a decision tree, an artificial neural network (ANN), dynamic time warping (DTW), etc. As explained above, a path signature (e.g., a reference path signature or a current path signature) may be represented symbolically using processing methods such as, for example, SAX or SFA.Such symbolic representations of the current and reference pathway signatures may be compared using various classification techniques, for example, but not limited to, based on a bag-of-words model (e.g., unordered similarity), an ordered similarity model such as the Levenshtein distance, or other suitable methods.

[0040] If a "match" is determined in step 412 between the current path signature and a stored reference path signature of the environment 100, then the current location 140 of the user 112 (holding the device 114) may be identified or recognized as corresponding to the LOI associated with the matching stored reference path signature. Alternatively or additionally, if a "match" is determined in step 412 between the current path signature and a portion of the reference path signature corresponding to a sub-portion of a path, e.g., a portion of the stored reference path signature, such as portion 156 of the path 122 that leads to or leads to a given LOI (e.g., 106) but does not terminate at the LOI, then the predicted future location of the user 112 (holding the device 114) may be identified or recognized as corresponding to the LOI (e.g., 106) associated with the matching stored reference path signature. Any other suitable information or algorithms may also be used to help identify such predicted future locations. For example, it may be known that user 112 only has access to LOIs 106 and 108 (e.g., has access credentials for LOIs 106 and 108), and specifically does not have access to LOI 110. Thus, if a "match" is determined between the current route signature and a portion of the stored reference route signature that corresponds to portion 156 of route 122, LOI 106 may be determined to be the user's predicted future location, knowing that portion 156 does not correspond to LOI 108 (e.g., the only other location to which user 112 has access), and specifically that the user does not have access to LOI 110 (to which portion 156 may otherwise be aligned). In some environments, reference route signatures or portions thereof for two or more LOIs may not be easily distinguished with sufficient accuracy.In an example, one way to address an environment that may otherwise have similar reference path signatures or portions thereof for two or more LOIs is to use magnetometer readings from the IMU of device 114, as described above, or incorporate them into the reference path signature and current path signature, and optionally provide the environment (e.g., 100) with magnetic markers 132, 134, 136, such as electromagnets or other suitable magnets of various strengths and / or field orientations, appropriately positioned within the environment to help create further distinction between the path or approach signatures of the various LOIs within the environment. In additional or alternative examples, a "match" between the current path signature and a stored reference path signature, or a portion thereof, may rely on a determination that the current path signature substantially matches, substantially aligns with, or corresponds to a reference path signature, or a portion thereof, in combination with data regarding one or more prior LOIs identified as visited by the user 112 (holding the device 114) and / or one or more reference path signatures corresponding to such one or more prior LOIs. For example, if the user's current path signature is determined to be similar to the stored reference path signature, or a portion thereof, of the LOI 110 and the stored reference path signature, or a portion thereof, of the LOI 102, a "match" may be further determined based on data regarding one or more immediately preceding LOIs determined to have been visited by the user 112. For example, if it is determined that the user 112 previously visited LOI 106, which is much closer to LOI 110 than LOI 102, then the most likely "match" for the current path signature may be determined to be the reference path signature or portion thereof corresponding to LOI 110, rather than the reference path signature or portion thereof corresponding to LOI 102. Any suitable information regarding one or more prior LOIs may be used, such as, but not limited to, the proximity of one or more LOIs, or one or more prior visit patterns of the user or other people involved in one or more prior LOIs.

[0041] In some examples, various steps or combinations of steps in exemplary method 400 may generally be performed continuously or substantially continuously, at predefined times, periodically, upon receipt, detection, or identification of a triggering event, and / or randomly while user 112 holding or carrying device 114 moves about environment 100. For example, the step of comparing a current path signature to one or more reference path signatures or portions thereof (i.e., step 410) and the step of determining whether there is a “match” (i.e., step 412) may generally be performed continuously or substantially continuously. For example, steps 410 and 412 (and / or any other steps of method 400) may generally be performed after receiving each reading or a relatively short series of readings, such as, but not limited to, one second of readings, two seconds of readings, etc., from the IMU of device 114 to provide a practical effect that occurs continuously or substantially continuously. As another example, steps 410 and 412 (and / or any other steps of method 400) may be performed periodically, such as, but not limited to, every predefined number of seconds (e.g., 10 seconds, 20 seconds, etc.) or minutes (e.g., 1 minute, 2 minutes, etc.). In yet another example, steps 410 and 412 (and / or any other steps of method 400) may be performed upon detection of a trigger event, such as detection of a particular state of device 114, detection of a particular movement or lack thereof of device 114, receipt of a particular user input at device 114, or any other suitable detectable or identifiable trigger event. For example, if it is detected that device 114 has substantially stopped any horizontal movement (e.g., user 112 stops walking or the user sits or lies down), method 400 may identify this as a trigger event, and steps 410 and 412 (and / or any other steps of method 400) may be performed.Additionally, if a user input at device 114 is detected, such as, for example, one or more taps or other actions received at the device, method 400 may identify this as a trigger event, and steps 410 and 412 (and / or any other steps of method 400) may be performed. The use of a buffer, such as, but not limited to, a circular buffer, may be incorporated into example method 400 to keep data about the user's 112 current route or approach available over an extended period of time.

[0042] In some examples, in addition to or as an alternative to using multiple IMU readings to determine a current path signature of the user 112, the user's current path signature may be determined as or may include interactions with or state changes of one or more IoT devices. In particular examples, as the user 112 (holding the device 114) moves within the environment 100, such IoT device interactions or state changes may be monitored or recorded. For example, as the user 112 (holding the device 114) moves within the environment 100, it may be determined that the smart light bulb 144 and the smart switch 148 (e.g., connected to a TV) are turned on. Such one or more interactions or one or more monitored state changes of one or more IoT devices may form at least a portion of the user's 112 current path signature, which may be compared or analyzed against any one or more correlations stored as or included in one or more reference path signatures of the environment 100, as described above with respect to FIG. 3, to determine or assist in determining whether there is a "match" between the user's current path signature and the reference path signature.

[0043] Additionally or alternatively, as described above with respect to FIG. 3 , correlations between the user 112 and / or devices 114 and one or more IoT devices may be used to identify any actions or state changes for any IoT devices corresponding to the user's current path, and the IoT devices may be controlled to take any such corresponding actions or make any such corresponding state changes. For example, according to steps 402-412, the user's 112 current path may be identified and "matched" to a stored reference path signature, or portion thereof, of the environment 100. The "matching" reference path signature, or portion thereof, may include additional data corresponding to one or more correlations with one or more IoT devices generally associated with the "matching" reference path signature. For example, the "matching" reference path signature, or portion thereof, may place the user 112 at the LOI 106 or predict the user's future location to be at the LOI 106, and may be associated with correlation data indicating that the smart light bulb 144 and the smart switch 148 (e.g., connected to a TV) are both normally on. Thus, the device 114 can communicate, directly or over a network, and / or optionally through one or more other computing devices, such as the server 118, with any one or more IoT devices associated with the correlation and control or command the corresponding IoT device or devices to take actions identified by the correlation data. For example, following the above example of placing a user 112 at the LOI 106, the smart light bulbs 144 and smart switches 148 can be automatically turned on for the user according to the corresponding correlation data. As another example, in an enterprise or commercial environment, the reference path signature of a particular LOI corresponding to a controlled entrance leading to a hallway may be associated with correlation data indicating that the hallway lights will or should be turned on when the controlled entrance is accessed.Thus, if the user's current route signature is determined to "match" this reference route signature or a portion thereof, and optionally, for example, if the user has proper or verified credentials to access the entrance, the hallway lights may be automatically turned on (if off) according to the corresponding correlation date.

[0044] Although the flowchart of FIG. 4 depicts an exemplary method as including sequential steps or processes having a particular order of operations, some or many of the steps or operations in the flowchart can be performed in parallel or simultaneously, and the flowchart should be read in the context of various exemplary embodiments of the present disclosure. The order of the method steps or process operations shown in FIG. 4 can be rearranged for some embodiments. Similarly, the method shown in FIG. 4 can have additional steps or operations not included therein, or fewer steps or operations than those shown. Furthermore, many of the steps of the exemplary method of FIG. 4 can be performed by and / or are described as being performed by device 114. However, in other examples, many of the steps of the exemplary method of FIG. 4 can be performed by server 116, or by a combination of device 114 and server 116.

[0045] The various examples and embodiments described herein for recognizing a person's position based on signals from an IMU advantageously enable tracking of a person's position and / or path using only an IMU or sensors commonly found on a typical smart device, such as a smartphone or tablet PC, without requiring tracking via signals from a GNSS or interaction with the environment using RF beacons and receiver devices. Thus, the various examples and embodiments described herein for recognizing a person's position based on signals from an IMU advantageously enable accurate and efficient tracking of a person's position and / or path, for example, in indoor environments or environments where GNSS signals are attenuated.

[0046] Additional Examples Example 1 includes subject matter relating to a non-transitory computer-readable medium including executable program code that, when executed by one or more processors, causes the one or more processors to identify one or more locations of interest (LOIs) within an environment, determine a reference path signature for each of the one or more LOIs, and, for each reference path signature, store the reference path signature along with data indicating which LOI the reference path signature corresponds to.

[0047] In Example 2, the subject matter of Example 1 optionally includes where identifying one or more LOIs in the environment includes, for each of the one or more LOIs, receiving instructions from a device at a unique location in the environment to identify the unique location as the LOI.

[0048] In Example 3, the subject matter of Example 1 optionally includes where identifying one or more LOIs in the environment includes initiating a training period during which the one or more LOIs are dynamically learned based on multiple positions of the device as it moves throughout the environment.

[0049] In Example 4, the subject matter of any of Examples 1 to 3 optionally includes that determining a reference path signature for each of the one or more LOIs includes, for a given LOI of the one or more LOIs, receiving a series of signals from an inertial measurement unit (IMU) carried along the user's path in the environment to the given LOI.

[0050] In Example 5, the subject matter of Example 4 optionally includes where determining a reference path signature for each of the one or more LOIs further includes, for a given LOI, normalizing at least a portion of the sequence of signals from the IMU to a defined reference coordinate system in the environment to define a normalized sequence of signals.

[0051] In Example 6, the subject matter of Example 5 optionally includes that determining a reference path signature for each of the one or more LOIs further includes, for the given LOI, obtaining a normalized series of signals to form at least a portion of the reference path signature for the given LOI.

[0052] In Example 7, the subject matter of Example 5 or 6 optionally includes that determining a reference path signature for each of one or more LOIs further includes, for the given LOI, processing the normalized series of signals to obtain processed signal data, and obtaining the processed signal data to form at least a portion of the reference path signature for the given LOI.

[0053] In Example 8, the subject matter of Example 7 optionally includes, wherein the processed signal data includes at least one of step data corresponding to the user's path, stride length data corresponding to the user's path, and / or heading direction data corresponding to the user's path.

[0054] In Example 9, the subject matter of Example 7 or 8 optionally includes, wherein the processed signal data includes an approximation of the normalized series of signals based on a Piecewise Aggregate Approximation (PAA).

[0055] In Example 10, the subject matter of any of Examples 7-9 optionally includes, wherein the processed signal data includes a symbolic approximation of the normalized series of signals based on at least one of a Symbolic Aggregate approximation (SAX) or a Symbolic Fourier Approximation (SFA).

[0056] In Example 11, the subject matter of any of Examples 4-10 optionally includes, wherein the IMU includes at least one of an accelerometer, a gyroscope, or a magnetometer. In Example 12, the subject matter of any of Examples 4-11 optionally includes, wherein the set of signals from the IMU includes a signal from at least one of an accelerometer, a gyroscope, or a magnetometer.

[0057] In Example 13, the subject matter of any of Examples 4-12 optionally includes, wherein the set of signals from the IMU includes a combination of signals from two or more of an accelerometer, a gyroscope, or a magnetometer.

[0058] In Example 14, the subject matter of Example 1 or 2 optionally includes that determining a reference path signature for each of the one or more LOIs includes, for a given LOI of the one or more LOIs, determining a correlation between the given LOI and a state of an Internet-of-Things (IoT) device located in the environment.

[0059] In Example 15, the subject matter of Example 14 optionally includes that determining a reference path signature for each of one or more LOIs further includes, for a given LOI, performing a correlation to form at least a portion of the reference path signature for the given LOI.

[0060] Example 16 includes subject matter relating to a non-transitory computer-readable medium including executable program code that, when executed by one or more processors, causes the one or more processors to: determine a current path signature of a device moving within an environment; compare the current path signature to at least a portion of a stored reference path signature corresponding to a location of interest (LOI) within the environment; and determine that the location of the device is the same as the location of the LOI within the environment if it is determined that the current path signature corresponds to at least a portion of the stored reference path signature.

[0061] In Example 17, the subject matter of Example 16 optionally includes, wherein the device includes an inertial measurement unit (IMU). In Example 18, the subject matter of Example 17 optionally includes, wherein the IMU includes at least one of an accelerometer, a gyroscope, or a magnetometer.

[0062] In Example 19, the subject matter of Example 17 or 18 optionally includes, wherein determining a current path signature of the device includes receiving a series of signals from the IMU while the IMU is carried along the user's path within the environment.

[0063] In Example 20, the subject matter of Example 19 optionally includes where determining a current path signature of the device further includes normalizing at least a portion of the sequence of signals from the IMU to a defined reference frame in the environment to define a normalized sequence of signals.

[0064] In Example 21, the subject matter of Example 20 optionally includes that determining a current path signature of the device further includes obtaining a normalized series of signals to form at least a portion of the current path signature.

[0065] In Example 22, the subject matter of Example 20 or 21 optionally includes, wherein determining a current path signature of the device further includes processing the normalized series of signals to obtain processed signal data, and obtaining the processed signal data to form at least a portion of a reference path signature for the given LOI.

[0066] In Example 23, the subject matter of Example 22 optionally includes, wherein the processed signal data includes at least one of step data corresponding to the user's path, stride length data corresponding to the user's path, and / or heading direction data corresponding to the user's path.

[0067] In Example 24, the subject matter of Example 22 or 23 optionally includes, wherein the processed signal data includes an approximation of the normalized series of signals based on a Piecewise Aggregate Approximation (PAA).

[0068] In Example 25, the subject matter of any one of Examples 22-24 optionally includes, wherein the processed signal data includes a symbolic approximation of the normalized series of signals based on at least one of Symbolic Aggregate Approximation (SAX) or Symbolic Fourier Approximation (SFA).

[0069] In Example 26, the subject matter of any one of Examples 16 to 25 optionally includes determining whether the current route signature corresponds to at least a portion of the stored reference route signature includes determining whether the current route signature matches at least a portion of the stored reference route signature within a predefined tolerance.

[0070] In Example 27, the subject matter of any one of Examples 16 to 26 optionally includes that determining whether the current route signature corresponds to at least a portion of the stored reference route signature includes analyzing the current route signature and at least a portion of the stored reference route signature using at least one of a k-nearest neighbors algorithm (k-NN), a Mahalanobis distance measure, principle component analysis (PCA), a decision tree, an artificial neural network (ANN), or dynamic time warping (DTW).

[0071] In Example 28, the subject matter of Example 25 optionally includes determining whether the current pathway signature corresponds to at least a portion of the stored reference pathway signature includes comparing the current pathway signature to at least a portion of the stored reference pathway signature using at least one of an unordered similarity model or an ordered similarity model.

[0072] In Example 29, the subject matter of any one of Examples 16 to 28 optionally includes determining a current path signature of the device is performed substantially continuously or periodically while the device is moving within the environment.

[0073] In Example 30, the subject matter of any one of Examples 16-28 optionally includes determining a current path signature of the device is performed upon identifying a trigger event.

[0074] In Example 31, the subject matter of any one of Examples 16 to 30 optionally includes comparing the current path signature with at least a portion of the stored reference path signature is performed substantially continuously or periodically while the device is moving within the environment.

[0075] In Example 32, the subject matter of any one of Examples 16 to 30 optionally includes comparing the current pathway signature with at least a portion of the stored reference pathway signature is performed upon identification of a trigger event.

[0076] In Example 33, the subject matter of any one of Examples 16 to 32 optionally includes the executable program code further causing the one or more processors to identify a correlation between the LOI and a state of an Internet-of-Things (IoT) device located in the environment, and, if it is determined that the current path signature corresponds to at least a portion of the stored reference path signature, cause a state change of the IoT device based on the state of the IoT device corresponding to the correlation.

[0077] Example 34 includes subject matter (e.g., a method) for calibrating an environment, the method including identifying one or more locations of interest (LOIs) within the environment, determining a reference path signature for each of the one or more LOIs, and, for each reference path signature, storing the reference path signature along with data indicating which LOI the reference path signature corresponds to.

[0078] Example 35 includes subject matter (e.g., a method) for determining a location of a device within an environment, the method including determining a current path signature of a device moving within the environment, comparing the current path signature to at least a portion of a stored reference path signature corresponding to a location of interest (LOI) within the environment, and determining that the location of the device is the same as the location of the LOI within the environment if the current path signature is determined to correspond to at least a portion of the stored reference path signature.

[0079] Additional notes The above detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show, by way of illustration, certain embodiments that may be practiced. These embodiments may also be referred to herein as "examples." Such embodiments or examples may include elements in addition to those shown and described. However, the inventors also contemplate examples in which only the elements shown or described are provided. Furthermore, the inventors also contemplate examples (or one or more aspects thereof) that use any combination or permutation of the elements shown or described in relation to a particular example (or one or aspects thereof) or in relation to any other example (or one or more aspects thereof) shown or described herein. That is, the above-described embodiments or examples, or one or more aspects, features, or elements thereof, can be used in combination with each other.

[0080] As will be appreciated by those skilled in the art, various embodiments of the present disclosure may be embodied as a method (including, e.g., a computer-implemented process, a business process, and / or any other process), an apparatus (including, e.g., a system, a machine, a device, a computer program product, and / or the like), or a combination of the foregoing. Accordingly, embodiments of the present disclosure, or portions thereof, may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, middleware, microcode, hardware description languages, etc.), or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present disclosure may take the form of a computer program product on a computer-readable medium or computer-readable storage medium having computer-executable program code embodied therein, which defines the processes or methods described herein. One or more processors are capable of performing the necessary tasks defined by the computer-executable program code. In the context of the present disclosure, a computer-readable medium may be any medium that can contain, store, communicate, or transport a program for use by or in connection with the systems disclosed herein. As mentioned above, a computer-readable medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of suitable computer-readable media include, but are not limited to, an electrical connection having one or more wires, or a tangible storage medium such as a portable computer diskette, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or EEPROM), compact disc read-only memory (CD-ROM), or other optical, magnetic, or solid-state storage device. As mentioned above, computer-readable medium includes, but should not be confused with, computer-readable storage media, which is intended to cover all physical, non-transitory, or similar embodiments of computer-readable media.

[0081] In the foregoing description, various embodiments of the present disclosure have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise form disclosed. Obvious modifications or variations are possible in light of the above teachings. The various embodiments were chosen and described to best illustrate the principles of the present disclosure and their practical application, and to enable those skilled in the art to utilize various embodiments with various modifications as suited to the particular uses contemplated. All such modifications and variations are within the scope of the present disclosure as defined by the appended claims when interpreted in accordance with the breadth to which they are fairly, legally, and equitably entitled.

Claims

1. 1. A method for establishing one or more reference path signatures in an environment, comprising: identifying one or more points of interest (LOIs) within the environment, where identifying the one or more LOIs within the environment includes, for each of the one or more LOIs, receiving instructions from a user-operated device at a unique location within the environment to identify the unique location as an LOI; determining a reference path signature for each of the one or more LOIs; and for each reference path signature, storing the reference path signature along with data indicating to which LOI the reference path signature corresponds.

2. identifying the one or more LOIs within the environment, The method of claim 1 , comprising initiating a training period during which the one or more LOIs are dynamically learned based on multiple positions of a device as it moves throughout an environment.

3. Determining the reference path signature for each of the one or more LOIs comprises:

2. The method of claim 1, comprising, for a given LOI of the one or more LOIs, receiving a sequence of signals from an inertial measurement unit (IMU) being moved along a user's path through the environment to the given LOI.

4. Determining the reference path signature for each of the one or more LOIs comprises: The method of claim 3 , further comprising: for a given LOI, normalizing at least a portion of the series of signals from the IMU to a defined reference frame within the environment.

5. Determining the reference path signature for each of the one or more LOIs comprises: The method of claim 4 , further comprising: determining, for a given LOI, the normalized sequence of signals to form at least a portion of the reference path signature for the given LOI.

6. Determining the reference path signature for each of the one or more LOIs comprises: processing the normalized series of signals to obtain processed signal data for the given LOI; The method of claim 4 , further comprising: using the processed signal data to form at least a portion of the reference path signature for the given LOI.

7. 7. The method of claim 6, wherein the processed signal data includes at least one of step data corresponding to the path of the user, stride length data corresponding to the path of the user, and heading data corresponding to the path of the user.

8. The method of claim 7 , wherein the processed signal data comprises an approximation of the normalized series of signals based on a Piecewise Aggregate Approximation (PAA).

9. 7. The method of claim 6, wherein the processed signal data comprises a symbolic approximation of a normalized sequence of signals based on at least one of a Symbolic Aggregate Approximation (SAX) or a Symbolic Fourier Approximation (SFA).

10. The method of claim 3 , wherein the IMU includes at least one of an accelerometer, a gyroscope, and a magnetometer.

11. The method of claim 3 , wherein the set of signals from the IMU includes signals from at least one of an accelerometer, a gyroscope, and a magnetometer.

12. The method of claim 3 , wherein the set of signals from the IMU includes a combination of signals from two or more of an accelerometer, a gyroscope, and a magnetometer.

13. Determining the reference path signature for each of the one or more LOIs comprises:

2. The method of claim 1, comprising, for a given LOI of the one or more LOIs, determining a correlation between a state of at least one of a user and a device located in the given LOI and an Internet-of-Things (IoT) device located in the environment.

14. Determining the reference path signature for each of the one or more LOIs comprises: The method of claim 13 , further comprising: for the given LOI, determining the correlation to form at least a portion of the reference path signature for the given LOI.

15. 15. A computer readable medium comprising executable program code that, when executed by one or more processors, causes the one or more processors to perform the method of any one of claims 1 to 14.

Citation Information

Patent Citations

  • Method and system for automatically generating location signatures for positioning using inertial sensors

    EP2878924A1

  • Data retriever, data retrieval method, and data retrieval program

    JP2013196665A

  • Control device

    JP2018173865A

  • Self-learning localization data repository

    US10257658B1

  • System and method for locating, tracking, and / or monitoring the status of personnel and / or assets both indoors and outdoors

    US20120130632A1