Position recognition using an inertial measurement unit

By generating and comparing normalized path signatures from IMUs, the method addresses the inaccuracies in indoor positioning, offering a more reliable and precise location determination for users within environments.

JP2026053699APending Publication Date: 2026-03-25HID GLOBAL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2026-01-05
Publication Date
2026-03-25

AI Technical Summary

Technical Problem

Existing methods for estimating a person's position using inertial measurement units (IMUs) in indoor environments suffer from significant errors due to noise and bias, especially over short distances, making them unreliable for accurate path and position estimation.

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 device orientation and position.

Benefits of technology

Provides a more reliable and accurate method for locating individuals using IMUs by comparing current path signatures with reference signatures, reducing errors and enhancing position estimation accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026053699000001_ABST
    Figure 2026053699000001_ABST
Patent Text Reader

Abstract

This provides a suitable method for locating devices within an environment. [Solution] A method for determining the location of a device in an environment comprises: identifying the current path signature of a device moving in the environment; comparing the current path signature with a stored reference path signature corresponding to a location of interest (LOI) in the environment; and determining that the device's location is the same as the location of the LOI in the environment if it is determined that the current path signature corresponds to the stored reference path signature.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments described herein generally relate to recognizing a person's position based on signals from an inertial measurement unit (IMU) held or carried by a person.

Background Art

[0002] Many digital services and functions require an accurate estimation of a user's position. In an outdoor environment, position estimation is often performed using signals from a global navigation satellite system (GNSS), such as the Global Positioning System (GPS). However, GNSS signals are generally not available or reliable in 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 (registered trademark) or ultra-wideband (UWB) frequencies and protocols may be used by multilateration algorithms to estimate the position of beacon devices. However, such technologies generally require expensive infrastructure and setup. WiFi fingerprinting is another technology that has been used for RTLS in indoor environments. However, with WiFi fingerprinting, it can be burdensome to perform initial calibration and maintain system accuracy when access points change.

[0003] Unlike RF-based RTLS technology, a person's position can be estimated using an inertial measurement unit (IMU) that is held, worn, or attached to a part of the body. In particular, the position of a smartphone holder can be estimated using IMUs that are available and present in most modern smartphones. These IMUs typically include a 3-axis accelerometer, a 3-axis gyroscope, and a 3-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 travel at 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 errors, especially as time increases from the last known position. Therefore, estimating a person's path and position by integration can be significantly inaccurate, even over short distances.

[0004] For these reasons at least, there is a need in this field for more reliable methods and systems for locating people using IMUs. [Overview of the project]

[0005] Below is a simplified summary of one or more embodiments of this disclosure to provide a basic understanding of such multiple embodiments. This summary is not intended to be an extensive overview of all possible embodiments, nor is it intended to identify important or key elements of all embodiments, nor to clarify the scope of some or all embodiments.

[0006] This disclosure relates to a non-temporary computer-readable medium containing executable program code, which, in one or more embodiments, causes one or more processors to perform the following actions when executed by one or more processors: identify one or more locations of interest (LOIs) in an environment; determine a reference path signature for each of the one or more LOIs; and store each reference path signature along with data indicating which LOI the reference path signature corresponds to.

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

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

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

[0010] While several embodiments are disclosed, further other embodiments of this disclosure will become apparent to those skilled in the art from the following detailed description illustrating and describing exemplary embodiments of the invention. As will be understood, all the various embodiments of this disclosure can be modified in various obvious ways without departing from the scope of this disclosure. Accordingly, the drawings and detailed description should be considered as illustrative and not limiting. [Brief explanation of the drawing]

[0011] In drawings that are not necessarily drawn to a consistent scale, similarity numbers indicate similar elements in different drawings. Similarity numbers with different subscripts may represent different examples of similar elements. Several embodiments are shown in the figures of the attached drawings, not as limitations but as examples. [Figure 1] Figure 1 shows an exemplary environment that includes multiple distinct target locations. [Figure 2] Figure 2 shows 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 this disclosure. [Figure 3] Figure 3 is a flowchart illustrating an exemplary method for calibrating an environment, such as the example environment shown in Figure 1. [Figure 4] Figure 4 is a flowchart that generally illustrates an exemplary method for identifying or recognizing a person's location based on signals from an IMU held or carried by the person. [Modes for carrying out the invention]

[0012] This 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, when a 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. A person or another user can perform calibration or measurements for each known location in the environment to generate one or more reference signatures for each known location, and then compare an unknown signature to each reference signature to determine the person's current location in the environment.

[0013] More specifically, and often not limited to these, a relatively short path to a location within an environment, such as a doorway or other entrance, a room or other defined space, is different from a relatively short path to another nearby location within that environment. For example, when a person enters a building at a controlled entrance point (e.g., a known location), that person may walk a certain number of steps in a particular direction before arriving at and entering their office, which is different from one or more directions and / or number of steps that the person might take to enter another office or a particular meeting room within the building. Another example is when a person enters their own home; the path they take to get to the kitchen (e.g., a certain one or more directions and / or number of steps) is different from the path they take to get to the family room. In this way, the path a person takes while approaching a location of interest (LOI) becomes the "signature" of the LOI. Therefore, instead of attempting to use multiple readings from an IMU held or carried by the person to sequentially estimate the person's path using integral calculus (which is prone to significant errors accumulating over time and distance), a sequence of steps completed by the person relatively immediately before reaching a LOI (e.g., a specific one or more directions and / or number of steps) can be used as the current path signature, or used to generate a current path signature. Such a current path signature will be different from the path signatures corresponding to other locations of interest (LOIs) in the same environment. The current path signature may be compared to a set of previously generated reference path signatures 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] Referring to Figure 1, an exemplary environment 100 is shown, which includes several distinct LOIs 102, 104, 106, 108, and 110. The LOIs may be any location within environment 100, such as a room, office, or other defined space (e.g., LOIs 104, 106, and 108), a doorway, or other entrance (e.g., LOIs 102 and 110). Persons or users 112 in or entering environment 100 may hold or carry a device 114 having 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 an object or body, the orientation of an object or body, and / or the magnetic field around an object or body. In the example, the IMU may include one or more of the following: an accelerometer (e.g., a 3-axis accelerometer), a gyroscope (e.g., a 3-axis gyroscope), a magnetometer (e.g., a 3-axis magnetometer), or any other suitable sensor for measuring or sensing a specific force or acceleration of an object or body, the angular velocity of an object or body, the orientation of an object or body, and / or a magnetic field around an object or body. Device 114 may be, or include, a personal computer (PC), a tablet PC, a personal digital assistant (PDA), a mobile phone, or a smartphone, for example, but not limited to these. Some exemplary environments 100 may further include a network 116 on which device 114 can communicate with one or more server devices 118.Exemplary networks suitable for network 116 may include, among others, local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile phone networks (e.g., cellular networks), plain old telephone (POT) networks, wireless data networks (e.g., IEEE 802.11 family standards known as Wi-Fi, or IEEE 802.16 family standards known as WiMAX), networks based on IEEE 802.15.4 family standards, and / or peer-to-peer (P2P) networks.

[0015] Figure 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 one or any part thereof of any of the methods described herein. The examples described herein may generally include, or be operated by, logic or components, modules, or mechanisms within the machine 200. The modules may be hardware, software, or firmware communicatively connected to one or more processors to perform the operations described herein. Generally, the circuits of the exemplary machine 200 (e.g., processing circuits) include a collection of circuits implemented within a tangible entity of the machine, including hardware (e.g., simple circuits, gates, logic, etc.). Circuit membership may be flexible over time. The circuits include members that can perform defined operations when operating individually or in combination. In some examples, the hardware of the circuits may be designed invariantly to perform specific operations (e.g., they may be wired together). In some examples, the hardware of a circuit may include a variable arrangement of physical components (e.g., execution units, transistors, simple circuits, etc.) connected in a variable manner, which may include a machine-readable medium that has been physically modified to encode instructions for a specific operation (e.g., a magnetically and electrically kinetic arrangement of invariant mass particles, etc.). When connecting physical components, the underlying electrical properties of the hardware components may be changed, for example, from insulator to conductor, or vice versa. The instructions allow embedded hardware (e.g., an execution unit or loading mechanism) to generate members of the circuit within the hardware via variable connections to perform a specific part of an operation during operation. Thus, in some examples, the machine-readable medium element may be part of the circuit or communicatively coupled to other components of the circuit when the device is operating. In some examples, any of the physical components may be used within multiple members of multiple circuits.For example, during operation, the execution unit can be used within the first circuit of the first circuit configuration at one point in time, and can be reused at a different point in time by the second circuit within the first circuit configuration, or by the third circuit within the second circuit. Additional and / or more specific examples of components relating to machine 200 are shown below.

[0016] In some embodiments, machine 200 can operate as a standalone device or can be connected to other machines (e.g., networked). In a networked deployment, machine 200 can operate within the capabilities of a server machine, a client machine, or within 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 may be, for example, a PC, tablet PC, PDA, mobile phone, web appliance, network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that define the actions performed by that machine. Furthermore, although only a single machine is shown, the term “machine” should be interpreted to also include any collection of machines that individually or collaboratively execute one or more sets of instructions to perform any one or more of the methods described herein, such as cloud computing, Software as a Service (SaaS), or other computer cluster configurations. In one example, machine 200 may include a combination of device 114 and server 118.

[0017] The machine (e.g., a 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), main memory 204, static memory (e.g., firmware, microcode, basic input / output (BIOS), UEFI (Unified Extensible Firmware Interface), 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 can communicate with each other via an interlink (e.g., a bus) 234. The machine 200 may further include a display device 210 and an input device 212 and / or a user interface (UI) navigation device 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, input device 212, and / or UI navigation device 214 may be a combined unit such as a touchscreen display. The machine 200 may further include a signal generator 218 (e.g., a speaker), a network interface device 220, and one or more sensors 216 such as a Global Positioning System (GPS) sensor, compass, 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) for communicating with or controlling one or more peripheral devices (e.g., a printer, card reader, etc.).

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

[0019] Any of the memories 204, 206, or 208 may be used in connection with application programming or instruction execution by the processor 202, and for temporary or long-term storage of program instructions or instruction sets 224 and / or other data. Any of the memories 204, 206, or 208 may include computer-readable media, which may be any medium that can contain, store, communicate, or transfer data, program code, or instructions 224 used by or in connection with the machine 200. Computer-readable media may be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices. More specific examples of suitable computer-readable media include, but are not limited to, electrical connections having one or more wires, or tangible storage media such as portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or EEPROM), dynamic RAM (DRAM), solid-state storage devices, commonly compact disk read-only memory (CD-ROM), or other optical or magnetic storage devices. Computer-readable media, though not to be confused with it, includes computer-readable storage media intended to cover all physical, non-temporary, or similar embodiments of computer-readable media.

[0020] The network interface device 220 includes hardware that enables communication with other devices over a communication network such as network 160 using one of several transport protocols (e.g., Frame Relay, Internet Protocol (IP), Transmit Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Exemplary communication networks may include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile phone networks (e.g., cellular networks), POTS (Plain Old Telephone) networks, wireless data networks (e.g., the IEEE 802.11 standard family known as Wi-Fi®, the IEEE 802.16 standard family known as WiMax®), networks based on the IEEE 802.15.4 standard family, and peer-to-peer (P2P) networks. In some examples, the 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., an antenna, filter, and associated circuitry), etc. In some examples, the network interface device 220 may include one or more antennas to wirelessly communicate using, for example, at least one of the Single-Input Multiple-Output (SIMO), Multiple-Input Multiple-Output (MIMO), or Multiple Input Single Output (MISO) techniques.

[0021] Antenna 230 can correspond to one or more antennas and may be configured to provide wireless communication between any of the devices described herein, such as direct or indirect wireless communication between device 114, server 118, and / or IoT devices (e.g., devices 142, 144, 146, 148, 150, 152, 154, which are described in more detail below). 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. As an example, one or more antennas 230 may be RF antennas and thus transmit / receive RF signals over free space that are received / transmitted by another device having an RF transceiver.

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

[0023] One or more sensors 216 can include any suitable sensor or sensors. As described above, in the examples of this specification, one or more sensors 216 can include an IMU. The IMU can include an accelerometer, a gyroscope, a magnetometer, or one or more of any other suitable sensors for measuring or sensing specific forces or accelerations of an object or body, angular velocities of an object or body, orientations of an object or body, and / or magnetic fields around an object or body. Other suitable sensors 216 for machine 200 can include, for example, a global positioning system (GPS) sensor or a compass.

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

[0025] Although various exemplary components of exemplary machine 200 have been described and illustrated, not all components are required in each machine or device described in this specification, and the machines or devices described in this specification are not limited to including only the exemplary components described and illustrated herein. For example, any of the various devices described in this specification, such as device 114 or server 118, may comprise a different set and / or combination of the exemplary components described and illustrated herein.

[0026] FIG. 3 is a flowchart generally showing an exemplary method 300 for calibrating an environment, such as the exemplary environment 100 of FIG. 1, for later use in a method of identifying or recognizing a person's position based on signals from an IMU held or carried by a person. In step 302, one or more LOIs 102, 104, 106, 108, 110 can be identified or determined, such as by the user 112 bringing the 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 can 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 LOIs, and an approach or approach path can include a path of any suitable distance preceding, and in some cases immediately preceding, the LOI. For example, if a room can be approached from either of two directions from a hallway, multiple reference path signatures can be collected for each of these directions. In some examples, steps 302 and 304 can be performed substantially simultaneously in that, for example, multiple LOIs 102, 104, 106, 108, 110 can be dynamically identified or determined as one or more reference path signatures are being 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 device 114 is transported 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 device 114 is transported by a user 112, etc., from a known starting point to the given LOI (e.g., 104), the device can 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 appropriate intervals, such as substantially continuously, periodically, randomly, or according to any other repeating or non-repeating patterns or algorithms. As described above, the IMU of device 114 may include one or more of the following: an accelerometer, a gyroscope, a magnetometer, or any other suitable sensor. A set 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 one or more of the various sensors of the IMU, or one or more combinations thereof, such as concatenation or mathematical combinations, where one or more combinations include multidimensional temporal sequences of readings from multiple sensors of any of the various sensors of the IMU. 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, in order to compensate for the different orientations and positions of the device 114 relative to the user 112's body and / or the ground, floor, or ground surface, in one example, the raw IMU readings in a 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) can be normalized or standardized. That is, in one example, the recorded series of IMU readings corresponding to each distinct path, approach, or part thereof can be converted from the device 114's local coordinate system (e.g., phone-local coordinate system) to a normalized coordinate system such as an Earth-referenced coordinate system (i.e., Earth-local coordinate system) or a coordinate system based on some other known or fixed reference coordinate system. In other examples, the IMU readings can be normalized or standardized according to any suitable method or means and / or based on any suitable reference coordinate system. For example, IMU readings can be normalized by applying sensor fusion and / or filtering, and / or by using gravity and magnetic north to rotate the signal to a standard reference coordinate system independent of the orientation of 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 normalized or standardized set of IMU readings for the path, approach, or part thereof can 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 part thereof may simply consist of a concatenation or other appropriate combination of normalized or standardized IMU readings for the path, approach, or part thereof. For example, the reference path signature for a given path (e.g., 120, 126), approach (e.g., 130), or part thereof may simply consist of a concatenation or combination of normalized or standardized accelerometer and / or gyroscope readings of the IMU corresponding to the path, approach, or part thereof. In another example, accelerometer and / or gyroscope readings from an IMU, or more generally, normalized or standardized readings from multiple sensors of the IMU's various sensors, may be combined into a multidimensional time sequence, which can be used as a reference signature for a given path (e.g., 120, 126), approach (e.g., 130), or a portion thereof. Of course, path signatures can also be created using other readings or signals in addition to, or instead of, readings from the accelerometer or gyroscope. For example, the complexity of some environments, such as a physical layout including many bends, stairs, uniquely shaped rooms or corridors, rooms or corridors with unique spacing, or other physical features, can create environments where paths or approaches to various LOIs are substantially unique and different. However, in other environments, paths or approaches to many LOIs may not be so unique. In such an environment, for example, magnetometer readings or signals from the IMU may be used, either additionally or as an alternative, to form a reference path signature (e.g., alone, or concatenated or combined with other readings).This may be particularly advantageous in locations where the magnetic field changes or has anomalies, such as magnetic field anomalies caused by nearby equipment or structures, for example, but not limited to these. In some examples, the environment (e.g., 100) may intentionally provide magnetic markers 132, 134, 136, such as electromagnets or other suitable magnets of varying intensities and / or magnetic field directions, appropriately placed within the environment to help generate distinct path signatures or approach signatures to the Line of Interest (LOI).

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

[0031] Each reference route signature may be stored with an identifier and a label that associates the reference route signature with a given LOI (e.g., 104). The reference route signature may also be stored with any other appropriate 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 LOI 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 user 112 and / or device 114 first enter the environment 100. However, the training period may begin at any appropriate time in accordance with a training period start command received by device 114 from user 112, for example, but not limited to these. In the example, the training period may be a predetermined length of time, such as days or weeks, but not limited to these. In some examples, the training period may be indefinite or extended until a termination trigger event occurs. Termination trigger events may include, but are not limited to, a user 112 issuing a command to terminate the training period, for example via device 114; reaching a certain or predetermined number of LOIs; reaching a certain or predetermined number of reference path signatures; or reaching a limit on the device (e.g., 114), such as a specific memory capacity.

[0033] In step 314, during the training period, while the device 114 is carried throughout the environment 100 by a user 112 or the like, 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 start of the training period. For example, the user 112 may bring the device 114 to a specific or predetermined location in 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 point during the training period, user 112 can visit a location within environment 100 that the user wishes to add as an LOI, or bring device 114 with them. User 112 can then instruct device 114 to record or store such locations as LOIs. In another example, device 114 can automatically learn or identify multiple locations within environment 100 to include as LOIs. Device 114 can use any suitable method to learn or determine whether a location should be added as an LOI. For example, device 114 can learn or determine that a location should be included as an LOI because user 112 (with device 114) visits a particular location frequently, such as a predefined number of times, or because user 112 (with device 114) stays at a particular location over an extended or predefined period, for example, based on a machine learning model trained with a training dataset containing existing environment and LOI data or other suitable data, and / or based on any other suitable information. In some examples, device 114 may request confirmation input from user 112 before adding such learned locations as LOIs.

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

[0035] In step 316, the raw IMU readings in the recorded set of IMU readings corresponding to each distinct route or approach determined in step 314 can be normalized or standardized. The normalization or standardization of the raw IMU readings in step 316 may be performed in the same manner as described above with respect to step 308. In step 318, for each distinct route or approach determined in step 314, the normalized or standardized set of IMU readings for the route, approach, or part thereof may be stored as a reference route signature for the route or approach, or optionally, may 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 in the same manner as described above with respect to step 310.

[0036] 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 LOI and / or reference path signatures during a training or learning period. Such a training or learning period and determining the LOIs in environment 100 were 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 IoT (Internet-of-Things) devices, such as, for example, smart light bulbs (e.g., 142, 144, 146), smart switches (e.g., 148), smart thermostats (e.g., 150), smart locks (e.g., 152, 154), etc., for controlling other electronic devices such as lighting, appliances, televisions, stereo systems, fireplaces, etc. Device 114 can communicate directly (e.g., using Bluetooth, BLE, RF, infrared, etc.) or via network communication, such as through 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 as IoT devices in this specification for simplicity) in order 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 IoT devices may be learned or identified based on one or more changes in the state of one or more IoT devices while Device 114 is carried around the environment 100 during the training period. For example, a common correlation between smart light bulb 142 being turned on and user 112 (and device 114) being in LOI 104 may be learned or identified. Similarly, for example, a common correlation between both smart light bulb 144 and smart switch 148 (e.g., connected to a TV) being turned on and user 112 (and device 114) being in LOI 106 may be learned or identified.As yet another example, a common correlation can be learned or identified between a change in state of the thermostat 150 (e.g., lowering the temperature), the locking of the smart lock 154, and the user 112 (and device 114) being at LOI 110. Any other appropriate information, such as time, day of the week, and the order of affected IoT devices, can also be used to identify correlations. For example, a common correlation can be learned or identified between both the smart light bulb 144 and the smart switch 148 being turned off at night (e.g., around 9 p.m. to midnight) and the user 112 (and device 114) staying at LOI 104 until around 6 a.m. the following morning. The above correlations between user location and changes in IoT device state may be stored directly in or as part of a reference path signature, either alone or in combination with IMU readings (as described above), or as additional data associated with each reference path signature already determined based on IMU readings. In some examples, further processing of correlations may be performed before determining or generating the baseline path signature, or before storing it as additional data. Any appropriate 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 individually or in combination with each other. That is, any of the above exemplary methods for identifying multiple LOIs and / or collecting one or more reference path signatures for one or more LOIs can be used individually, but these methods are not mutually exclusive and can be used in any combination to determine reference path signatures within environment 100. Furthermore, the flowchart in Figure 3 shows an exemplary method that includes a sequence of steps or processes having a specific order of operation, but 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 this disclosure. The order of steps or process operations in the method shown in Figure 3 can be rearranged for some embodiments. Similarly, the method shown in Figure 3 may have additional steps or operations not included therein, or fewer steps or operations than those shown. Furthermore, many of the steps in the exemplary method in Figure 3 may 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 exemplary method in Figure 3 may be performed by the server 116, or by a combination of device 114 and server 116.

[0038] Once one or more reference path signatures have been collected for environment 100, these reference path signatures can be used to identify or recognize a person's location in the environment, or possibly their predicted future location, based on multiple IMU readings or signals from a device held or carried by the person and generated during the person's most recent or current path. Figure 4 is a flowchart illustrating an exemplary 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 environment 100 in Figure 1. In step 402, a user 112 enters environment 100, holding or carrying a device 114 having an IMU. The user 112 and / or device 114 may, but do not have to be, the same user and / or device(s) used to calibrate environment 100 as described above with respect to Figure 3. In step 404, while the device 114 is carried around the environment by the user 112, the device can record a time series of IMU readings or signals. The IMU readings or signals may be recorded at any appropriate interval, such as substantially continuously, periodically, randomly, or according to any other repeating or non-repeating pattern or algorithm. In step 406, in order to compensate for different orientations and positions of the device 114 relative to the user 112's body and / or the ground, floor, or ground surface, the raw IMU readings in a recorded set of IMU readings may, for example, be normalized or standardized. The normalization or standardization of the raw IMU readings in step 406 may be performed in the same manner as described above with respect to step 308 in Figure 3. In step 408, at any time t corresponding to the user's current position, at least a portion of the normalized or standardized set 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 position at time t (e.g., the user's current position 140 represented by the virtual line device).For example, the current route signature of user 112 can be identified or generated using any portion of a normalized or standardized series of IMU readings preceding time t. Similarly, multiple current route signatures of the route or approach 138 preceding the user's current location 140 may be identified or generated from multiple different portions or temporal periods of a normalized or standardized series of IMU readings preceding time t. Methods and examples for determining or generating route signatures based on IMU readings (e.g., for a reference route signature) have been described in relation to step 310 in Figure 3, and the same methods or examples may be used to identify or generate current route signatures.

[0039] In step 410, the current route signature can be compared or analyzed against one or more stored reference route signatures in environment 100 to determine whether the current route signature substantially matches, substantially aligns with, or corresponds to any reference route signature or any part thereof. For example, the current route signature can be compared or analyzed against one or more stored reference route signatures or any one or more parts thereof in environment 100 to determine whether the current route signature matches or aligns with any reference route signature or part thereof within a predefined or predetermined tolerance. Determining whether the current route signature substantially matches, substantially aligns with, or corresponds to a reference route signature or part thereof can be performed using any one or more suitable methods, one or more algorithms, or a combination thereof. For example, determining whether the current path signature substantially matches, aligns with, or corresponds to a reference path signature or a portion thereof can be performed using one or more methods or algorithms such as the k-nearest neighbors algorithm (k-NN), the Mahalanobis distance measure (either direct or after decomposition by, for example, principal component analysis (PCA)), decision trees, artificial neural networks (ANN), or dynamic time warping (DTW). As described above, path signatures (e.g., reference path signatures or current path signatures) can be represented symbolically using processing methods such as SAX or SFA.Such symbolic representations of current and reference path signatures may be compared using various classification methods, including, but are not limited to, bag-of-words models (e.g., unordered similarity), ordered similarity models such as the Levenshtein distance, or other suitable methods.

[0040] In step 412, if a “match” is determined between the current route signature and a stored reference route signature in environment 100, the current location 140 of user 112 (holding device 114) may be identified or recognized as corresponding to an LOI associated with the matching stored reference route signature. Alternatively or additionally, in step 412, if a “match” is determined between the current route signature and a portion of a stored reference route signature corresponding to a sub-part of a route, such as portion 156 of route 122 that goes to or leads to a given LOI (e.g., 106) but does not end at an LOI, the predicted future location of user 112 (holding device 114) may be identified or recognized as corresponding to an LOI (e.g., 106) associated with the matching stored reference route signature. Any other appropriate information or algorithms may also be used to help identify such predicted future locations. For example, it may be known that user 112 has access only to LOIs 106 and 108 (e.g., has access credentials for LOIs 106 and 108) and not to LOI 110. Therefore, if a "match" is determined between the current route signature and a stored reference route signature portion corresponding to portion 156 of route 122, it may be determined that LOI 106 is the user's expected future location, knowing that portion 156 does not correspond to LOI 108 (e.g., the only other place user 112 has access to), and in particular that the user does not have access to LOI 110 (part 156 may be aligned in another way). In some environments, reference route signatures or multiple portions thereof for two or more LOIs may not be easily distinguishable with sufficient precision.In the example, one way to address an environment where two or more LOIs may otherwise have similar reference path signatures or multiple parts thereof is to use magnetometer readings from the IMU of device 114, as described above, or to incorporate them into the reference path signature and current path signature, and optionally to place magnetic markers 132, 134, 136, such as electromagnets or other suitable magnets of varying intensities and / or magnetic field directions, appropriately placed in the environment (e.g., 100), to help create further distinctions between the path or approach signatures of various LOIs in the environment. In an additional or alternative example, a “match” between the current route signature and a stored reference route signature or portion thereof may rely on a determination that the current route signature substantially matches, substantially aligns with, or corresponds to a reference route signature or portion thereof, in combination with data on one or more preceding LOIs identified as having been visited by user 112 (holding device 114) and / or one or more reference route signatures corresponding to such one or more preceding LOIs. For example, if the user’s current route signature is determined to be similar to the stored reference route signature or portion thereof for LOI 110, and the stored reference route signature or portion thereof for LOI 102, then a “match” may be further determined based on data on one or more preceding LOIs determined to have been visited by user 112. For example, if it is determined that user 112 previously visited LOI 106, which is much closer to LOI 110 than to LOI 102, the most likely “match” for the current route signature may be determined to be the base route signature corresponding to LOI 110 or a portion thereof, rather than the base route signature corresponding to LOI 102 or a portion thereof. Any appropriate information about one or more preceding LOIs may be used, but is not limited to these, such as the proximity of one or more LOIs, or patterns of one or more previously visited users or other people involved in one or more preceding LOIs.

[0041] In some examples, various steps or combinations of steps in the exemplary method 400 may generally be performed continuously or substantially continuously, at predefined intervals, periodically, upon reception, detection, or identification of trigger events, and / or randomly, while a user 112 holding or carrying device 114 moves around the environment 100. For example, the step of comparing the current route signature with one or more reference route signatures or a portion 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 from the IMU of device 114, such as, for example, a reading over one second, a reading over two seconds, etc., to give a practical effect that generally 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 every predefined number of seconds (e.g., 10 seconds, 20 seconds, etc.) or minutes (e.g., every minute, 2 minutes, etc.), but not limited to these. 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 specific state of device 114, detection of a specific movement of device 114 or absence thereof, reception of a specific user input on device 114, or any other appropriate 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 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.Furthermore, if user input on device 114 is detected, for example, such as one or more taps or other actions received on 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 buffers, such as circular buffers, may be incorporated into exemplary method 400 to keep data about the user 112's current path or approach available over a longer period of time, although this is not limited to these examples.

[0042] In some examples, in addition to using multiple IMU readings to identify user 112's current route signature, or as an alternative to using multiple IMU readings to identify user 112's current route signature, user 112's current route signature may be identified as, or include, interactions with or state changes of one or more IoT devices. In certain examples, as user 112 (holding device 114) moves within environment 100, interactions or state changes of such IoT devices may be monitored or recorded. For example, as user 112 (holding device 114) moves within environment 100, it may be determined that smart light bulb 144 and smart switch 148 (connected to, for example, a TV) are turned on. Such interactions of one or more IoT devices or one or more monitored state changes may form at least part of the user 112's current route signature, and to determine or assist in determining whether there is a “match” between the user’s current route signature and a reference route signature, the user may compare or analyze against any one or more correlations stored or contained in one or more reference route signatures of the environment 100, as described above with respect to Figure 3.

[0043] In additional or other examples, as described above with respect to Figure 3, a correlation between user 112 and / or device 114 and one or more IoT devices may be used to identify any action or state change on any IoT device corresponding to the user's current path, and the IoT device may be controlled to take any such corresponding action or make any such corresponding state change. For example, according to steps 402-412, the user's current path can be identified and “matched” with a stored reference path signature or portion thereof in environment 100. The “matched” reference path signature or portion thereof may include additional data corresponding to one or more correlations with one or more IoT devices that are commonly associated with the “matched” reference path signature. For example, the “matched” reference path signature or portion thereof may be associated with correlation data indicating that user 112 is placed in LOI 106 or that the user’s future location is predicted to be LOI 106, and that both smart light bulb 144 and smart switch 148 (e.g., connected to a TV) are normally turned on. Therefore, device 114 can communicate with any one or more IoT devices associated with the correlation, directly or via a network, and / or optionally through one or more other computing devices such as a server 118, and can control or command the corresponding IoT devices to take actions identified by the correlation data. For example, following the above example in which user 112 is placed in LOI 106, the smart light bulb 144 and smart switch 148 can be automatically turned on for the user according to the corresponding correlation data. As another example, in a corporate or commercial environment, a reference route signature of a particular LOI corresponding to a controlled entrance leading to a corridor may be associated with correlation data indicating that the corridor lighting will or should be turned on when the controlled entrance is accessed.Therefore, 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 appropriate or verified authentication information to access the entrance, the corridor lighting may automatically turn on (if it is off) according to the corresponding correlated date.

[0044] The flowchart in Figure 4 illustrates an exemplary method that includes a sequence of steps or processes having a specific order of operation, but 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 this disclosure. The order of steps or process operations in the method shown in Figure 4 may be rearranged for some embodiments. Similarly, the method shown in Figure 4 may have additional steps or operations not included therein, or fewer steps or operations than those shown. Furthermore, many of the steps in the exemplary method of Figure 4 may be performed by device 114 and / or are described as being performed by device 114. However, in other examples, many of the steps in the exemplary method of Figure 4 may be performed by server 116, or by a combination of device 114 and server 116.

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

[0046] Additional examples Embodiment 1 is a subject relating to a non-temporary computer-readable medium containing executable program code, wherein the executable program code, when executed by one or more processors, causes one or more processors to perform the following actions: identify one or more locations of interest (LOIs) in an environment; determine a reference path signature for each of the one or more LOIs; and store each reference path signature along with data indicating which LOI the reference path signature corresponds to.

[0047] In Example 2, the subject of Example 1 optionally includes, for each of the one or more LOIs, identifying one or more LOIs in the environment by receiving a command from a device at a unique location in the environment and identifying the unique location as an LOI.

[0048] In Example 3, the subject of Example 1 optionally includes identifying one or more LOIs in the environment by initiating a training period in which one or more LOIs are dynamically learned based on multiple locations as the device moves across the environment.

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

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

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

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

[0053] In Example 8, the subject of Example 7 optionally includes the fact that 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 direction of travel data corresponding to the user's path.

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

[0055] In Example 10, the subject matter of any of Examples 7 to 9 optionally includes the fact that the processed signal data includes a normalized set of signal symbol approximations based on at least one of SAX (Symbolic Aggregate approXimation) or SFA (Symbolic Fourier Approximation).

[0056] In Example 11, the subject of any of Examples 4 to 10 optionally includes the provision that the IMU includes at least one of an accelerometer, a gyroscope, or a magnetometer. In Example 12, the subject of any of Examples 4 to 11 optionally includes the fact that a series of signals from the IMU includes signals from at least one of an accelerometer, a gyroscope, or a magnetometer.

[0057] In Example 13, the subject of any of Examples 4 to 12 optionally includes the fact that a series of signals from the IMU includes a combination of signals from two or more of the following: an accelerometer, a gyroscope, or a magnetometer.

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

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

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

[0061] In Example 17, the subject of Example 16 optionally includes the inertial measurement unit (IMU) being included in the device. In Example 18, the subject of Example 17 optionally includes the provision that 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, to identify the current path signature of the device, receiving a series of signals from the IMU while the IMU is carried along the user's path in the environment.

[0063] In Example 20, the subject of Example 19 optionally further includes defining a normalized set of signals by normalizing at least a portion of a set of signals from the IMU to a defined reference coordinate system in the environment, thereby identifying the current path signature of the device.

[0064] In Example 21, the subject of Example 20 optionally further includes determining the current path signature of the device by obtaining a normalized set 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 further includes, to identify the current path signature of the device, processing a normalized set 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 a given LOI.

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

[0067] In Example 24, the subject matter of Example 22 or 23 optionally includes the fact that the processed signal data includes a normalized set of signal approximations based on PAA (Piecewise Aggregate Approximation).

[0068] In Example 25, any one of the themes from Examples 22 to 24 optionally includes the fact that the processed signal data includes a normalized set of signal symbol approximations based on at least one of SAX (Symbolic Aggregate approXimation) or SFA (Symbolic Fourier Approximation).

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

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

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

[0072] In Example 29, any one subject from Examples 16 to 28 optionally includes the fact that identifying the device's current path signature is performed substantially continuously or periodically during the period in which the device is moving within the environment.

[0073] In Example 30, any one of the themes from Examples 16 to 28 optionally includes the fact that identifying the device's current routing signature is performed when a trigger event is identified.

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

[0075] In Example 32, any one of the themes from Examples 16 to 30 optionally includes the condition that when a trigger event is identified, the current route signature is compared with at least a portion of a stored reference route signature.

[0076] In Example 33, any one of the themes from Examples 16 to 32 optionally includes the executable program code causing one or more processors to identify a correlation between an LOI and the state of an IoT (Internet-of-Things) 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 signatures, causing a state change of the IoT device based on the state of the IoT device corresponding to the correlation.

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

[0078] Example 35 includes a subject (such as a method) for determining the location of a device in an environment. This method includes determining the current path signature of a device moving in an environment, comparing the current path signature with at least a portion of stored reference path signatures corresponding to a location of interest (LOI) in the environment, and determining that the location of the device is the same as the location of the LOI in the environment if it is determined that the current path signature corresponds to at least a portion of the stored reference path signatures.

[0079] Additional notes The above detailed description includes references to accompanying drawings that form part of the detailed description. The drawings illustrate certain embodiments that may be carried out. 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 envision examples in which only the shown or described elements are provided. Furthermore, the inventors also envision examples (or one or more embodiments) that use any combination or permutation of the shown or described elements in relation to a particular example (or one or more embodiments thereof) or in relation to other examples (or one or more embodiments thereof) shown or described herein. That is, the above embodiments or examples, or one or more embodiments, features, or elements may be used in combination with each other.

[0080] As will be understood by those skilled in the art, various embodiments of the Disclosure may be embodied as methods (e.g., including computer implementation processes, business processes, and / or any other processes), apparatus (e.g., including systems, machines, devices, computer program products, and / or equivalents), or combinations thereof. Accordingly, embodiments or parts thereof of the Disclosure may take the form of entirely hardware embodiments, entirely software embodiments (including firmware, middleware, microcode, hardware description languages, etc.), or embodiments combining software and hardware aspects. Furthermore, embodiments of the Disclosure may take the form of computer program products on a computer-readable medium or computer-readable storage medium having computer-executable program code embodied in the medium that defines the processes or methods described herein. One or more processors may perform the required tasks defined by the computer-executable program code. In the context of the Disclosure, computer-readable medium may be any medium on which programs for use by or in connection with the systems disclosed herein can be contained, stored, communicated, or transported. As stated above, computer-readable media may, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices. More specific examples of suitable computer-readable media include, but are not limited to, electrical connections having one or more wires, or tangible storage media such as portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or EEPROM), compact disk read-only memory (CD-ROM), or other optical, magnetic, or solid-state storage devices. As stated above, computer-readable media includes computer-readable storage media intended to cover all physical, non-temporary, or similar embodiments of computer-readable media, but should not be confused with them.

[0081] In the foregoing description, various embodiments of the present disclosure have been presented for illustrative and explanatory purposes. They are not intended to be exhaustive or to limit the invention to the exact forms disclosed. Obvious modifications or alterations are possible in light of the foregoing teachings. The various embodiments have been selected and described to provide the best examples of the principles of the present disclosure and their practical applications, and to enable those skilled in the art to utilize the various embodiments with various modifications to suit a particular intended use. All such modifications and alterations are within the scope of the present disclosure as defined by the appended claims, if interpreted in accordance with the fair, legal and equitable scope to which they are rightfully, legally and impartially.

Claims

1. A method for setting one or more reference path signatures in an environment, Identifying one or more target locations (LOIs) within the environment, wherein identifying one or more LOIs within the environment includes, for each of the one or more LOIs, receiving a command from a device operated by a user at a unique location within the environment, and identifying the unique location as an LOI. Determine a reference path signature for each of the one or more LOIs mentioned above, A method comprising storing each reference path signature together with data indicating which LOI the reference path signature corresponds to.

2. Identifying one or more LOIs within the aforementioned environment The method according to claim 1, comprising initiating a training period in which one or more LOIs are dynamically learned based on multiple locations as the device moves across the environment.

3. Determining the reference path signature for each of the one or more LOIs is The method according to claim 1, comprising receiving a series of signals from an inertial measuring unit (IMU) that is moved to a given LOI among the one or more LOIs along a user's path in the environment.

4. Determining the reference path signature for each of the one or more LOIs is The method according to claim 3, further comprising normalizing at least a portion of the series of signals from the IMU to a defined reference coordinate system in the environment with respect to a given LOI.

5. Determining the reference path signature for each of the one or more LOIs is The method according to claim 4, further comprising determining the normalized series of signals for a given LOI 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 is With respect to the given LOI, the process involves processing the normalized series of signals to obtain the processed signal data, The method according to 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. The method according to claim 6, wherein the processed signal data includes at least one of step data corresponding to the user's route, stride length data corresponding to the user's route, and direction of travel data corresponding to the user's route.

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

9. The method according to claim 6, wherein the processed signal data includes a normalized series of signal symbol approximations based on at least one of SAX (Symbolic Aggregate approXimation) or SFA (Symbolic Fourier Approximation).

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

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

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

13. Determining the reference path signature for each of the one or more LOIs is The method according to claim 1, comprising determining a correlation between at least one of a user and a device located in a given LOI among the one or more LOIs, and the state of an IoT (Internet-of-Things) device located in the environment.

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

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