Step size and heading prediction in position estimation
By receiving acceleration and orientation signals to generate step length and heading information, and combining them with distance measurement values to estimate position, the problem of inaccurate step length and heading estimation in pedestrian navigation is solved, improving navigation accuracy and personalized experience.
Patent Information
- Application Number
- CN202480020152.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-16
- Filing Date
- 2024-04-26
- Publication Date
- 2025-11-11
AI Technical Summary
Existing technologies struggle to accurately estimate stride length and heading in pedestrian navigation, leading to inaccurate location tracking and impacting navigation accuracy and personalized experience.
By receiving acceleration and orientation signals, step size and heading information are generated. The object position is estimated by combining the ranging measurement values. The signal is filtered using a low-pass filter, the heading is determined using a moving average method, and the step size is predicted by detecting the peak value in the acceleration signal.
It improves the accuracy of pedestrian location estimation and navigation precision, and optimizes the navigation experience.
Smart Images

Figure CN120937458A_ABST
Abstract
Description
Technical Field
[0001] This disclosure generally relates to estimating the position of a moving object, and more specifically, to, for example but not limited to, step size and heading prediction in enhanced pedestrian dead reckoning. Background Technology
[0002] Estimating pedestrian location or location is a very useful, even crucial, aspect for a wide range of applications, from traffic management to location-based services such as commercial, personal, public, or emergency services. For example, accurately tracking pedestrian movement is essential for optimizing and providing personalized experiences when they navigate in outdoor or indoor environments. Pedestrian dead reckoning (PDR) is a method for estimating the location or location of pedestrians as they move through an environment without relying on an external positioning system such as the Global Positioning System (GPS).
[0003] The descriptions in the Background section should not be considered prior art simply because they are set forth in the Background section. The Background section may describe aspects or embodiments of this disclosure. Summary of the Invention
[0004] Solution to the problem
[0005] One embodiment of this disclosure provides a method for estimating the position of an object. The method may include: receiving an acceleration signal and an orientation signal; receiving one or more ranging measurements; generating step size information based on the acceleration signal; generating step heading information based on the orientation signal; and estimating the position of the object based on one or more ranging measurements, the step size information, and the heading information.
[0006] In some embodiments, one or more ranging measurements may include distance information between the object and one or more anchor points.
[0007] In some embodiments, generating step size information may include detecting multiple peaks in the acceleration signal based on the target peak height and the time between target peaks.
[0008] In some embodiments, generating step size information may include predicting the target peak height based on a certain number of acceleration samples in the acceleration signal.
[0009] In some embodiments, generating step size information may include estimating the step size based on multiple detected peaks.
[0010] In some embodiments, the step heading information is determined using a moving average method based on the orientation information in the orientation signal, which assigns greater weight to a predetermined number of the most recent orientation information.
[0011] In some embodiments, each detected peak may have a peak height greater than or equal to the target peak height, and the duration between the peak and the immediately preceding peak is greater than or equal to the time between the target peaks.
[0012] In some embodiments, predicting the target peak height may include: setting the target peak height to a default value when the number of acceleration samples is less than a first threshold; and setting the target peak height using a function of a certain percentile amplitude of a certain number of the latest acceleration samples when the number of acceleration samples is greater than the first threshold and is a multiple of a predetermined value.
[0013] In some embodiments, the method may further include: obtaining an acceleration signal and a orientation signal; and filtering the acceleration signal and the orientation signal using a low-pass filter.
[0014] In some embodiments, the distance can be determined using one of flight time, round-trip time, downlink time difference of arrival, uplink time difference of arrival, received signal strength indication, or channel state information.
[0015] One embodiment of this disclosure provides an apparatus for estimating the position of an object associated with a user. The apparatus may include a memory; and circuitry connected to the memory, the circuitry being configured to: receive an acceleration signal and an orientation signal; receive one or more ranging measurements; generate step length information based on the acceleration; generate step heading information based on the orientation signal; and estimate the position of the object based on one or more ranging measurements, the step length information, and the heading information.
[0016] In some embodiments, one or more ranging measurements may include distance information between the object and one or more anchor points.
[0017] In some embodiments, in order to generate step size information, the circuit can be configured to detect multiple peaks in the acceleration signal based on the target peak height and the time between target peaks.
[0018] In some embodiments, in order to generate step size information, the circuit can be configured to predict the target peak height based on a certain number of acceleration samples in the acceleration signal.
[0019] In some embodiments, in order to generate step size information, the circuit can be configured to estimate the step size based on multiple detected peaks.
[0020] In some embodiments, the step heading information may be determined using a moving average method based on the orientation information in the orientation signal, which assigns greater weight to a predetermined number of orientation information items.
[0021] In some embodiments, each detected peak may have a peak height greater than or equal to the target peak height, and the duration between the peak and the immediately preceding peak is greater than or equal to the time between the target peaks.
[0022] In some embodiments, in order to predict the target peak height, the circuit can be configured to: set the target peak height to a default value when the number of acceleration samples is less than a first threshold; and set the target peak height using a function of the percentile amplitude of the latest number of acceleration samples when the number of acceleration samples is greater than the first threshold and is a multiple of a predetermined value.
[0023] In some embodiments, the circuit may also be configured to: acquire an acceleration signal and a orientation signal; and filter the acceleration signal and the orientation signal using a low-pass filter.
[0024] In some embodiments, distance can be determined using one of flight time, round-trip time, downlink time difference of arrival, uplink time difference of arrival, received signal strength indication, or channel state information. Attached Figure Description
[0025] Figure 1 Examples of wireless networks in which this disclosure may operate according to some embodiments are shown.
[0026] Figure 2 An example of an anchor point according to some embodiments is shown.
[0027] Figure 3 Examples of mobile devices according to some embodiments are shown.
[0028] Figure 4 An example of a timing diagram depicting signaling used to calculate Time of Flight (ToF) is shown according to some embodiments.
[0029] Figure 5 An example of a timing diagram depicting signaling used to calculate round-trip time (RTT) is shown according to some embodiments.
[0030] Figure 6A An example of a timing diagram depicting signaling used to calculate the downlink time difference of arrival (DownlinkTDoA) is shown according to some embodiments.
[0031] Figure 6B An example visualization of a downlink TDoA system according to some embodiments is shown.
[0032] Figure 7 An example of a timing diagram depicting signaling used to calculate the Uplink Time Difference of Arrival (Uplink TDoA) is shown according to some embodiments.
[0033] Figure 8 An example visualization of trilateration according to some embodiments is shown.
[0034] Figure 9 An example high-level block diagram of the location estimation process according to some embodiments is shown.
[0035] Figure 10 An example of a high-level block diagram depicting a positioning module according to some embodiments is shown.
[0036] Figure 11 An example of an exemplary high-level flowchart depicting a location estimation process according to some embodiments is shown.
[0037] Figure 12A An example high-level diagram of a pedestrian dead reckoning unit (PDRU) according to some embodiments is shown.
[0038] Figure 12B An example of a high-level flowchart depicting the process of step size and heading estimation according to some embodiments is shown.
[0039] Figure 13 An example flowchart illustrating a process of processing filtered acceleration sample by sample, according to some embodiments, is shown.
[0040] Figure 14A and Figure 14B An example flowchart depicting the process of predicting the peak height of a target, according to some embodiments, is shown.
[0041] Figure 15 An illustration shows an example of a process depicting the prediction of peak height according to some embodiments.
[0042] Figure 16A An illustration is shown of an example depicting a process for estimating the step size according to some embodiments.
[0043] Figure 16B An example of a high-level flowchart depicting the process of calculating the step size is shown according to some embodiments.
[0044] Figure 17 An example of a high-level flowchart depicting the process of estimating the step heading, according to some embodiments, is shown.
[0045] In one or more embodiments, not all components shown in every figure are necessary, and one or more embodiments may include additional components not shown in the figures. Variations in the arrangement and type of components may be made without departing from the scope of this disclosure. Within the scope of this disclosure, additional components, different components, or fewer components may be used. Detailed Implementation
[0046] The detailed description following, taken in conjunction with the accompanying drawings, is intended to describe various embodiments and is not intended to represent the only embodiments in which the subject matter can be practiced. Rather, this detailed description includes specific details and is intended to provide a comprehensive understanding of the subject matter of the invention. Those skilled in the art will recognize that the described embodiments can be modified in various ways without departing from the scope of this disclosure. Therefore, the drawings and description should be considered illustrative in nature and not restrictive. The same reference numerals denote the same elements.
[0047] This disclosure relates to communication systems, including but not limited to wireless communication systems such as Wireless Local Area Network (WLAN) technology. WLAN allows devices to access the Internet in 2.4 GHz, 5 GHz, 6 GHz, or 60 GHz frequency bands. WLAN is based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard. The IEEE 802.11 series of standards is designed to improve speed and reliability and extend the operating range of wireless networks.
[0048] The following description is directed to certain embodiments and is intended to describe the innovative aspects of this disclosure. However, those skilled in the art will readily recognize that the teachings herein can be applied in a variety of different ways. The described embodiments can be implemented in any device, system, or network capable of transmitting and receiving signals, such as radio frequency (RF) signals according to the IEEE 802.11 standard, Bluetooth standard, Global System for Mobile Communications (GSM), GSM / General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Terrestrial Trunking Radio (TETRA), Wideband CDMA (W-CDMA), Evolved Data Optimized (EV-DO), 1xEV-DO, EV-DO Rev A, EV-DO Rev B, High-Speed Packet Access (HSPA), High-Speed Downlink Packet Access (HSDPA), High-Speed Uplink Packet Access (HSUPA), Evolved High-Speed Packet Access (HSPA+), Long Term Evolution (LTE), 5G NR (New Radio), AMPS, or other known signals used for communication within wireless, cellular, or Internet of Things (IoT) networks (systems utilizing technologies of 3G, 4G, 5G, 6G, or further implementations thereof).
[0049] Depending on the network type, other well-known terms may be used instead of "access point" or "AP," such as "router," "gateway," or "anchor point." For convenience, the term "AP" is used in this disclosure to refer to a network infrastructure component that provides wireless access to a remote terminal. In a WLAN, since the AP also contends for the wireless channel, the AP may also be called a STA. Furthermore, depending on the network type, other well-known terms may be used instead of "station" or "STA," such as "mobile station," "subscriber station," "remote terminal," "user device," "wireless terminal," or "user equipment." 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 the wireless channel in a WLAN, whether the STA is a mobile device (e.g., a mobile phone or smartphone) or is generally considered a fixed device (e.g., a desktop computer, AP, media player, fixed sensor, television, etc.).
[0050] Figure 1 An example of a wireless network 100 that may operate according to some embodiments of the present disclosure is shown. 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.
[0051] like Figure 1 As shown, wireless network 100 may include multiple wireless communication devices. Each wireless communication device may include one or more stations (STAs). An STA can be a logical entity that is a separate addressable instance of an interface between the Media Access Control (MAC) layer and the Physical (PHY) layer with the wireless medium. STAs can be classified as Access Point (AP) STAs and Non-Access Point (non-AP) STAs. An AP STA can be an entity that provides access to distributed system services via the wireless medium for associated STAs. A Non-AP STA can be a STA that is not included within an AP-STA. For ease of description, an AP STA may be referred to as an AP, and a Non-AP STA may be referred to as a STA. Figure 1 In the example, AP 101 and 103 are wireless communication devices that may each include one or more AP STAs. In such embodiments, AP 101 and 103 may be AP multilink devices (MLDs). Similarly, STAs 111-114 are wireless communication devices that may each include one or more non-AP STAs. In such embodiments, STAs 111-114 may be non-AP MLDs.
[0052] APs 101 and 103 can 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. APs 101 and 103 can communicate with each other and with STAs using Wi-Fi or other WLAN communication technologies.
[0053] exist Figure 1 In the diagram, the dashed lines indicate the approximate coverage areas 120 and 125 of APs 101 and 103. For ease of illustration and explanation, these areas are shown as approximately circular. It should be clearly understood that, depending on the AP configuration, the coverage areas associated with the AP (e.g., coverage areas 120 and 125) may have other shapes, including irregular shapes.
[0054] As described in more detail below, one or more APs may include circuitry and / or programming for managing MU-MIMO and OFDMA channel detection in a WLAN. Although Figure 1 An example of a wireless network 100 is shown, but more details can be found on other wireless networks. 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 these STAs with wireless broadband access to network 130. Similarly, each of APs 101 and 103 can communicate directly with network 130 and provide STAs with direct wireless broadband access to network 130. Additionally, APs 101 and / or 103 can provide access to other or additional external networks (such as external telephone networks or other types of data networks).
[0055] Figure 2 An example of AP 101 according to some embodiments is shown. Figure 2 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 range of configurations, and Figure 2 This disclosure is not intended to limit the scope of any particular implementation of AP.
[0056] like Figure 2As shown, AP 101 may include multiple antennas 204a-204n, multiple radio frequency (RF) transceivers 209a-209n, transmit (TX) processing circuitry 214, and receive (RX) processing circuitry 219. AP 101 may also include a controller / processor 224, a memory 229, and a backhaul or network interface 234. RF transceivers 209a-209n receive input RF signals from antennas 204a-204n, such as signals transmitted by STAs in network 100. RF transceivers 209a-209n down-convert the input RF signals to generate intermediate frequency (IF) or baseband signals. The IF or baseband signals are sent to RX processing circuitry 219, which generates processed baseband signals by filtering, decoding, and / or digitizing the baseband or IF signals. RX processing circuitry 219 sends the processed baseband signals to controller / processor 224 for further processing.
[0057] The TX processing circuit 214 receives analog or digital data (such as voice data, network data, email, or interactive video game data) from the controller / processor 224. The TX processing circuit 214 encodes, multiplexes, and / or digitizes the output baseband data to generate a processed baseband or IF signal. RF transceivers 209a-209n receive the processed baseband or IF signal from the TX processing circuit 214 and up-convert the baseband or IF signal into an RF signal transmitted via antennas 204a-204n.
[0058] The controller / processor 224 may include one or more processors or other processing devices for controlling the overall operation of the AP 101. For example, the controller / processor 224 may control the reception of uplink signals and the transmission of downlink signals by the RF transceivers 209a-209n, the RX processing circuitry 219, and the TX processing circuitry 214 according to known principles. The controller / processor 224 may also support other functions, such as more advanced wireless communication functions. For example, the controller / processor 224 may support beamforming or directional routing operations, in which the output signals from multiple antennas 204a-204n are weighted differently to efficiently guide the output signals in the desired direction. The controller / processor 224 may also support OFDMA operations, in which the output signals are assigned to different subsets of subcarriers from different receivers (e.g., different STAs 111-114). The controller / processor 224 is capable of supporting a variety of other functions in the AP 101, including combining DLMU-MIMO and OFDMA in the same transmission timing. In some embodiments, controller / processor 224 may include at least one microprocessor or microcontroller. Controller / processor 224 is also capable of executing programs and other processes residing in memory 229, such as an operating system (OS). Controller / processor 224 may move data into or out of memory 229 as needed by executing processes.
[0059] The controller / processor 224 may also be 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 network. The backhaul or network interface 234 may support communication via any suitable wired or wireless connection. For example, the backhaul or network interface 234 may allow the AP 101 to communicate via a wired or wireless local area network, or via a wired or wireless connection to a larger network (such as the Internet). The backhaul or network interface 234 may include any suitable structure that supports communication via a wired or wireless connection, such as an Ethernet or RF transceiver. Memory 229 may be coupled to the controller / processor 224. A portion of the memory 229 may include RAM, and another portion of the memory 229 may include flash memory or other ROM.
[0060] As described in more detail below, AP 101 may include circuitry and / or programming for managing the channel detection process in a WLAN. Although Figure 2 An example of AP 101 is shown, but it is possible to compare it with other versions. Figure 2 Various changes can be made. For example, AP 101 may include... Figure 2The AP may include any number of individual components. As a specific example, the AP may include multiple backhaul or network interfaces 234, and the controller / processor 224 may support routing functionality to route data between different network addresses. As another example, while the AP 101 shown in the figure includes a single instance of the TX processing circuitry 214 and a single instance of the RX processing circuitry 219, AP 101 may include multiple instances of each processing circuit (e.g., one instance per RF transceiver). Alternatively, for example, a conventional AP may include only one antenna and RF transceiver path. Furthermore, Figure 2 The various components can be combined, further subdivided, or omitted, and additional components can be added according to specific needs.
[0061] Figure 3 An example of STA 111 according to some embodiments is shown. Figure 3 The embodiment of STA 111 shown is for illustrative purposes only, and Figure 1 STAs 111-114 can have the same or similar configurations. However, STAs have a wide range of configurations, and Figure 3 This disclosure is not intended to limit the scope of any particular implementation of STA.
[0062] exist Figure 3 In the example, STA can be an electronic device 301, such as a mobile device (e.g., a mobile phone, a smartphone, etc.) or a fixed device (e.g., a desktop computer, an AP, or a media player, etc.).
[0063] like Figure 3 As shown, electronic device 301 in network environment 300 can communicate with electronic device 302 via a first network 398 (e.g., a short-range wireless communication network), or with electronic device 304 or server 308 via a second network 399 (e.g., a long-range wireless communication network). The first network 398 or the second network 399 can be, for example, any future revision of a wireless local area network (WLAN) conforming to the IEEE 802.11be standard or the IEEE 802.11 standard.
[0064] According to some embodiments, electronic device 301 can communicate with electronic device 304 via server 308. According to some embodiments, electronic device 301 may include processor 320, memory 330, input module 350, sound output module 355, display module 360, audio module 370, sensor module 376, interface 377, connection terminal 378, haptic module 379, camera module 380, power management module 388, battery 389, communication module 390, subscriber identification module (SIM) 396, or antenna module 397. In some embodiments, at least one component (e.g., connection terminal 378) may be omitted from electronic device 301, or one or more other components may be added to electronic device 301. In some embodiments, some components (e.g., sensor module 376, camera module 30, or antenna module 397) may be implemented as a single component (e.g., display module 360).
[0065] For example, processor 320 may execute software (e.g., program 340) to control at least one other component (e.g., hardware or software component) coupled to processor 320 in electronic device 301, and may perform various data processing or calculations. According to some embodiments, as at least part of data processing or calculation, processor 320 may store commands or data received from another component (e.g., sensor module 376 or communication module 390) in volatile memory 332, process the commands or data stored in volatile memory 332, and store the resulting data in non-volatile memory 334. According to some embodiments, processor 320 may include a main processor 321 (e.g., central processing unit (CPU) or application processor), or an auxiliary processor 323 (e.g., graphics processing unit (GPU), neural processing unit (NPU), image signal processor (ISP), sensor central processor, or communication processor (CP)) that may operate independently of or in conjunction with main processor 321. For example, when electronic device 301 includes a main processor 321 and an auxiliary processor 323, the auxiliary processor 323 may be adapted to consume less power than the main processor 321, or may be dedicated to a specific function. The auxiliary processor 323 may be implemented as a standalone unit or as part of the main processor 321.
[0066] The auxiliary processor 323 can replace the main processor 321 when the main processor 321 is inactive (e.g., in a sleep state), or, when the main processor 321 is active (e.g., executing an application), work with the main processor 321 to control at least some of the functions or states associated with at least one component of the electronic device 301 (e.g., display module 360, sensor module 376, or communication module 390). According to some embodiments, the auxiliary processor 323 (e.g., ISP or CP) can be implemented as part of another component (e.g., camera module 380 or communication module 390) associated with the functionality of the auxiliary processor 323. According to some embodiments, the auxiliary processor 323 (e.g., NPU) can include hardware architectures dedicated to processing artificial intelligence models. The artificial intelligence model can be generated through machine learning. This learning can be performed by the electronic device 301 performing artificial intelligence, or it can be performed via a separate server (e.g., server 308). The learning algorithm can include, but is not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning. The artificial intelligence model can include multiple layers of artificial neural networks. Artificial neural networks can be deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted Boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), deep Q-networks, or combinations of two or more of these, but are not limited to these. Artificial intelligence models may additionally or alternatively include software structures in addition to hardware structures.
[0067] The memory 330 may store various data used by at least one component of the electronic device 301 (e.g., processor 320 or sensor module 376). For example, the various data may include software (e.g., program 340) and input or output data for its associated commands. The memory 330 may include volatile memory 332 or non-volatile memory 334.
[0068] The program 340 may be stored as software in the memory 330 and may include, for example, an operating system (OS) 342, middleware 344, or one or more applications 346.
[0069] The input module 350 can receive commands or data from outside the electronic device 301 (e.g., a user) to be used by another component of the electronic device 301 (e.g., the processor 320). The input module 350 may include, for example, a microphone, a mouse, a keyboard, buttons (e.g., keypads), or a digital pen (e.g., a stylus).
[0070] The audio output module 355 can output audio signals to the outside of the electronic device 301. The audio output module 355 may include, for example, a speaker or a handset. The speaker can be used for general purposes, such as playing multimedia or playing recorded data. The handset can be used to answer incoming calls. According to some embodiments, the handset can be implemented as a standalone unit or as part of a speaker.
[0071] Display module 360 can visually provide information to the outside of electronic device 301 (e.g., to a user). For example, display module 360 may include a display, a holographic device or projector and control circuitry for controlling a corresponding one of the display, holographic device, and projector. According to some embodiments, display module 360 may include a touch sensor adapted to detect touch, or a pressure sensor adapted to measure the intensity of the force caused by a touch.
[0072] Audio module 370 can convert sound into electrical signals and vice versa. According to some embodiments, audio module 370 can obtain sound via input module 350, or output sound via sound output module 355 or headphones of an external electronic device (e.g., electronic device 302) directly (e.g., wired) or wirelessly coupled to electronic device 301.
[0073] Sensor module 376 can detect the operating state of electronic device 301 (e.g., power or temperature) or the environmental state outside electronic device 301 (e.g., user state), and then generate an electrical signal or data value corresponding to the detected state. According to some embodiments, sensor module 376 may include, but is not limited to, gesture sensors, gyroscope sensors, barometric pressure sensors, magnetic sensors or magnetometers, accelerometers or accelerometers, grip force sensors, proximity sensors, color sensors, infrared (IR) sensors, biosensors, temperature sensors, humidity sensors, or illuminance sensors. For convenience, this example shows sensor module 376 as a single module; however, sensor module 376 may include one or more sensors.
[0074] Interface 377 may support one or more specified protocols used by electronic device 301 to directly (e.g., wired) or wirelessly couple with external electronic device (e.g., electronic device 302). According to some embodiments, interface 377 may include, for example, a High Definition Multimedia Interface (HDMI), a Universal Serial Bus (USB) interface, a Secure Digital Card (SD) interface, or an audio interface.
[0075] Connection terminal 378 may include a connector via which electronic device 301 can be physically connected to an external electronic device (e.g., electronic device 302). According to some embodiments, connection terminal 378 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0076] The positioning module 375 can detect the position or location of the device 301, including when the device 301 is moving (e.g., when the device 301 is held by a user or attached to a user's portable device). As will be described in further detail herein, the positioning module 375 may be part of one or more components, or the positioning module 375 may include one or more components.
[0077] The haptic module 379 can convert electrical signals into mechanical (e.g., vibration or movement) or electrical stimuli that can be recognized by a user through their touch or kinesthesia. According to embodiments, the haptic module 379 may include, for example, a motor, a piezoelectric element, or an electrical actuator.
[0078] Camera module 380 can capture still images or moving images. According to some embodiments, camera module 380 may include one or more lenses, an image sensor, an ISP, or a flash.
[0079] The power management module 388 can manage the power supplied to the electronic device 301. According to some embodiments, the power management module 388 can be implemented as at least part of, for example, a power management integrated circuit (PMIC).
[0080] Battery 389 can supply power to at least one component of electronic device 301. According to some embodiments, battery 389 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0081] Communication module 390 can support the establishment of a direct (e.g., wired) or wireless communication channel between electronic device 301 and external electronic devices (e.g., electronic device 302, electronic device 304, or server 308), and communication can be performed via the established communication channel. Communication module 390 may include one or more CPs that are independent of processor 320 (e.g., application processor) and support direct (e.g., wired) or wireless communication. According to some embodiments, communication module 390 may include wireless communication module 392 (e.g., cellular communication module, short-range wireless communication module, or Global Navigation Satellite System (GNSS) communication module) or wired communication module 394 (e.g., local area network (LAN) communication module or power line communication (PLC) module). The corresponding communication modules in these communication modules can communicate with external electronic devices via a first network 398 (e.g., a short-range communication network, such as Bluetooth, Wi-Fi Direct, or Infrared Data Association (IrDA)) or a second network 399 (e.g., a long-range communication network, such as a traditional cellular network, 5G network, next-generation communication network, Internet, or computer network (e.g., LAN or Wide Area Network (WAN))). These various types of communication modules can be implemented as a single component (e.g., a single chip) or as multiple components that are separate from each other (e.g., multiple chips). The wireless communication module 392 can use user information (e.g., International Mobile Subscriber Identity (IMSI)) stored in the SIM 396 to identify and authenticate electronic device 301 in the communication network (e.g., the first network 398 or the second network 399).
[0082] Wireless communication module 392 can support 5G networks and next-generation communication technologies following 4G networks, such as New Radio (NR) access technology. NR access technology can support enhanced mobile broadband (eMBB), massive machine-type communications (mMTC), or ultra-reliable low-latency communications (URLLC). Wireless communication module 392 can support high-frequency bands (e.g., millimeter-wave bands) to achieve, for example, high data transmission rates. Wireless communication module 392 can support various technologies used to ensure performance on high-frequency bands, such as beamforming, massive MIMO, full-dimensional MIMO (FD-MIMO), array antennas, analog beamforming, or massive MIMO. Wireless communication module 392 can support various requirements specified in electronic device 301, external electronic device (e.g., electronic device 304), or network system (e.g., second network 399). According to some embodiments, the wireless communication module 392 may support peak data rates (e.g., 20 Gbps or higher) for implementing eMBB, loss coverage (e.g., 164 dB or lower) for implementing mMTC, or U-plane latency (e.g., 0.5 ms or less for both downlink (DL) and uplink (UL), or 1 ms or less for round trip) for implementing URLLC.
[0083] Antenna module 397 can transmit or receive signals or power to or from the outside of electronic device 301 (e.g., external electronic device). According to an embodiment, antenna module 397 may include an antenna comprising a radiating element composed of a conductive material or conductive pattern formed in or on a substrate (e.g., a printed circuit board (PCB)). According to an embodiment, antenna module 397 may include multiple antennas (e.g., an array antenna). In this case, for example, communication module 390 (e.g., wireless communication module 392) can select at least one antenna from the multiple antennas that is suitable for a communication scheme used in a communication network (e.g., a first network 398 or a second network 399). Signals or power can then be transmitted or received between communication module 390 and external electronic device via the selected at least one antenna. According to an embodiment, another component besides the radiating element (e.g., a radio frequency integrated circuit (RFIC)) may be additionally incorporated into antenna module 397.
[0084] According to various embodiments, antenna module 397 can form a millimeter-wave antenna module. According to some embodiments, the millimeter-wave antenna module may include a printed circuit board (PCB), an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the PCB and capable of supporting a specified high-frequency band (e.g., millimeter-wave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top or side surface) of the PCB and capable of transmitting or receiving signals in the specified high-frequency band.
[0085] At least some of the above components may be coupled to each other and transmit signals (e.g., commands or data) to each other via an inter-peripheral communication scheme (e.g., bus, general purpose input / output interface (GPIO), serial peripheral interface (SPI) or mobile industrial processor interface (MIPI)).
[0086] According to some embodiments, commands or data can be sent or received between electronic device 301 and external electronic device 304 via server 308 coupled to a second network 399. Each of electronic devices 302 or 304 can be a device of the same or different type as electronic device 301. According to some embodiments, all or some operations to be performed at electronic device 301 can be performed at one or more of external electronic devices 302, 304, or 308. For example, if electronic device 301 is required to perform a function or service automatically or in response to a request from a user or another device, instead of performing said function or service, or in addition to performing said function or service, electronic device 301 can request one or more external electronic devices to perform at least a portion of said function or service. Upon receiving the request, one or more external electronic devices can perform at least a portion of the requested function or service or additional functions or services associated with the request, and transmit the result of the execution to electronic device 301. Electronic device 301 can provide the result, with or without further processing, as at least part of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technologies can be used, for example. Electronic device 301 can use, for example, distributed computing or MEC to provide ultra-low latency services. In another embodiment, external electronic device 304 may include Internet of Things (IoT) devices. Server 308 may be an intelligent server using machine learning and / or neural networks. According to some embodiments, external electronic device 304 or server 308 may be included in a second network 399. Electronic device 301 can be applied to intelligent services based on 5G communication technology or IoT-related technologies (e.g., smart homes, smart cities, smart cars, or healthcare).
[0087] As described herein, network flows may include various types of services. A service (or network service) can be a function provided through network infrastructure to facilitate application-level interaction and data exchange between connected devices within a network data flow (or network flow). Network flows may include voice, video, and data traffic. Generally, under the high-level description, this disclosure provides a network detection service that can accurately identify different types of services within a network flow. In some embodiments, this network detection service may be implemented in a user equipment (e.g., user equipment 300).
[0088] In some embodiments, the techniques described in this disclosure may include device-based positioning. Device-based positioning refers to discovering a user's location through a device held, worn, or attached to the user. Device-based positioning technologies can be categorized into three types: wireless or range-based technologies; pedestrian dead reckoning (PDR) or sensor-based technologies; and sensor fusion or range-plus-sensor technologies.
[0089] In wireless or ranging-based technologies, location can be estimated from ranging measurements, such as measuring the distance to an anchor point or reference point with known coordinates. Examples of ranging measurements (including differential ranging) can include Received Signal Strength Indication (RSSI), Time of Flight (ToF), Round-Trip Time (RTT), and Time Difference of Arrival (TDoA), most of which are available in common wireless technologies such as WiFi, Bluetooth, and Ultra-Wideband (UWB).
[0090] In pedestrian dead reckoning or sensor-based techniques, position can be estimated by accumulating incremental displacements based on a known initial position. In some implementations, displacement can be calculated from readings of one or more sensors, such as magnetometers, accelerometers, and gyroscopes.
[0091] In range-plus-sensor technology, the position can first be estimated based on sensor readings using PDR, and then updated by fusing the PDR with range measurements.
[0092] In some embodiments, the techniques described in this disclosure may also include wireless (or ranging-based) positioning. In such ranging-based positioning, a device determines its location by measuring its distance to a set of reference points (also called anchor points) of known locations. Measuring the distance to another device (e.g., an anchor point) may involve wireless signaling transmissions (called ranging) between the two devices, and most wireless technologies support this measurement, either explicitly through standard ranging mechanisms or implicitly through received power or channel impulse response measurement capabilities. Below are examples of common ranging mechanisms (for simplicity, it is assumed that clocks are synchronized on all devices and that there are no defects such as clock drift).
[0093] Time of Flight (ToF): such as Figure 4 As shown, a device 410 (typically an anchor point) sends a message 415 to a target device 412, embedding a timestamp 420 at time t1 of message transmission. The target device 412 receives the message, decodes it, timestamps its reception at time t2, and calculates the flight time and the corresponding distance from the device to the AP as follows: r = c(t1 - t2), where c is the speed of light.
[0094] Round trip time (RTT): e.g. Figure 5 As shown, a device 510 (typically the target device) sends an empty message 515 to an anchor point 512, and timestamps the sending time at t1. Anchor point 512 receives message 515, timestamps the receiving time t2, responds with message 517, timestamps the response at time t3, and embeds two timestamps 520 into the response message 517. Then, the target device 510 receives the response 517, timestamps the receiving time at t4, extracts the two embedded timestamps 520, and calculates the round-trip time and the distance from the device to the AP based on the two pairs of timestamps (one pair at the device end and the other at the anchor point end), as shown below: .
[0095] In some embodiments, the target device 510 may use the method described above to estimate its (two-dimensional) position based on three or more ranging methods, the only difference being that RTT is used instead of ToF to calculate the distance from the device to the AP. This mechanism is called Two-Way Ranging (TWR) in UWB and Fine Timing Measurement (FTM) in the IEEE 802.11 standard for WiFi.
[0096] Downlink Time Difference of Arrival (TDOA): e.g. Figure 6A As shown, target device 614 does not determine its location by actively measuring distances with anchor points, but rather estimates the difference in distance from the device to the AP by listening to the distance measurements between different anchor points 610 and 612. An example of calculating the distance difference is as follows: Two anchor points 610 and 612 measure distances to each other using the bidirectional ranging method described above. Target device 614 timestamps the time t2 of the message 615 sent by the initiating anchor point 610 that it hears, and extracts the timestamp t1 of the sent message. Target device 614 also timestamps the time t4 of the message 617 sent by anchor point 612 in response to the initiating anchor point 610 that it hears, and extracts the timestamp t3 of the sent response 617. Then, target device 614 estimates the difference in distance to the two anchor points as follows: .
[0097] Figure 6BAn example visualization of a downlink TDoA system is shown, in which a device 624 (as shown, held by the user) that needs to determine its own location passively listens to message exchanges between anchor pairs at known locations and estimates the difference in distance to the anchor pair.
[0098] In some embodiments, to estimate its two-dimensional position, the target device may measure distance differences for at least three pairs of anchor points (a minimum of four anchor points in total). The target device calculates its position as the intersection of three or more hyperbolas. This method can be readily used in UWB, where the ranging device can be configured to listen to ranging participants without actively participating in the ranging process.
[0099] Uplink Time Difference of Arrival (UTOA): such as Figure 7 As shown, target device 710 can send a message 715 embedded with an expected transmission time 720. Message 715 is received by a set of cooperating anchors 712 and 714 at different times. Similar to downlink TDoA, a set of time differences is calculated, from which a set of corresponding distance differences can be estimated, and ultimately the location can be estimated. Through this mechanism, the cellular network can estimate the location of mobile device 710. However, when applied to indoor positioning, any technique that can estimate the distance between devices allows for location estimation using uplink TDoA.
[0100] Received Signal Strength Indication (RSSI): In this mechanism, the received power of the target device equals the transmitted power of the anchor point minus the propagation loss, which is a function of the distance from the device to the anchor point. RSSI can be converted to distance using standard propagation models, such as the ITU indoor propagation model for WiFi, or propagation models fitted based on empirical data. An example model is a single-slope linear model, which represents the relationship between RSSI and distance, as shown below: ,in and These are the fitting parameters. After converting RSSI to distance, standard positioning methods that convert a set of distance measurements into a single location, such as trilateration, can be applied.
[0101] exist Figure 8The diagram illustrates an example visualization of the trilateration method. This method estimates the position of device 810 (“X”) based on a set of ranging measurements, each utilizing an anchor point at a known location; the ranging measurements can be inferred from various measured physical quantities such as time of flight (ToF), round-trip time (RTT), or received power index (RSSI). For example, to estimate its two-dimensional position, target device 810 can measure its distances to at least three anchor points 820, 822, and 824. Target device 810 calculates its position as the intersection of three or more circles centered at these three anchor points, with the radius of each circle being the corresponding distance from the device to the access point (AP). This ranging-based positioning method is called trilateration, or polygonal measurement when there are more than three anchor points. More sophisticated methods for estimating position from ranging measurements include Bayesian filtering, such as a Kalman filter. The ranging mechanism used to calculate the time of flight can utilize UWB technology.
[0102] Channel State Information (CSI): In this mechanism, the target device can estimate the channel frequency response, or alternatively, the channel impulse response, which indicates how the environment affects different frequency components in terms of amplitude and phase. Monitoring phase changes over time and frequency range can be used to calculate the distance from the device to the access point (AP). Other methods can also be used, such as multi-carrier phase difference (MCD) used with Bluetooth Low Energy.
[0103] As mentioned above, in addition to wireless (or ranging-based) positioning technologies, pedestrian dead reckoning (PDR) can also be used for position estimation. Dead reckoning is a method of estimating the position of a moving object by using its last known position and adding the incremental displacement to that last known position. Pedestrian dead reckoning (PDR) specifically refers to scenarios where the object is a pedestrian walking in an indoor or outdoor space. With the proliferation of sensors within smart devices such as smartphones, tablets, and smartwatches, PDR has naturally evolved to complement the wireless positioning technologies (such as WiFi and cellular services) that these devices have long supported, as well as newer and less common technologies (such as ultra-wideband (UWB)).
[0104] In some embodiments, a smart device may include an inertial measurement unit (IMU). The IMU may be a module that combines numerous sensors with different functions, such as an accelerometer for measuring linear acceleration, a gyroscope for measuring angular velocity, a magnetometer for measuring magnetic field strength and direction, etc. These sensors can estimate the device's trajectory. In some embodiments, combining IMU sensor data with ranging measurements (e.g., ranging measurements from wireless chipsets such as WiFi and UWB) or sensor fusion can, for example, improve positioning accuracy by reducing uncertainty.
[0105] Figure 9A high-level block diagram illustrating an example location estimation process is shown. For example, process 910 uses only a range-based positioning technique that estimates the location based on range measurements. Process 920 uses a range-and-sensor-based technique, i.e., a sensor fusion technique, that estimates the location based on both range measurements and sensor readings.
[0106] In some embodiments, PDR methods can typically include two categories: inertial navigation (IN) methods and step and heading (SH) methods.
[0107] The IN method tracks a device's position and orientation, i.e., the direction it faces in two-dimensional or three-dimensional (3D) space (also known as attitude or orientation). To determine the device's instantaneous position, the IN method integrates 3D acceleration to obtain velocity, and then integrates the velocity to determine displacement relative to a starting point. To obtain the device's instantaneous orientation, the IN method integrates angular velocity (e.g., from a gyroscope) to obtain the angular change relative to the initial orientation. Measurement noise and bias from accelerometers and gyroscopes can cause orientation offset to grow linearly over time (due to the integral of rotational velocity) and displacement error to grow quadratically over time (due to the double integral of acceleration). This can force the IN method to make a trade-off between positioning accuracy and computational complexity, as tracking and overcoming biases in sensor readings and measurement noise statistics over time typically requires complex filters with high-dimensional state vectors.
[0108] Unlike the IN method, which continuously tracks a device's position, the SH method reduces the frequency of device position updates by accumulating steps taken by the user from the starting point. Each step can be described as a vector, where the magnitude of the vector is the size of the step, and the argument of the vector is the heading of the step. Instead of directly integrating sensor readings to calculate displacement and orientation changes, the SH method performs a series of operations to achieve this. For example, first, the SH system can use many different methods (e.g., peak detection, zero-crossing detection, or template matching) to detect steps or strides. Second, once a step or stride is detected, the SH system can estimate the size or length of the step based on the acceleration sequence falling within the duration of the step. Third, the SH system can use, for example, a gyroscope, a magnetometer, or a combination of both, to estimate the heading of the step. All three steps are prone to error. For example, step detection can be susceptible to false positives (e.g., due to low peak values), false alarms (e.g., due to bimodalities), and other defects. Similarly, step size and heading estimation can also be error-prone due to errors in the underlying sensor measurements and idealized models.
[0109] Similar to the IN method, the SH method also involves a trade-off between computational complexity and positioning accuracy. Both methods can achieve acceptable positioning accuracy at the cost of high computational complexity, but the use of linear filters with high-dimensional equations, particle filters with tens or even hundreds of particles, or filter banks with numerous filters will lead to unstable code execution and increased power consumption.
[0110] However, unlike the IN system, in some embodiments, the SH system, especially in the sensor fusion-based indoor positioning system described herein, may be less susceptible to drift, particularly when ranging measurements are used to correct the estimated trajectory.
[0111] For example, when PDR is used to supplement range-based positioning technologies (e.g., WiFi RSSI fingerprinting, WiFi fine timing measurement (FTM), or UWB), the predictive location PDR system may not require the same level of accuracy as when used alone. In some embodiments, while some PDR solutions employ combinations of nonlinear filters, filter banks, so-called particle filters, and high-dimensional models, the simple and concise Pedestrian Dead Estimation Unit (PDRU) disclosed herein can predict a user's trajectory based on sensors on the user's handheld device as a step before correcting said trajectory using range measurements. This disclosure is computationally inexpensive and can achieve speedups proportional to the number of additional filters, particles, or dimensions required.
[0112] The Pedestrian Dead Retrieval Unit (PDRU) used herein may be or may include a positioning application, which may be implemented in hardware, firmware, or a hybrid manner. This disclosure may include an application (app), which refers to the software representation or implementation of an application.
[0113] As used herein, the term "module" includes units configured in hardware, software, or firmware, and may be used interchangeably with other terms such as "logic," "logic block," "component," "unit," or "circuit." A module can be a single, integral component, or it can be the smallest unit or component used to perform one or more functions. For example, a module can be configured in an application-specific integrated circuit (ASIC).
[0114] Figure 10 An example of a high-level block diagram depicting a positioning module 1000 of an electronic device is shown. The positioning module 1000 may be... Figure 3The example electronic device 301 includes a positioning module 375. In some embodiments, the positioning module 1000 may include, for example, an inertial measurement unit (IMU) 1010, a ranging device 1020, a pedestrian dead reckoning unit (PDRU) 1030, a positioning engine 1040, and a positioning application 1050. As shown in the exemplary positioning module 1000, the PDRU 1030 may be one of many interactive components serving the positioning application 1050.
[0115] In some embodiments, the IMU 1010 may include various sensors for measuring linear and rotational forces acting on an electronic device and the orientation of the electronic device. These sensors can convert their measurements into useful physical quantities; for example, an accelerometer can calculate acceleration, a gyroscope can calculate rotational speed, and a magnetometer can calculate orientation. The converted measurements (shown as sensor reading 1012) can be input to the PDRU 1030.
[0116] In some embodiments, the ranging device 1020 can measure the distance between an electronic device and one or more anchor points. In a wireless environment, the ranging device may be, or be part of, the following devices:
[0117] WiFi Station (STA), where a ranging device can measure the RSSI from the WiFi access point and convert it into distance.
[0118] WiFi STA acts as a Fine Timing Measurement (FTM) Initiator (FTMI), where the ranging device can perform distance measurement together with a WiFi access point acting as an FTM Responder (FTMR) to calculate the round-trip time (RTT) between the two devices and convert it into distance.
[0119] Ultra-wideband (UWB) ranging devices (RDEVs) act as initiators, where ranging devices can use UWB tags that act as responders to measure distances, thereby calculating RTT and converting it into distance.
[0120] Non-participant UWB RDEV, in which ranging devices can listen to the ranging between UWB tags, thereby calculating the time difference of arrival (TDoA) of signals sent by different ranging participants and converting it into a distance difference.
[0121] Bluetooth devices, where ranging devices can detect their proximity to deployed Bluetooth beacons (e.g., Bluetooth transmitters).
[0122] In some embodiments, the ranging device may be or may include a laser sensor, such as a light detection and ranging (LIDAR) sensor.
[0123] The output of the ranging device 1020 (shown as ranging measurement value 1022) can be input to the positioning engine 1040.
[0124] In some embodiments, the PDRU 1030 can receive sensor readings 1012 from the IMU 1010, and detect steps and calculate their size (length) and heading (orientation). The output of the PDRU 1030 (shown as step size and heading 1032) can be input to the positioning engine 1040. The PDRU 1030 will be described in detail below.
[0125] In some embodiments, the positioning engine 1040 can estimate the device position through sensor fusion, for example, by receiving and using a combination of ranging measurements and motion information (e.g., step length and heading).
[0126] In some embodiments, the location application 1050 may receive and use location estimation input from the location engine 1040. The uses of the location estimation may include, for example, navigation, proximity detection, asset tracking, etc. These uses may include user interaction.
[0127] Figure 11 An example high-level flowchart depicting a position estimation process 1100 according to some embodiments is shown. In operation 1110, signals from one or more sensors may be received. For example, acceleration and orientation signals may be obtained from IMU 1010. In operation 1120, ranging measurements indicating the distance of an object from one or more anchor points may be received, for example, from ranging device 1020. In operation 1130, step size and heading information may be generated based on the signals obtained in operation 1110. In some embodiments, operation 1130 may be performed in PDRU 1030. In operation 1140, position may be determined, for example, based on the aforementioned ranging measurements and the step size and heading information. In operation 1150, position information may be transmitted. For example, the position information may be transmitted to an application for further processing.
[0128] like Figure 11 As shown, in some embodiments, operations 1110 and 1130 may be executed independently of operation 1120, simultaneously with operation 1120, or in parallel with operation 1120.
[0129] Figure 12A An example high-level diagram of a PDRU 1200 according to some embodiments is shown. The PDRU 1200 can be used with... Figure 10The PDRU 1030 is similar to or the same as that in some embodiments. In some embodiments, the PDRU 1200 may include a low-pass filter (LPF) 1210, a sampling buffer (SB) 1220, a peak detector (PD) 1230, a peak height predictor (PHP) 1240, a step size estimator (SSE) 1250, and a step heading estimator (SHE) 1260.
[0130] Figure 12B An example of a high-level flowchart depicting a process 1270 for step size and heading estimation according to some embodiments is shown. In some embodiments, process 1270 may be performed in a PDRU 1200. In operation 1272, process 1270 may feed the acceleration signal to a low-pass filter (LPF), for example, by passing the timestamp t i {t i ,a i The i-th acceleration signal a at position 1202 i The signal is fed to the LPF 1210. This signal can be received from the IMU 1010. In some embodiments, the signal can be fed to the LPF sample by sample.
[0131] In some embodiments, the LPF 1210 may preserve low-frequency components in a signal (e.g., in an acceleration signal received from the IMU 1010). In some embodiments, the filter may be a causal and linear time-invariant filter that follows an autoregressive moving average (ARMA) model according to the following formula:
[0132] .
[0133] in, It is the original acceleration input signal. It is the filtered output signal. and These are referred to as the feedforward filter coefficients and the feedback filter coefficients, respectively, and A and B are the degrees of the corresponding polynomials. In some embodiments, and These can be the coefficients of a high-order Butterworth filter with a cutoff frequency in the range of 0-5Hz.
[0134] acceleration signal It can be: z-acceleration (acceleration orthogonal to the device screen); y-acceleration (acceleration along the short side of the device); a combination of z-acceleration, y-acceleration, and x-acceleration (acceleration along the long side of the device); or the magnitude of a three-dimensional or two-dimensional acceleration vector.
[0135] In operation 1274, the filtered output from the LPF can be buffered in, for example, SB 1220. In some embodiments, the buffered information can be timestamped, i.e., a read time reference. In some embodiments, SB 1220 can temporarily store samples from sensors (e.g., accelerometers and orientation sensors) and their corresponding timestamps. In some embodiments, SB 1220 can be implemented as a FIFO queue.
[0136] In operation 1276, process 1270 may include predicting a target peak height, which can be used to detect peaks in acceleration. In operation 1278, steps may be delimited. In some embodiments, steps may be delimited based on detected peaks and corresponding valleys. In some embodiments, operations 1276 and 1278 may be executed in PD1230 and PHP 1240. Operations 1276 and 1278 may be executed repeatedly.
[0137] In some embodiments, the PD 1230 can detect peaks and troughs (low points) in the acceleration signal to delimit the steps in time. The PD 1230 exhibits causal behavior. It should be noted that not all peaks cause steps, nor do all steps become peaks. For example, the PD 1230 can obtain the output of the LPF 1210. And they are processed one sample at a time (see below for more information). Figure 13 ).
[0138] In some embodiments, the PHP 1240 can periodically predict the target peak height parameter used by the PD1230 based on the latest historical acceleration sampling data (see also Figure 14 below for more information). The PHP 1240 can determine when a peak corresponds to a step.
[0139] In some embodiments, PD 1230 may ignore peaks that are less than the target peak height H (the threshold for detecting peaks). PD 1230 may also ignore peaks if the time since the last peak is less than the target peak interval T (the shortest required time interval between consecutive peaks).
[0140] In operation 1280, the step size can be estimated, for example, in SSE 1250. In operation 1282, orientation readings can be obtained and processed. This information can then be used to assign a heading to the step.
[0141] Figure 13 An example flowchart depicting a process 1300 of processing filtered acceleration sample by sample, according to some embodiments, is shown. In some embodiments, process 1300 may be performed in PD 1230. In some embodiments, acceleration sampling occurs if the following conditions are met. A peak can be generated if: 1) the peak occurs after the previous peak. 2) The peak value has greater than 1 second; 3) The peak value is a local maximum value.
[0142] In operation 1310, PD 1230 can receive an acceleration sample a with a sampling index value of n. In operation 1320, PD can check whether the sampling index n has reached or exceeded a threshold, for example, n >= N1, where N1 is a predetermined threshold, such as N1 = 3. If n >= N1, then PD 1230 can continue to execute the next operation 1330; otherwise, PD 1230 can eliminate the peak in operation 1322, increment the sampling index n, and return to operation 1310.
[0143] In operation 1330, PD 1230 can check the previous acceleration sampling. Is it a local maximum, that is, is a? n <a n-1 And a n-1 >a n-2 If so, PD 1230 can proceed to the next operation 1340; otherwise, PD 1230 can eliminate the peak in operation 1332, increment the sampling index n, and return to operation 1310.
[0144] In operation 1340, PD 1230 can check whether either of the following conditions is true: peak count P = 0, or the time since the last peak (t) n -t P The time between the target peaks is greater than or equal to the time T. In some embodiments, T can be a number in the range of 100-1000 milliseconds (inclusive). If the check result is true, PD 1230 can proceed to the next operation 1350; otherwise, PD 1230 can eliminate the peaks in operation 1342, increment the sampling index n, and return to operation 1310.
[0145] In operation 1340, PD 1230 can check acceleration sample a n Is it greater than or equal to the target peak height H? If true, then in operation 1360, PD 1230 can increment the peak count, and in operation 1362 declare that a peak has been detected, increment the sampling index n, and return to operation 1310; otherwise, PD 1230 can eliminate the peak in operation 1352, increment the sampling index n, and return to operation 1310.
[0146] Figure 14A and Figure 14BAn example flowchart depicting a process 1400 for predicting a target peak height is shown according to some embodiments. In some embodiments, process 1400 may be executed in PHP 1240. PHP 1240 may periodically predict the target peak height based on the latest history of acceleration sampling. The predicted target peak height may be fed back to PD 1230 and used by it, such as... Figure 12A and Figure 12B as well as Figure 13 As shown.
[0147] In some embodiments, such as Figure 14A As shown, the PHP 1240 can receive the latest number (W) of acceleration samples (time t) from the sampling buffer 1402 (e.g., SB 1220). n acceleration a at point n ), calculate the target peak height H m And feed it to PD 1230.
[0148] like Figure 14B As shown, in some embodiments, the PHP 1240 can periodically predict the target peak height parameter used by the PD 1230 based on the latest history of acceleration sampling. Figure 14B This illustrates an example implementation of sampling one by one. Variables It is the acceleration sampling index. Variable This is a PHP update loop counter.
[0149] For example, in operation 1410, if it is determined that the number (n) of acceleration samples in SB is less than or equal to a threshold (N0), n =<N0, then PHP 1240 can use the default peak target height H0 (set H) in operation 1412. m =H0); otherwise, PHP 1240 can continue to execute the next operation 1420.
[0150] In operation 1420, if the number of samples is determined... Not the peak update interval A multiple of (this peak update interval determines the period for updating the peak height), or alternatively, if mod Then PHP 1240 can use the default peak target height H0 (set H) in operation 1422. m =H0); otherwise, PHP 1240 can continue to execute the next operation 1430.
[0151] In operation 1430, PHP 1240 can update variables. The loop counter; and, in operation 1432, PHP1240 can update the target peak height to the latest N1 acceleration samples. The function of the R-th percentile magnitude, for example, according to the following formula:
[0152] ,
[0153] in, These are parameters that can be adjusted and obtained through testing with different users and walking speeds. In some implementations, R can be defined by performing a grid search on a large dataset.
[0154] In operation 1140, PHP 1240 can loop back to operation 1410. In some embodiments, PD 1230 can use a default target peak height. Once there are enough peaks, PHP 1240 can adapt to the user's walking intensity and estimate a new target peak height. PHP 1240 can then feed this new target peak height back to PD 1230.
[0155] Figure 15 Illustration 1500 shows an example of a process describing the prediction of peak height. For example, in the initial... Within seconds (horizontal x-axis), a larger target peak height of 1 m / s² can be selected (vertical y-axis), so it may be impossible to detect all peaks below the target. In some embodiments, only peaks significantly below the target may go undetected. Afterward, the target peak height can be adjusted to walking intensity, and each individual peak can be detected.
[0156] In some embodiments, the SSE 1250 can estimate the size of the step detected by the PD 1230. The SSE 1250 can calculate the size of the step based on the acceleration signal using alternative methods.
[0157] Figure 16A Illustration 1600 shows an example of the process for estimating the step size. In some embodiments, the SSE 1250 can calculate the size of the detected step (defined by the vertical y-axis) as a function of the corresponding peak 1602 and valley 1604.
[0158] Figure 16B The process of calculating the step size is illustrated according to some embodiments 1610 (see Figure 12A {s lExample of a high-level flowchart for}1252). In some embodiments, process 1610 can be executed in SSE 1250. In some embodiments, SSE 1250 can execute process 1610 when a peak / step is detected. In operation 1612, SSE 1250 can receive the magnitude a+ of the peak from PD 1230. In operation 1614, SSE 1250 can determine the minimum value a_ of the acceleration signal between the two most recent peaks. For example, this can be done by indexing AB 1402 and performing a search. In another example, the minimum value a_ can be tracked as follows:
[0159] a.From a_= start.
[0160] b. Use each new acceleration sample , sample and update a_ one by one.
[0161] c. Once a peak is detected, reset a_ to However, this is on the premise that its value has already been used according to the next step.
[0162] In operation 1616, the SSE 1250 can calculate the step size. In some embodiments, the SSE 1250 can calculate the step size according to the well-known Weinberg formula, as follows:
[0163] ,
[0164] in, It is the Weinberg coefficient, and its value can be found by offline searching within a certain range of values.
[0165] The SSE 1250 can also use other methods to calculate the step size from the acceleration signal. For example, the SSE 1250 can use an artificial intelligence (AI) regression model that takes the acceleration sequence over the duration of the step or its processed features, and this model has been trained offline. In another example, the SSE 1250 can use other closed-form models, such as the well-known Kim model, which represents the step size as follows:
[0166] .
[0167] Figure 17 An example flowchart depicting a process 1700 for estimating the step heading is shown according to some embodiments. In some embodiments, process 1700 may be performed in SHE 1260.
[0168] In some embodiments, the PDRU (e.g., SHE 1260 in PDRU 1200) can use the exponentially moving circumferential average (EMCA) based on directional readings. } Calculate the heading of the detected steps. For example, these readings could be Figure 12A The readings shown { }1204. Orientation readings can be derived from readings from magnetometers, gyroscopes, and other sensors. EMCA gives greater weight to more recent orientation readings compared to ordinary or simple moving circular average (SMCA). Using AMCA can make the SHE more sensitive to sharp turns in motion. In some embodiments, upon detecting a step... At that time, SHE 1260 can execute process 1700.
[0169] In operation 1710, if n = 0 is determined, then SHE 1260 can be achieved by averaging the orientation. Set as To initialize the EMCA filter. In other words, when n=0, this is the first directional sampling, and averaging is not required, so this sample can be used instead of the average. Otherwise, SHE 1260 can use EMCA in operation 1720 according to the following formula. Perform filtering:
[0170] ,
[0171] Where 0 < γ < 1. For alternative locations, γ can be calculated using the following formula:
[0172]
[0173] Where δ>0, the reaction speed can be controlled to be a sharp turn.
[0174] SHE 1260 can perform average orientation Take a snapshot and record the detected heading of the step. (See) Figure 12A { in }1262) set to .
[0175] Therefore, the PDRU 1200 can handle each peak Matched by size and heading ( The corresponding step described ,in It is size, and It refers to the heading. In some embodiments, the PDRU 1200 can stream the detected steps (specifically their size and heading) to a positioning operation (e.g., a positioning engine 1040), where they can be used to predict the movement of the user of the handheld device and track their trajectory.
[0176] As used herein, unless otherwise stated, references to elements in the singular are not intended to mean "one" and "only one," but rather to mean one or more. For example, a "one" module can refer to one or more modules. Without further limitation, elements beginning with "one," "the," or "the" do not preclude the presence of additional identical elements.
[0177] Titles and subtitles (if any) are for convenience only and do not limit the invention. The word "exemplary" is used to indicate that it is used as an example or illustration. With regard to the use of the terms "comprising," "having," or similar terms, such terms are intended to be open-ended in a manner similar to the term "including," as is interpreted when "comprising" is used as a transitional word in the claims. Relational terms such as "first" and "second" may be used to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual relationship or order between these entities or actions.
[0178] Phrases such as “one aspect,” “this aspect,” “on the other hand,” “some aspects,” “one or more aspects,” “one implementation,” “this implementation,” “another implementation,” “some implementations,” “one or more implementations,” “an embodiment,” “this embodiment,” “another embodiment,” “some embodiments,” “one or more embodiments,” “a configuration,” “this configuration,” “another configuration,” “some configurations,” “one or more configurations,” “the subject matter,” “this disclosure,” and other variations thereof are used for convenience only and do not imply that the disclosure associated with such phrases is essential to the subject matter, nor does it imply that such disclosure applies to all configurations of the subject matter. The disclosure associated with such phrases may apply to all configurations, or may apply to one or more configurations. The disclosure associated with such phrases may provide one or more examples. Phrases such as “one aspect” or “some aspects” may refer to one or more aspects, and vice versa, and this similarly applies to other foregoing phrases.
[0179] The phrase "at least one" follows a list of items, separated by "and" or "or," and modifies the entire list, not each item in the list. The phrase "at least one" does not require selecting at least one item; rather, it allows for interpretations such as: at least one of any one item, and / or at least one of any combination of items, and / or at least one of each item. For example, the phrases "at least one of A, B, and C" or "at least one of A, B, or C" refer to only A, only B, or only C; any combination of A, B, and C; and / or at least one of A, B, and C, respectively.
[0180] As used herein, 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 “send,” “receive,” and “communicate,” and their derivatives, can encompass both direct and indirect communication. The terms “include” and “include,” and their derivatives, mean inclusion without limitation. The phrase “associated with,” and its derivatives, mean including, being included, interconnected with, containing, being contained within, connected to or connected to, coupled to or coupled to, communicable with, cooperating with, intertwined with, juxtaposed with, proximate to, bound to or bound to, having, possessing the attributes of, having a relationship to, or a relationship with, etc. The term “controller” means any device, system, or part thereof that controls at least one operation. Such a controller can 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, whether local or remote.
[0181] The various functions described herein can be implemented or supported by one or more computer programs, each of which can be formed of computer-readable program code and embedded 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 suitable for implementation in appropriate computer-readable program code. The phrase “computer-readable program code” can include any type of computer code, including source code, object code, and executable code. The phrase “computer-readable medium” can include any type of medium accessible by a computer, such as read-only memory (ROM), random access memory (RAM), hard disk drive, compact disc (CD), digital video disc (DVD), or any other type of storage. Non-transitory computer-readable media can include media in which data can be permanently stored and media in which data can be stored and subsequently overwritten, such as overwritable optical discs or erasable storage devices.
[0182] It should be understood that the specific order or hierarchy of the disclosed steps, operations, or processes is for illustrative purposes only. Unless otherwise expressly stated, it should be understood that the specific order or hierarchy of steps, operations, or processes may be performed in a different order. Some steps, operations, or processes may be performed simultaneously or as part of one or more other steps, operations, or processes. The appended method claims (if any) present the elements of the various steps, operations, or processes in an exemplary order, but are not intended to limit them to the specific order or hierarchy shown. These elements may be performed sequentially, linearly, in parallel, or in a different order. It should be understood that the described instructions, operations, and systems can generally be integrated into a single software / hardware product or packaged into multiple software / hardware products.
[0183] This disclosure is intended to enable those skilled in the art to practice the various aspects described herein. In some instances, to avoid obscuring the concept of the subject matter, some well-known structures and components are shown in block diagram form. This disclosure provides various examples of the subject matter, but the subject matter is not limited to these examples. Those skilled in the art will readily make various modifications to these aspects, and the principles described herein can be applied to other aspects.
[0184] All structural and functional equivalents of elements throughout the various aspects described herein that are known or subsequently known to a person skilled in the art are expressly incorporated herein by reference and are intended to be covered by the claims. Furthermore, the disclosure herein is not intended for public use, regardless of whether such disclosure is expressly recited in the claims. A claimed element should not be interpreted pursuant to 35 USC §112, paragraph 6, unless the element is expressly recited using the phrase “means for…” or, in the case of a method claim, using the phrase “steps for…”.
[0185] The title of the invention, background art, a brief description of the accompanying drawings, an abstract, and the drawings are incorporated herein by reference and are provided as illustrative examples rather than limiting descriptions. It should be understood at the time of filing that they are not intended to limit the scope or meaning of the claims. Furthermore, as will be apparent from the detailed description, the description provides illustrative examples, and various features are combined in various embodiments to simplify the disclosure. This manner of disclosure should not be construed as reflecting an intention to require more features than expressly recited in each claim. Rather, as reflected in the appended claims, the inventive subject matter lies in all features of fewer than the configuration or operation of a single disclosure. The appended claims are incorporated herein by reference, each claim being a separately claimed subject matter.
[0186] The claims are not intended to limit themselves to the aspects described herein, but should be given the full scope consistent with the language of the claims and to cover all legal equivalents. Nevertheless, no claim is intended to cover, nor should it be interpreted in this manner, any subject matter that does not meet the requirements of applicable patent law.
Claims
1. A method for estimating the position of an object, the method comprising: Receives acceleration and orientation signals; Receive one or more ranging measurements; Step size information is generated based on the acceleration signal; The stepping heading information is generated based on the orientation signal; as well as The position of the object is estimated based on the one or more range measurements, the step size information, and the heading information.
2. The method according to claim 1, wherein, The one or more ranging measurements include distance information between the object and one or more anchor points.
3. The method according to claim 1, wherein, Generating the step size information includes: Multiple peaks in the acceleration signal are detected based on the target peak height and the time between target peaks.
4. The method according to claim 3, wherein, Generating the step size information includes: The target peak height is predicted based on a certain number of acceleration samples in the acceleration signal.
5. The method according to claim 4, wherein, Generating the step size information includes: The step size is estimated based on multiple detected peaks.
6. The method according to claim 1, wherein, The step heading information is determined using a moving average method based on the orientation information in the orientation signal, wherein the moving average method assigns greater weight to a predetermined number of the most recent orientation information.
7. The method according to claim 3, wherein, Each detected peak has a peak height greater than or equal to the target peak height, and the duration between the peak and the immediately preceding peak is greater than or equal to the time between the target peaks.
8. The method according to claim 4, wherein, Predicting the target peak height includes: When the number of acceleration samples is less than a first threshold, the target peak height is set to a default value; and When the number of acceleration samples is greater than the first threshold and is a multiple of a predetermined value, the target peak height is set using a function of a certain percentile amplitude of a certain number of the latest acceleration samples.
9. The method according to claim 1, further comprising: Obtain the acceleration signal and the orientation signal; as well as The acceleration signal and the orientation are filtered using a low-pass filter.
10. The method according to claim 2, wherein, The distance is determined using one of the following: flight time, round-trip time, downlink time difference of arrival, uplink time difference of arrival, received signal strength indication, or channel state information.
11. An apparatus for estimating the position of an object associated with a user, comprising: Memory; as well as A circuit, connected to the memory, is configured to: Receives acceleration and orientation signals; Receive one or more ranging measurements; Step size information is generated based on the acceleration. The stepping heading information is generated based on the orientation signal; as well as The position of the object is estimated based on the one or more range measurements, the step size information, and the heading information.
12. The device according to claim 11, wherein, The one or more ranging measurements include the distance between the object and one or more anchor points.
13. The device according to claim 11, wherein, In order to generate the step size information, the circuit is configured as follows: Multiple peaks in the acceleration signal are detected based on the target peak height and the time between target peaks.
14. The device according to claim 13, wherein, In order to generate the step size information, the circuit is configured as follows: The target peak height is predicted based on a certain number of acceleration samples in the acceleration signal.
15. The device according to claim 14, wherein, In order to generate the step size information, the circuit is configured as follows: The step size is estimated based on multiple detected peaks.