Acoustic positioning

By detecting the acoustic signals of multiple sound sources and generating related parameters, acoustic positioning without wireless synchronization is achieved, solving the problems of hardware complexity, long setting time and large power consumption in the prior art, and improving positioning accuracy and battery life.

CN119511203APending Publication Date: 2025-02-25NOKIA TECHNOLOGIES OY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411148343.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-08-22
Filing Date
2024-08-21
Publication Date
2025-02-25

AI Technical Summary

Technical Problem

Existing acoustic positioning technology requires multiple nodes to be synchronized, resulting in hardware complexity, long setup time, high cost and large power consumption.

Method used

By detecting the acoustic signals of multiple sound sources, time-of-flight and arrival angle parameters are generated, and timing parameters are used to generate timing parameters, thereby estimating the position and orientation of the object, achieving acoustic positioning without wireless synchronization.

Benefits of technology

Simplifies hardware, shortens setup time, reduces system cost and power consumption, while improving positioning accuracy and battery life.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119511203A_ABST
    Figure CN119511203A_ABST
Patent Text Reader

Abstract

The invention provides acoustic localization. Examples of the present disclosure relate to localization that may be implemented with a small number of nodes. In an example of the present disclosure, an apparatus for acoustic localization includes a component to detect two or more acoustic signals originating from two or more sound sources. The apparatus further comprises means for generating a first class of parameters for the two or more detected acoustic signals and a second class of parameters for the two or more detected acoustic signals. Timing parameters are generated for the two or more detected acoustic signals using at least the first and second types of parameters. An estimate of the position of the object associated with the two or more detected acoustic signals is determined using at least the timing parameter and the first class of parameters.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Examples of the present disclosure relate to acoustic positioning. Examples of the present disclosure relate to acoustic positioning that can be achieved with a small number of nodes. Background Art

[0002] Positioning can be used in many applications, such as robotics or object navigation. Positioning methods such as time of arrival (ToA) and angle of arrival (AoA) can be used in such applications. Summary of the invention

[0003] According to various but not all examples of the present disclosure, there may be provided an apparatus for acoustic positioning, comprising components for performing the following operations:

[0004] detecting two or more acoustic signals originating from two or more acoustic sources;

[0005] generating a first type of parameter for two or more detected acoustic signals;

[0006] generating a second type of parameter for two or more detected acoustic signals;

[0007] generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters; and

[0008] Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with two or more detected acoustic signals is determined.

[0009] The first category of parameters may include two or more time-of-flight parameters.

[0010] The second type of parameters may include two or more angle-of-arrival parameters.

[0011] This component may be used to jointly solve the time of arrival equation and the angle of arrival equation using an iterative process to generate timing parameters.

[0012] The component may be configured to generate instantaneous timing parameters using at least the first type of parameters and the second type of parameters, and to generate predicted timing parameters using the instantaneous timing parameters.

[0013] Timing parameters may include clock offset.

[0014] The component may be configured to generate a directional parameter for an object associated with the detected acoustic signal using at least the first type of parameters and the second type of parameters.

[0015] The component may be configured to estimate the orientation of the object using at least the orientation parameter and an estimate of the position of the object.

[0016] This component may be used to generate one or more additional estimates of the position of the object associated with the detected acoustic signal.

[0017] Additional estimates of the positions of objects associated with the detected acoustic signals may be generated by using the directional parameters and the second type parameters.

[0018] Additional estimates of the positions of objects associated with the detected acoustic signals may be generated by using the first type of parameters and the second type of parameters.

[0019] The component may be used to process an estimate of the position of an object and one or more additional estimates of the position to generate an adjusted estimate of the position of the object.

[0020] An adjusted estimate of the object's position may be generated by combining parameters from two or more respective estimates of position using one or more fusion estimation algorithms.

[0021] The object to be located includes two or more microphones for detecting acoustic signals.

[0022] The object to be located comprises one or more speakers for transmitting acoustic signals.

[0023] The object to be located may be in the same environment as one or more sound sources and two or more microphones for detecting acoustic signals.

[0024] According to various but not all examples of the present disclosure, a method may be provided, comprising:

[0025] detecting two or more acoustic signals originating from two or more acoustic sources;

[0026] generating a first type of parameter for two or more detected acoustic signals;

[0027] generating a second type of parameter for two or more detected acoustic signals;

[0028] generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters; and

[0029] Using at least the timing parameters and the first type parameters, an estimate of a position of an object associated with two or more detected acoustic signals is determined.

[0030] According to various but not all examples of the present disclosure, a computer program may be provided that, when executed by a device, causes the device to at least perform the following operations:

[0031] detecting two or more acoustic signals originating from two or more acoustic sources;

[0032] generating a first type of parameter for two or more detected acoustic signals;

[0033] generating a second type of parameter for two or more detected acoustic signals;

[0034] generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters; and

[0035] Using at least the timing parameters and the first type parameters, an estimate of a position of an object associated with two or more detected acoustic signals is determined.

[0036] According to various but not all examples of the present disclosure, there may be provided an apparatus for acoustic positioning, comprising components for performing the following operations:

[0037] detecting at least one acoustic signal originating from at least one acoustic source, wherein the at least one acoustic signal is detected by a plurality of microphones;

[0038] For the detected acoustic signal, generating a first type of parameter;

[0039] generating a second type of parameter for the detected acoustic signal;

[0040] generating a timing parameter for the detected acoustic signal using at least the first type of parameters and the second type of parameters; and

[0041] Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with at least one detected acoustic signal is determined.

[0042] The apparatus may be included in a reverse architecture system.

[0043] The two or more acoustic sources may be located on the mobile nodes, and the microphone for detecting the acoustic signal is located on one or more of the mobile nodes.

[0044] According to various but not all examples of the present disclosure, there may be provided an apparatus for acoustic positioning, comprising components for performing the following operations:

[0045] detecting three or more acoustic signals originating from three or more acoustic sources;

[0046] generating first type parameters for three or more detected acoustic signals;

[0047] determining whether one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver;

[0048] A position of an object associated with a detected acoustic signal is estimated using at least first class parameters and timing parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using instantaneous timing parameters, and if it is determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using predicted timing parameters.

[0049] The first category of parameters may include three or more time-of-flight parameters.

[0050] The first type of parameters may be used to estimate instantaneous timing parameters for three or more detected acoustic signals.

[0051] The predicted timing parameter may be predicted based at least in part on a previous estimate of the instantaneous timing parameter.

[0052] Timing parameters may include clock offset.

[0053] The component can be used to generate second-class parameters for three or more detected acoustic signals, and to estimate the orientation of an object associated with the detected acoustic signals using at least the second-class parameters and the directional parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from the transmitter to the receiver, instantaneous directional parameters are used, and if it is determined that one or more of the detected acoustic signals are indirect path signals from the transmitter to the receiver, predicted directional parameters are used.

[0054] The second category of parameters may include three or more angle-of-arrival parameters.

[0055] The second type of parameters may be used to estimate instantaneous directional parameters for three or more detected acoustic signals.

[0056] The predicted orientation parameter may be predicted based at least in part on a previous estimate of the instantaneous orientation parameter.

[0057] This component may be used to generate one or more additional estimates of the position of the object associated with the detected acoustic signal.

[0058] Additional estimates of the positions of objects associated with detected acoustic signals may be generated by using the second type of parameters.

[0059] The component may be used to process an estimate of the position of an object and one or more additional estimates of the position to generate an adjusted estimate of the position of the object.

[0060] An adjusted estimate of the object's position may be generated by combining parameters from two or more respective estimates of position using one or more fusion estimation algorithms.

[0061] The object to be located includes two or more microphones for detecting acoustic signals.

[0062] The object to be located comprises one or more speakers for transmitting acoustic signals.

[0063] The object to be located may be in the same environment as one or more sound sources and two or more microphones for detecting acoustic signals.

[0064] According to various but not all examples of the present disclosure, a method may be provided, comprising:

[0065] detecting three or more acoustic signals originating from three or more acoustic sources;

[0066] generating first type parameters for three or more detected acoustic signals;

[0067] determining whether one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver;

[0068] A position of an object associated with a detected acoustic signal is estimated using at least first class parameters and timing parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using instantaneous timing parameters, and if it is determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using predicted timing parameters.

[0069] According to various but not all examples of the present disclosure, a computer program may be provided that, when executed by an apparatus, causes the apparatus to at least perform:

[0070] detecting three or more acoustic signals originating from three or more acoustic sources;

[0071] generating first type parameters for three or more detected acoustic signals;

[0072] determining whether one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver;

[0073] A position of an object associated with a detected acoustic signal is estimated using at least first class parameters and timing parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using instantaneous timing parameters, and if it is determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using predicted timing parameters.

[0074] According to various but not all examples of the present disclosure, there may be provided an apparatus for acoustic positioning, comprising components for performing the following operations:

[0075] detecting at least one acoustic signal originating from at least one acoustic source, wherein the acoustic signal is detected by a plurality of microphones to generate at least a plurality of microphone signals;

[0076] For three or more microphone signals, generating first type parameters;

[0077] determining whether one or more microphone signal acoustic signals correspond to indirect path signals from a transmitter to a receiver;

[0078] A position of an object associated with a detected acoustic signal is estimated using at least first class parameters and timing parameters, wherein the position is estimated using instantaneous timing parameters if it is not determined that one or more microphone signals correspond to an indirect path signal from a transmitter to a receiver, and the position is estimated using predicted timing parameters if it is determined that one or more microphone signals correspond to an indirect path signal from a transmitter to a receiver.

[0079] The apparatus may be included in a reverse architecture system.

[0080] At least one sound source may be located on a mobile node, and a plurality of microphones may be located on one or more mobile nodes.

[0081] Although the above examples and optional features of the present disclosure are described separately, it should be understood that they are included in the present disclosure in all possible combinations and arrangements. It should be understood that the various examples of the present disclosure may include any or all of the features described for other examples of the present disclosure, and vice versa. In addition, it should be understood that any one or more or all of the features (in any combination) can be implemented by devices, methods, and / or computer program instructions as needed and as appropriate, or included in devices, methods, and / or computer program instructions, or can be performed by devices, methods, and / or computer program instructions. BRIEF DESCRIPTION OF THE DRAWINGS

[0082] Some examples will now be described with reference to the accompanying drawings, in which:

[0083] Figure 1 An example acoustic positioning system is shown;

[0084] Figure 2 An example acoustic positioning system is shown;

[0085] Figure 3 An example method is shown;

[0086] Figure 4 An example acoustic positioning system is shown;

[0087] Figure 5 An example acoustic positioning system is shown;

[0088] Figure 6 An example acoustic positioning system is shown;

[0089] Figure 7 An example method is shown;

[0090] Figure 8 An example acoustic positioning system is shown;

[0091] Fig. 9 An example acoustic positioning system is shown;

[0092] Fig.10 An example acoustic positioning system is shown;

[0093] Fig.11 An example method is shown;

[0094] Fig.12 An example method is shown;

[0095] Fig.13 An example method is shown;

[0096] Fig.14 An example directional prediction block is shown;

[0097] Fig.15 shows an example spatial plot for positioning utilizing a stationary node;

[0098] Fig.16 An example acoustic positioning system is shown;

[0099] Fig.17 An example application for an acoustic positioning system is shown;

[0100] Fig.18 An example application for an acoustic positioning system is shown;

[0101] Fig.19 An example architecture for acoustic localization is shown;

[0102] Fig. 20 An example architecture for acoustic localization is shown;

[0103] Fig.21 An example architecture for acoustic localization is shown;

[0104] Fig. 22 An example architecture for acoustic localization is shown;

[0105] Fig.23 An example positioning node is shown;

[0106] Fig.24 shows an example positioning node; and

[0107] Fig.25 An example device is shown.

[0108] The drawings are not necessarily drawn to scale. For the sake of clarity and brevity, certain features and views in the drawings may be shown schematically or exaggerated in scale. For example, the dimensions of certain elements in the drawings may be exaggerated relative to other elements to aid in illustration. Corresponding reference numerals are used in the drawings to indicate corresponding features. For the sake of clarity, all reference numerals may not be shown in all drawings. DETAILED DESCRIPTION

[0109] Figure 1 An example acoustic positioning system 100 is shown in which synchronization between acoustic positioning signals is achieved through the use of wireless transmitters and receivers.

[0110] Figure 1 The example system of includes a plurality of positioning nodes 102 and a wireless transmitter 104. In this example, three positioning nodes 102 are shown. In other examples, other numbers of positioning nodes 102 may be used.

[0111] The wireless transmitter 104 is configured to transmit a clock or timing signal. A plurality of clock or timing signals may be received by the wireless receiver 108 of the positioning node 102.

[0112] exist Figure 1 In the example of FIG. 1 , two positioning nodes 102_1 and 102_2 are sending nodes. The corresponding sending positioning nodes 102_1 and 102_2 include an acoustic transmitter 106 and a wireless receiver 108 .

[0113] The wireless receiver 108 is configured to receive a wireless signal transmitted by the wireless transmitter 104. The wireless signal may include a clock or timing signal.

[0114] The acoustic transmitter 106 is configured to send acoustic signals L1, L2 that can be used for positioning. The acoustic signals L1, L2 may include a unique signal sequence. The signal sequence may be unique to a specific positioning node 102, so that different positioning nodes 102 use different signal sequences. The signal sequence may include a chirp / scanning signal, or a pseudo-random noise sequence, or any other suitable type of signal. The start of the signal sequence may be triggered at a specific time instance. The time instance may be derived from a clock or timing signal from the wireless transmitter 104. In some examples, a timestamp based on a clock or timing signal may be used to trigger the acoustic signal.

[0115] The third positioning node 102_3 is a receiving node and includes a microphone 110 , a wireless receiver 108 , a delay calculation module 112 , and a positioning module 114 .

[0116] The wireless receiver 108 is configured to receive wireless signals transmitted by the wireless transmitter 104. These signals will be the same clock or timing signals received by the wireless receiver 108 of the receiving positioning node 102_1, 102_3.

[0117] The microphone 110 is configured to detect an acoustic signal from the acoustic transmitter 106. The acoustic signal has a flight time T1, T2 from the corresponding acoustic transmitter 106 to the microphone 110. The microphone 110 is configured to convert the detected acoustic signal into a microphone signal y. The microphone signal y is provided as an input to the delay calculation module 112.

[0118] The delay calculation module 112 is configured to receive the microphone signal y from the microphone 110 and the timing information from the wireless receiver 108. The delay calculation module 112 is configured to calculate the delay between the transmission time of the acoustic signal at the transmitting positioning node 102_1, 102_2 and the reception time of the acoustic signal detected by the microphone 110. The delay calculation module 112 provides an estimated flight time As output, the estimated flight time It may be determined based on the arrival time of the detected acoustic signal and timing information from a clock or timing signal.

[0119] The positioning module 114 is configured to determine the location of the receiving positioning node. The positioning module 114 is configured to receive the estimated flight time As input, the estimated flight time The distances d1 and d2 between the sending positioning nodes 102_1 and 102_2 and the receiving positioning node 102_3 are determined by multiplying the distances by the speed of sound c. Then, the corresponding distances can be used to determine the coordinate x of the receiving positioning node 102_3. TOA ,y TOA .

[0120] The speaker can be connected to the acoustic transmitter 106 via any suitable means. In some examples, the speaker and the acoustic transmitter 106 can be collocated. In other examples, different arrangements can be used. For example, the acoustic transmitter 106 and the speaker can be connected via a cable, so that the speaker can be located at a different location from the acoustic transmitter 106. The location of the speaker is a location for positioning purposes. Similarly, the microphone 110 and the receiving positioning node 102_3 can be connected via a cable, so that the microphone 110 can be located at a different location from the receiving positioning node 102_3. The location of the microphone 110 is a location for positioning purposes.

[0121] Figure 2 Another example acoustic positioning system 100 is shown in which synchronization between acoustic positioning signals is achieved by using wireless transmitters and receivers.

[0122] Figure 2 An example acoustic positioning system 100 with Figure 1 The acoustic positioning system 100 is similar to that of FIG. 1 , except that, instead of having two separate transmitting positioning nodes 102_1 , 102_2 to transmit two acoustic signals L1 , L2 , a single transmitting positioning node 102_1 is configured to transmit two acoustic signals L1 , L2 .

[0123] In this example, the sending positioning node 102_1 includes a multi-channel acoustic transmitter 200. In this case, the sending positioning node 102_1 is a multi-channel node. The multi-channel acoustic transmitter 200 is configured to send a plurality of acoustic signals L1, L2 that can be used for positioning. Each acoustic signal L1, L2 sent by the multi-channel acoustic transmitter 200 has a unique signal sequence.

[0124] In this case, the transmitted acoustic signals L1, L2 are synchronized with each other, however, they are not synchronized with the receiving positioning node 102_3. Therefore, a clock or timing signal from the wireless transmitter 104 is still required to synchronize these signals.

[0125] exist Figure 1 and Figure 2In the example system of FIG. 1 , each of the positioning nodes 102 requires a wireless receiver 108 to receive a clock or timing signal from the wireless transmitter 104. If wireless signaling is not used or fails, positioning cannot be achieved due to a lack of sufficient information to solve all the unknowns in the necessary equations.

[0126] The examples of the present disclosure provide an acoustic positioning system 100 that does not require a wireless transmitter and a wireless receiver. In the examples of the present disclosure, the position and orientation of the mobile node can be determined using only acoustic signals. The examples of the present disclosure simplify the hardware, shorten the setup time, reduce the number of key components that may fail, and reduce the cost of the system. In addition, the examples of the present disclosure can reduce power consumption, thereby extending the battery life of the mobile node.

[0127] Figure 3 An example method is shown that may be used to locate an object in some examples of the present disclosure.

[0128] The object to be located may be a receiving positioning node 102 or a sending positioning node 102. Whether the object to be located is a receiving positioning node 102 or a sending positioning node 102 depends on the architecture of the system 100. That is, it will depend on whether a forward architecture or a reverse architecture is used for the system 100.

[0129] In some examples, the object to be located may include two or more microphones 110 for detecting acoustic signals. This type of arrangement may be used in a system 100 having a forward architecture. In some examples, the object to be located may include one or more speakers for transmitting acoustic signals. This type of arrangement may be used in a system 100 having a reverse architecture.

[0130] The method includes, at block 300, detecting two or more acoustic signals originating from two or more acoustic sources. The acoustic sources may be sound emitting transducers, such as speakers. The acoustic sources may be part of a transmitting positioning node 102 or any other suitable entity.

[0131] The object to be located may be in the same environment as one or more sound sources and two or more microphones for detecting acoustic signals. The sound sources and microphones 110 may be part of the positioning node 102 .

[0132] The acoustic signal may be in the audible range and / or in the ultrasonic range.

[0133] The acoustic signal may comprise a unique signal sequence. The signal sequence may comprise a swept / scanned signal, or a pseudo-random noise sequence, or any other suitable type of signal.

[0134] Detection of the acoustic signal may include identifying a signal sequence in the acoustic signal. The detection process may include acquiring the acoustic signal by one or more microphones 110 and converting the acoustic signal into an electrical signal. The detection process may also include converting the analog electrical signal into a digital signal. The detection process may also include identifying the signal sequence by correlating the acquired acoustic signal with the transmitted signal (such as performed by a matched filter) and applying a threshold. Similarly, the detection process may also include identifying the signal sequence by convolving the acquired acoustic signal with a time-reversed / inverse version of the transmitted signal and applying a threshold.

[0135] At block 302, the method includes generating a first type of parameter for two or more detected acoustic signals, and at block 304, the method includes generating a second type of parameter for the two or more detected acoustic signals. The second type(s) may be different from the first type(s). For example, the first type of parameter may be related to a first physical characteristic of the detected acoustic signal, and the second type of parameter may be related to a second physical characteristic of the detected acoustic signal.

[0136] In some examples, the first type of parameters may include two or more time-of-flight parameters. The time-of-flight parameters may include an indication of the time of flight of an acoustic signal between a transmitter and a receiver. The time-of-flight parameters may be adjusted or biased.

[0137] In some examples, the second type of parameters may include two or more angle of arrival parameters. The angle of arrival parameter may include an indication of the angle at which the acoustic signal arrives at the transmitter. The angle of arrival parameter may be adjusted or biased.

[0138] At block 306 , the method includes generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters.

[0139] The timing parameter may be a parameter indicating the relative timing of the arrival of the acoustic signals at the receiving positioning node 102. The timing parameter may be an indication of the relative delay between the respective acoustic signals, or may be an indication of the respective times of their arrival. In some examples, the timing parameter includes a clock offset.

[0140] Any suitable process may be used to generate the timing parameters. In some examples, the process may include jointly solving the time of arrival equation and the angle of arrival equation to generate the timing parameters. In some examples, the process may include generating an instantaneous timing parameter using at least the first type of parameters and the second type of parameters, and generating a predicted timing parameter using the instantaneous timing parameter. The predicted timing parameter may be predicted for a time that occurs after the time at which the instantaneous timing parameter was generated.

[0141] At box 308, the method includes determining an estimate of the position of an object associated with two or more detected acoustic signals using at least the timing parameter and the first type parameter. The estimate of the position of the object can be an improved or updated estimate. The estimate can be used as an output indicating the position of the object.

[0142] The object to be located can be associated with the acoustic signal, because it can be an object that sends or receives the acoustic signal, or can be an object connected to a transmitter or receives or sends the acoustic signal. For example, the object can be a person wearing a device that can send or receive an acoustic signal.

[0143] exist Figure 3 In the example of , two or more acoustic signals from two or more sound sources are detected. There may be use cases where more than two signals are useful. For example, if an object needs to be located in three-dimensional space, three or more signals may be useful. This may be the case if the object is a drone or other similar object.

[0144] In some examples, the method may include Figure 3 One or more boxes not shown in the figure. For example, in some examples, the method may include generating additional parameters. In some examples, the method may include using at least the first type of parameters and the second type of parameters to generate an orientation parameter of an object associated with the detected acoustic signal. The orientation parameter and an estimate of the position of the object can be used to estimate the orientation of the object.

[0145] In some examples, the method may include generating one or more additional estimates of the position of the object associated with the detected acoustic signal. The estimate of the position and the one or more additional estimates of the position may be processed to generate an adjusted estimate of the position of the object. This may produce a more accurate or more reliable position estimate. In some examples, the adjusted estimate of the position of the object may include more information than the original estimate. For example, it may include information related to the orientation and coordinate position of the object.

[0146] Can be used and used Figure 3 The additional estimate may be generated by a different process than the estimate generated by the method. As an example, an additional estimate of the position of an object associated with the detected acoustic signal may be generated by using directional parameters and second class parameters. In some examples, an additional estimate of the position of an object associated with the detected acoustic signal may be generated by using first class parameters and second class parameters.

[0147] The adjusted estimate of the position of the object may be generated by using any suitable means or process. In some examples, the adjusted estimate of the position may be generated by combining parameters from two or more corresponding estimates of the position using one or more fusion estimation algorithms. The fusion estimation algorithm may include covariance intersection, geometric dilution of precision (GDOP), extended Kalman filtering, or any other suitable algorithm.

[0148] Figure 4 An example acoustic positioning system 100 that can be used to implement examples of the present disclosure is schematically shown. The example acoustic positioning system 100 can be used to implement Figure 3 or any other suitable method. Figure 4 The example system 100 may be used to implement / enable positioning of an object without using wireless synchronization. Figure 4 The system 100 does not require the use of wireless transmitters or receivers to locate an object.

[0149] In this example, the system 100 includes a transmitting positioning node 102_T and a receiving positioning node 102_R. In this example, the transmitting positioning node 102_T is a multi-channel node. The multi-channel node includes a plurality of sound sources 400.

[0150] exist Figure 4 In the example of FIG. 1 , the sending positioning node 102_T is configured to send two acoustic signals L1 and L2. The sending positioning node 102_T includes a multi-channel acoustic transmitter 200 and a plurality of speakers. The speakers provide a sound source 400. Figure 4 In the example of FIG. 4 , the sending positioning node 102_T includes two sound sources 400. In other examples, the sending positioning node 102_T may include more than two sound sources 400 and / or there may be more than one sending positioning node 102_T.

[0151] The sending positioning node 102_T provides acoustic signals L1 and L2 that can be used to locate the object. In the example of the present disclosure, at least two acoustic signals L1 and L2 are provided. Figure 4 In the example of , a single sending positioning node 102_T provides two acoustic signals L1, L2. In other examples, a single sending positioning node 102_T may provide more than two acoustic signals L1, L2 and / or the system 100 may include more than one sending positioning node 102_T.

[0152] The acoustic signals L1 , L2 may be in the audible range and / or in the ultrasonic range.The acoustic signals L1 , L2 may comprise a signal sequence enabling the acoustic signals L1 , L2 to be distinguished from each other.

[0153] In this example, the receiving positioning node 102_R includes a microphone array 110, a biased time of flight (ToF) estimation module 402, a biased angle of arrival (AoA) estimation module 404, a joint time of arrival / angle of arrival (ToA / AoA) estimation module 406, a clock offset prediction module 408, and a ToA positioning module 410. In other examples, the receiving positioning node 102_R may include other components.

[0154] The microphone array 110 includes K microphone elements. The microphone array 110 may have any suitable geometry. For example, the microphone array 110 may be linear, circular, or spherical or any other suitable shape. The microphone array 110 may have any suitable size. The size used for the microphone array 110 may depend on the frequency range of the acoustic signals L1, L2. For example, for ultrasonic positioning in the frequency range of 20kHz to 30kHz, a circular microphone array 110 with a diameter of 1cm may be applicable. In addition, for many applications, an array with K=6 microphone elements may be sufficient. In other examples, other configurations for the microphone array 110 may be used.

[0155] The microphone array 110 detects acoustic signals L1, L2 that have been transmitted from the sound source 400. The microphone array 110 provides microphone signals s1(i), s2(i), ..., s K (i) as output.

[0156] The receiving positioning node 102_R is configured to transmit the microphone signals s1(i), s2(i), . . . , s K (i) Provided to the biased ToF estimation module 402 and the biased AoA estimation module 404.

[0157] exist Figure 4 In the example of FIG. 4 , the biased ToF estimation module 402 uses only a single microphone signal s1(i). However, the biased AoA estimation module 404 uses all microphone signals s1(i), s2(i), ..., s K (i).

[0158] The biased ToF estimation module 402 is configured to generate a first type of parameter for the detected acoustic signals L1 , L2. In this example, the first type of parameter is a biased time of flight estimate.

[0159] The biased ToF is estimated from a single microphone signal (e.g., s1(i)). To estimate the biased ToF, the start of the transmitted signal sequence is detected. To improve the detection of this sequence, a matched filter can be applied to the received signal. That is, the cross-correlation between the received signal and the reverse / inverse transmitted signal is calculated.

[0160] The biased ToF estimation module 402 is configured to calculate the ToF of the corresponding acoustic signals L1, L2. The ToF is calculated using a common bias for each acoustic signal L1, L2. The common bias is an unknown clock offset.

[0161] The biased ToF estimation module 402 provides biased time of flight estimates T′ 1 , T′ 2 as output.

[0162] The biased AoA estimation module 404 is configured to generate a second type of parameter for the detected acoustic signals L1, L2. In this example, the second type of parameter is a biased angle of arrival estimate.

[0163] Biased AoA is obtained from multiple microphone signals s1(i),s2(i),…,s K Any suitable process can be used to estimate the microphone signals s1(i), s2(i), ..., s K (i) Estimate the angle of arrival. The AoA is calculated using the common bias for each acoustic signal L1, L2. The bias of these angles is the unknown orientation θ(i) of the object to be located. The unbiased angle of arrival is and For the sake of brevity, Figure 4 The time index i in is deleted, but Figure 4 All parameters in will be updated regularly based on a preconfigured microphone signal frame duration (such as 100ms).

[0164] The biased AoA estimation module 404 provides a biased angle of arrival estimate as output.

[0165] Biased flight time estimates T′1, T′2 and biased arrival angle estimates Provided as input to the joint Toa / AoA estimation module 406. Biased time of flight estimates T'1, T'2 and biased angle of arrival estimates The first type of parameters and the second type of parameters that can be used to generate timing parameters are provided. The joint Toa / AoA estimation module 406 can be configured to use the biased flight time estimates T'1, T'2 and the biased arrival angle estimates To generate timing parameters.

[0166] exist Figure 4 In the example, the timing parameter is the instantaneous clock offset In other examples, other types of timing parameters may be estimated.

[0167] The joint Toa / AoA estimation module 406 may be configured to generate the timing parameters using any suitable process. In some examples, the timing parameters may be generated using an iterative scheme such as the Newton-Raphson method.

[0168] The joint Toa / AoA estimation module 406 provides the timing parameters as output. The joint Toa / AoA estimation module 406 may also be configured to generate other output parameters, such as the instantaneous orientation of the object to be located. Estimates.

[0169] In some examples, the timing parameters may be provided as input to the synchronized ToA positioning module 410. Figure 4 In the example of FIG. 4 , the timing parameters are provided as input to the clock offset prediction module 408. The clock offset prediction module 408 is configured to generate an improved clock offset estimate Figures 11 to 13 An example of a clock skew prediction module 408 is shown. Other configurations of the clock skew prediction block 408 may be used.

[0170] The timing parameters or improved timing parameters are provided as input to the synchronous ToA positioning module 410. The synchronous ToA positioning module 410 is also configured to receive the biased time of flight estimates T'1, T'2 as input.

[0171] The synchronous ToA positioning module 410 is configured to determine an estimate of the position of the receiving positioning node 102_R or the sending positioning node 102_T using at least the timing parameters and the first type of parameters. In this case, the first type of parameters include the biased flight time estimate T'1, T'2. The synchronous ToA positioning module 410 is configured to provide an estimate of the position x ToA ,y ToA as output.

[0172] Figure 5 Another example acoustic positioning system 100 that may be used to implement examples of the present disclosure is schematically illustrated. Figure 5 The example acoustic positioning system 100 shown in FIG. Figure 4 The system 100 shown in FIG. Figure 5 In the example of , the sending positioning node 102_T is a multi-channel node. The multi-channel node includes multiple sound sources 400. Figure 5 In the system 100 , the receiving positioning node 102 -R includes a orientation module 500 .

[0173] The orientation module 500 is configured to generate an improved orientation estimate The orientation module 500 may provide means for generating orientation parameters using at least the first type of parameters and the second type of parameters. Fig.14 An example of an orientation module 500 is shown. Other configurations of orientation module 500 may be used.

[0174] The orientation module 500 is configured to receive the biased arrival angle estimate Instantaneous orientation estimation and the estimated position x ToA ,y ToA The orientation module 500 is configured to process these inputs to compute an improved orientation estimate Improved orientation estimation can be obtained by using the continuous estimate x from the position ToA ,y ToA The derivative of the derived position (ie, the velocity vector) is calculated.

[0175] Figure 6 Another example acoustic positioning system 100 that may be used to implement examples of the present disclosure is schematically illustrated. Figure 6 The example acoustic positioning system 100 shown in FIG. Figure 5 The system 100 shown in FIG. Figure 6 In the example of FIG. 1 , the sending positioning node 102_T is a multi-channel node. The multi-channel node includes multiple sound sources 400. Figure 6 In the system 100 , the receiving positioning node 102_R includes an AoA positioning module 600 and an adjusted position estimator module 602 .

[0176] The AoA positioning module 600 is configured to determine another estimate of the position of the receiving positioning node 102_R or the sending positioning node 102_T using at least the directional parameter and the second type of parameter. The AoA positioning module 600 may be configured to perform similar functions as the ToA positioning module 410 .

[0177] The AoA positioning module 600 is configured to receive as input the second type of parameters and the directional parameters. In this example, the second type of parameters include the biased arrival angle estimate And the orientation parameters include improved orientation estimates The synchronous AoA positioning module 600 is configured to provide another estimate of the position x AoA ,y AoA As output, the estimate x of the position from the AoA positioning module 600 is AoA ,y AoA Provides an additional estimate of the object's location.

[0178] exist Figure 6In the example of FIG. 4 , the joint ToA / AoA estimation module 406 is further configured to provide an additional estimate of the position Additional estimates of position generated by the joint Toa / AoA estimation module 406 is generated by using the first and second type parameters.

[0179] therefore, Figure 6 The system 100 shown in FIG. 1 generates multiple different position estimates using different combinations of parameters. The adjusted position estimator module 602 is configured to receive multiple different estimates of position as input and process these inputs to generate an adjusted position estimate. In addition to the coordinate position, the adjusted position estimate Orientation estimates may also be included.

[0180] exist Figure 6 In the example of FIG. 6 , the adjusted position estimator module 602 receives a plurality of inputs. The inputs include an estimate of the position x from the synchronous ToA positioning module 410. ToA ,y ToA , additional estimate x of the position from the AoA positioning module 600 AoA ,y AoA , additional estimate of position from the joint Toa / AoA estimation module 406 Improved clock skew estimation and improved orientation estimation In other examples, other inputs or combinations of inputs may be used.

[0181] The adjusted position estimator module 602 is configured to fuse, combine, or select corresponding input position estimates to provide an adjusted position estimate. as output. In many practical acoustic positioning situations, it is easier to achieve higher accuracy from ToA positioning than AoA positioning. Angle of arrival calculations (such as obtained by biased AoA estimation module 404) are much more complex than time of flight calculations (such as used by ToF estimation module 402). In addition, the angle of arrival estimate is significantly more sensitive to timing errors in the detection of the direct path. Even a small timing error in the direct path will result in a large angle error. For the time of flight estimate, the resulting error is limited. Therefore, the adjusted position estimator module 602 can be designed so that the estimate x of the position selected from the synchronous ToA positioning module 410 ToA ,y ToA , so that and This can then be combined with the improved orientation estimate Combined to provide an adjusted position estimate

[0182] In some examples, the adjusted position estimator module 602 can be configured to use a fusion estimation algorithm, such as covariance intersection, ToA versus AoA geometric precision for a given beacon constellation (which may also be referred to as geometric dilution of precision (GDOP)), extended Kalman filtering, or any other suitable technique.

[0183] Figure 7 Another example method that can be used to locate an object in some examples of the present disclosure is shown. Figure 7 In the example of FIG. 8 , if one or more acoustic signals are blocked, the fallback mode may use a reduced number of acoustic signals for positioning.

[0184] The object to be located may be a receiving positioning node 102 or a sending positioning node 102. Whether the object to be located is a receiving positioning node 102 or a sending positioning node 102 depends on the architecture of the system 100. That is, it will depend on whether a forward architecture or a reverse architecture is used for the system 100.

[0185] The method includes, at block 700, detecting three or more acoustic signals from three or more acoustic sources. The acoustic sources may be sound emitting transducers such as speakers. The acoustic sources may be part of a transmitting positioning node 102 or any other suitable entity.

[0186] The object to be located may be in the same environment as one or more sound sources and two or more microphones for detecting acoustic signals. The sound sources and microphones 110 may be part of the positioning node 102 .

[0187] The acoustic signal may be in the audible range and / or in the ultrasonic range.

[0188] The acoustic signal may comprise a unique signal sequence. The signal sequence may comprise a swept / scanned signal, or a pseudo-random noise sequence, or any other suitable type of signal.

[0189] The detection of the acoustic signal may include identifying a signal sequence in the acoustic signal. The detection process may include acquiring the acoustic signal by one or more microphones 110 and converting the acoustic signal into an electrical signal. The detection process may also include converting the analog electrical signal into a digital signal. The detection process may also include identifying the signal sequence by correlating the acquired acoustic signal with the transmitted signal (such as performed by a matched filter) and applying a threshold.

[0190] At block 702 , the method includes generating a first type of parameter for two or more detected acoustic signals.

[0191] The first type of parameters may include three or more time of flight parameters. The time of flight parameters may include an indication of the time of flight of an acoustic signal between a transmitter and a receiver. The time of flight parameters may be adjusted or biased.

[0192] At block 704, the method includes determining whether one or more detected acoustic signals are indirect path signals from the transmitter to the receiver. If the acoustic signal is blocked or obstructed so that there is some deflection or reflection of the acoustic signal, it can be determined that the acoustic signal is an indirect path signal.

[0193] At block 704, the method includes estimating the position of an object associated with the detected acoustic signal using at least the first class parameter and the timing parameter. The timing parameter used is determined based on whether an indirect signal has been detected. If it is not determined that one or more of the detected acoustic signals are indirect path signals from the transmitter to the receiver, the position is estimated using the instantaneous timing parameter. This would occur if all signals were direct path signals from the transmitter to the receiver.

[0194] Conversely, if it is determined that one or more of the detected acoustic signals is an indirect path signal from the transmitter to the receiver, the predicted timing parameters are used to estimate the position. This will occur if at least one signal is an indirect path signal from the transmitter to the receiver.

[0195] The instantaneous timing parameters may be estimated using any suitable means. In some examples, the instantaneous timing parameters may be estimated using the first type of parameters for three or more detected acoustic signals. The predicted timing parameters are predicted based at least in part on previous estimates of the instantaneous timing parameters.

[0196] The timing parameter may be an indication of the relative delay between the respective acoustic signals, or may be an indication of the respective times of their arrival. The timing parameter may comprise a clock offset or any other suitable type of parameter.

[0197] In some examples, the method may include generating a second type parameter for three or more detected acoustic signals, and estimating the orientation of an object associated with the detected acoustic signal. The orientation may be estimated using at least the second type parameter and the orientation parameter. The orientation parameter used may depend on whether an indirect signal is detected. If it is not determined that one or more detected acoustic signals are indirect path signals from the transmitter to the receiver, the instantaneous orientation parameter may be used. This would occur if all signals were direct path signals from the transmitter to the receiver.

[0198] Conversely, if it is determined that one or more of the detected acoustic signals is an indirect path signal from the transmitter to the receiver, the predicted directional parameters may be used. This will occur if at least one signal is an indirect path signal from the transmitter to the receiver.

[0199] In some examples, the second type of parameters may include three or more angle of arrival parameters. The angle of arrival parameters may include an indication of the angle at which the acoustic signal arrives at the receiver. The angle of arrival parameters may be adjusted or biased.

[0200] Any suitable means may be used to estimate the instantaneous directional parameter. In some examples, the instantaneous directional parameter may be estimated using the second type of parameters for three or more detected acoustic signals. The predicted directional parameter is predicted based at least in part on a previous estimate of the instantaneous directional parameter.

[0201] In some examples, the method may also include generating one or more additional estimates of the position of the object associated with the detected acoustic signal. The additional estimates of the position may be generated using different parameters or parameter inputs. In some examples, the additional estimates of the position of the object associated with the detected acoustic signal may be generated by using a second type of parameter.

[0202] In some examples, the method may include generating one or more additional estimates of the position of the object associated with the detected acoustic signal. The estimate of the position and the one or more additional estimates of the position may be processed to generate an adjusted estimate of the position of the object. This may produce a more accurate or more reliable estimate of the position of the object. In some examples, the adjusted estimate of the position of the object may include more information than the original estimate. For example, it may include information related to the orientation and coordinate position of the object.

[0203] Can be used and used Figure 7 The additional estimate may be generated by a different process than the estimate generated by the method. As an example, an additional estimate of the position of an object associated with the detected acoustic signal may be generated by using directional parameters and second class parameters. In some examples, an additional estimate of the position of an object associated with the detected acoustic signal may be generated by using first class parameters and second class parameters.

[0204] The adjusted estimate of the object's position may be generated using any suitable means or process. In some examples, the adjusted estimate of the position may be generated by combining parameters from two or more corresponding estimates of the position using one or more fusion estimation algorithms. The fusion estimation algorithm may include covariance intersection, geometric dilution of precision (GDOP), extended Kalman filtering, or any other suitable algorithm.

[0205] Figure 8An example acoustic positioning system 100 that can be used to implement examples of the present disclosure is schematically shown. The example acoustic positioning system 100 can be used to implement Figure 7 or any other suitable method. Figure 8 The example system 100 may be used to implement / enable positioning of an object without using wireless synchronization. Figure 8 The system 100 does not require the use of wireless transmitters or receivers to locate an object. Figure 8 The system 100 has a fallback mode that may use a reduced number of acoustic signals if one or more acoustic signals are blocked.

[0206] In this example, the system 100 includes a sending positioning node 102_T and a receiving positioning node 102_R. Figure 5 In the example of FIG. 4 , the sending positioning node 102_T is a multi-channel node. The multi-channel node includes multiple sound sources 400 .

[0207] exist Figure 8 In the example of FIG. 1 , the sending positioning node 102_T is configured to send three acoustic signals L1, L2, and L3. The sending positioning node 102_T includes a multi-channel acoustic transmitter 200 and a plurality of speakers. The speakers provide a sound source 400. Figure 8 In the example of FIG. 4 , the sending positioning node 102_T includes three sound sources 400. In other examples, the sending positioning node 102_T may include more than three sound sources 400 and / or there may be more than one sending positioning node 102_T.

[0208] The sending positioning node 102_T provides acoustic signals L1, L2, L3 that can be used to locate the object. In the example of the present disclosure, at least three acoustic signals L1, L2, L3 are provided. Figure 8 In the example of , a single sending positioning node 102_T provides three acoustic signals L1, L2, L3. In other examples, a single sending positioning node 102_T may provide more than three acoustic signals L1, L2, L3 and / or the system 100 may include more than one sending positioning node 102_T.

[0209] The acoustic signals L1 , L2, L3 may be in the audible range and / or in the ultrasonic range.The acoustic signals L1 , L2, L3 may comprise a signal sequence enabling the acoustic signals L1 , L2, L3 to be distinguished from each other.

[0210] In this example, the receiving positioning node 102_R includes a microphone or microphone array 110, a biased time of flight (ToF) estimation module 402, a line of sight (LOS) / non-line of sight (NLOS) detection module 800, an asynchronous ToA positioning module 802, a synchronous ToA positioning module 804, and a clock offset prediction module 408. In other examples, the receiving positioning node 102_R may include other components.

[0211] exist Figure 8 In the example of , the microphone 110 may be a single microphone or a microphone array. The microphone or the microphone array 110 detects the acoustic signals L1, L2, L3 that have been transmitted from the sound source 400. The microphone or the microphone array 110 provides a microphone signal s1 as an output.

[0212] The receiving positioning node 102_R is configured such that the microphone signal s1 is provided to the biased ToF estimation module 402 .

[0213] The biased ToF estimation module 402 is configured to generate a first type of parameter for the detected acoustic signals L1 , L2, L3. In this example, the first type of parameter is a biased time of flight estimate.

[0214] The biased ToF is estimated from a single microphone signal s1. To estimate the biased ToF, the start of the transmitted signal sequence is detected. To improve the detection of this sequence, a matched filter can be applied to the received signal. That is, the cross-correlation between the received signal and the reverse / inverse transmitted signal is calculated.

[0215] The biased ToF estimation module 402 is configured to calculate the ToF of the corresponding acoustic signals L1, L2, L3. The ToF is calculated using a common bias for each acoustic signal L1, L2, L3. The common bias is an unknown clock offset.

[0216] The biased ToF estimation module 402 provides biased time of flight estimates T′ 1 , T′ 2 , T′ 3 as output.

[0217] The biased flight time estimates T'1, T'2, T'3 are provided as input to the LOS / NLOS detection module 800. The LOS / NLOS detection module 800 is configured to detect whether one or more detected acoustic signals L1, L2, L3 are indirect path signals from the transmitter to the receiver. An indirect path signal is a signal that is blocked or obstructed so that there is some deflection or reflection of the signal. An indirect signal is a NLOS signal, and a direct signal is a LOS signal.

[0218] Any suitable means or process may be used to detect whether one or more detected acoustic signals L1, L2, and L3 are LOS signals or NLOS signals. In some examples, NLOS signals may be detected by tracking the position of a signal sequence in a matched filter output or other suitable beacon. The signal sequence may be at a frequency f p (frame rate) is sent repeatedly, i.e., at T f =1 / f p The maximum speed of the mobile node v max , the maximum distance a mobile node can move within an update or frame interval is d = v max ·T f This means that, for the sound speed c, the new signal sequence is within the time window T of the previous signal sequence. f ±d / c. Therefore, if a new signal sequence arrives outside this time window, it can be determined that it is a NLOS signal. Similarly, other constraints can be derived from the maximum angular velocity and from the signal level. In turn, these constraints can be used as a check for LOS / NLOS of the detected acoustic signals L1, L2, L3.

[0219] Figure 8 The example system 100 includes both an asynchronous ToA positioning module 802 and a synchronous ToA positioning module 804. The asynchronous ToA positioning module 802 may be used if it is not determined that one or more detected acoustic signals L1, L2, L3 are indirect path signals from the transmitter to the receiver. That is, if all detected acoustic signals L1, L2, L3 are LOS signals, the asynchronous ToA positioning module 802 may be used. Conversely, if it is determined that one or more detected acoustic signals L1, L2, L3 are indirect path signals from the transmitter to the receiver, the synchronous ToA positioning module 804 may be used. That is, if one or more detected acoustic signals L1, L2, L3 are NLOS signals, the synchronous ToA positioning module 804 may be used.

[0220] If all detected acoustic signals L1, L2, L3 are LOS signals, then all biased flight time estimates T'1, T'2, T'3 are provided to the asynchronous ToA positioning module 802. The asynchronous ToA positioning module 802 may be configured to generate instantaneous timing parameters and use the instantaneous timing parameters to provide an estimate of the position of the object. In this example, the instantaneous timing parameter is the instantaneous clock offset In other examples, other types of timing parameters may be estimated.

[0221] The asynchronous ToA positioning module 802 can provide an estimate of the location of the object. and instantaneous clock offset as output.

[0222] If one or more of the detected acoustic signals L1, L2, L3 are NLOS signals, a subset of the biased flight time estimates T'1, T'2, T'3 is provided to the synchronous ToA positioning module 804. The subset of the biased flight time estimates T'1, T'2, T'3 may include at least two of the biased flight time estimates T'1, T'2, T'3. The synchronous ToA positioning module 804 may be configured to use the predicted timing parameters to provide an estimate of the position of the object x ToA ,y ToA as output.

[0223] In this example, the predicted timing parameter is the predicted clock offset In other examples, other types of timing parameters may be estimated.

[0224] Predicting clock drift Provided by the clock offset prediction module 408. The clock offset prediction module 408 is configured to receive the instantaneous clock offset As input, it generates an improved clock offset estimate Figures 11 to 13 An example of a clock skew prediction module 408 is shown. Other configurations of the clock skew prediction module 408 may be used.

[0225] exist Figure 8 In the example of FIG. 4 , the clock offset prediction module 408 may receive an input from the LOS / NLOS detection module 800 to indicate whether a NLOS signal has been detected. Thus, the clock offset prediction module 408 may control the clock offset update process and generate a predicted clock offset in response to detecting a LOS / NLOS signal.

[0226] therefore, Figure 8 The system 100 provides two different methods for obtaining an estimate of the position. The first method includes using the first type parameters and the instantaneous timing parameters. This method can be used if all detected acoustic signals L1, L2, L3 are LOS signals. The second method is a fallback method, which can be used if one or more detected acoustic signals L1, L2, L3 are NLOS signals. The second method includes using the first type parameters and predicted timing parameters. The predicted timing parameters can be predicted from previous values ​​of the instantaneous timing parameters.

[0227] Fig. 9 Another example acoustic positioning system 100 that may be used to implement examples of the present disclosure is schematically illustrated. Fig. 9 The example acoustic positioning system 100 shown in FIG. Figure 8The system 100 shown in FIG. Fig. 9 In the example of FIG. 1 , the sending positioning node 102_T is a multi-channel node. The multi-channel node includes multiple sound sources 400. Fig. 9 In the system 100, the receiving positioning node 102_R includes a microphone array 110, a biased AoA estimation module 404, a second LOS / NLOS detection module 800_2, an AoA positioning module 900, and a direction module 902. In other examples, the system 100 may include other components.

[0228] exist Fig. 9 In the example of , the microphone array 110 includes K microphone elements. The microphone array 110 can have any suitable geometry. For example, the microphone array 110 can be linear, circular, or spherical or any other suitable shape. The microphone array 110 can have any suitable size. The size used for the microphone array 110 can depend on the frequency range of the acoustic signals L1, L2, and L3. For example, for ultrasonic positioning in the frequency range of 20kHz to 30kHz, a circular microphone array 110 with a diameter of 1cm may be applicable. In addition, for many applications, an array with K=6 microphone elements may be sufficient. In other examples, other configurations for the microphone array 110 may be used.

[0229] The microphone array 110 detects acoustic signals L1, L2, L3 that have been transmitted from the sound source 400. The microphone array 110 is configured to provide microphone signals s1, s2, ..., s3 of the K microphone elements in the array. K as output.

[0230] exist Fig. 9 In the example of FIG. 1 , the receiving positioning node 102_R is configured to convert the microphone signals s1, s2, . . . , s K Provided to the biased AoA estimation module 404.

[0231] The biased AoA estimation module 404 is configured to generate a second type of parameter for the detected acoustic signals L1, L2, L3. In this example, the second type of parameter is a biased angle of arrival estimate.

[0232] Biased AoA is obtained from multiple microphone signals s1,s2,…,s K Any suitable process may be used to estimate the K Estimate the angle of arrival. The angle of arrival is calculated using a common bias for each acoustic signal L1, L2, L3. The bias of these angles is the unknown orientation θ of the object to be located. The unbiased angle of arrival is as well as

[0233] The biased AoA estimation module 404 provides a biased angle of arrival estimate as output.

[0234] Biased Angle of Arrival Estimation Provided as input to a second LOS / NLOS detection module 800_2. The second LOS / NLOS detection module 800_2 is configured to detect whether one or more detected acoustic signals L1, L2, L3 are indirect path signals from the transmitter to the receiver. The second LOS / NLOS detection module 800_2 may be similar to the first LOS / NLOS detection module that receives the biased flight time estimates T′1, T′2, T′3 as input. The second LOS / NLOS detection module 800_2 may be based on the maximum angular velocity and the frame duration. Alternatively, a single LOS / NLOS decision module for ToA and AoA combining both 800_1 and 800_2 may be derived, rather than using separate NLOS / NLOS decision modules for ToA and AoA.

[0235] exist Fig. 9 In the example of FIG. 1 , the receiving positioning node 102_R includes both an AoA positioning module 900 and a direction module 902. If it is not determined that one or more detected acoustic signals L1, L2, L3 are indirect path signals from the transmitter to the receiver, the AoA positioning module 900 may be used. That is, if all detected acoustic signals L1, L2, L3 are LOS signals, the AoA positioning module 900 may be used. On the contrary, if it is determined that one or more detected acoustic signals L1, L2, L3 are indirect path signals from the transmitter to the receiver, the direction module 902 may be used. That is, if one or more detected acoustic signals L1, L2, L3 are NLOS signals, the direction module 902 may be used.

[0236] If all detected acoustic signals L1, L2, L3 are LOS signals, then all offset arrival angle estimates are provided to the AoA positioning module 900. The AoA positioning module 900 may be configured to use the biased arrival angle estimation To provide an estimate of the object's orientation That is, the AoA positioning module 900 uses the second type of parameters to estimate the orientation of the object. The estimate may be an instantaneous orientation parameter.

[0237] The AoA positioning module 900 may also be configured to provide additional estimates of the location of the object. This is Fig. 9 Not shown.

[0238] If one or more of the detected acoustic signals L1, L2, L3 is a NLOS signal, the arrival angle estimate is biased A subset of the angle of arrival estimates is provided to the orientation module 902. Can include biased arrival angle estimates The orientation module 902 may be configured to use the biased arrival angle estimation and the estimated position x of the object ToA ,y ToA To provide an estimate of the object's orientation When one or more of the detected acoustic signals L1, L2, L3 is a NLOS signal, the estimate of the orientation may be used. It can be an orientation parameter. The orientation parameter is obtained from an estimate of the orientation of the object, from an estimate of the position (e.g., x ToA ,y ToA ), or from the biased arrival angle estimate Generated from a subset of .

[0239] Therefore, in Fig. 9 In the example system of FIG. 1 , if one or more of the signals are indirect signals, the output of the orientation module 902 may be used to provide a predicted estimate of the orientation of the object. However, if all signals are LOS or direct signals, the output of the AoA positioning module 900 provides an instantaneous estimate of the orientation of the object. as output.

[0240] Fig.10 Another example acoustic positioning system 100 that may be used to implement examples of the present disclosure is schematically illustrated. Fig.10 The example acoustic positioning system 100 shown in FIG. Fig. 9 The system 100 shown in FIG. Fig.10 In the example of , the sending positioning node 102_T is a multi-channel node. The multi-channel node includes multiple sound sources 400. Fig.10 In the system 100 , the receiving positioning node 102_R includes another AoA positioning module 1000 and an adjusted position estimator module 602 .

[0241] Fig.10 The AoA positioning module 1000 shown in FIG. 1 is configured to use at least the directional parameter and the second type of parameter to determine another estimate of the position of the receiving positioning node 102_R or the sending positioning node 102_T. Fig.10 The orientation parameter used by the AoA positioning module 1000 is the orientation parameter output by the orientation module 902

[0242] Fig.10 The AoA positioning module 1000 may be configured to perform similar functions as the synchronous ToA positioning module 410 in that it uses the predicted parameters to provide an estimate of the position.

[0243] therefore, Fig.10 The system 100 shown in FIG. 1 generates a plurality of different position estimates using different combinations of parameters. The adjusted position estimator module 602 is configured to receive the plurality of different position estimates as inputs and process the inputs to generate an adjusted position estimate. In addition to the coordinate position, the adjusted position estimate Orientation estimates may also be included.

[0244] exist Fig.10 In the example of FIG. 6 , the adjusted position estimator module 602 receives multiple inputs. The inputs include the estimate x of the position from the synchronous ToA positioning module 804. ToA ,y ToA , from Fig.10 Additional estimate of the position x of the AoA positioning module 1000 AoA ,y AoA , additional estimate of position from asynchronous ToA positioning module 802 Additional estimates of position from AoA positioning module 900 The predicted clock offset estimate from the clock offset prediction module 408 and the predicted orientation estimate from orientation module 902 In other examples, other inputs or combinations of inputs may be used.

[0245] The adjusted position estimator module 602 is configured to fuse, combine, or select corresponding input position estimates to provide an adjusted position estimate. as output.

[0246] Fig.11 4 shows an example method that can be used by the clock offset prediction module 408. The clock offset prediction module 408 is configured to keep track of the clock or time offset between the sending positioning node 102_T and the receiving positioning node 102_R. Figures 8 to 10 Any of the systems in the example system 100 may be used Fig.11 In the example clock offset prediction module 408 of the example system 100, when one or more acoustic signals are blocked, the example system 100 uses a fallback option for estimating a position using prediction parameters. Other types of clock offset prediction modules 408 may be used in other example systems.

[0247] The clock offset occurs because the time of sending the acoustic signal is unknown, and also because the clock drift between the sending positioning node 102_T and the receiving positioning node 102_R is unknown. The clock offset can be derived according to the audio clock of the receiving positioning node 102_R. If the audio clock does not run at exactly the same speed as the audio clock of the sending positioning node 102_T, the clock offset will drift. Although both the sending positioning node 102_T and the receiving positioning node 102_R can generate the audio clock with the same nominal frequency (such as 48kHz), each node has its own quartz crystal oscillator that determines the precise sampling frequency. Therefore, the sampling frequency may deviate slightly, even if only a few ppm. However, this deviation needs to be taken into account in order to accurately track and update the clock offset.

[0248] The clock drift is determined by the sampling frequency offset between the sending positioning node 102_T and the receiving positioning node 102_R. Assume that the sampling frequency for the receiving positioning node 102_R is f s and the slightly deviated sampling frequency used to send the positioning node 102_T is f′ s =f s +Δf (with positive or negative Δf), the clock drift for the frame is:

[0249]

[0250] Among them, N f is the number of samples in the frame.

[0251] The receiving positioning node 102_R cannot access the sampling frequency f′ of the sending positioning node 102_T s However, this can be deduced by linear regression from the calculated instantaneous clock offset Export.

[0252] A first-order or second-order polynomial (least squares fit) can be recursively fitted to Data. c The second-order polynomial of (i) can be written as τ c (i) = a i +b i i+c i i 2 The form of . The parameter a can be found in various ways i ,b i and c iSince these parameters can change over time, adaptive updates of these parameters can be used. Two examples of adaptive least squares fitting algorithms are described below. They are sliding window least squares fitting and gradient-based least squares fitting. For illustration purposes, conventional notation for polynomials is used (the independent variable is labeled x i , denote the dependent variable as y i ) and assume that the random zero-mean error term ∈ i :

[0253]

[0254] Note that this notation replaces the time index variable i with x i , and the clock offset variable τ c (i) Replace with y i To derive the sliding window recursive least squares fit, equation (1) can be expanded and written in matrix notation, namely:

[0255] y i =X i p i +∈ i (2)

[0256] in,

[0257]

[0258] The sliding window size is M. The least squares estimate for the polynomial parameters in equation (2) is:

[0259]

[0260] This means that once M clock offset measurements y i If available, the polynomial parameters can be determined

[0261] Using the pseudoinverse (also known as the Moore-Penrose inverse),

[0262]

[0263] vector can be expressed as:

[0264]

[0265] Data block y can be processed only every M clock offset measurements i , instead of applying a sliding window. That is, Equation (3) will be evaluated only every M clock offset measurements. However, this means that the polynomial parameter estimates Updates will only be made every M clock offset measurements, thus potentially delaying clock offset adjustments and thus reducing positioning accuracy.

[0266] When applying sliding windows to solve polynomial parameter estimates , equation (3) is evaluated after each new clock offset measurement, i.e., for each time index i. In order to reduce the number of computations, a recursive algorithm for this least squares fit can be derived. Based on the previous product To denote the input matrix product Right now:

[0267]

[0268] in,

[0269]

[0270] This yields a sliding window recursive least squares fit, where the polynomial parameter vector at time i is expressed in terms of the previous parameter vector at time i-1, i.e.:

[0271]

[0272] This algorithm can be initialized at the start time (i.e., at time index i=0) by setting X0 to a null matrix, y0 to a null vector, and p0 to a null vector (i.e., a0=y0, b0=0, and c0=0). In addition, a counter for the number of consecutive NLOS frames, i.e., n is initialized. NLOS =0.

[0273] When one or more acoustic signals are blocked by an object / substance or a person, a NLOS condition may occur in the system 100 for detecting at least three acoustic signals (such as Figures 8 to 10 When this happens, the coefficient vector p i No more updates can be made because y i is no longer available. However, in this case, the previous polynomial parameters can be used, namely:

[0274]

[0275] And the clock offset can be estimated using the following formula:

[0276]

[0277] Equation (1) shows a second-order polynomial, however, a first-order polynomial (i.e., c i=0) is usually sufficient to track the changes in clock offset. Even during the startup phase, where the sending positioning node 102_T and the receiving positioning node 102_R may be subject to different temperature changes, which in turn lead to second-order drift components, but such changes are slow compared to the frame data rate. Therefore, an adaptive (or window-based) first-order polynomial model is usually sufficient to track the clock offset. This in turn simplifies the evaluation of equation (8) because only two polynomial parameters a need to be estimated i and b i .

[0278] Fig.11 The example clock offset prediction method shown in can be used in a system 100 configured to detect whether one or more acoustic signals are obstructed and use the above equations.

[0279] At block 1100, the method includes initialization. The initialization may include setting X0 to an empty matrix, y0 to an empty vector, and p0 to an empty vector (i.e., a0=y0, b0=0, and c0=0). A counter for the number of consecutive NLOS frames, i.e., n is also initialized. NLOS =0.

[0280] At block 1102, initialization is followed by incrementing of an iteration counter i.

[0281] At block 1104, it is determined whether one or more detected acoustic signals are indirect path signals from the transmitter to the receiver. That is, it is determined whether a desired number of LOS signals are received. Input from the LOS / NLOS detection module 800 can be used to determine whether a desired number of LOS signals have been received. A code can be assigned to indicate whether a desired number of LOS signals have been received. For example, a Boolean variable LOS(i)=true can indicate that a desired number of LOS signals have been received, and a Boolean variable LOS(i)=false can indicate that a desired number of LOS signals have not been received.

[0282] If the required number of LOS signals have been received, the clock offset is estimated. In this example, the estimation includes updating the polynomial coefficients for the clock offset. Conversely, if the required number of LOS signals have not been received, the clock offset is predicted. If one or more signals are NLOS signals, the required number of LOS signals may not be received. In this example, the clock offset is predicted using the polynomial coefficients for the clock offset from the previous iteration.

[0283] exist Fig.11In the example of , if the required number of LOS signals have been received, the method proceeds to block 1106. At block 1106, it is detected whether a transition from a NLOS signal to a LOS signal has occurred. This provides an option to reset the algorithm after a long NLOS condition.

[0284] Any suitable process may be used to detect the transition from the NLOS signal to the LOS signal. For example, the NLOS to LOS transition may be detected at block 1106 as follows:

[0285] NLOS to LOS transition: LOS(i-1)==false&&LOS(i)==true (11)

[0286] If this transition is determined to have occurred, the NLOS counter n can be evaluated NLOS If the NLOS counter n NLOS Above a predetermined threshold (n NLOS >N NLOS ), then reset the algorithm. Threshold N NLOS can be set according to the accuracy of the system. This may result in N_NLOS of the order of 1,000...10,000.

[0287] After NLOS to LOS transition detection, the method proceeds to block 1108 and reads a new instantaneous clock offset. The clock offset may be a measurement. At block 1110, the circular buffer is updated. That is, the circular buffer pointer is incremented according to the modulo M convention and the oldest instantaneous clock offset y is read from the memory location. i-M , and at the same time offset the new instantaneous clock by y i Write this memory location (which was read in the previous frame).

[0288] At block 1112, the input matrix is ​​updated according to equation (6). At block 1114, the polynomial coefficients are updated according to equation (8). At block 1116, the clock offset is updated according to equation (10).

[0289] If it is determined at block 1104 that the required number of LOS signals have not been received, the method proceeds to block 1118. At block 1118, it is detected whether a transition from LOS to NLOS has occurred.

[0290] exist Fig.11 In the example of , if the required number of LOS signals have been received, the method proceeds to block 1118 to detect a transition from a LOS signal to a NLOS signal. Any suitable process may be used to detect a transition from a LOS signal to a NLOS signal. For example, a LOS to NLOS transition may be detected at block 1118 as follows:

[0291] LOS to NLOS transition: LOS(i-1)==true&&LOS(i)==false (12)

[0292] If this transition is detected, the NLOS counter is set to n NLOS = 1. If this transition is not detected, the NLOS counter n is set NLOS Incremental, that is, n NLOS =n NLOS +1.

[0293] After LOS to NLOS transition detection, the method proceeds to block 1120 and the slope coefficient is updated according to equation (9). At block 1122, the clock offset is updated according to equation (10).

[0294] At block 1124, the circular buffer is updated. However, in this case, there is no new instantaneous clock offset y i Write to the memory location (the circular buffer pointer points to this memory location after it has been incremented). Instead of y i Write to this memory location.

[0295] After blocks 1116 and 1124, the method proceeds to block 1126 and outputs the clock offset calculation result. This completes the loop and starts a new iteration.

[0296] In some examples, the computation of the method can be simplified by using a first order polynomial fit. In some examples, the cyclic pseudo-inverse equation (4) can be further simplified. To do this, a least squares fit from the M clock offset measurements is calculated, and for this least squares fit, the starting index does not matter. This means that as long as the same corresponding x is used i vector, then we can use the same pseudo-inverse in each iteration. In other words, each iteration changes the matrix X i is replaced by the constant matrix X M , this constant matrix remains the same in each iteration. In addition, in the matrix X M In the time series [x1,x2,…,x M ] T The column vector can be replaced by the time index [1,2,…,M] T Column vector. (The obtained parameter estimates is also index-based, but can be converted back to time-based parameter estimates). For a first-order fit, it can be written as:

[0297]

[0298] This means that the pseudo-inverse remains a constant matrix over all iterations,

[0299]

[0300] This in turn provides the polynomial parameters,

[0301]

[0302] Since a fixed input matrix X is used M , therefore, it is also necessary to use the corresponding fixed x M = [1 M]. In this way, the clock offset estimate becomes:

[0303]

[0304] This will make Fig.11 The method shown in can be simplified by replacing blocks 1112 to 1116 with blocks that solve equations (15) and (16).

[0305] Fig.12 The clock offset prediction module 408 (such as Figures 8 to 10 Another example method used by the clock offset prediction module 408 in any one of the exemplary systems. Other types of clock offset prediction modules 408 may be used in other exemplary systems.

[0306] In this example, a first-order polynomial model for clock skew is assumed, namely:

[0307] y i =a i +b i x i +∈ i (17)

[0308] Using a recursive expression for the clock skew, this can be written as:

[0309] y i =y i-1 +b i (x i -x i-1 )+∈ i (18)

[0310] Equation (18) no longer contains the coefficient a i , however, this coefficient can be obtained by To estimate.

[0311] The slope of the clock skew graph can be estimated from two measurements separated by M measurement samples, namely:

[0312]

[0313] Assuming equally spaced x values, this can be written as x i -x i-1 =Δx, therefore,

[0314]

[0315] This instantaneous slope estimate can be further improved by filtering (e.g., by applying a first-order low-pass filter),

[0316]

[0317] in, is the low-pass filter slope coefficient, and α is the low-pass filter coefficient. The estimated clock offset can be written as:

[0318]

[0319] Among them, a gradient-based correction term -μe is added i-1 to remove any bias, where μ is the step size, e i-1 is the previous clock offset estimation error. The clock offset error can be calculated as follows:

[0320]

[0321] To initialize the algorithm given by equations (20)-(23) at startup, the variables at time index i=0 can be set as follows:

[0322] e0=0 (24)

[0323]

[0324] Additionally, a counter for consecutive NLOS frames may be initialized, namely:

[0325] n NLOS =0 (27)

[0326] An iteration loop may be initiated by incrementing the time index or iteration counter by one (ie, i=i+1). It may be assumed that the clock offset measurement y i The buffer size is M b The buffer can be implemented as a circular buffer, where the oldest data point (y i-M ) is removed, and the new data point (y i ) is written to its memory location. In order to accommodate i The buffer grows with time index (i=1,2,3,…,M b ) is filled up, the algorithm variable M is set based on the time index i, that is:

[0327] If i≤M b ,but

[0328] M=i; (28a)

[0329] otherwise

[0330] M=M b ; (28b)

[0331] Finish

[0332] This process is called circular buffer management. If all signals are LOS, then equations (20)-(23) are executed. This cycle is repeated, i.e., i is incremented by 1 and iterated until a NLOS signal is detected.

[0333] If a NLOS condition is detected (that is, in a three-signal system, one signal is blocked by an object / body or a person), the slope can no longer be updated because y i is no longer available. Since the time required for the slope change is much longer than the duration of a single frame duration, the slope coefficient can be used for several minutes under NLOS conditions. This duration is several orders of magnitude longer than the frame duration. That is, the previous slope can be reused for several iterations, setting:

[0334]

[0335] During the NLOS condition, the clock offset error can no longer be calculated, so the gradient error correction term in the clock offset estimate is discarded, that is,

[0336]

[0337] The parameters of the algorithm equations (20)-(23) can be set, for example, as follows: b =20; α=0.98; μ=0.02.

[0338] Fig.12 The example clock offset prediction method shown in can be used in a system 100 configured to detect whether one or more acoustic signals are blocked and use the above equations. For example, it can be used in Figures 8 to 10 of use in a system having a fallback option for estimating a position using prediction parameters when one or more acoustic signals are blocked.

[0339] At block 1200, the method includes initialization. The initialization may include setting e0=0, A counter for the number of consecutive NLOS frames, n NLOS =0.

[0340] At block 1202, initialization is followed by incrementing of an iteration counter i.

[0341] At block 1204, a determination is made as to whether one or more detected acoustic signals are indirect path signals from a transmitter to a receiver.

[0342] If the required number of LOS signals have been received, the clock offset is estimated and the slope of the clock offset change is updated. Conversely, if the required number of LOS signals have not been received, the clock offset is predicted and the slope of the clock offset from the previous iteration is used.

[0343] exist Fig.12 In the example of , if the desired number of LOS signals have been received, the method proceeds to block 1206. At block 1206, a detection is made as to whether a transition from a NLOS signal to a LOS signal has occurred. This provides an option to reset the algorithm after a long NLOS condition. Any suitable process (such as Fig.11 The processes described above) are used to detect the transition from the NLOS signal to the LOS signal.

[0344] After NLOS to LOS transition detection, the method proceeds to block 1208 and reads the new instantaneous clock offset. At block 1210, the circular buffer is updated. That is, the circular buffer pointer is incremented according to the modulo M convention and the oldest instantaneous clock offset y is read from this memory location. i-M , and at the same time offset the new instantaneous clock by y i The (read in the previous frame) is written to this memory location. The size of the circular buffer can be changed dynamically based on equations (28a) and (28b).

[0345] At block 1212, the slope coefficient is updated according to equation (21). At block 1214, the slope coefficient is filtered according to equation (21). At block 1216, the clock offset is updated according to equation (22). At block 1218, the error is updated according to equation (23).

[0346] exist Fig.12 In the example of , if the required number of LOS signals have been received, the method proceeds to block 1220 to detect a transition from a LOS signal to a NLOS signal. Any suitable process (such as the one described above with respect to Fig.11 The processes described above) are used to detect the transition from the LOS signal to the NLOS signal.

[0347] After LOS to NLOS transition detection, the method proceeds to block 1222 and the slope coefficient is updated according to equation (29). At block 1224, the clock offset is updated according to equation (30).

[0348] At block 1226, the circular buffer is updated. In this case, the new instantaneous clock may not be offset by y i Writes to the memory location to which the circular buffer pointer points after it has been incremented. Therefore, it will be estimated Instead of y i Write to this memory location.

[0349] After blocks 1218 and 1226, the method proceeds to block 1228 and outputs the clock offset calculation result. This completes the loop and starts a new iteration.

[0350] Fig.13 Another example method that may be used by the clock offset prediction module 408 is shown. Fig.11 The example clock offset prediction module 408 may be used in an example system 100 (such as Figures 4 to 6 used in the system 100).

[0351] Fig.13 The methods used in Fig.12 The method used in is similar to that used in because it uses similar equations. Thus, at block 1300, the method includes initialization, which may be as described with respect to Fig.12 At block 1302, the method includes iterating incrementing of a counter i.

[0352] At block 1304, Fig.13 Methods and Fig.12 Instead of determining whether one or more detected acoustic signals are indirect path signals from the transmitter to the receiver, it is determined whether the joint ToA / AoA estimate of the clock offset is valid. The joint ToA / AoA estimate of the clock offset can be provided as an output of the joint ToA / AoA estimation module 406.

[0353] Whether the joint ToA / AoA estimate is valid may be evaluated based on constraints such as area constraints, dynamic position constraints, or any other suitable type of constraints. The area constraints may include excluding joint ToA / AoA position results for certain areas known to provide poor AoA positioning. The dynamic position constraints may include excluding joint ToA / AoA position results that represent large position changes.

[0354] exist Fig.13 In the example of , if it is determined that the joint ToA / AoA estimate is valid, the method proceeds to block 1306. At block 1306, it is detected whether a transition from an invalid estimate to a valid estimate has occurred. Any suitable process (such as Fig.11The transition from an invalid estimate to a valid estimate is detected by using the following procedures (those described for detecting transitions).

[0355] After the invalid to valid transition is detected, the method proceeds to block 1308 and reads the new instantaneous clock offset. At block 1310, the circular buffer is updated. Fig.12 The circular buffer is updated as described.

[0356] At block 1312, the slope coefficient is updated according to equation (20). At block 1314, the slope coefficient is filtered according to equation (21). At block 1316, the clock offset is updated according to equation (22). At block 1318, the error is updated according to equation (23).

[0357] If it is determined that the joint ToA / AoA estimate is invalid, the method proceeds to block 1320 to detect a transition from a valid estimate to an invalid estimate. Any suitable process may be used to detect a transition from a valid estimate to an invalid estimate, such as Fig.11 Those processes described for detecting the transition or the reverse of those described for detecting the transition from an invalid estimate to a valid estimate in module 1306.

[0358] After detection of a valid to invalid transition, the method proceeds to block 1322 and the slope coefficient is updated according to equation (29). At block 1324, the clock offset is updated according to equation (30).

[0359] At block 1326, the circular buffer is updated. This may be done as described with respect to Fig.12 Update as described.

[0360] After blocks 1318 and 1326, the method proceeds to block 1328 and outputs the clock offset calculation result. This completes the loop and starts a new iteration.

[0361] exist Fig.13 In the example of FIG. 1 , for an example system 100 using only two acoustic signals (such as Figures 4 to 6 system 100), realizing the Fig.12 In other examples, for such a system, the same Fig.11 or any other suitable method.

[0362] Fig.14 An example orientation module 902 is shown that may be used in some examples of the present disclosure. The orientation module 902 is configured to generate an improved orientation estimate. The orientation module 902 can be configured in the system 100 (such as Figures 9 and 10for use in system 100 or any other suitable system 100).

[0363] The orientation module 902 has three inputs: an estimate of the instantaneous orientation The estimated position [x ToA ,y ToA ], and the LOS bit from the LOS / NLOS detection module, which indicates whether a NLOS signal has been detected. In this case, NLOS and LOS are a Boolean pair. That is, the signal can be either NLOS or LOS.

[0364] The orientation module 902 includes a position derivative module 1400. The position estimate [x ToA ,y ToA ] is provided as an input to the position derivative module 1400. The position derivative module 1400 is configured to use the estimate of the position [x ToA ,y ToA ] to compute an alternative orientation estimate. The derivative of position is the velocity vector derived from the continuous position. For example, the position derivative can be used to determine an alternative orientation at time i,

[0365]

[0366] It can be approximated as:

[0367]

[0368] If a LOS condition is detected, this results in two directional estimates and Available. If NLOS conditions are detected, the orientation cannot be calculated Because it is not possible to solve the equations for AoA positioning with unknown orientation. However, additional orientation estimates is available and can be used to solve for AoA positioning with a known orientation.

[0369] If a LOS condition is detected, the two directional estimates and Available. The orientation estimate to be used can be selected based on reducing / lowering a given error criterion and For example, the selected estimate may be the one that minimizes the position error (Euclidean distance) between the ToA estimate and the AoA estimate. For example, the performance error may be specified as:

[0370]

[0371] Furthermore, we can choose the directional estimate that minimizes J(i) and

[0372] In some examples, additional means of improving orientation estimation may be added based on physical constraints. The maximum angular velocity that a positioning node 102 can achieve provides a suitable physical constraint. For example, a robot may have a 180 0 / s, and the parameter update rate (for position, orientation, clock offset) can be set to 10Hz, which can limit the absolute difference between two consecutive orientation estimates to ≤8 0 If this constraint is not met, the orientation estimate or potentially the biased angle of arrival measurement is not reliable. In this case, the orientation estimate may be replaced by extrapolation or by repeating a previous orientation estimate or by any other suitable means.

[0373] Fig.15 An example spatial plot for positioning using only one acoustic signal is shown. In this example, the transmitting node 102_T includes only one sound source 400, and the receiving node 102_R may include a microphone array 110. In this case, the orientation of the microphone array 110 is known. This can be determined by the way the microphone array 110 is mounted to a wall or other object.

[0374] In this case, if the azimuth is determined and the elevation of the direction of arrival of the acoustic signal from the sound source is determined, the sound source 400 can be localized. This two-dimensional direction of arrival can be derived from measurements of a two-dimensional or three-dimensional microphone array 110. In this architecture, the receiving node 102_R can provide a method for determining the azimuth. Elevation angle γ j and the biased flight time T′ j There are three unknowns, namely, the clock offset τ j , and the position coordinates of mobile node j [x j ,y j ], assuming that the z coordinate is known and constant (here, z j = 0). Three equations can be written, the first based on the time of flight, the second and third based on the direction of arrival:

[0375] sinγ j ·c(T′ j -τ j )=Z1 (34)

[0376]

[0377] Where c is the speed of sound. c(T′ j -τ j )exist Fig.15 In the equation, a is represented by c(T′ j -τj )cosγ j exist Fig.15 Indicated by b.

[0378] Solving equations (34)-(36) yields:

[0379]

[0380] Fig.16 An example acoustic positioning system is shown that uses equations (37) to (39) in conjunction with clock offset prediction for time synchronization.

[0381] exist Fig.16 In the example of FIG. 1 , the system 100 includes a sending positioning node 102_T and a receiving positioning node 102_R.

[0382] exist Fig.16 In the example, the sending positioning node 102_T includes a single sound source 400 and is configured to send a single acoustic signal L j In this example, the sound source 400 is provided by a single loudspeaker.

[0383] The sending positioning node 102_T provides an acoustic signal L j , which can be used to locate the sending positioning node 102_T. The acoustic signal L j This may be in the audible range and / or the ultrasonic range.

[0384] exist Fig.16 In the example system 100 of FIG. 1 , the receiving positioning node 102_R includes a microphone or microphone array 110, a biased time of flight (ToF) estimation module 402, an arrival direction detection module 1600, a clock offset calculation module 1602, a clock offset prediction module 1604, and a position calculation module 1606. In other examples, the receiving positioning node 102_R may include other components or combinations of components.

[0385] The microphone array 110 detects the acoustic signal L transmitted from the sound source 400. j The microphone array 110 provides microphone signals s1, s2, ..., s k as output.

[0386] The receiving positioning node 102_R is configured to convert one or more microphone signals s1, s2, ..., s K The biased ToF estimation module 402 is configured to detect the acoustic signal L j , generating a first type of parameter. In this example, the first type of parameter is a biased time of flight estimate. The biased ToF estimation module 402 provides a biased time of flight estimate T′ jas output.

[0387] The receiving positioning node 102_R is configured to also receive the microphone signals s1, s2, ..., s K The arrival direction detection module 1600 is provided. The arrival direction detection module 1600 is configured to use the microphone signals s1, s2, ..., s K The second type of parameters is generated by the above process. In this example, the second type of parameters is the arrival direction estimate γ j .

[0388] Biased flight time estimate T′ j and direction of arrival estimation γ j is provided as an input to the clock offset calculation module 1602. The clock offset calculation module 1602 may be configured to generate the clock offset using any suitable process. An example calculation for instantaneous clock offset is provided in equation (37).

[0389] Clock skew is provided as input to the clock offset prediction module 1604. The clock offset prediction module 1604 may perform the following steps: Figures 11 to 13 The method shown in , or any other suitable method may be performed. The clock offset prediction module 1604 may be configured to provide a predicted clock offset as output.

[0390] Predicting clock drift Direction of Arrival Estimation γ j and biased flight time estimate T′ j is provided as input to the position calculation module 1606. The position calculation module 1606 is configured to process the received input and use the above-described methods to provide a position estimate. As output. For example, the predicted clock offset can be used in equations (38)-(39) to export the position of the object.

[0391] The clock offset prediction module 1604 significantly improves the position estimation The estimated biased flight time T′ j The temporary error in the final estimated clock offset There is little impact, since changes in the parameters of the clock offset model occur at a significantly lower rate than other parameters (i.e., the offset flight time T′). j and arrival azimuth and γ j )’s changing speed.

[0392] For the sake of brevity, Fig.16 The instantaneous clock offset in and clock offset estimation The mobile node index j has been omitted in . However, for each mobile node j, a separate set of parameters is established and tracked

[0393] Generally, the more fixed nodes (102_T in the forward architecture or 102_R in the reverse architecture), the better the statistical positioning performance. The statistical positioning performance can be expressed as the cumulative distribution function (CDF) of the angle and orientation accuracy. Reducing the number of fixed positioning nodes will reduce the cost, but increase the positioning error.

[0394] Fig.17 An acoustic positioning system 100 (such as Figures 4 to 6 and Figures 8 to 10 An example application of the system 100 shown in FIG.

[0395] Fig.17 The robot 1700 is shown. The robot 1700 is movable. The robot 1700 includes a tag 1702. The tag 1702 may implement / enable the positioning or tracking of the robot 1700. The tag 1702 may include a positioning node 102. The positioning node 102 is not located in Fig.17 In this example, the tag 1702 may include a receiving positioning node 102_R.

[0396] The receiving positioning node 102_R may include a microphone array 110 or any other suitable component for detecting acoustic signals. For example, the microphone array 110 may include a circular six-element MEMS microphone array with a diameter of 1 cm. Such a microphone array 110 may be suitable for detecting ultrasonic acoustic signals.

[0397] The tag 1702 may also include a processing component, such as a single board computer (SBC). The processing component may be configured to process the detected acoustic signals using the processes described herein or any other suitable process to enable estimation of the position of the robot 1700.

[0398] The tag 1702 may also include a wireless communication component. The wireless communication component may enable WiFi communication or communication using any other suitable protocol. The communication component may enable the tag 1702 to communicate with other devices via a wireless communication router 1704. This may enable the tag 1702 to communicate with one or more user devices 1706 (such as a mobile phone, a computer, or any other suitable device). The user device 1706 may enable the location estimate generated by the tag 1702 to be transmitted to the user.

[0399] Fig.17 The example application shown in also includes a plurality of sound sources 400. In this example, the sound sources 400 include speakers or tweeters. Fig.17 In the example of FIG. 4 , two sound sources 400 are shown. In other examples, other numbers of sound sources 400 may be used. The sound sources 400 may be part of one or more transmitting positioning nodes 102_T.

[0400] The speaker or tweeter providing the sound source 400 is configured to receive an audio signal from the audio amplifier 1710. The audio signal may be in the low end of the audible spectrum and / or the ultrasonic spectrum.

[0401] The audio amplifier 1710 is configured to receive a source signal from the audio source 1708. The audio amplifier 1710 may be connected to the audio source 1708 via any suitable communication link. The communication link may be a wired connection or a wireless connection such as Bluetooth.

[0402] The source signal provided by the audio source 1708 may include a signal sequence, such as a frequency sweep or a pseudo-random noise sequence. The signal sequence may be different for different channels of the source signal, so that the acoustic signals provided by the corresponding sound sources 400 may be distinguished from each other.

[0403] The audio source 1708 may be, for example, an audio player or SBC that plays the audio signal from its memory or accesses the audio signal from a server. In some examples, the source signal may be provided by other devices, such as the user device 1706 or any other suitable device. In some examples, the same device 1706 may be used to provide the source signal and may also enable the transmission of the position estimate to the user.

[0404] In other examples, other applications for the acoustic positioning system 100 may be used. For example, a larger device with a more powerful SBC may be used instead of the tag 1702 having a small form factor. The tag 1702 may be attached to other devices, for example, the tag may be in a wearable device that can be worn by a person to enable tracking of the person's location. This may be used for safety reasons (such as keeping people away from moving objects / subjects in a factory to prevent injury) or for any other purpose.

[0405] exist Fig.17 In the example of FIG. 1 , only a single tag 1702 is installed on the robot 1700. In other examples, multiple tags may be installed on the robot 1700 or any other suitable device. The tags installed on the robot 1700 or other object / object may include a receiving positioning node 102_R and / or a sending positioning node 102_T.

[0406] exist Fig.17In the example of , WiFi signals may be sent from and to tag 1702. These WiFi signals may be used to send information about the location estimate, but cannot be used to synchronize tag 1702 and the acoustic signal via timestamps because WiFi signals do not provide the required synchronization accuracy.

[0407] Fig.18 Another example application for the acoustic positioning system 100 is shown. This application is similar to the application shown in Figure 1807, but Fig.18 The application includes a server 1802. The server 1802 can communicate with other components via a communication network 1800. The communication network 1800 can be the Internet or any other suitable network. The server 1802 can be configured to perform processing tasks, such as processing detected acoustic signals.

[0408] Fig.19 An example architecture is shown that may be used in some systems 100 for acoustic localization. The respective systems 100 described herein may use a forward architecture. Fig.19 An example forward architecture with a single receiver positioning node 102_R is shown.

[0409] In this example, the system 100 includes a plurality of transmitter positioning nodes 102_T. The positions of the stationary transmitter positioning nodes 102_T are known.

[0410] The corresponding transmitter locating node 102_T comprises an acoustic transmitter 200 and an acoustic source 400. The acoustic transmitter 200 may comprise a signal generator and an amplifier and / or any other suitable components.

[0411] The receiver positioning node 102_R is a mobile node. The position of the receiver positioning node 102_R is unknown. The position of the receiver positioning node 102_R may be estimated using examples of the present disclosure.

[0412] The receiver positioning node 102_R comprises a microphone or microphone array 110 and an acoustic receiver 1900. The acoustic receiver 1900 may be configured to process signals from the microphone or microphone array 110 to estimate the position of the receiver positioning node 102_R.

[0413] In some examples, Fig.19 The architecture can be implemented by mounting N speakers or other sound sources 400 on a wall or other fixed object. The receiver positioning node 102_R can be attached to a mobile object, such as a robot or a person or any other suitable object to be located or tracked.

[0414] Fig. 20Another example forward architecture is shown. The example architecture includes multiple transmitter positioning nodes 102_T and multiple receiver positioning nodes 102_R. The multiple transmitter positioning nodes 102_T are as follows: Fig.19 as shown in .

[0415] Each of the corresponding plurality of receiver positioning nodes 102_R may be configured as follows: Fig.19 Each of the plurality of receiver positioning nodes 102_R includes an acoustic receiver 1900 and may be configured to estimate its own position.

[0416] Fig.21 Another example architecture for acoustic localization is shown. Fig. 20 An example reverse architecture is shown with a single transmitter positioning node 102_T and multiple receiver positioning nodes 102_R.

[0417] The location of a single transmitter positioning node 102_T is unknown. The plurality of receiver positioning nodes 102_R may be stationary nodes with known locations and may be configured to estimate the location of the transmitter positioning node 102_T.

[0418] The transmitter positioning node 102_T can be as follows Fig.19 and Fig. 20 Each of the plurality of receiver positioning nodes 102_R can be as shown in Fig.19 and Fig. 20 The architecture of 2100 also includes an acoustic receiver channel aggregator 2100 that aggregates the estimates from the corresponding receiver positioning nodes 102_R.

[0419] Fig. 22 Another example reverse architecture is shown. The example architecture includes multiple transmitter positioning nodes 102_T and multiple receiver positioning nodes 102_R. Each of the multiple transmitter positioning nodes 102_T can be as follows Fig.21 , and may have an unknown position. The architecture may be used to estimate the position of the corresponding transmitter positioning node 102_T.

[0420] The corresponding plurality of receiver positioning nodes 102_R may be as follows Fig.21 as shown in .

[0421] Fig.23 An example transmitter locating node 102_T is shown with multiple acoustic sources 400. In this example, a single multi-channel acoustic transmitter may be configured to provide source signals to multiple acoustic sources 400. Such a node may be used in the system 100 in examples of the present disclosure.

[0422] Fig.24 An example receiver positioning node 102_R is shown with multiple microphones 110 or microphone arrays 110. In this example, a single multi-channel acoustic receiver can be configured to process signals from multiple microphones 110 or microphone arrays 110 to estimate the position of the receiver positioning node 102_R. Such a node can be used in the system 100 in the examples of the present disclosure.

[0423] In the above examples, the time of arrival (ToA) equation and the angle of arrival (AoA) equation are used to estimate the location of the node. In these equations, it is assumed that the node is a single-channel node. If a multi-channel node is used to send the positioning node 102_T and / or receive the positioning node 102_R, these equations are adjusted to take this into account.

[0424] In the ToA equation, the unknown coordinate position [x j (i),y j (i),z j (i)] can be estimated by the following formula:

[0425] (x j (i)-X k ) 2 +(y j (i)-Y k ) 2 +(z j (i)-Z k ) 2 =(c(T′ kj (i)-τ j (i))) 2 ,

[0426] j=1…M,k=1…N (40)

[0427] Among them, [X k ,Y k ,Z k ] is the position of the kth stationary node, N is the total number of stationary nodes, M is the total number of mobile nodes, c is the speed of sound, T′ kj (i) is the offset travel time or flight time (ToF) measured for the signal from the kth stationary node to the jth mobile node. The offset is due to the clock offset τ j (i) In an asynchronous system where the receiving node is not synchronized with the sending node, there is an unknown time offset τ between the clocks of the corresponding nodes. j (i). Due to the clock offset τ j (i) may drift over time, so it can be written as a function of time with index i. In a synchronous positioning system, there is no clock offset, i.e., τj (i) = 0. However, in general, the flight time can be expressed as:

[0428] T kj (i) = T′ kj (i)-τ j (i), j=1…M, k=1…N (41)

[0429] Both the forward and reverse architectures are described by the same set of equations. If the description relates to the system 100 using the forward architecture, the scheme for the reverse architecture can be easily derived therefrom.

[0430] For two-dimensional positioning, it can be assumed that z j (i) = const, i.e., the mobile node is at a fixed and known altitude at any time. However, any stationary node can still be located at an arbitrary and different altitude compared to the mobile node. Therefore, the z term is still preserved in 2D positioning, but setting z j (i) = const.

[0431] For the AoA equation, the orientation of the mobile node plays a similar role to the clock offset in ToA. In ToA, the measured travel time T′ kj (i) Clock offset τ is required j (i) Correction is performed, and in AoA, the measured angle of arrival Need to use the orientation θ of the mobile node j (i) Correction is performed. The measured travel time is also called the biased travel time, and the measured angle of arrival is also called the biased angle of arrival. The AoA equation follows the tangent rule,

[0432]

[0433] According to equation (42), the orientation θ j (i) can be derived from any node k as follows:

[0434]

[0435] And the (unbiased) angle of arrival can be determined by:

[0436]

[0437] Fig.25 An example apparatus 2500 is shown that may be used to implement examples of the present disclosure. The apparatus 2500 may be provided within a retransmitting positioning node 102_T, a receiving positioning node 102_R, or any other device that may be configured as a positioning node.

[0438] The device 2500 may provide a controller. An implementation of the device 2500 may be a controller circuit. The device 2500 may be implemented solely in hardware, with certain aspects in software (including firmware), or may be a combination of hardware and software (including firmware).

[0439] like Fig.25 As shown in , device 2500 can be implemented using instructions that implement hardware functions, for example, by using executable instructions of a computer program 2506 in a general-purpose or special-purpose processor 2502, which instructions can be stored on a computer-readable storage medium (disk, memory, etc.) for execution by such processor 2502.

[0440] The processor 2502 is configured to read from and write to the memory 2504. The processor 2502 may also include an output interface and an input interface, through which the processor 2502 outputs data and / or commands, and through which data and / or commands are input to the processor 2502.

[0441] The memory 2504 stores a computer program 2506, which includes computer program instructions (computer program code) that control the operation of the device when loaded into the processor 2502. The computer program instructions of the computer program 2506 provide the logic and routines that enable the device to perform the methods shown in the drawings. The processor 2502 can load and execute the computer program 2506 by reading the memory 2504.

[0442] In some examples, the apparatus 2500 includes: at least one processor 2502; and at least one memory 2504 storing instructions that, when executed by the at least one processor 2502, cause the apparatus 2500 to at least perform:

[0443] detecting two or more acoustic signals originating from two or more acoustic sources;

[0444] generating a first type of parameter for two or more detected acoustic signals;

[0445] generating a second type of parameter for two or more detected acoustic signals;

[0446] generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters; and

[0447] Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with two or more detected acoustic signals is determined.

[0448] In some examples, the apparatus 2500 includes: at least one processor 2502; and at least one memory 2504 storing instructions that, when executed by the at least one processor 2502, cause the apparatus 2500 to at least perform:

[0449] detecting at least one acoustic signal originating from at least one acoustic source, wherein the at least one acoustic signal is detected by a plurality of microphones;

[0450] For the detected acoustic signal, generating a first type of parameter;

[0451] generating a second type of parameter for the detected acoustic signal;

[0452] generating a timing parameter for the detected acoustic signal using at least the first type of parameters and the second type of parameters; and

[0453] Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with at least one detected acoustic signal is determined.

[0454] In some examples, the apparatus 2500 includes: at least one processor 2502; and at least one memory 2504 storing instructions that, when executed by the at least one processor 2502, cause the apparatus 2500 to at least perform:

[0455] detecting three or more acoustic signals originating from three or more acoustic sources;

[0456] generating first type parameters for three or more detected acoustic signals;

[0457] determining whether one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver;

[0458] A position of an object associated with a detected acoustic signal is estimated using at least first class parameters and timing parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using instantaneous timing parameters, and if it is determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using predicted timing parameters.

[0459] In some examples, the apparatus 2500 includes: at least one processor 2502; and at least one memory 2504 storing instructions that, when executed by the at least one processor 2502, cause the apparatus 2500 to at least perform:

[0460] detecting at least one acoustic signal originating from at least one acoustic source, wherein the acoustic signal is detected by a plurality of microphones to generate at least a plurality of microphone signals;

[0461] For three or more microphone signals, generating first type parameters;

[0462] determining whether one or more microphone signal acoustic signals correspond to indirect path signals from a transmitter to a receiver;

[0463] The computer program 2506 may arrive at the apparatus 2500 via any suitable delivery mechanism 2508. The delivery mechanism 2508 may be, for example, a machine-readable medium, a computer-readable medium, a non-transitory computer-readable medium, a computer program product, a memory device, a recording medium such as a compact disk read only memory (CD-ROM) or a digital versatile disk (DVD) or a solid-state memory, an article of manufacture including or tangibly embodying the computer program 2506. The delivery mechanism may be a signal configured to reliably transmit the computer program 2506. The apparatus 2500 may propagate or send the computer program 2506 as a computer data signal.

[0464] The computer program 2506 may include computer program instructions for causing the apparatus 2500 to at least perform the following operations or for at least performing the following operations:

[0465] detecting two or more acoustic signals originating from two or more acoustic sources;

[0466] generating a first type of parameter for two or more detected acoustic signals;

[0467] generating a second type of parameter for two or more detected acoustic signals;

[0468] generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters; and

[0469] Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with two or more detected acoustic signals is determined.

[0470] The computer program 2506 may include computer program instructions for causing the apparatus 2500 to at least perform the following operations or for at least performing the following operations:

[0471] detecting at least one acoustic signal originating from at least one acoustic source, wherein the at least one acoustic signal is detected by a plurality of microphones;

[0472] For the detected acoustic signal, generating a first type of parameter;

[0473] generating a second type of parameter for the detected acoustic signal;

[0474] generating a timing parameter for the detected acoustic signal using at least the first type of parameters and the second type of parameters; and

[0475] Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with at least one detected acoustic signal is determined.

[0476] The computer program 2506 may include computer program instructions for causing the apparatus 2500 to at least perform the following operations or for at least performing the following operations:

[0477] detecting three or more acoustic signals originating from three or more acoustic sources;

[0478] generating first type parameters for three or more detected acoustic signals;

[0479] determining whether one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver;

[0480] A position of an object associated with a detected acoustic signal is estimated using at least first class parameters and timing parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using instantaneous timing parameters, and if it is determined that one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver, the position is estimated using predicted timing parameters.

[0481] The computer program 2506 may include computer program instructions for causing the apparatus 2500 to at least perform the following operations or for at least performing the following operations:

[0482] detecting at least one acoustic signal originating from at least one acoustic source, wherein the acoustic signal is detected by a plurality of microphones to generate at least a plurality of microphone signals;

[0483] For three or more microphone signals, generating first type parameters;

[0484] determining whether one or more microphone signal acoustic signals correspond to indirect path signals from a transmitter to a receiver;

[0485] The computer program instructions may be included in a computer program, a non-transitory computer readable medium, a computer program product, a machine readable medium. In some but not necessarily all examples, the computer program instructions may be distributed over more than one computer program.

[0486] Although memory 2504 is shown as a single component / circuit, it may be implemented as one or more separate components / circuit, some or all of which may be integrated / removable and / or may provide permanent / semi-permanent / dynamic / cache storage.

[0487] Although processor 2502 is shown as a single component / circuit, it may be implemented as one or more separate components / circuit, some or all of which may be integrated / removable. Processor 2502 may be a single-core or multi-core processor.

[0488] References to "computer-readable storage medium," "computer program product," "tangibly embodied computer program," etc., or "controller," "computer," "processor," etc., should be understood to cover not only computers having different architectures such as single / multiple processor architectures and serial (von Neumann) / parallel architectures, but also special purpose circuits such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), signal processing devices, and other processing circuits. References to computer programs, instructions, code, etc. should be understood to cover software for a programmable processor, or firmware such as programmable content of a hardware device that may include instructions for a processor, or configuration settings for a fixed function device, gate array, or programmable logic device, etc.

[0489] As used in this application, the term "circuitry" may refer to one or more or all of the following:

[0490] (a) hardware circuit implementation only (such as analog and / or digital circuit implementation only);

[0491] (b) a combination of hardware circuitry and software such as (where applicable):

[0492] (i) a combination of analog and / or digital hardware circuits and software / firmware; and

[0493] (ii) any portion of a hardware processor with software (including a digital signal processor, software and memory that work together to enable a device such as a mobile phone or server to perform various functions); and

[0494] (c) Hardware circuits and / or processors, such as a microprocessor or portion of a microprocessor, that require software (e.g., firmware) to operate, but may not be present when the software is not required for operation.

[0495] This definition of "circuitry" applies to all uses of this term in this application, including in any claims. As another example, as used in this application, the term "circuitry" also covers an implementation of only hardware circuits or processors and their accompanying software and / or firmware. The term "circuitry" also covers (for example and if applicable to a particular claim element) a baseband integrated circuit for a mobile device, or a similar integrated circuit in a server, cellular network device, or other computing or network device.

[0496] The blocks shown in the accompanying drawings may represent steps in a method and / or code segments in a computer program 2506. The illustration of a particular order of blocks does not imply a required or preferred order for the blocks, but the order and arrangement of the blocks may be changed. In addition, some blocks may be omitted.

[0497] The term "comprising" as used in this document has an inclusive rather than exclusive meaning. That is, any expression "X comprises Y" means that X may comprise only one Y or may comprise more than one Y. If the exclusive meaning of "comprising" is intended, it will be made clear in the context by mentioning "comprising only one..." or using "consisting of..."

[0498] In this description, the words "connected", "coupled", and "in communication" and their derivatives mean operationally connected / coupled / coupled / in communication. It should be understood that any number or combination of intermediate components (including no intermediate components) may be present, i.e., to provide direct or indirect connection / coupling / coupling / in communication. Any such intermediate components may include hardware and / or software components.

[0499] As used herein, the term "determined" (and grammatical variations thereof) may include, but are not limited to, calculating, estimating, processing, deriving, measuring, investigating, identifying, searching (e.g., searching in a table, database, or other data structure), ascertaining, etc. In addition, "determining" may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), obtaining, etc. In addition, "determining" may include solving, selecting, choosing, establishing, etc.

[0500] Reference has been made to various examples in this description. The description of features or functions for an example indicates that these features or functions are present in the example. Whether explicitly stated or not, the use of the term "example" or "for example" or "may" or "can" in the text indicates that such features or functions are present in at least the described example, whether or not described as an example, and such features or functions may, but not necessarily, be present in some or all other examples. Therefore, "example", "for example" or "may" or "can" refers to a specific instance in a class of examples. The properties of an instance may be only the properties of the instance or the properties of the class of instances or the properties of a subclass of the class of instances including some but not all of the class of instances. Therefore, it is implicitly disclosed that features described for one example but not for another example can be used for other examples as part of a working combination, but are not necessarily used for other examples.

[0501] Although the examples have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the claims.

[0502] Features described in the preceding description may be used in combinations other than the combinations explicitly described above.

[0503] Although functions have been described with reference to certain features, those functions may be performable by other features whether described or not.

[0504] Although features have been described with reference to certain examples, those features may also be present in other examples whether described or not.

[0505] As used herein, the terms "a", "an", or "the" have an inclusive, rather than exclusive, meaning. That is, any reference to "X includes a", "an", or "the" indicates "X may include only one Y" or "X may include more than one Y", unless the context clearly indicates otherwise. If the exclusive meaning of "a", "an", or "the" is intended, it will be clearly stated in the context. In some cases, "at least one" or "one or more" may be used to emphasize the inclusive meaning, but the absence of these terms should not be construed as implying any non-exclusive meaning.

[0506] The presence of a feature (or combination of features) in a claim is a reference to the feature (or combination of features) itself, and is also a reference to features that achieve substantially the same technical effect (equivalent features). Equivalent features include, for example, features that are variants and achieve substantially the same result in substantially the same way. Equivalent features include, for example, features that perform substantially the same function in substantially the same way to achieve substantially the same result.

[0507] Reference has been made in this specification to various examples using adjectives or adjective phrases to describe characteristics of the examples. Such description of characteristics with respect to the examples means that the characteristics exist in some examples exactly as described, and in other examples substantially as described.

[0508] The above description describes some examples of the present disclosure, however, those of ordinary skill in the art will be aware of possible alternative structures and method features that provide equivalent functionality to the specific examples of such structures and features described above, and have been omitted from the above description for the sake of brevity and clarity. Nevertheless, the above description should be understood to implicitly include reference to such alternative structures and method features that provide equivalent functionality, unless such alternative structures or method features are explicitly excluded in the above description of examples of the present disclosure.

[0509] While an attempt has been made in the foregoing description to point out those features regarded as important, it should be understood that the applicant may seek protection via the claims for any patentable feature or combination of features previously referenced herein and / or shown in the drawings, whether emphasized or not.

Claims

1. A device for acoustic positioning, comprising: at least one processor; as well as at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus to at least: detecting two or more acoustic signals originating from two or more acoustic sources; generating a first type of parameter for two or more detected acoustic signals; generating a second type of parameter for two or more detected acoustic signals; generating timing parameters for two or more detected acoustic signals using at least the first type of parameters and the second type of parameters; as well as Using at least the timing parameter and the first type parameter, an estimate of a position of an object associated with two or more detected acoustic signals is determined.

2. The device according to claim 1, wherein: The first type of parameters includes two or more time-of-flight parameters.

3. The device according to claim 1, wherein: The second type of parameters includes two or more arrival angle parameters.

4. The device according to claim 1, wherein: The processor and the memory are configured to cause the apparatus to jointly solve an arrival time equation and an arrival angle equation using an iterative process to generate the timing parameters.

5. The device according to claim 1, wherein: The processor and the memory are configured to cause the apparatus to generate instantaneous timing parameters using at least the first type of parameters and the second type of parameters, and to generate predicted timing parameters using the instantaneous timing parameters.

6. The device according to claim 1, wherein: The timing parameters include clock offset.

7. The device according to claim 1, wherein: The processor and the memory are configured to cause the apparatus to generate a directional parameter for the object associated with the detected acoustic signal using at least the first type of parameters and the second type of parameters.

8. The device according to claim 7, wherein: The processor and the memory are configured to cause the apparatus to estimate an orientation of the object using at least the orientation parameter and the estimate of the position of the object.

9. The device according to claim 1, wherein: The processor and the memory are configured to cause the apparatus to generate one or more additional estimates of the position of the object associated with the detected acoustic signal.

10. The device according to claim 9, wherein: An additional estimate of the position of the object associated with the detected acoustic signal is generated by using orientation parameters and the second type of parameters.

11. The device according to claim 9, wherein: An additional estimate of the position of the object associated with the detected acoustic signal is generated by using the first type of parameters and the second type of parameters.

12. The device according to claim 9, wherein: The processor and the memory are configured to cause the apparatus to process the estimate of the position of the object and one or more additional estimates of the position to generate an adjusted estimate of the position of the object.

13. The device according to claim 12, wherein: The adjusted estimate of the position of the object is generated by combining parameters from two or more respective estimates of the position using one or more fusion estimation algorithms.

14. The device according to claim 1, wherein: The object to be located includes two or more microphones for detecting acoustic signals.

15. The device according to claim 1, wherein: The object to be located comprises one or more speakers for transmitting acoustic signals.

16. The device according to claim 1, wherein The object to be located is in the same environment as one or more sound sources and two or more microphones for detecting acoustic signals.

17. A device for acoustic positioning, comprising: at least one processor; as well as at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus to at least: detecting at least one acoustic signal originating from at least one acoustic source, wherein the at least one acoustic signal is detected by a plurality of microphones; For the detected acoustic signal, generating a first type of parameter; generating a second type of parameter for the detected acoustic signal; generating a timing parameter for the detected acoustic signal using at least the first type of parameters and the second type of parameters; and Using at least the timing parameters and the first type of parameters, an estimate of a position of an object associated with at least one detected acoustic signal is determined.

18. The device according to claim 17, wherein: The apparatus is included in a reverse architecture system.

19. A device for acoustic positioning, comprising: at least one processor; as well as at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus to at least: detecting three or more acoustic signals originating from three or more acoustic sources; generating first type parameters for three or more detected acoustic signals; determining whether one or more of the detected acoustic signals are indirect path signals from a transmitter to a receiver; The position of an object associated with the detected acoustic signal is estimated using at least the first category parameters and the timing parameters, wherein if it is not determined that one or more of the detected acoustic signals are indirect path signals from the transmitter to the receiver, the position is estimated using the instantaneous timing parameters, and if it is determined that one or more of the detected acoustic signals are indirect path signals from the transmitter to the receiver, the position is estimated using the predicted timing parameters.

20. The device according to claim 19, wherein The first type of parameters includes three or more time-of-flight parameters.