Self-location and navigation based on cellular base stations
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- ELTA SYST LTD
- Filing Date
- 2024-08-07
- Publication Date
- 2026-06-24
Smart Images

Figure IL2024050797_20022025_PF_FP_ABST
Abstract
Description
[0001] SELF-LOCATION AND NAVIGATION BASED ON CELLULAR
[0002] BASE STATIONS
[0003] TECHNICAL FIELD
[0004] The presently disclosed subject matter relates to systems and methods for positioning and navigation.
[0005] BACKGROUND
[0006] Various positioning techniques and systems are known today. These include for example, Global navigation Satellite System (GNNS, e.g., GPS and GLONASS), and dead reckoning techniques such as inertial navigation systems (INS). Such commonly used techniques provide a navigation solution which is not always applicable.
[0007] GENERAL DESCRIPTION
[0008] The presently disclosed subject matter is related to system and method that enables positioning and navigation of a platform using cellular infrastructure. This approach allows for continuous autonomous navigation of mobile platforms under GNSS deficient conditions.
[0009] The subject matter disclosed here includes a mobile localization system (device) mountable onboard a mobile platform configured to receive and process signals transmitted by multiple cellular base-stations (abbreviated "CBS") for the purpose of positioning (also referred to as "self-localization") of the mobile platform.
[0010] The mobile platform can be any type of vehicle (including ground, aerial or marine, manned or unmanned). In one non-limiting example the mobile platform is an unmanned aerial vehicle, e.g., unmanned aerial system (UAS) or drone. The term mobile platform should be broadly interpreted to further include a living organism that is moving through space while carrying the device disclosed herein. This includes for example, a human, as well as animals such as canines (e.g., dogs), birds, cattle, without limitation. In some examples, the device disclosed herein can be used for determining the self-location of a human or animal, where the localization data can be transmitted from the device to enable tracking, for instance for tracking the location of a human or livestock. In some examples the localization device disclosed herein can be integrated or otherwise connected to a cellular phone (Smartphone) thus providing the cellular phone with the localization capabilities as disclosed herein.
[0011] According to a first aspect of the presently disclosed subject matter there is provided a computer implemented method of self-localization of a mobile platform using cellular base stations (CBSs), the method comprising: while the mobile platform is traveling in an area: obtaining access to a database storing information about different CBSs in the area, the information comprising for each CBS: a unique identifier assigned to the CBS and a geolocation of the CBS; receiving from at least three CBSs located in the area, a synchronization signal, each synchronization signal being identified by a unique identifier (CBS ID); processing each synchronization signal, comprising: extracting from the synchronization signal a respective unique identifier; using the unique identifier for extracting, from the database, a position of a respective CBS that transmitted the synchronization signal; determining time of arrival of the synchronization signals; and determining geolocation of the mobile platform based on time of arrival determined for each of the synchronization signals.
[0012] In addition to the above features, the method according to this aspect of the presently disclosed subject matter can optionally comprise one or more of features (i) to (xiii) listed below, in any technically possible combination or permutation: i. The computer implemented method further comprising: executing a calibration procedure comprising: for at least one given CBS of the at least three CBSs: determining a respective range between the mobile platform and the respective CBS; and calculating, based on the range, a time constant of the respective signal, the time constant being indicative of a time misalignment between a first clock operating in the mobile platform and a second clock operating in the given CBS. ii. Wherein in some examples the calibration procedure further comprises, calculating a clock drift of at least one CBS, comprising: for a given CBS of the at least three CBSs: over a certain drift calibration period (e.g., 2 to 5 minutes), recording coincident points (indicative of time of arrival) between the respective synchronization signal and a clock signal generated by a first clock onboard the mobile platform; repeatedly comparing between coincident points in different cycles of the drift calibration period; determining a change observed over time in the coincident points, the change being indicative of a drift between the first clock and a second clock operating in the given CBS. iii. Wherein in other examples the calibration procedure further comprises, calculating a clock drift of at least one CBS, comprising: for a pair of a first CBS and a second CBs of the at least three CBSs: recording over a certain drift calibration period (e.g., 2 to 5 minutes) a first collection of coincident points between the respective synchronization signal of the first CBS and a clock signal generated by a first clock onboard the mobile platform and a second collection of coincident points between the respective synchronization signal of the second CBS and the clock signal generated by the first clock onboard the mobile platform; repeatedly determining a difference between a coincident point in the first collection and a coincident point in the second collection corresponding to the same cycle; determining a change observed over time in the difference, the change being indicative of a drift between a first clock operating in the first CBS and a second clock operating in the second CBS. iv. Wherein the calibration procedure is performed as part of an initialization process executed before onset of a mission, and wherein the data indicative of a geolocation of the mobile platform is determined based on positioning utility other than one that uses cellular base stations (e.g., GNSS or DGPS). v. Wherein the calibration procedure is performed for calibrating a new CBS, following movement of the mobile platform within communication range of the new CBS; and wherein the data indicative of a geolocation of the mobile platform is determined using another CBS previously calibrated. vi. The computer implemented method further comprising, when processing each respective synchronization signal: initially applying long processing on the respective synchronization signal, where an entire length of each period in the synchronization signal is processed; and switching to applying short processing after a certain time, where only a limited time window within each period is processed, to thereby reduce processing time of the synchronization signals. vii. The computer implemented method comprising: while long processing is being applied, using a first detection threshold value for filtering received data and determining between true synchronization signals and noise; and while short processing is being applied, using a second detection threshold, lower than the first detection threshold, for filtering received data and determining between true synchronization signals and noise. viii. Wherein in some examples the database is a local database stored onboard the mobile platform. ix. Wherein in some examples the database is a central database stored at an information station, the method comprising, using the respective unique identifier for querying and retrieving data from the database over a communication link. x. Wherein responsive to movement of the mobile platform into communication range with a new CBS, the method further comprises: extracting from a synchronization signal received from the new CBS a respective unique identifier; before executing the calibration procedure, using the unique identifier for querying a database located externally to the mobile platform, to determine whether respective calibration values are available at the database; and if not, executing the calibration procedure. xi. Wherein in some examples, the processing of each respective synchronization signal further comprises: extracting Doppler shift values from the respective synchronization signal; and calculating a velocity vector of the mobile platform based on the Doppler shift values. xii. Wherein the determining of the geolocation of the mobile platform is performed, using, for example, any one of the following methods: time of arrival (TOA), time difference of arrival (TDOA), or triangulation. xiii. Wherein the mobile platform is any one of a manned or unmanned aerial vehicle, a manned or unmanned ground vehicle, and a manned or unmanned marine vehicle.
[0013] According to another aspect of the presently disclosed subject matter there is provided a system connectable to a mobile platform configured for executing selflocalization of the mobile platform (referred to herein also as "GEOCELL system"), using cellular base stations (CBSs), the system comprising at least one processing circuitry operatively connected to an RF receiver; the RF receiver is configured to receive from at least three CBSs located in an area surrounding the mobile platform, a respective synchronization signal, each synchronization signal is identified by a unique identifier (CBS ID); the at least one processing circuitry is configured to: obtain access to a database storing information on different CBSs in the area, the information comprising for each CBS: a unique identifier assigned to the CBS and a geolocation of the CBS; process each synchronization signal, comprising: extracting from the synchronization signal a respective unique identifier; using the unique identifier for extracting from the database, a position of a respective CBS that transmitted the synchronization signal; determining time of arrival of the synchronization signals; and determine geolocation of the mobile platform based on time of arrival values determined for each of the synchronization signals.
[0014] According to some examples the system is designed as a dongle device detachably connectable to the mobile platform.
[0015] The presently disclosed subject matter further contemplates a mobile platform comprising a system as disclosed above, configured to enable self-localization of the platform.
[0016] According to another aspect of the presently disclosed subject matter there is provided a computer program product comprising a computer readable storage medium retaining a program of instructions, which, when read by a computer processor, causes the computer processor to perform a method according to the first aspect disclosed above.
[0017] According to another aspect of the presently disclosed subject matter there is provided a non-transitory program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method according to the first aspect disclosed above.
[0018] The system, the computer program product, the non-transitory program storage device, and the mobile platform in accordance with various aspects of the presently disclosed subject matter detailed above, can optionally comprise one or more of features (i) to (xiii) listed above, mutatis mutandis, in any technically possible combination or permutation.
[0019] BRIEF DESCRIPTION OF THE DRAWINGS
[0020] In order to understand the invention and to see how it can be carried out in practice, embodiments will be described, by way of non-limiting examples, with reference to the accompanying drawings, in which:
[0021] Fig. 1 is a general block diagram schematically illustrating a system mountable on a platform in accordance with some examples of the presently disclosed subject matter;
[0022] Fig. 2 is a block diagram schematically illustrating different component of the system 120, in accordance with some examples of the presently disclosed subject matter;
[0023] Fig. 3 is a high-level flowchart showing operations carried out according to some examples of the presently disclosed subject matter;
[0024] Fig. 4 is a flowchart showing operations carried out during the initialization process according to some examples of the presently disclosed subject matter;
[0025] Fig. 5 is a flowchart showing operations carried out as part of self-localization of a platform, according to some examples of the presently disclosed subject matter; and
[0026] Fig. 6 is another flowchart showing operations carried out as part of selflocalization of a platform, according to some examples of the presently disclosed subject matter.
[0027] DETAILED DESCRIPTION In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the presently disclosed subject matter may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the presently disclosed subject matter.
[0028] Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "receiving", "obtaining", "processing", "using", "extracting", "determining "or the like, refer to the action(s) and / or process(es) of a computer that manipulate and / or transform data into other data, said data represented as physical, such as electronic, quantities and / or said data representing the physical objects.
[0029] The terms "computer", "computer system" or the like should be expansively construed to include any kind of electronic device with one or more data processing circuitry, each including one or more computer processors as disclosed herein below (e.g., a Central Processing Unit (CPU), a microprocessor, an electronic circuit, an Integrated Circuit (IC), firmware written for or ported to a specific processor such as a digital signal processor (DSP), a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.) and possibly a computer memory, and is capable of executing various data processing operations.
[0030] Some of the operations in accordance with the teachings herein may be performed by a computer device specially constructed for the desired purposes, or by a general-purpose computer specially configured for the desired purpose by a computer program stored in a computer readable storage medium.
[0031] Figs. 1 and 2 illustrate general schematic block diagrams of a system mountable on a platform in accordance with some examples of the presently disclosed subject matter. Different components in Figs. 1 and 2 can be made up of any combination of software, hardware, and / or firmware, that performs the functions as defined and explained herein. The components in Figs. 1 and 2 may be centralized in one location, or on one device, or dispersed over more than one location or device. In different examples of the presently disclosed subject matter, the system may comprise fewer, more, and / or different modules than those shown in Figs. 1 and 2.
[0032] Processing circuitry illustrated in Fig. 2 as part of system 120 can be configured, for example, to execute several functional modules in accordance with computer- readable instructions implemented on a non-transitory computer-readable storage medium. Such functional modules are referred to hereinafter as comprised in the processing circuitry.
[0033] Figs. 3 to 6 are flowcharts illustrating operations carried out in accordance with examples of the presently disclosed subject matter. According to different examples of the presently disclosed subject matter, fewer, more, and / or different stages than those shown in Figs. 3 to 6 may be executed. According to different examples of the presently disclosed subject matter one or more stages illustrated in Figs. 3 to 6 may be executed in a different order and / or one or more groups of stages may be executed simultaneously for multiple commands.
[0034] Reference is now made to Fig. 1, showing a general schematic block diagram of a system mountable on a platform in accordance with some examples of the presently disclosed subject matter. System 105 comprises system 120 (GEOCELL system) configured to determine the position of the platform 100 relevant to a certain reference frame using information obtained from multiple cellular base-stations (CBSs) located in the area of travel, within communication range from platform 100. In some examples, navigation system 105 may comprise (or be otherwise operatively connectable to) one or more additional navigation aids 110, which can be for example a GNSS (e.g., GPS) receiver or GPS receiver combined with an INS, to provide GPS or GPS and INS positioning data of the platform 100. Navigation data (including position of the platform) generated by one, or both, navigation aids 110 and 120 is provided to navigation computer 130, which is configured to generate navigation instructions dedicated for leading the platform 100 to a desired destination. Navigation instructions can be provided to platform control subsystems 150 configured for controlling the platform 100. In case of an airborne platform, control subsystems 150 can include, for example, rudder, flaps, ailerons, throttle, etc. In case of a platform with vertical takeoff and landing (VTOL) capabilities, (e.g., a quadcopter drone) control subsystems 150 can include rotor controllers configured to control the speed and angle of the rotors.
[0035] System 105 can further comprise a dedicated communication subsystem configured to enable communication between system 105 and other entities (e.g., other platforms). Alternatively, or additionally, system 105 can be connectable to a native communication subsystem 155 operating onboard platform 100 and use it for communicating with other entities as part of its operation.
[0036] In some examples, GNSS 110 can serve as a primary navigation aid where the system 120 is operated as a redundant navigation aid configured to validate the navigation solution of GNSS 110. Navigation computer can 130 be configured to compare between the GNSS navigation solution and the navigation solution and in case a difference which is greater than a certain value is determined, to use only the GEOCELL navigation aid. Thus, in case GNSS data is unavailable (e.g., due to GNSS jamming or loss of satellite communication), the navigation computer can switch to GEOCELL positioning (or "self-localization") and navigation.
[0037] Notably, in some examples system 120 can be designed and incorporated as an integral part of the circuitry of system 105, while in other examples system 120 can be designed as an add-on device releasably connectable to the circuitry of system 105. For example, system 120 can be configured as a dongle detachably connectable to system 105 via a suitable port.
[0038] As illustrated in Fig. 1, in some examples platform 100 can communicate with information center 180. As further explained below, information center 180 is used for storage and retrieval of data related to cellular base-stations.
[0039] Fig. 2 is a block diagram schematically illustrating different components of the system 120, by way of a non-limiting example. As illustrated, system 120 can comprise an RF receiver 21 operatively connected to one or more RF antennas. The RF receiver 21 is configured to receive RF signals transmitted by different cellular base-stations to enable localization of the platform 100. Normally, a cellular base-station periodically transmits (broadcasts) a synchronization signal to be recognized by cellular devices which are located within the communication (e.g., transmission) range and allow them to connect and utilize the cellular network. Here the cellular synchronization signal is used for a different purpose - self-localization of a receiver device such as system 120 disclosed herein.
[0040] Basically, three RF signals, transmitted by three different cellular base-stations, are required for self-localization of a platform. Redundancy in the received RF signals is advantageous to ensure the continuous availability of sufficient RF signals for determining the self-localization solution. In some examples, RF receiver can be a single wide-band RF receiver configured to receive RF signals transmitted by different cellular base-stations, each operating in a different RF frequency range. According to other examples, RF receiver 21 can include multiple narrow-band RF receivers, each configured to receive RF signals transmitted by a limited number (e.g., one or two) of cellular base-stations, operating in respective RF frequency range. RF receiver 21 comprises, or is otherwise operatively connected to, various other components such as one or more filters (including, for example, bandpass filter), analog to digital convertor (ADC), and the like. In some examples, the RF filter is configured to enable reception of a limited bandwidth according to the frequency range which is known to be used by the CBSs in the area of operation.
[0041] The received RF signals are initially processed by an interface controller 23 (e.g., a field programmable gate arrays (FPGA) or application specific integrated circuit (ASIC)) configured to execute operations such as sampling of the received signals and storing the samples in computer data-repository 25 (e.g., non-transitory computer memory). system 120 can further comprise processing circuitry 27 (e.g., ARM processor), configured to execute a self-localization process as further discussed below with reference to Figs. 3 and 4. Processing circuitry 27 comprises at least one computer processor which can be, for example, operatively connected to a computer-readable storage device (e.g., computer memory 25) having computer instructions stored thereon to be executed by the computer processor. For illustrative purposes and simplicity, Fig. 2 shows a single processing circuitry comprising functional modules. The specific division into functional modules is provided by way of example and should not be construed as limiting. In some examples, computer memory 25 is also used for storing cellular base-stations database 26 (e.g., lookup table) containing data indicative of a unique identification of different cellular base-stations ("CBS ID") and their respective geolocations. In some examples, before travelling in a certain area, information on CBSs in the area, including the respective CBS IDs and their respective locations, is uploaded to the CBS database.
[0042] In some examples, processing circuitry 27 is configured to execute a data extraction procedure (e.g., according to instructions stored in an extraction module 271) and data fusion procedure (e.g., according to instructions stored in a fusion module 273). In the data extraction procedure, the RF signals are processed to extract, from the signals, information required for self-localization of the platform. The extracted data is used for executing the data fusion procedure, which enables the selflocalization of the platform. Once self-localization of the platform is determined, this information can be provided to a client such as navigation computer 130, as discussed above. A more detailed description of the above modules, as well as other modules in processing circuitry 27, is provided below with reference to the following figures.
[0043] Turning to Fig. 3, it is a high-level flowchart showing operations carried out according to some examples of the presently disclosed subject matter. Operations described with reference to Fig. 3 (as well as Figs. 4 and 5) are performed by a device designed according to the principles of system 120 described above, however it is noted that the specific design disclosed in the figures is provided as an example and should not be construed as limiting.
[0044] At block 31 a cellular base-station (CBS) database is obtained. According to some examples, the CBSs are part of publicly available cellular infrastructure data distributed for enabling cellular communication which is exploited for self-locations of a platform (100). However, CBSs can be also part of a private cellular infrastructure, distributed in a certain area, for example a private cellular infrastructure deployed ad hoc for the purpose of enabling self-localization of platforms operating in the deployed area. In any case, a database is obtained which contains unique identifiers of different CBSs in the network and their respective geolocation. As mentioned above, the CBS database can be stored in a computer memory 25 which is made accessible to system 120.
[0045] At block 33 an initialization process is executed. The initialization process, which includes a calibration procedure, is described in more detail below with reference to Fig. 4. The initialization process refers to operations which are carried out at the beginning of the mission (e.g., before, or immediately after takeoff). At block 35 real-time cellular-based self-localization of the platform is executed. The real-time cellular-based self-localization process is described in more detail below with reference to Fig. 5. As is well known in the art, cellular technology is based on the premise of distributed cellular base-stations, where each station comprises a separate low power multichannel transceiver and antenna designated for communicating with receiving devices located in the near area. Due to the low range of the RF signals, the same frequencies can be reused in other geographically distanced base-stations (aka "cells"). As the platform travels, it moves outside the reception range of some CBSs and into the reception range of other CBSs. Block 37 refers to the process of adding a new CBS to the pool of available CBSs located within the reception range of the platform, which may occur repeatedly as the platform changes its locations. Block 39 refers to execution of the calibration procedure in response to addition of new CBSs to the pool of CBSs located in communication range with the platform, which is repeated when the platform moves into reception range of new CBSs, to determine the respective constant values and drift values of the added CBSs, as further discussed below with reference to Fig. 5.
[0046] Proceeding to Fig. 4, it is a flowchart showing operations carried out during the initialization process according to some examples of the presently disclosed subject matter.
[0047] At block 41 RF synchronization signals transmitted by CBSs are received (by RF receiver 21) and processed (e.g., by interface controller 23). The respective time of arrival (time the signal is received) of each received signal is recorded. The received signals are sampled, and the signal samples are recorded in computer memory 25. In some examples, signals are sampled and recorded over a period ranging between 70 to 100 milliseconds, which provides sufficient data needed for the localization process.
[0048] Once the relevant data samples are available in the computer memory, the data is further processed by processing circuitry 27. At block 43 the extraction procedure is executed (e.g., by extraction module 271). During this procedure data is extracted from the recorded signals, the extracted data including:
[0049] 1. Time of signal reception (e.g., relative to the clock 22).
[0050] 2. An ID uniquely identifying the CBS which transmitted a specific signal ("CBS ID").
[0051] 3. If the platform is moving, a Doppler shift of the signal observed between transmission and reception is determined.
[0052] Block 45 refers to execution of a calibration procedure, which includes the calculation of calibration values, including time constant and drift values. The calibration values include, for a given CBS, a constant value and one or more drift values. At block 45a the unique identifier extracted from each signal transmitted by a certain CBS, is searched in the CBS database, and the geolocation of the respective CBS that transmitted the signal is retrieved from the database.
[0053] As the clock onboard the platform (100) is not synchronized with clocks operating in the CBSs, a time constant is calculated to enable accurate determination of time of arrival of the synchronization signals (block 45b). Assuming the initial location of the platform is known (e.g., the platform is located at a known starting point, or using a GNSS or DGPS, before or immediately after takeoff) the distance between the platform and the CBS can be calculated. Based on the calculated distance and the speed of light, time of travel between a first clock onboard the platform, and a second clock in the CBS (transmitting a synchronization signal), can be determined.
[0054] The synchronization signals transmitted by the cellular base-stations are characterized by a certain frequency and period (e.g., 100 Hz / 10 millisecond period). Clock 22 onboard the platform is configured to operate in the same frequency as the clock operating in the CBS. The clock produces pulses (or "ticks") in the prescribed frequency, giving rise to a "clock signal". The clock signal can serve as a synchronization reference for coordinating the timing with other clocks. According to some examples, synchronization signals are repeatedly received by system 120 (e.g., over 2 to 5 cycles) and the time shift between the period of the clock operating in the CBS and clock 22 is determined. This is accomplished by identifying the coincident point between the synchronization signals and the clock signal of clock 22, where the coincident point is the point at which the signals intersect or overlap in their respective waveforms (indicating the time of arrival of the synchronization signal with respect to the clock signal of clock 22). The calculated time of travel and the time shift between the clocks are combined to obtain a time constant that is indicative of a time misalignment between a first clock operating in the mobile platform, and a second clock operating in the given CBS. This calculation can be performed for each unique base-station. The constant calculated for a certain CBS can be stored in the CBS database, e.g., in a record related to a respective CBS.
[0055] According to some examples clock drift calculation is performed (block 45c), and, once calculated, the drift is applied to determine a more accurate time constant. According to one example, clocks drift calculation is performed by recording a synchronization signal for a certain period (e.g., over a drift calibration period of 2 to 5 minutes), during which time the synchronization signal is aligned with clock 22. The coincident point between the synchronization signal and the clock signal generated using clock 22 is monitored, and changes in the coincident point are identified. The changes in the coincident point observed over time can be recorded and analyzed to thereby deduce the relative clock drift between clock 22 and the clock operating at the respective CBS. Optionally, a graph can be generated plotting the coincident point over time, and the graph can be used for predicting the evolution of the drift values. If clock 22 in system is an accurate clock (e.g., an atomic clock), the calculated drift can be directly associated with inaccuracies in the clock used by the CBS.
[0056] According to a second example, clocks drift calculation is performed by comparing the time of arrival of pairs of signals, each received from a different CBS. According to this approach the synchronization signal is recorded over a certain period (e.g., a drift calibration period of 2 to 5 minutes), during which time multiple synchronization signals are repeatedly received, each from a respective CBS, and aligned with the clock signal of clock 22. The difference between respective coincident points of a pair of synchronization signals are monitored, and changes in the difference are identified and recorded. For example, the TOA of signals received from CBS A and CBS B and the difference between the TOAs is determined and recorded. By monitoring the changes in the differences between the TOAs, the drift in the clock operating in CBS A can be determined relative to clock operating in CBS B. In some examples, this is done for each pair of available CBSs (n(n-l) / 2 pairs, where n is the number of available CBSs). A table can be generated for storing the respective differences between coincident points determined over time, of each pair of CBSs. When the self-location of the platform is determined using synchronization signals received from CBS A and CBS B, the respective drift between these two stations is taken into consideration.
[0057] Notably, the second approach has an advantage over the first one as it helps to reduce inaccuracies that may be caused due to an inaccurate clock onboard the platform. Calculation of the time constant and clock drift can be carried out, for example, by calculation module 272.
[0058] As mentioned above, initialization is carried out at the onset of a mission. According to some examples, during the calibration procedure a respective time constant and drift is calculated for each one of multiple CBSs which are located within communication range with the platform. During initialization the platform maintains position within communication range with the CBSs, by either staying immobile or by executing a certain maneuver that allows this. In case of an aerial platform, this could be, for example, a slow flight maneuver, hovering in the air, or flying in a circular pattern. Once the calibration procedure is complete (e.g., after a 1 to 2 minute calibration period) the platform can start to execute the mission, for example by initiating flight to a target destination. The time constants and clock drifts calculated for the CBSs located within the communication range are used for accurate selflocalization of the platform using the respective geolocation of the CBSs.
[0059] In some examples, system 120 recalculates the constant and clock drift values repeatedly to monitor whether these values have changed, update the values if they have, and possibly calculate a respective quality score, as further disclosed below.
[0060] Proceeding to Fig. 5, it is a flowchart showing operations carried out during self-localization of a platform, according to some examples of the presently disclosed subject matter.
[0061] Following the initialization process, the platform starts traveling in a desired direction and / or along a desired path, and executes a self-localization process at it travels. As the platform travels, it repeatedly receives synchronization signals transmitted by CBSs located within reception range of the platform. Operations described with reference to blocks 51 and 52 are essentially the same as those described above with reference to blocks 41 and 43, and, accordingly, their description is not repeated.
[0062] At block 54, the CBS IDs extracted from the received signals are compared to CBS IDs recorded in the CBS database. In some examples, if the CBS ID is not found in the CBS database, i.e., its respective geolocation is not available, other data sources (e.g., other platforms) are queried in search for the respective data, as further disclosed below.
[0063] In some examples, if the CBS ID identifies a new CBS, i.e., a CBS which was not previously calibrated, and the constant and clock drift values associated with the CBS are not available (e.g., not found in CBS database) the process turns to block 45 and the calibration procedure is executed (as described with reference to Fig. 4) for determining the respective constant and drift of the newly added CBSs. During the calibration procedure of new CBSs, self-localization of the platform (e.g., for the purpose of determining the range to the ne CBSs) can be based on synchronization signals transmitted by calibrated CBSs.
[0064] If the CBS ID is found in the data-repository 25 and identifies a familiar CBS, i.e., a CBS which was previously calibrated, and the constant and clock drift values associated with the CBS are available (e.g., stored in CBS database), the process proceeds to execute a fusion procedure as described with reference to block 55.
[0065] At block 55 fusion procedure is executed (e.g., by fusion module 273). At block 55a the unique ID, extracted from each synchronization signal, is used for querying the cellular base-stations database 26 and determining geolocation of the respective base-station that transmitted the signal. At block 55b the self-location of the platform is determined, based on the known locations of the CBSs that were identified, and the time of arrival of the synchronization signal. For example, time difference of arrival (TDOA) or time of arrival (TOA) methods can be applied for this purpose. In some examples, velocity vector of the platform is also calculated, based on the Doppler shift extracted from the received signals, e.g., by a Doppler radar (block 55c). A Kalman filter which integrates previous calculation output, can be applied by the processing circuitry (e.g., by fusion module 273) to obtain a more accurate and robust location and velocity calculation. In some examples, the respective time constant and clock drift values are also extracted from the CBS database and used during the fusion process for enhancing the self-localization output.
[0066] As mentioned above, the cellular-based self-localization data and velocity can be used by navigation computer 130. In some examples, navigation computer 130 utilizes the data received from system 120 for validating the navigation solution of another navigation aid such as GNSS (e.g., GPS), or as an alternative navigation aid in case the other navigation aid is defective for some reason. In some examples, navigation computer 130 can use the self-localization data and velocity obtained from system 120 for generating maneuvering instructions and leading the platform in a desired direction.
[0067] According to some examples, as communication with new CBSs is dynamically gained due to the movement of the platform, the system 120 is configured to selectively use specific CBSs from the pool of available CBSs. Specifically, when synchronization signals are initially received from new CBSs they are preferably not used for self-localization of the platform until after they are calibrated i.e., their time constant and clock drift has been calculated and is available. During the drift calibration period, system 120 is configured to use in the fusion procedure other available CBSs which have already been calibrated (their respective constant and clock drift values have already been calculated and stored in the database). Once the calibration procedure of the new CBSs is complete and their respective time constant and clock drift values are available, system 120 starts using these CBSs in the fusion procedure. If, however, there are not enough "calibrated" CBSs for performing the fusion procedure, system 120 may use "uncalibrated" CBSs and execute the calibration procedure in parallel, such that initially the accuracy of the self-localization is deficient, and it is improved once the calibration procedure is complete.
[0068] According to some examples of the presently disclosed subject matter, special processing is applied to shorten the self-localization process. According to this approach initially, when a synchronization signal is received by system 120, over the first few periods (cycles) of the synchronization signal, the entire length of the period is processed (referred to herein as "long processing"). For example, assuming a synchronization signal transmitted by a CBS is characterized by 10 millisecond periods, the entire 10 millisecond period is processed. After the signal has been processed and the location of the identification series (the part of signal that includes the CBS ID) within the period has been identified, this information is recorded (e.g., in a record pertaining to the respective CBS in the CBS database) and used in the processing of subsequent received synchronization signals. When processing subsequent signals, a smaller time-window covering only part of the period that includes the area of the signal where the identification series appears is processed instead of the entire period (referred to herein as "short processing"). Reverting to the example above of a 10- millisecond period, when processing subsequent signals, only a 2-millisecond time window that surrounds the location of the identification series in each period is processed.
[0069] Furthermore, to increase the quality of signal to noise detection, the detection threshold applied by the band pass filter for the purpose of discerning between true synchronization signals and noise, is reduced over the small time-window, to increase the probability of detection of signals, given the commonly observed attenuations and fluctuations in cellular synchronization signals. Initially, when long processing is applied on the received signals, a higherthreshold value is used. Once short processing is applied, the signal detection threshold is decreased. Since the identification series are searched at their anticipated location within the period, the likelihood of true signal detection is increased, and, accordingly, the threshold of detection can be reduced, to reduce in turn the likelihood of false negatives.
[0070] In some examples, processing circuitry 27 is configured to initially apply long processing, and then switch to short processing once the estimated location of the identification series in the period of the signal has been determined. When switching to short processing, processing circuitry 27 can be configured to reduce the signal detection threshold as well.
[0071] The presently disclosed subject matter further contemplates a data sharing infrastructure that enables communication between platforms and / or an information center (info. Center 180 in Fig. 1, which can be, for example, cloud based). Communication between different platforms may be carried out either directly or through the information center. According to some examples, the information center comprises a central database for storing information about CBSs, where information on CBSs, identified by platforms traveling in a certain area, may be added to the central database over time. For example, each CBS identified by a platform is stored in an individual record in the central database identified by the respective CBS ID. Once a time constant and clock drift is calculated by a platform, this information can be transmitted from the platform to the central database and stored in the relevant record.
[0072] The central database is made accessible to platforms, thus providing a central hub, allowing platforms to obtain data on a CBS that is already available without the need to perform calculation.
[0073] Fig. 6 is an alternative to the flowchart shown in Fig. 5 which includes the central database query. According to this example, once a CBS ID is identified by a platform (block 52), the central database is queried (block 53, e.g., by query module 274) for determining whether a record, comprising information on that CBS, is available. If the information is available in the central database, it can be retrieved and used by the platform instead of, or in addition to, calculating the time constant and / or the clock drift (as indicated by the broken line connecting blocks 54 and 45). If the information is not available in the central database, the relevant data is calculated by the system 120 onboard the platform, as explained above (block 45). In some examples, a platform can download from the central database information on CBSs located in the area intended to be traversed, before or immediately after takeoff, to make the relevant data available in database 26 stored onboard the platform.
[0074] According to further examples, platforms are provided with communication and query infrastructure enabling to communicate with the central data center 180 and query the central database. In some examples, communication is enabled using a dedicated communication module incorporated in the system 120 or by connecting to the platform's native communication system 155. In some, examples the system 120 can communicate with other platforms and query the database in the other platforms for information regarding CBSs. In some examples, system 120 is configured to send (broadcast) a query regarding a specific CBS, to other platforms and / or data center 180, following extraction of the respective CBS ID from a received signal. If the information is available in the database of another vehicle, it can be retrieved and used by the platform instead of or in addition to calculating the relevant data.
[0075] According to some examples the system 120 comprises (or is operatively connected to) a communication subsystem operatively connected to a local database (e.g., CBS database 26) configured with automatic database updates capability, where an update, made to the local database, automatically induces the generation of a data update message and its transmission to other platforms. The update message comprises information determined by the system 120 on a CBS (e.g., the respective time constant and clock drift calculated by system 120). The update message, when received by other platforms that carry a similar communication subsystem, induces an automatic update to their respective local database. This mechanism allows automatic data sharing between different familiar platforms (e.g., different platforms of the same fleet), keeping all platforms continuously informed, in real-time, on information regarding CBSs identified by other platforms. A detailed description of a communication subsystem with automatic data sharing capabilities, where a database update made by one platform induces the sharing of the update with other platforms, is described in PCT Application, publication No. WO 2021 / 240509. By way of example, processing circuitry 27 disclosed herein can correspond to application layer 152 shown in Fig. 2 described in WO 2021 / 240509, data-repository 25 disclosed herein can correspond to database layer 154 in Fig. 2 described in WO 2021 / 240509, and communication subsystem 155 disclosed herein can correspond to network layer 156 described in WO 2021 / 240509. Further explanation of the principles of operation of the communication subsystem is described with reference to Fig. 4 (egress communication) and Fig. 5 (ingress communication) in WO 2021 / 240509.
[0076] In some examples, additional information can be stored in the lookup table (and / or the central database) with respect to each CBS i.e., in addition to the CBS ID, CBS time constant, and CBS clock drift. For example, a respective CBS quality score can be provided for different CBSs, indicating the quality of the CBS. The quality score can depend, for example, on the stability of the drift, where a CBS that is characterized by a clock drift which is substantially constant is assigned with a higher quality score, as compared to a CBS that is characterized by a clock drift which is substantially variable or erratic. The quality score can be assigned for example, according to the rate (how often the drift value changes) and variability (how much the drift value varies) of changes in the drift values. The quality score can be determined based on information gathered by different platforms that identify a CBS and use it for self-localization. As mentioned above, system 120 can be configured to repeatedly calculate time constant and / or clock drift of a certain CBS, while operating within communication range of the CBS, and use this information for calculating CBS quality score. The quality score can be further enhanced based on information obtained from other multiple platforms. In some examples, a CBS quality score can be stored in the central database in information center 180 and can be updated based on input provided from different platforms communicating with the CBS.
[0077] In some examples, system 120 is configured to prioritize between different CBSs, where some CBSs are assigned with greater priority. For example, if a platform is concurrently communicating with more CBSs than what is needed for selflocalizations, it can select a preferred subset of CBS for self-localization based on their priority. In some examples, priority is assigned to different CBSs according to the respective quality score. According to another example, priority is assigned to different CBSs according to the quality score and distance from the platform. According to another example, priority is assigned to different CBSs according to the quality score, distance from the platform, and location relative to platform direction of travel (i.e., whether distance between the platform and the CBS is increasing or decreasing). Priority score can be calculated by various methods, for example, an average score of the different parameters (quality, distance, and relative location).
[0078] It is noted that the teachings of the presently disclosed subject matter are not limited to unmanned ground vehicles alone and can be likewise implemented in other types of vehicles, such as aerial, marine vehicles, and ground vehicles.
[0079] Those skilled in the art will readily appreciate that various modifications and changes can be applied to the examples of the invention as hereinbefore described without departing from its scope, defined in and by the appended claims.
Claims
CLAIMS1. A computer implemented method of self-localization of a mobile platform using cellular base stations (CBSs), the method comprising: while the mobile platform is traveling in an area: obtaining access to a database storing information on different CBSs in the area, the information comprising, for each CBS: a unique identifier assigned to the CBS and a geolocation of the CBS; receiving from at least three CBSs located in the area, a synchronization signal, each synchronization signal being identified by a unique identifier (CBS ID); processing each synchronization signal, comprising: extracting from the synchronization signal a respective unique identifier; using the unique identifier for extracting from the database, a position of a respective CBS that transmitted the synchronization signal; determining time of arrival of the synchronization signals; and determining geolocation of the mobile platform based on time of arrival determined for each of the synchronization signals.
2. The computer implemented method of claim 1 further comprising: executing a calibration procedure comprising: for at least one given CBS of the at least three CBSs: determining a respective range between the mobile platform and the respective CBS; and calculating, based on the range, a time constant of the respective signal, the time constant being indicative of a time misalignment between a first clock operating in the mobile platform, and a second clock operating in the given CBS.
3. The computer implemented method of claim 2, wherein the calibration procedure further comprises, calculating a clock drift of at least one CBS, comprising: for a given CBS of the at least three CBSs: over a certain drift calibration period, recording coincident pointsbetween the respective synchronization signal and a clock signal generated by a first clock onboard the mobile platform; repeatedly comparing between coincident points in different cycles of the drift calibration period; determining a change observed over time in the coincident points, the change being indicative of a drift between the first clock and a second clock operating in the given CBS.
4. The computer implemented method of claim 2, wherein the calibration procedure further comprises calculating a clock drift of at least one CBS, comprising: for a pair of a first CBS and a second CBs of the at least three CBSs: recording over a certain drift calibration period (e.g., 2 to 5 minutes) a first collection of coincident points between the respective synchronization signal of the first CBS and a clock signal generated by a first clock onboard the mobile platform and a second collection of coincident points between the respective synchronization signal of the second CBS and the clock signal generated by the first clock onboard the mobile platform; repeatedly determining a difference between a coincident point in the first collection and a coincident point in the second collection corresponding to the same cycle; determining a change observed over time in the difference, the change being indicative of a drift between a first clock operating in the first CBS and a second clock operating in the second CBS.
5. The computer implemented method of any one of claims 2 to 4, wherein the calibration procedure is performed as part of an initialization process executed before onset of a mission, and wherein the data indicative of a geolocation of the mobile platform is determined based on positioning utility other than one that uses cellular base stations.
6. The computer implemented method of any one of claims 2 to 4, further- 1 - comprising: wherein the calibration procedure is performed for calibrating a new CBS, following movement of the mobile platform within communication range of the new CBS; and wherein the data indicative of a geolocation of the mobile platform is determined using another CBS previously calibrated.
7. The computer implemented method of any one of the preceding claims further comprising, when processing each respective synchronization signal: initially applying long processing on the respective synchronization signal, where an entire length of each period in the synchronization signal is processed; and switching to applying short processing after a certain time, where only a limited time window within each period is processed, to thereby reduce processing time of the synchronization signals.
8. The computer implemented method of claim 7 further comprising: while long processing is being applied, using a first detection threshold value for filtering received data, and determining between true synchronization signals and noise; and while short processing is being applied, using a second detection threshold, lower than the first detection threshold, for filtering received data, and determining between true synchronization signals and noise.
9. The computer implemented method of any one of the preceding claims, wherein the database is a local database stored onboard the mobile platform.
10. The computer implemented method of any one of the preceding claims, wherein the database is a central database stored at an information station, the method comprising using the respective unique identifier for querying and retrieving data from the database over a communication link.
11. The computer implemented method of any one of claims 2 to 4, wherein, responsive to movement of the mobile platform into communication range with a new CBS: extracting, from a synchronization signal received from the new CBS, arespective unique identifier; before executing the calibration procedure, using the unique identifier for querying a database located externally to the mobile platform, to determine whether respective calibration values are available at the database; and if not, executing the calibration procedure.
12. The computer implemented method of any one of the preceding claims, wherein the processing of each respective synchronization signal further comprises: extracting Doppler shift values from the respective synchronization signal; and calculating a velocity vector of the mobile platform based on the Doppler shift values.
13. The computer implemented method of any one of the preceding claims wherein the determining of the geolocation of the mobile platform is performed using any one of the following methods: time of arrival (TOA), time difference of arrival (TDOA), or triangulation.
14. The computer implemented method of any one of the preceding claims wherein the mobile platform is any one of: a manned or unmanned aerial vehicle, a manned or unmanned ground vehicle, and a manned or unmanned marine vehicle.
15. A system connectable to a mobile platform configured for executing self-localization of the mobile platform, using cellular base stations (CBSs), the system comprising at least one processing circuitry operatively connected to an RF receiver; the RF receiver is configured to receive from at least three CBSs located in an area surrounding the mobile platform, a respective synchronization signal, each synchronization signal being identified by a unique identifier (CBS ID); the at least one processing circuitry being configured to: obtain access to a database storing information on different CBSs in the area, the information comprising, for each CBS, a unique identifier assigned to the CBS and a geolocation of the CBS; process each synchronization signal, comprising: extracting from the synchronization signal a respective uniqueidentifier; using the unique identifier for extracting, from the database, a position of a respective CBS that transmitted the synchronization signal; determining time of arrival of the synchronization signals; and determine geolocation of the mobile platform based on time of arrival values determined for each of the synchronization signals.
16. The system of claim 15 being designed to be detachably connected to the mobile platform.
17. The system of claim 16 being designed as a dongle device.
18. The system of any one of claims 15 to 17, wherein the at least one processing circuitry is configured to: execute a calibration procedure comprising: for at least one given CBS of the at least three CBSs: determining a respective range between the mobile platform and the respective CBS; and calculating, based on the range, a time constant of the respective signal, the time constant being indicative of a time misalignment between a first clock operating in the mobile platform and a second clock operating in the given CBS.
19. The system of claim 18, wherein the calibration procedure further comprises calculating a clock drift of at least one CBS, comprising: for a given CBS of the at least three CBSs: over a certain drift calibration period, recording coincident points between the respective synchronization signal and a clock signal generated by a first clock onboard the mobile platform; repeatedly comparing between coincident points in different cycles of the drift calibration period; determining a change observed over time in the coincident points, the change being indicative of a drift between the first clock and a second clock operating in the given CBS.
20. The system of claim 18, wherein the calibration procedure further comprises calculating a clock drift of at least one CBS, comprising: for a pair of a first CBS and a second CBS of the at least three CBSs: recording over a certain drift calibration period a first collection of coincident points between the respective synchronization signal of the first CBS and a clock signal generated by a first clock onboard the mobile platform and a second collection of coincident points between the respective synchronization signal of the second CBS and the clock signal generated by the first clock onboard the mobile platform; repeatedly determining a difference between a coincident point in the first collection and a coincident point in the second collection corresponding to the same cycle; determining a change observed over time in the difference, the change being indicative of a drift between a first clock operating in the first CBS, and a second clock operating in the second CBS.
21. The system of any one of claims 18 to 20, wherein the calibration procedure is performed as part of an initialization process executed before onset of a mission, and wherein the data indicative of a geolocation of the mobile platform is determined based on positioning utility other than one that uses cellular base stations.
22. The system of any one of claims 19 to 21, wherein the calibration procedure is performed for calibrating a new CBS, following movement of the mobile platform within communication range of the new CBS; and wherein the data indicative of a geolocation of the mobile platform is determined using another CBS previously calibrated.
23. The system of any one of claims 15 to 22, wherein the at least processing circuitry is configured for processing each respective synchronization signal, to: initially apply long processing on the respective synchronization signal, where an entire length of each period in the synchronization signal is processed; andswitching to apply short processing after a certain time, where only a limited time window within each period is processed, to thereby reduce processing time of the synchronization signals.
24. The system of claim 23, wherein the at least one processing circuitry is configured: while long processing is being applied, to use a first detection threshold value for filtering received data and determining between true synchronization signals and noise; and while short processing is being applied, to use a second detection threshold, lower than the first detection threshold, for filtering received data, and determining between true synchronization signals and noise.
25. The system of any one of claims 15 to 24, wherein the database is a local database stored onboard the mobile platform.
26. The system of any one of claims 15 to 24, wherein the database is a central database stored at an information station, the at least one processing circuitry being configured to use the respective unique identifier for querying and retrieving data from the database over a communication link.
27. The system of any one of claims 15 to 26, wherein the at least one processing circuitry is configured, responsive to movement of the mobile platform into communication range with a new CBS, to: extract from a synchronization signal received from the new CBS a respective unique identifier; before execution of the calibration procedure, use the unique identifier for querying a database located externally to the mobile platform, to determine whether respective calibration values are available at the database; and if not, to execute the calibration procedure.
28. The system of any one of claims 15 to 27, wherein the at least one processing circuitry is configured for processing of each respective synchronizationsignal to: extract Doppler shift values from the respective synchronization signal; and calculate a velocity vector of the mobile platform based on the Doppler shift values.
29. The system of any one of claims 15 to 28 wherein at least one processing circuitry is configured for determining of the geolocation of the mobile platform to implement any one of the following methods: time of arrival (TOA), time difference of arrival (TDOA), and triangulation.
30. The system of any one of claims 15 to 29, wherein the mobile platform is any one of: a manned or unmanned aerial vehicle, a manned or unmanned ground vehicle, and a manned or unmanned marine vehicle.
31. A dongle device detachably connectable to a mobile platform, the dongle device being configured for self-localization of the mobile platform using cellular base stations (CBSs), the device comprising at least one processing circuitry operatively connected to an RF receiver; the RF receiver being configured to receive from at least three CBSs located in an area surrounding the mobile platform, a respective synchronization signal, each synchronization signal being identified by a unique identifier (CBS ID); the at least one processing circuitry is configured to: obtain access to a database storing information on different CBSs in the area, the information comprising, for each CBS: a unique identifier assigned to the CBS and a geolocation of the CBS; process each synchronization signal, comprising: extracting from the synchronization signal a respective unique identifier; using the unique identifier for extracting, from the database, a position of a respective CBS that transmitted the synchronization signal; determining time of arrival of the synchronization signals; and determine geolocation of the mobile platform based on time of arrival valuesdetermined for each of the synchronization signals.
32. A computer program product comprising a computer readable storage medium retaining a program of instructions, which, when read by a computer processor, causes the computer processor to perform a method according to any one of claims 1 to 14.
33. A non-transitory program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method according to any one of claims 1 to 14.
34. A mobile platform comprising a system as described in any one of claims 15 to 30.