Indoor positioning using state machine
By combining UWB DL-TDoA measurement and motion sensor information into a state machine positioning method, the problems of poor accuracy and insufficient multi-user adaptability in existing technologies are solved, and robust indoor positioning performance is achieved.
Patent Information
- Application Number
- CN202480023350.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-03
- Filing Date
- 2024-04-12
- Publication Date
- 2025-11-04
AI Technical Summary
Existing indoor positioning technologies such as Bluetooth and Wi-Fi have poor accuracy, while UWB-based positioning technology, although accurate, is not suitable for multi-user scenarios. Furthermore, DL-TDoA technology cannot serve multiple users simultaneously and has privacy issues.
A state machine is used in conjunction with UWB DL-TDoA measurements and motion sensor information. The object position is determined by a tracking filter state machine. An EKF-RW+SH state machine is used to switch states to handle multipath and occlusion. The positioning is performed by combining UWB measurements and step heading information.
It achieves robust and accurate indoor positioning in multi-user scenarios, overcomes the effects of multipath and occlusion, and provides efficient location estimation.
Smart Images

Figure CN120898148A_ABST
Abstract
Description
Technical Field
[0001] This disclosure generally relates to wireless communication systems. Embodiments of this disclosure relate to methods and apparatus for indoor positioning of objects using a state machine. Background Technology
[0002] Indoor positioning has become increasingly popular over the past decade with its application in smart homes and commercial facilities. While most existing indoor positioning technologies, such as Bluetooth and Wi-Fi, suffer from poor accuracy, ultra-wideband (UWB) offers robust and accurate indoor positioning solutions. UWB-based positioning technologies typically use two-way ranging (TWR) or time of arrival (ToA). However, these technologies cannot accommodate multiple users simultaneously and are therefore not very scalable. On the other hand, in downlink time difference of arrival (DL-TDoA), the target does not communicate directly with the UWB anchor but only listens for downlink messages from the anchor. Therefore, DL-TDoA not only serves multiple users simultaneously but also does not pose any privacy concerns. Summary of the Invention
[0003] Technical solution Embodiments of this disclosure provide a method and apparatus for indoor positioning of objects using a state machine.
[0004] In one embodiment, a method includes: for each of a series of time intervals, determining: (i) whether at least one wireless signal measurement is received during the time interval, wherein each wireless signal measurement is associated with a pair of anchors, and (ii) whether at least one step is detected during the time interval. The method further includes: selecting a state of a tracking filter state machine based on whether the at least one wireless signal measurement is received and whether the at least one step is detected during the time interval. The method further includes: determining the location of an object using the selected state using the tracking filter state machine.
[0005] In another embodiment, an apparatus includes a transceiver and a processor operatively connected to the transceiver. The processor is configured to: for each of a series of time intervals, determine: (i) whether at least one wireless signal measurement is received during the time interval, wherein each wireless signal measurement is associated with a pair of anchors, and (ii) whether at least one step is detected during the time interval; select a state of a tracking filter state machine based on whether the at least one wireless signal measurement is received and whether the at least one step is detected during the time interval; and determine the location of an object using the selected state and the tracking filter state machine.
[0006] In another embodiment, a non-transitory computer-readable medium includes program code, wherein, when executed by a processor of a device, the program code causes the device to: for each of a series of time intervals, determine: (i) whether at least one wireless signal measurement is received during the time interval, wherein each wireless signal measurement is associated with a pair of anchors, and (ii) whether at least one step is detected during the time interval; select a state of a tracking filter state machine based on whether the at least one wireless signal measurement is received and whether the at least one step is detected during the time interval; and determine the location of an object using the selected state and the tracking filter state machine.
[0007] Other technical features will be apparent to those skilled in the art from the following figures, description and claims.
[0008] Before proceeding with the detailed embodiments below, it may be advantageous to define the specific words and phrases used throughout this patent document. The term “coupled” and its derivatives refer to any direct or indirect communication between two or more elements, regardless of whether these elements are physically in contact with each other. The terms “transmit,” “receive,” and “communicate,” and their derivatives include both direct and indirect communication. The terms “comprising” and “including,” and their derivatives refer to unrestricted inclusion. The term “or” is inclusive, referring to and / or. The phrase “associated with” and its derivatives refer to including, being included within, interconnected with, containing, being contained within, connected to or connected to, coupled to or coupled with, communicable with, cooperating with, intertwined, juxtaposed, proximate, bound to or bound with, having, possessing the properties of, having a relationship to, or having a relationship with, etc. The term “controller” refers to any device, system, or part thereof that controls at least one operation. Such a controller may be implemented in hardware, or a combination of hardware and software and / or firmware. The functionality associated with any particular controller can be centralized or distributed, local or remote. When used with a list of items, the phrase “at least one of…” indicates that different combinations of one or more of the listed items may be used, and that only one item from the list may be required. For example, “at least one of A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C. As used herein, terms such as “first” and “second” or “first” and “second” can be used to simply distinguish one component from another without otherwise limiting the components (e.g., importance or order). It will be understood that if an element (e.g., a first element) is referred to as “coupled to another element (e.g., a second element)”, “coupled to another element (e.g., a second element)”, “connected to another element (e.g., a second element)”, or “connected to another element (e.g., a second element)” when the terms “operably” or “communicatingly” are used, or when the terms “operably” or “communicatingly” are not used, it means that the element can be directly (e.g., wiredly) coupled to the other element, wirelessly coupled to the other element, or coupled to the other element via a third element.
[0009] As used herein, the term "module" can include a unit implemented in hardware, software, or firmware, and is used interchangeably with other terms such as "logic," "logic block," "component," or "circuit." A module can be a single integrated component adapted to perform one or more functions, or the smallest unit or component of such a single integrated component. For example, according to embodiments, a module can be implemented in the form of an application-specific integrated circuit (ASIC).
[0010] Furthermore, the various functions described below may be implemented or supported by one or more computer programs, each of which is formed by computer-readable program code and implemented in a computer-readable medium. The terms "application" and "program" refer to one or more computer programs, software components, instruction sets, procedures, functions, objects, classes, instances, associated data, or portions thereof adapted to be implemented in suitable computer-readable program code. The phrase "computer-readable program code" includes any type of computer code, including source code, object code, and executable code. The phrase "computer-readable medium" includes any type of medium accessible by a computer, such as read-only memory (ROM), random access memory (RAM), hard disk drive, optical disc (CD), digital video disc (DVD), or any other type of storage. "Non-transitory" computer-readable media does not include wired, wireless, optical, or other communication links that transmit transient electrical or other signals. Non-transitory computer-readable media includes media that permanently store data and media that store data and can be rewritten later (such as rewritable optical discs or erasable memory devices).
[0011] Definitions of other specific words and phrases are provided throughout this patent document. Those skilled in the art will understand that, in many cases (if not most), these definitions apply to the previous and future use of the words and phrases so defined. Attached Figure Description
[0012] To gain a more complete understanding of this disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, wherein like reference numerals denote like parts: Figure 1 Example wireless networks according to various embodiments of this disclosure are shown; Figure 2A Example APs are shown according to various embodiments of this disclosure; Figure 2B Example STAs are shown according to various embodiments of this disclosure; Figure 3 Example networks that can perform DL-TDoA according to various embodiments of this disclosure are shown; Figure 4 Example systems for performing indoor positioning according to various embodiments of the present disclosure are shown; Figure 5 Various embodiments of the present disclosure are shown. Figure 4 The example error model used in the system for EKF-SH; Figure 6 Various embodiments of the present disclosure are shown. Figure 4 The example EKF-RW+SH state machine used in the system; Figure 7 Various embodiments of the present disclosure are shown for determining at the end of each ranging round. Figure 6 Example process of the state of the EKF-RW+SH state machine; Figure 8 Example timelines illustrating EKF-RW+SH state changes for an example set of UWB measurement reception and step detection according to various embodiments of the present disclosure; Figure 9 Example timelines are shown illustrating the calculation of scores for one or more EKF-RW+SH steps when a step is detected, according to various embodiments of the present disclosure; Figure 10 Example timelines are shown illustrating inference of the most recently detected step length without UWB measurement and step detection, according to various embodiments of the present disclosure; Figure 11 Example procedures are shown according to various embodiments of the present disclosure for determining the state of the EKF-RW+SH state machine dominated by UWB measurement; Figure 12 and Figure 13 Example procedures for outlier removal and EKF-RW+SH according to various embodiments of this disclosure are shown; and Figure 14 A flowchart illustrating a method for indoor positioning of an object using a state machine according to various embodiments of the present disclosure is shown. Detailed Implementation
[0013] The following discussion Figures 1 to 14 The various embodiments described in this patent document to illustrate the principles of this disclosure are merely illustrative and should not be construed in any way as limiting the scope of this disclosure. Those skilled in the art will understand that the principles of this disclosure can be implemented in any suitably arranged system or apparatus.
[0014] The aspects, features, and advantages of this disclosure will be apparent from the following detailed description simply by illustrating several specific embodiments and implementations, including the best mode contemplated for carrying out this disclosure. This disclosure is also capable of having other and different embodiments, and several details thereof may be modified in various obvious ways without departing from the spirit and scope of this disclosure. Therefore, the drawings and description are to be considered illustrative in nature and not restrictive. This disclosure is illustrated in the accompanying figures by way of example rather than limitation.
[0015] This disclosure covers several components that can be used in combination or together with each other, or that can operate as independent solutions. Specific embodiments of this disclosure can be derived by utilizing combinations of the several embodiments listed below. Furthermore, it should be noted that further embodiments can be derived by utilizing specific subsets of the operational steps disclosed in each of these embodiments. This disclosure should be understood to cover all such embodiments.
[0016] Figure 1 An example wireless network 100 is shown according to various embodiments of the present disclosure. Figure 1 The embodiment of the wireless network 100 shown is for illustrative purposes only. Other embodiments of the wireless network 100 may be used without departing from the scope of this disclosure.
[0017] Wireless network 100 includes access point (AP) 101 and access point (AP) 103. AP 101 and AP 103 communicate with at least one network 130, such as the Internet, a proprietary Internet Protocol (IP) network, or other data network. AP 101 provides wireless access to network 130 to multiple stations (STAs) 111-114 within its coverage area 120. AP 101-AP 103 can communicate with each other and with STAs 111-STA 114 using Wi-Fi or other WLAN (Wireless Local Area Network) communication technologies. STAs 111-STA 114 can communicate with each other using peer-to-peer protocols such as Tunnel Direct Link Establishment (TDLS).
[0018] Depending on the network type, other well-known terms (such as "router" or "gateway") may be used instead of "access point" or "AP". For convenience, the term "AP" is used in this disclosure to refer to a network infrastructure component that provides wireless access to remote terminals. In a WLAN, assuming that the AP also contends for a wireless channel, the AP may also be referred to as a STA. Furthermore, depending on the network type, other well-known terms (such as "mobile station", "user station", "remote terminal", "user equipment", "wireless terminal", or "user device") may be used instead of "station" or "STA". For convenience, the terms "station" and "STA" are used in this disclosure to refer to a remote wireless device that wirelessly accesses an AP or contends for a wireless channel in a WLAN, whether the STA is a mobile device (such as a mobile phone or smartphone) or is generally considered a stationary device (such as a desktop computer, AP, media player, stationary sensor, television, etc.).
[0019] The dashed lines indicate the approximate extent of coverage areas 120 and 125, which are shown as approximately circular for illustrative and explanatory purposes only. It should be clearly understood that the coverage areas associated with the AP (such as coverage areas 120 and 125) may have other shapes (including irregular shapes) depending on the AP configuration and variations in the radio environment associated with natural and man-made obstacles.
[0020] As described in more detail below, one or more APs may include circuitry and / or programming to enable indoor positioning of objects using a state machine. Although Figure 1 An example of a wireless network 100 is shown, but it is possible to modify it. Figure 1 Various modifications can be made. For example, wireless network 100 can include any number of APs and any number of STAs in any suitable arrangement. Furthermore, AP 101 can communicate directly with any number of STAs and provide those STAs with wireless broadband access to network 130. Similarly, each AP 101 and AP 103 can communicate directly with network 130 and provide STAs with direct wireless broadband access to network 130. Additionally, AP 101 and / or AP 103 can provide access to other or additional external networks, such as external telephone networks or other types of data networks.
[0021] Figure 2A Example AP 101 is shown according to various embodiments of the present disclosure. Figure 2A The embodiment of AP 101 shown is for illustrative purposes only, and Figure 1 AP 103 can have the same or similar configuration. However, APs have a wide variety of configurations, and Figure 2A This disclosure is not intended to limit the scope to any particular implementation of AP.
[0022] AP 101 includes multiple antennas 204a-204n and multiple transceivers 209a-209n. AP 101 also includes a controller / processor 224, a memory 229, and a backhaul or network interface 234. Transceivers 209a-209n receive incoming radio frequency (RF) signals (such as signals transmitted by STAs 111-114 in network 100) from antennas 204a-204n. Transceivers 209a-209n down-convert the incoming RF signals to generate IF or baseband signals. The IF or baseband signals are processed by receive (RX) processing circuitry in transceivers 209a-209n and / or controller / processor 224, whereby the receive (RX) processing circuitry in transceivers 209a-209n and / or controller / processor 224 generates processed baseband signals by filtering, decoding, and / or digitizing the baseband or IF signals. Controller / processor 224 may also process the baseband signals.
[0023] The transmit (TX) processing circuitry in transceivers 209a-209n and / or controller / processor 224 receives analog or digital data (such as voice data, network data, email, or interactive video game data) from controller / processor 224. The TX processing circuitry encodes, multiplexes, and / or digitizes the outgoing baseband data to generate a processed baseband or IF signal. Transceivers 209a-209n up-convert the baseband or IF signal into an RF signal transmitted via antennas 204a-204n.
[0024] The controller / processor 224 may include one or more processors or other processing devices that control the overall operation of the AP 101. For example, the controller / processor 224 may control the transceivers 209a-209n to receive forward channel signals and transmit reverse channel signals according to well-known principles. The controller / processor 224 may also support additional functions, such as more advanced wireless communication functions. For example, the controller / processor 224 may support beamforming or directional routing operations that differentiate the outgoing signals from multiple antennas 204a-204n to effectively direct the outgoing signals in a desired direction. The controller / processor 224 may also support OFDMA operations that distribute outgoing signals to different subsets of subcarriers for different receivers (e.g., different STAs 111-STA 114). Any of a wide variety of other functions (including indoor positioning of objects using state machines) may be supported in the AP 101 by the controller / processor 224. In some embodiments, the controller / processor 224 includes at least one microprocessor or microcontroller. The controller / processor 224 is also capable of executing programs and other processes (such as an OS) residing in the memory 229. The controller / processor 224 can move data into or out of the memory 229 as needed for execution.
[0025] The controller / processor 224 is also coupled to a backhaul or network interface 234. The backhaul or network interface 234 allows the AP 101 to communicate with other devices or systems via a backhaul connection or over a network. Interface 234 may support communication via any suitable wired or wireless connection. For example, interface 234 may allow the AP 101 to communicate via a wired or wireless LAN or via a wired or wireless connection to a larger network, such as the Internet. Interface 234 includes any suitable construct (such as an Ethernet or RF transceiver) that supports communication via a wired or wireless connection. Memory 229 is coupled to the controller / processor 224. A portion of memory 229 may include RAM, and another portion of memory 229 may include flash memory or other ROM.
[0026] As described in more detail below, AP 101 may include circuitry and / or procedures for indoor positioning of objects using a state machine. Although Figure 2A An example of AP 101 is shown, but it is possible to compare it with other versions. Figure 2A Various changes can be made. For example, AP 101 can include any number of... Figure 2A Each component is shown. As a specific example, an access point may include multiple interfaces 234, and the controller / processor 224 may support routing capabilities for data between different network addresses. Alternatively, such as in a conventional AP, only one antenna and transceiver path may be included. Furthermore, Figure 2A The various components can be combined, further subdivided, or omitted, and additional components can be added as needed.
[0027] Figure 2B Example STA 111 is shown, illustrating various embodiments according to this disclosure. Figure 2B The embodiment of STA 111 shown is for illustrative purposes only, and Figure 1 STA 112-STA 114 may have the same or similar configurations. However, STAs have a wide variety of configurations, and Figure 2B This disclosure is not intended to limit the scope to any particular implementation of STA.
[0028] STA 111 includes an antenna 205, a transceiver 210, a microphone 220, a speaker 230, a processor 240, an input / output (I / O) interface (IF) 245, an input device 250, a display 255, and a memory 260. The memory 260 includes an operating system (OS) 261 and one or more applications 262.
[0029] Transceiver 210 receives an incoming RF signal (e.g., transmitted by AP 101 of network 100) from antenna 205. Transceiver 210 down-converts the incoming RF signal to generate an intermediate frequency (IF) or baseband signal. The IF or baseband signal is processed by RX processing circuitry in transceiver 210 and / or processor 240, wherein the RX processing circuitry in transceiver 210 and / or processor 240 generates a processed baseband signal by filtering, decoding, and / or digitizing the baseband or IF signal. The RX processing circuitry sends the processed baseband signal to speaker 230 (e.g., for voice data) or the processed baseband signal is processed by processor 240 (e.g., for web browsing data).
[0030] The TX processing circuitry in transceiver 210 and / or processor 240 receives analog or digital voice data from microphone 220 or other outgoing baseband data (such as network data, email, or interactive video game data) from processor 240. The TX processing circuitry encodes, multiplexes, and / or digitizes the outgoing baseband data to generate a processed baseband or IF signal. Transceiver 210 up-converts the baseband or IF signal into an RF signal transmitted via antenna 205.
[0031] Processor 240 may include one or more processors and executes a basic OS program 261 stored in memory 260 to control the overall operation of STA 111. In one such operation, processor 240 controls transceiver 210 to receive forward channel signals and transmit reverse channel signals according to well-known principles. Processor 240 may also include processing circuitry configured to implement indoor positioning of the object using a state machine. In some embodiments, processor 240 includes at least one microprocessor or microcontroller.
[0032] Processor 240 is also capable of executing other processes and programs residing in memory 260, such as operations for indoor positioning of objects using a state machine. Processor 240 may move data into or out of memory 260 as needed by the executing process. In some embodiments, processor 240 is configured to execute multiple applications 262, such as applications for indoor positioning of objects using a state machine. Processor 240 may operate multiple applications 262 based on OS program 261 or in response to signals received from AP. Processor 240 is also coupled to I / O interface 245, which provides STA 111 with the ability to connect to other devices, such as laptop computers and handheld computers. I / O interface 245 is the communication path between these accessories and processor 240.
[0033] Processor 240 is also coupled to input device 250 (including, for example, a touchscreen, keypad, etc.) and display 255. The operator of STA 111 can use input device 250 to input data into STA 111. Display 255 may be a liquid crystal display, a light-emitting diode display, or other display capable of displaying text and / or at least limited graphics (such as from a website). Memory 260 is coupled to processor 240. A portion of memory 260 may include random access memory (RAM), and another portion of memory 260 may include flash memory or other read-only memory (ROM).
[0034] although Figure 2B An example of STA 111 is shown, but it is possible to compare it with other models. Figure 2B Make various changes. For example, Figure 2BThe various components can be combined, further subdivided, or omitted, and additional components can be added as needed. In a specific example, STA 111 may include any number of antennas 205 for MIMO communication with AP 101. In another example, STA 111 may not include voice communication, or processor 240 may be divided into multiple processors (such as one or more central processing units (CPUs) and one or more graphics processing units (GPUs)). Furthermore, although... Figure 2B The STA 111 is shown configured as a mobile phone or smartphone, but the STA can be configured to operate as other types of mobile or fixed devices.
[0035] As mentioned earlier, while most existing indoor positioning technologies (e.g., Bluetooth and Wi-Fi) are less accurate, UWB offers a robust and accurate indoor positioning solution. UWB-based positioning technologies typically use TWR or ToA. However, these technologies cannot accommodate multiple users simultaneously and are therefore not very scalable. On the other hand, in DL-TDoA, the target does not communicate directly with the UWB anchor but only listens for downlink messages from the anchor. Therefore, DL-TDoA not only serves multiple users simultaneously but also avoids any privacy concerns.
[0036] DL-TDoA involves downlink broadcast technology for target location. The target's position is calculated based on the time difference of arrival measured along the transmission path between the target and the anchors. The anchors are pre-installed and time-synchronized, and their positions are known to the target. The anchors send timestamped signals to the target. The target uses the timestamped signals received from different anchors to calculate the time difference of arrival with each anchor.
[0037] For example, Figure 3 An example network 300 capable of performing DL-TDoA according to various embodiments of the present disclosure is shown. Figure 3 As shown, network 300 includes targets 301 positioned near multiple anchors 302. Targets 301 and anchors 302 can represent various components of wireless network 100 (such as STA 111 and AP 101). The position of target 301 is calculated by determining the intersection of a hyperbola 303 representing the distance difference (i.e., time difference of arrival multiplied by the speed of light). Target 301's position is calculated using measurements from at least four anchors 302 (three DL-TDoA measurements). Note that the position of target 301 is calculated at target 301 itself. An advantage of this technique is that multiple targets 301 can listen for downlink messages from anchors 302, making the solution scalable.
[0038] anchor and The distance difference between them (obtained by multiplying the time difference of arrival by the speed of light) is expressed as: .value It is an anchor Distance from target 301 and anchor The difference between the distances from the target 301 and the distance from the anchor. If it is the initiator or reference anchor, then the ranging round will involve obtaining all anchors 302 and anchors. The distance difference between them. For example, if anchor A1 is the reference anchor of network 300, then the measurement obtained in the ranging round will be , and The position of target 301 is the intersection of the hyperbola 303 representing these distance differences. The time between two ranging cycles is called the ranging interval.
[0039] In reality, due to measurement errors, hyperbolas 303 typically do not intersect at a single point. Multipath also contributes to significant measurement errors. Therefore, optimizers such as least squares, Levenberg-Marquardt (LM), or gradient descent algorithms can be used to calculate the location of target 301. However, these solutions require at least three UWB DL-TDoA measurements to locate target 301. Thus, while UWB can provide highly accurate solutions in controlled environments, in more practical scenarios, the quality and number of received measurements can be affected by multipath and occlusion.
[0040] To address these and other issues, this disclosure provides systems and methods for indoor positioning of objects using state machines. As described in more detail below, the disclosed embodiments are characterized by a sensor-assisted solution for performing robust and accurate indoor positioning using UWB DL-TDoA measurements. That is, the disclosed embodiments combine UWB DL-TDoA measurements with motion sensor measurements to provide accurate (e.g., by also considering sensor information) and robust UWB positioning technology against multipath and occlusion.
[0041] Note that while some embodiments discussed below are described in the context of smartphones, these are merely examples. It should be understood that the principles of this disclosure can be implemented in any number of other suitable contexts or systems, including other fixed or portable electronic devices (e.g., tablet computers, laptop computers, etc.).
[0042] Before describing the disclosed technology in detail, it may be helpful to provide the following contextual information.
[0043] Pedestrian dead reckoning / step heading system Dead reckoning is a method of estimating the position of a moving object by using its last known position and adding incremental displacements to it. Pedestrian dead reckoning, or PDR, specifically refers to scenarios where the object of inquiry is a pedestrian walking in an indoor or outdoor space. With the proliferation of sensors within smart devices (e.g., smartphones, tablets, smartwatches, etc.), PDR has naturally matured to complement wireless positioning technologies such as Wi-Fi, cellular services, and UWB, which have long been supported by these devices. An inertial measurement unit (IMU) is a device that combines numerous sensors with different functions. For example, an accelerometer measures linear acceleration, a gyroscope measures angular velocity, and a magnetometer measures the strength and direction of a magnetic field. These three sensors detect motion and estimate the velocity (i.e., speed and heading) of the motion. PDR is also known as a stepping heading (SH) system.
[0044] Extended Kalman Filter The Kalman filter recursively estimates the state of a dynamic system based on assumptions about the measurement sequence and state trajectory obtained over time. It assumes that the underlying system is modeled by two linear equations: state transition / motion equations and measurement / observation equations. The motion equations describe the evolution of the system state and correlate the current state with previous states, as follows:
[0045] in, This is the current state. This is the current status. It is the state transition matrix. This is the current input. It is a control / input matrix. It represents process noise that indicates uncertainty in the state.
[0046] The measurement equation correlates the current observation with the current state, as follows:
[0047] in, This is the latest observation. It is the observation matrix, and It is observation noise.
[0048] Index at each time The Kalman filter estimates the system state by applying a prediction step and a subsequent update step. The result of these two steps is in the time index. State estimation and its covariance matrix This is then used to estimate the state at a later point in time.
[0049] In the prediction step, the Kalman filter uses the equations of motion to estimate from the most recent state. Its covariance Predict the current state based on any input. (Prior estimate), as follows:
[0050]
[0051] In the update step, the Kalman filter updates its predictions using the latest observations and obtains a (posterior) state estimate. and its covariance ,as follows:
[0052]
[0053] in, It is the Kalman gain and the prior estimate of the covariance. Observation matrix and observation noise covariance matrix The function.
[0054] The Extended Kalman Filter (EKF) is a workaround for handling nonlinearities in motion or measurement models. If the motion or measurement equations are not linear, a Kalman filter cannot be used unless these equations are linearized. Consider the following nonlinear motion and measurement equations:
[0055]
[0056] in, and It is a nonlinear function. The EKF application prediction and update steps are as follows: For EKF, the prediction steps include the following:
[0057]
[0058] in, For EKF, the update steps include the following:
[0059]
[0060] in, State estimation and its covariance It is propagated to track the state of the system.
[0061] In the context of localization, the state is the 2D position of the target. In the context of UWB DL-TDoA-based indoor localization, the observation is a UWB distance difference measurement, which is calculated from the TDoA measurement by multiplying the TDoA measurement by the speed of light.
[0062] Figure 4 An example system 400 for performing indoor positioning is illustrated according to various embodiments of the present disclosure. System 400 includes a multi-model EKF state machine that uses UWB measurements and sensor data and switches states based on the availability of UWB measurements and the detection of steps. System 400 also includes outlier removal techniques to remove measurements affected by multipath propagation. Figure 4 The embodiment of system 400 shown is for illustrative purposes only. Other embodiments of system 400 may be used without departing from the scope of this disclosure. For ease of explanation, system 400 will be described as... Figure 3 The system 400 may be implemented in network 300, for example, in target 301. However, the system 400 may be implemented in any other suitable device or system.
[0063] like Figure 4 As shown, system 400 includes a positioning block 401 and a sensing block 402. Positioning block 401 receives UWB measurements 405 from one or more anchors 302. In some embodiments, UWB measurements 405 include UWB DL-TDoA measurements. If positioning block 401 receives a sufficient number (e.g., at least three) of UWB DL-TDoA measurements, positioning block 401 uses an optimizer and a tracking filter, or only the tracking filter, to track the position 420 of target 301. However, situations may arise where positioning block 401 does not receive UWB measurements 405 due to occlusion or because target 301 leaves the coverage area of anchor 302. In this case, the state of the tracking filter is not updated. UWB measurements 405 received by the target may also be of poor quality and may be affected by multipath. In such scenarios, the tracking filter may not generate the correct output. To handle scenarios where there are no UWB measurements 405 or poor-quality UWB measurements 405, positioning block 401 uses information from sensing block 402 to track target 301.
[0064] Sensing block 402 uses motion sensor measurements 410 to detect steps taken by the user as they walk. These measurements are used to calculate the length / size and direction / heading of the step, and the length / size and direction / heading of the step are fed to positioning block 401 as step information 415. A combination of motion sensors (including accelerometers, magnetometers, and gyroscopes, such as those part of an IMU) can be used to perform step detection and step size and heading calculations. In one example, changes in motion sensor measurements 410 can be used to detect steps, while peaks and troughs in the measurements can be used to calculate step size and heading.
[0065] The positioning block 401 acquires UWB measurements 405 (whenever available) and step information 415 (whenever provided by the sensing block 402) to calculate the position 420 of the target 301. In some embodiments, the positioning block 401 uses a multi-model tracking filter EKF-RW+SH that includes a motion model. The motion model can be represented as a state machine that switches between multiple states, including a random walk EKF (EKF-RW) state and a step heading EKF (EKF-SH) state, based on the availability of UWB measurements 405 and the detection of steps in the step information 415 from the sensing block 402. The EKF-RW+SH tracking filter operates after each ranging interval, where the ranging interval is the expected time interval for receiving UWB measurements (e.g., 200 ms). The motion model switches its state based on whether UWB measurements 405 are received within the ranging interval and whether steps are detected in the step information 415 during the ranging interval.
[0066] Random walk EKF (EKF-RW) The random walk EKF is one of the states in the state machine discussed above. The random walk EKF estimates the state using the motion model given below. : (1) in, This indicates the 2D position of target 301, and This represents the previous state of the EKF indicating the previous 2D position of target 301. (Item) The process noise can be represented by the following formula: (2) in, It is the time difference between consecutive steps. It is the variance of the velocity of target 301.
[0067] The measurement model uses measurement equations to measure the current UWB measurement 405 (which may include the anchor pair (in anchor 302)). and Distance difference measurement ( Mapping to the current state: (3) here, This indicates that the target is 301 meters from the anchor. distance 301 meters from the target anchor distance The difference. Item It is by coming from the anchor and The measurement is obtained by multiplying TDoA by the speed of light. In equation (3), and They represent anchors respectively. and The 2D position, and This indicates measurement noise.
[0068] Consider anchor and The fixed value of the height Approximate height of target 301 The mapping between states and measurements is given as:
[0069] (4) Equation (3) is linearized into the following equation: (5) in, Measurements can be obtained from different anchor 302 pairs. The vector, and By using state vectors The Jacobian matrix obtained by taking partial derivatives. (And measurement) of The corresponding row vectors are given as follows:
[0070] The prediction and update steps for EKF-RW based on the motion and measurement models described above are as follows: Prediction steps:
[0071]
[0072] Update steps:
[0073]
[0074] Stepping heading EKF (EKF-SH) The Step Heading Free (EKF) is another state in the state machine discussed above. The EKF combines UWB measurements with the user's steps to calculate the position of target 301. It estimates the state representing the position of target 301 using the following motion model. : (6) in, Indicates step length / size. Indicates the stepping heading / direction. Here, This indicates the step error.
[0075] By using step size error and heading error And the most recent history of position estimation to approximate the step error. Figure 5 Example error models 500 for EKF-SH, which can be used in system 400 according to various embodiments of the present disclosure, are shown. If This represents the most recent location estimate, and and To indicate the latest step size and heading, Figure 5 The coordinates of points A, B, C, and D shown can be calculated as follows: (7) (8) (9) (10) Variance of horizontal and vertical errors in the error segment and and covariance The calculation is as follows: (11) (12) (13) Therefore, the process noise covariance matrix It was obtained as: (14) The measurement model used for EKF-SH is the same as the measurement model used for EKF-RW.
[0076] The prediction and update steps for EKF-SH based on the motion and measurement models described above are as follows: Prediction steps:
[0077]
[0078] Update steps:
[0079]
[0080] As described above, new UWB measurements 405 are not always available at the end of each ranging round. Environmental factors such as occlusion or leaving the convex hull can cause UWB measurements 405 to be completely or partially lost. The EKF-RW tracking filter requires measurements to perform update steps. Therefore, in this unavoidable scenario, the EKF-RW tracking filter alone is insufficient to locate the target 301. Similarly, EKF-SH requires steps in its motion model. Typically, the rate of UWB measurements 405 is faster than the rate of user steps. In other words, the positioning block 401 may receive multiple UWB measurements 405 in the time it takes for the user to take a step. Therefore, using only EKF-SH may provide position estimates at a much slower rate, and the estimates may appear uneven. Therefore, system 400 combines both the EKF-RW model and the EKF-SH model into an EKF-RW+SH state machine, where the EKF-RW+SH state machine is a multi-model positioning state machine.
[0081] Figure 6 Example EKF-RW+SH state machines 600 for use with system 400 are shown according to various embodiments of this disclosure. Figure 6 As shown, the EKF-RW+SH state machine 600 switches between different states 601-603 depending on whether a UWB measurement 405 is received and whether a step is detected in the received step information 415. The positioning block 401 runs the EKF-RW+SH state machine 600 at the end of each ranging round. The fixed time interval between ranging rounds is called the ranging interval, during which ranging measurements are acquired according to the ranging round configuration. It is possible that no UWB measurement 405 is received until the end of the ranging interval. Furthermore, since user steps are detected at a slower rate than UWB measurements 405, no steps may be detected during the duration of a ranging round. Therefore, the four possible cases in each ranging round driving the EKF-RW+SH state machine 600 are: UWB measurement 405 was received, but no step was detected in step information 415; UWB measurement 405 is received, and stepping is detected in stepping information 415; No UWB measurement 405 was received, but stepping was detected in stepping information 415; No UWB measurement was received 405, and no step was detected in the step information 415.
[0082] like Figure 6 As shown, the different states 601-603 of the EKF-RW+SH state machine 600 include the following states: EKF-RW State 601: When a UWB measurement 405 is received at the end of a ranging cycle, but no step is detected in the step information 415, the state machine 600 enters this state.
[0083] EKF-SH State 602: This state is entered when a UWB measurement 405 is received at the end of a ranging cycle and a step is detected in the step information 415.
[0084] SH State 603: This is the state that operates when no UWB measurement 405 is obtained during a ranging round, but a step is detected in the step information 415. SH State 603 can be considered similar to EKF-SH State 602, but without the update step; that is, only the prediction step of EKF-SH State 602 is run.
[0085] In some embodiments, when no UWB measurement is obtained and no step is detected within a ranging cycle, the state of the EKF-RW+SH state machine 600 remains unchanged. In some embodiments, the initial state of the EKF-RW+SH state machine 600 is EKF-RW state 601.
[0086] Figure 7 Example procedures 700 are shown according to various embodiments of the present disclosure for determining the state of the EKF-RW+SH state machine 600 at the end of each ranging round. For example... Figure 7 As shown, process 700 begins with operation 701, where positioning block 401 determines whether any UWB measurements 405 have been received from one or more anchors 302. Next, in operation 702, positioning block 401 determines whether one or more steps were detected in step information 415 during the ranging round. Based on the results of operations 701 and 702, EKF-RW+SH state machine 600 may enter EKF-RW state 601, enter EKF-SH state 602, enter SH state 603, or remain unchanged.
[0087] Figure 8 Example timeline 800 illustrates EKF-RW+SH state changes for an example set of UWB measurement reception and step detection according to various embodiments of this disclosure. Figure 8As shown, timeline 800 includes a series of ranging cycles (numbered 1 to 16), and each scale mark along the time axis indicates the end of a ranging cycle. As described above, at the end of each ranging cycle, such as according to... Figure 7 The process 700 determines the state of state machine 600 of EKF-RW+SH. At the end of the first, second, and third ranging rounds, the positioning block 401 receives one or more UWB measurements 405, but no step is detected in the step information 415 received during each ranging round. Therefore, the EKF-RW+SH state machine 600 enters (or remains in) the EKF-RW state 601. At the end of the fourth ranging round, the positioning block 401 receives one or more UWB measurements 405 and detects a step in the step information 415 (S1). Therefore, the EKF-RW+SH state machine 600 enters the EKF-SH state 602. At the end of the fifth and sixth ranging rounds, the positioning block 401 receives one or more UWB measurements 405, but no step is detected in the step information 415. Therefore, the EKF-RW+SH state machine 600 enters (or remains in) the EKF-RW state 601. At the end of the seventh ranging cycle, the positioning block 401 receives one or more UWB measurements 405 and detects a step in the step information 415 (S2). Therefore, the EKF-RW+SH state machine 600 enters the EKF-SH state 602.
[0088] When a UWB measurement 405 is present, a position output 420 is obtained at the end of each ranging round. That is, because at least one UWB measurement 405 is received for those ranging rounds, the positioning block 401 can generate a position output 420 at the end of the first to seventh ranging rounds. When a UWB measurement 405 is lost (i.e., not received), the position output 420 is generated only at the end of those ranging rounds in which a step was detected. For example, in timeline 800, no UWB measurement 405 is received between the eighth and fifteenth ranging rounds. However, because steps are detected during the ninth, twelfth, and fourteenth ranging rounds (S3, S4, and S5), a position output 420 can be generated at the end of those ranging rounds.
[0089] When the EKF-RW+SH state machine 600 enters the EKF-SH state 602 or SH state 603 (i.e., when a step is detected during a ranging round), the step length is calculated from the most recent step detection. However, the EKF state update starts from the most recent state of the EKF. Therefore, if the entire step length is added to the most recent state of the EKF according to the EKF-SH state equation shown in equation (6), it may result in overshoot of the trajectory. Therefore, in some embodiments, equation (6) may be modified to add a portion of the step to the most recent state: (15) in, This represents the step detected during the k-th ranging round. Represent a fraction. Let the step size be... The exact timestamp is And the timestamp of the previous step is Then the fraction It can be determined in the following ways: (16) Figure 9 Example timeline 900 is shown illustrating the calculation of scores for one or more EKF-RW+SH steps when a step is detected, according to various embodiments of this disclosure. Figure 9 As shown, the seventh EKF-RW+SH step occurs after the S2 step. fractions It can be determined as:
[0090] Similarly, the eighth EKF-RW+SH step that occurs after the S3 step. fractions It can be determined as:
[0091] As discussed above, such as Figure 7 As shown, when no UWB measurement 405 is received and no step is detected in the step information 415, the state of the EKF-RW+SH state machine 600 remains unchanged. However, in some other embodiments, when no UWB measurement 405 is received and no step is detected, it can enter another state called "inferred step heading" ("SH-Ext"). The SH-Ext state uses the most recently detected step length to infer the step and obtains the step length of the current ranging round, such as given by the following formula: Inferred step length = in, This is the step length of the nth detected step. The heading used is the same as the heading of the most recently detected step. Therefore, in this embodiment, a positioning output is generated at the end of each ranging round. For each ranging round, the state of the EKF-RW+SH state machine 600 follows... Figure 7 To decide, the step other than "do nothing" is now "SH-Ext".
[0092] Figure 10 Example timelines 1000 are shown illustrating the inference of the most recently detected step length without UWB measurement and step detection, according to various embodiments of this disclosure. Figure 10 As shown, in the eighth EKF-RW+SH step And the tenth EKF-RW+SH stepper The step length is inferred.
[0093] In some embodiments, when a UWB measurement 405 is received and a step is detected, instead of switching to the EKF-SH state 602, the EKF-RW+SH state machine 600 can switch to another state called "Weighted-EKF". In Weighted-EKF, instead of using the output of EKF-SH as the position output 420, state updates for both EKF-RW and EKF-SH are performed, and the position output 420 is a weighted sum of EKF-SH and EKF-RW, which can be determined as follows: (17) in, This indicates the selected weight value.
[0094] Whenever UWB measurements 405 are available, they are more reliable than step size and heading inputs. Therefore, in some embodiments, as long as the UWB measurements 405 received at the end of the ranging round are above a threshold... (For example, Positioning block 401 will continue to use EKF-RW. If the measured quantity is less than... Then, the state switch to EKF-SH or SH will occur. When the number of measurements is less than... When a step is detected, the state is switched to EKF-SH. When no measurement is received and a step is detected, the state is switched to SH. Figure 11 An example procedure 1100 is shown for this embodiment of EKF-RW+SH, which is dominated by UWB measurements.
[0095] Outlier removal In some embodiments, the positioning block 401 performs outlier removal techniques to identify and remove defective UWB measurements to enhance positioning performance. Outlier removal is performed between the prediction and update steps of the EKF-RW+SH whenever the positioning block 401 receives a UWB measurement 405. Whenever a UWB measurement 405 is available, regardless of the state of the EKF-RW+SH state machine 600 (i.e., the EKF-RW state or the EKF-SH state), the prediction step is performed first to obtain an initial estimate of the target's next position. The prediction step depends on the availability of a step. If a step is detected, prediction is performed using the EKF-SH motion model. However, if no step is detected, prediction is performed using the EKF-RW motion model. Outlier removal is performed only when a UWB measurement 405 is available.
[0096] Figure 12 Example procedures 1200 for outlier removal and EKF-RW+SH according to various embodiments of this disclosure are shown. Figure 12 As shown, process 1200 begins with operation 1201 of positioning block 401 determining whether a step is detected in step information 415. If a step is detected, then in operation 1203, positioning block 401 performs a prediction step using the EKF-SH motion model. If no step is detected, then in operation 1205, positioning block 401 performs a prediction step using the EKF-RW motion model. Therefore, using operation 1205 or operation 1207, positioning block 401 predicts the next position of target 301 for all anchor 302 pairs.
[0097] In operation 1207, positioning block 401 determines whether UWB measurement 405 is available. If it is not available, then in operation 1209, positioning block 401 sets... (That is, the next state is set to be the same as the predicted state). However, if UWB measurement 405 is available, in operation 1211, positioning block 401 performs outlier removal techniques.
[0098] For the predicted location, positioning block 401 calculates an estimate of the distance difference measurement for all anchor 302 pairs received by UWB measurement 405, or The estimated distance difference Difference from the measured distance Compare them. If the absolute difference between the estimated distance difference and the measured distance difference... Above a certain predefined threshold (For example, If the distance difference measurement is 1, 2, or 3 meters, then the measurement is marked as an outlier and removed from consideration so that it is not used in the multi-model EKF update step. In operation 1213, positioning block 401 performs the multi-model EKF update step.
[0099] Sometimes, all received UWB measurements 405 may be outliers. In this case, the UWB measurements 405 are available before outlier removal is performed, but after outlier removal, the vector... The value is empty because all measurements were removed as outliers. To resolve this, you can... Figure 13 The modification process shown is 1200.
[0100] Figure 13 Another example process 1300 for outlier removal and EKF-RW+SH according to various embodiments of this disclosure is shown. Figure 13 As shown, process 1300 includes multiple operations that are the same as or similar to the corresponding operations in process 1200. For example, operations 1301-1311 and... Figure 12 Operations 1201-1211 are the same or similar.
[0101] After outlier removal is performed in operation 1311, positioning block 401 performs operation 1313 to check if any good UWB measurements 405 remain after outlier removal. If no good UWB measurements 405 are available, the EKF-RW+SH status is not updated, and positioning block 401 sets the status in operation 1309. (That is, setting the next state to be the same as the predicted state). In this case, the error covariance matrix of EKF-RW+SH can be set to a high value to reflect the lower confidence in the state estimate in the absence of measurements. However, if good UWB measurements still remain 405, then in operation 1315, the positioning block 401 performs the multi-model EKF update step.
[0102] although Figures 4 to 13 This illustrates example techniques and related details for indoor object localization using state machines, but may be subject to change. Figures 4 to 13 Make various changes. For example, Figures 4 to 13 The various components can be combined, further subdivided, or omitted, and additional components can be added as needed. Furthermore, although shown as a series of steps, Figures 4 to 13 The various operations can overlap, occur in parallel, occur in different orders, or occur any number of times. In another example, a step can be omitted or replaced by another step.
[0103] Figure 14 A flowchart illustrating an indoor positioning method 1400 using a state machine according to various embodiments of the present disclosure is shown, which may be performed by one or more components of a network 300 (e.g., target 301 or anchor 302). Figure 14 The embodiments of method 1400 shown are for illustrative purposes only. Figure 14 One or more components shown may be implemented in a dedicated circuit configured to perform the mentioned functions, or one or more components may be implemented by one or more processors that execute instructions to perform the mentioned functions.
[0104] like Figure 14 As shown, method 1400 begins at step 1401. In step 1401, the electronic device determines for each of a series of time intervals: (i) whether at least one wireless signal measurement is received in that time interval, and (ii) whether at least one step is detected in that time interval. Each wireless signal measurement is associated with a pair of anchors. In some embodiments, at least one wireless signal measurement includes a UWB DL-TDoA measurement. This may include, for example, target 301 determining whether any UWB measurement 405 is received in a ranging round, and whether any step, such as step information 415, is detected during the ranging round. Figure 7 As shown in the image.
[0105] In step 1403, the electronic device selects the state of the tracking filter state machine based on whether at least one wireless signal measurement was received and whether at least one step was detected during the time interval. This may include, for example, selecting a first state (e.g., EKF-RW state) when at least one wireless signal measurement was received but no step was detected during the time interval; selecting a second state (e.g., EKF-SH state) when at least one wireless signal measurement was received and at least one step was detected during the time interval; or selecting a third state (e.g., SH state) when no wireless signal measurement was received but at least one step was detected during the time interval. This may also include, for example, maintaining the current state or selecting the inferred SH state when no wireless signal measurement was received and no step was detected during the time interval.
[0106] At step 1405, the electronics determine the position of an object using a tracking filter state machine based on the selected state. This may include, for example, the target 301 using an EKF-RW+SH state machine 600 to generate a position output 420 indicating the position of the target 301.
[0107] although Figure 14 This illustrates an example of a method 1400 for indoor object positioning using a state machine, but it is possible to modify... Figure 14 Make various changes. For example, although it is shown as a series of steps, Figure 14 The steps in the process can overlap, occur in parallel, occur in different orders, or occur any number of times.
[0108] Although this disclosure has been described using exemplary embodiments, various changes and modifications may be suggested to those skilled in the art. This disclosure is intended to cover such changes and modifications that fall within the scope of the appended claims. Nothing described in this application should be construed as implying that any particular element, step, or function is an essential element that must be included within the scope of the claims. The scope of the patent subject matter is defined by the claims.
Claims
1. A method comprising: For each time interval in a series of time intervals, determine: Whether at least one wireless signal measurement is received during the time interval, wherein each wireless signal measurement is associated with a pair of anchors; and Whether at least one step is detected during the time interval; The state of the tracking filter state machine is selected based on whether at least one wireless signal measurement is received during the time interval and whether at least one step is detected during the time interval; and Based on the selected state, the position of the object is determined using the tracking filter state machine.
2. The method according to claim 1, wherein, The at least one wireless signal measurement includes an ultra-wideband downlink time difference of arrival (UWB DL-TDoA) measurement.
3. The method according to claim 1, wherein, Selecting the state of the tracking filter state machine includes: When at least one wireless signal measurement is received during the time interval but no step is detected, the first state is selected; When at least one wireless signal measurement is received and at least one step is detected during the time interval, a second state is selected; and When no wireless signal measurement is received during the time interval but at least one step is detected, the third state is selected.
4. The method according to claim 3, wherein: The first state is the Extended Kalman Filter-Random Walk (EKF-RW) state; The second state is the Extended Kalman Filter-Stepped Heading (EKF-SH) state; and The third state is the step heading SH state.
5. The method according to claim 3, wherein, Selecting the state of the tracking filter state machine further includes: If no wireless signal measurement is received and no stepping is detected during the time interval, perform one of the following operations: Maintain the current state; or Choose a fourth state that includes the inferred step heading state.
6. The method according to claim 3, wherein, Based on the selected state, the position of the object is determined using the tracking filter state machine, including: When either the first state or the second state is selected: Predict the next position of all anchor pairs of the object that are received in response to at least one wireless signal measurement; Estimate the distance difference of all anchor pairs that are received for the at least one wireless signal at the predicted next location; Compare the estimated distance difference with the measured distance difference; and Based on the results of the comparison, the measured distance difference is removed from consideration.
7. The method according to claim 1, wherein, The at least one step is detected using one or more measurements from one or more motion sensors associated with the object.
8. An apparatus comprising: transceiver; as well as A processor, operably connected to the transceiver, is configured to: For each time interval in a series of time intervals, determine: Whether at least one wireless signal measurement is received during the time interval, wherein each wireless signal measurement is associated with a pair of anchors; and Whether at least one step is detected during the time interval; The state of the tracking filter state machine is selected based on whether at least one wireless signal measurement is received during the time interval and whether at least one step is detected during the time interval; and Based on the selected state, the position of the object is determined using the tracking filter state machine.
9. The apparatus according to claim 8, wherein, The at least one wireless signal measurement includes an ultra-wideband downlink time difference of arrival (UWB DL-TDoA) measurement.
10. The apparatus according to claim 8, wherein, In order to select the state of the tracking filter state machine, the processor is configured to: When at least one wireless signal measurement is received during the time interval but no step is detected, the first state is selected; When at least one wireless signal measurement is received and at least one step is detected during the time interval, the second state is selected; as well as When no wireless signal measurement is received during the time interval but at least one step is detected, the third state is selected.
11. The apparatus according to claim 10, wherein: The first state is the Extended Kalman Filter-Random Walk (EKF-RW) state; The second state is the Extended Kalman Filter-Stepped Heading (EKF-SH) state; and The third state is the step heading SH state.
12. The apparatus according to claim 10, wherein, In order to select the state of the tracking filter state machine, the processor is further configured to: If no wireless signal measurement is received and no stepping is detected during the time interval, perform one of the following operations: Maintain the current state; or Choose a fourth state that includes the inferred step heading state.
13. The apparatus according to claim 10, wherein, In order to determine the position of an object using the tracking filter state machine based on the selected state, the processor is configured to: When either the first state or the second state is selected: For all anchor pairs whose at least one wireless signal measurement is received, predict the next location of the object; Estimate the distance difference of all anchor pairs that are received for the at least one wireless signal at the predicted next location; Compare the estimated distance difference with the measured distance difference; as well as Based on the results of the comparison, the measured distance difference is removed from consideration.
14. The apparatus according to claim 8, wherein, The at least one step is detected using one or more measurements from one or more motion sensors associated with the object.
15. A non-transitory computer-readable medium comprising program code, wherein, When the program code is executed by the device's processor, the device: For each time interval in a series of time intervals, determine: Whether at least one wireless signal measurement is received during the time interval, wherein each wireless signal measurement is associated with a pair of anchors; and Whether at least one step is detected during the time interval; The state of the tracking filter state machine is selected based on whether at least one wireless signal measurement is received during the time interval and whether at least one step is detected during the time interval; and Based on the selected state, the position of the object is determined using the tracking filter state machine.