The present disclosure relates to global positioning and navigation and global positioning or navigation satellite systems, and more particularly to multi-constellation global navigation satellite system augmentation and assistance.
Use of the U.S. Global Positioning System (GPS) has become ubiquitous for determining one's geographic location and navigation. GPS is a constellation of satellites launched and established by the U.S. Government which orbit the earth to provide navigation and positioning signals to GPS receivers or navigation devices of users. Millions of GPS receivers or navigation devices capable of receiving and using GPS signals are in use by the general public and government entities. Despite the wide use of GPS, there remain a few drawbacks. One drawback is low availability or low signal reception in certain locations because of blockage by structures. For example, the so-called “urban canyon” in cities where high rise building may block GPS signals and consequently there may not be a sufficient number of GPS satellites available to perform navigation and timing using the GPS receiver or navigation device. Other countries have also launched and established constellations of satellites for global positioning and navigation or generically Global Navigation Satellite System (GNSS). Examples of these foreign-owned and operated GNSS's may include, but is not necessarily limited to Glonass (Global Navigation Satellite System) operated for the Russian government by the Russian Space Forces, Galileo operated by the European Union, and Compass operated by the Chinese government. These foreign GNSS satellites may significantly multiply by as much as quadrupling the number of navigation satellites useable with GPS satellites to greatly improve availability and performance of global positioning and navigation. However, use of multi-constellation GNSS may present other concerns. For example can positioning and navigation data from other, foreign or secondary GNSS's be relied upon? Are such systems susceptible to spoofing where one system may masquerade as another or the data may otherwise be inaccurate or false? Other concerns may be time to first fix or to establish communication with a sufficient number of satellites in a reasonable time period to determine a location and susceptibility to jamming or other interference.
In accordance with an embodiment, a system for multi-constellation GNSS augmentation and assistance may include a plurality of reference stations. Each reference station may be adapted to receive navigation data from a plurality of different global navigation satellite systems and to monitor integrity and performance data for each different global navigation satellite system. An operation center may receive the integrity and performance data transmitted from each of the plurality of reference stations. The system may also include a communication network for transmitting the message from the operation center to the navcom equipment of a user for augmentation and assistance of the navcom equipment.
In accordance with another embodiment, user navcom equipment for multi-constellation augmentation and assistance may include at least one receiver for receiving navigation information from a first global navigation satellite system of a plurality of different global navigation satellite systems and for receiving navigation information from at least one other global navigation satellite system of the plurality of different global navigation satellite systems. The user navcom equipment may also include a transceiver to receive a message from an operation center. The message may include augmentation and assistance information for use by the navcom equipment to provide global position and navigation information to a user using navigation data from the at least one other global navigation satellite system.
In accordance with another embodiment, a method for multi-constellation GNSS augmentation and assistance may include monitoring integrity and performance data from a global navigation satellite system by a plurality of reference stations. The method may also include transmitting the integrity and performance data from each of the plurality of reference stations to an operation center. The integrity and performance data from each of the reference stations is integrated and analyzed by the operation center. A message is generated based on analysis of the integrated integrity and performance data. The message may include information useable for augmentation and assistance by navcom equipment of a user for providing global position and navigation information to the user using navigation data received by the navcom equipment from the global navigation satellite system.
In accordance with a further embodiment, a method for multi-constellation GNSS augmentation and assistance may include receiving navigation information from a first global navigation satellite system of a plurality of different global satellite navigation systems. The method may also include receiving navigation information from at least one other global navigation satellite system of the plurality of different global navigation satellite systems. The method may further include receiving a message from an operation center. The message may include augmentation and assistance information for use by navcom equipment to provide global position and navigation information to a user using navigation data from the at least one other global navigation satellite system. The augmentation and assistance information received from the operation center may be derived from integrity and performance data collected by the operation center from each of a plurality of reference stations. Each reference station may be adapted to receive navigation data from the plurality of different global navigation satellite systems and to monitor integrity and performance data for each different global navigation satellite system.
Other aspects and features of the present disclosure, as defined solely by the claims, will become apparent to those ordinarily skilled in the art upon review of the following non-limited detailed description of the disclosure in conjunction with the accompanying figures.
The present disclosure is further described in the detailed description which follows in reference to the noted plurality of drawings by way of non-limiting examples of embodiments of the present disclosure in which like reference numerals represent similar parts throughout the several views of the drawings.
The following detailed description of embodiments refers to the accompanying drawings, which illustrate specific embodiments of the disclosure. Other embodiments having different structures and operations do not depart from the scope of the present disclosure.
Aspects of the present disclosure are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The present disclosure describes an exemplary system, end user navcom device or equipment and methods for providing multi-constellation GNSS augmentation and assistance services. The augmentation and assistance services may include integrity information of “foreign-owned”, other, or secondary GNSS systems such as Glonass, Galileo and Compass. The augmentation and assistance services may also provide acquisition and tracking assistance and differential corrections. The tracking assistance may include providing time assistance or information, frequency assistance or data, navigation data assistance, ranging augmentation or similar data or information. The differential corrections may include ionosphere corrections, troposphere corrections, satellite clock corrections, ephemeris corrections or similar data or information. The embodiments described in this disclosure enable the use of a foreign, other or secondary GNSS with a certain level of confidence in the reliability or integrity of the navigation data and greatly enhance the availability, integrity and performance of satellite based navigation capability for both government and commercial/consumer markets.
As used herein Global Positioning System or GPS may refer to the U.S. owned and operated GNSS or constellation of global positioning satellites. Primary GNSS may refer to a GNSS that is primarily used or normally used, such as by navcom equipment of a user. Other GNSS may refer GNSS's owned and/or operated by countries or entities other than the U.S. or to GNSS's other than the GPS GNSS. Secondary GNSS may refer to a GNSS that is not primarily used or normally used, such as by navcom equipment of a user. Global Navigation Satellite system or systems or GNSS or GNSS's may refer to any of the above.
Each reference station 102 may be adapted to receive navigation data from a plurality of different global navigation satellite systems or GNSS's 104, 106, and 108 or multi-constellations of GNSS satellites. Each reference station 102 may also monitor integrity and performance data for each different GNSS 104, 106 and 108, as well as any other data, information or parameters helpful in providing the augmentation and assistance services described herein. As previously discussed, each GNSS 104, 106 and 108 may be a constellation of satellites owned and operated by different entities or countries which orbit the earth to provide global position and navigation data or information to GNSS receivers, navigation devices, end user combination navigation and communications (navcom) equipment or the like. As used herein, user navcom equipment may refer to any such GNSS receiver, navigation device, end user equipment or similar device capable of receiving navigation and position data or information from a GNSS.
An example of a reference station will be described in more detail with reference to
The reference station 102 may also include a communications transceiver 112 for sending and receiving information, such as integrity and performance information. The communications transceiver 112 may send integrity and performance data to an operation center 118 via a network 120. The network 120 may be a secure network using suitable security measures, such as encryption or other techniques, to prevent interference or tampering with the data being sent. The network 120 may be space based using communications satellites (not shown in
The reference station 102 may also include a processor 114 for controlling overall operation of the reference station 102. As described in more detail herein, the processor 114 may also be used by the reference station 102 to perform integrity checks or verification and to monitor integrity and performance for each different GNSS 104, 106, and 108.
The reference station 102 may also include a memory 116 for storing databases including data or information related to the integrity and performance for each GNSS 104, 106 and 108 as well as other parameters and information.
As previously discussed, the system 100 may also include an operation center 118 to receive the integrity and performance data transmitted from each of the plurality of reference stations 102 via the network 120. As described in more detail herein, the operation center 118 is adapted to integrate and analyze the integrity and performance data from each of the reference stations 102 and to generate and send a message or messages based on the analysis of the integrated integrity and performance data to navcom equipment 122 of a user. The message may include information useable for augmentation and assistance by the navcom equipment 122 for providing global position and navigation information to the user using navigation data received by the navcom equipment 122 from at least one of the global navigation satellite systems 104, 106 and 108, such as from one of the other or secondary GNSS's. The system 100 may include a plurality of operation centers 118. The operation centers 118 may be geographically dispersed similar to the reference stations 102 and may be located at selected geographic locations relative to groups of reference stations 102 for more efficient and reliable operation and communications between different components of the system 100.
An example of an operation center 118 will be described in more detail with reference to
The operation center 118 may also include a processor 128 to control overall operation of the operation center 118. The processor 128 may also integrate and analyze the integrity and performance data and generate the message for the user navcom equipment 122 based on the analysis of the integrated integrity and performance data.
The operation center 118 may further include a memory 130 for storing databases including data associated with the reference stations 102 and data associated with all GPS, primary and other or secondary GNSS satellites, and data related to analysis of the integrity and performance data.
An example of user equipment 122 will be described in more detail with reference to
The user equipment 122 may additionally include a processor 136 for overall control and operation of the user equipment 136. The processor 136 may also be adapted to perform multi-level integrity verifications, tests or checks as described herein as well as other operations related to providing the user accurate global position and navigation information.
The user equipment 122 may also include a memory 138 for storing data and databases for proper operation of the user equipment 122 and to provide augmentation and assistance to the user for highly precise global positioning and navigation.
In block 204, a navigation signal may be broadcast in space by a GNSS satellite 206. The GNSS satellite may a U.S. or GPS or primary satellite or another or secondary GNSS satellite.
In block 208, the navigation signal may be received by a reference station 210. The operations or functions described below as being performed by the reference station 210 will apply for each of the plurality of reference stations in the system. In block 212, the reference station 210 may collect navigation data from multiple GNSS satellites over a predetermined period of time. In block 214, local differential corrections may be determined or generated by the reference station 210. The local differential corrections may be generated using the navigation data collected in block 212 and using the known geographic location of the reference station 210 and the fact the reference station is stationary. The integrity of a GNSS satellite signal, such as from another or secondary GNSS not normally used or operated or owned by another entity, may be considered to be suspicious if the reference stations 210 which are stationary and the location of the reference stations 210 which are known precisely to be a given vector, is violated by exceeding a predefined threshold of tolerance when the information provided by satellite signals is used.
In block 216, the reference station 210 may perform a local integrity verification, test or check to verify the veracity or reliability of the navigation signals or data received from the GNSS 206. An example of a method for performing integrity verification will be described in more detail with reference to
In block 226, the operation center 220 may collect the data from each of the plurality of reference stations 210. In block 228, the operation center may combine the collected integrity information and may perform further global integrity verification or check using the integrated data from all of the reference stations 210. An example of global integrity verification or monitoring may be to use a system of equations that model the fact that the reference station locations are known to be given values and the reference station velocities are zero. All the measurements from all sources or reference stations 210 may be used to perform “parity” checks for detecting and isolating anomalous measurements using least square parity space. An advantage of performing global detection of any integrity issues is that the best solution can be arrived at with all the information available.
In block 230, the operation center 220 may generate differential global corrections. Generating the differential global corrections may be similar to that described with respect to block 214 for the reference station 210 and may involve integrating the local differential corrections from the reference stations 210.
In block 232, the operation center 220 may generate a message or messages including augmentation and assistance information for end user navcom equipment based on the global integrity verification in block 228, and the differential global corrections in block 230 and other analysis in the operation center 220. The augmentation and assistance information may include integrity information, assistance information, and differential correction information. The integrity information may include an integrity indicator or indication for each GNSS, notifications or warnings regarding certain GNSS's or other integrity related information or data. The assistance information may include information related to accessing the different GNSS's, preferences for which GNSS's to use, time to first fix, etc. The differential corrections may include information for settings or adjustments to the user navcom equipment for proper use of the navigation data received from a particular GNSS.
In block 234, the message 236 or messages may be broadcast to the user navcom equipment 238 via a communications network 239. The communications network 239 may be the same as communications network 224 or a different communications network. Suitable security measures may be employed to provide a secure network. For example, the message 236 may be encrypted or other security techniques may be exercised.
In block 240, the message 236 or messages may be received by the user equipment 238. In block 242, the user equipment 242 may also receive GPS signals including navigation data or signals from a primary GNSS that is primarily or normally used by the user equipment 238. In block 244, the user equipment 238 may receive GNSS signals from another or secondary GNSS 206. The GNSS signals from the other or secondary GNSS 206 may be used by the user equipment 238 under predetermined conditions. Examples of such predetermined conditions may include to improve performance in an environment where navigation data from one GNSS is impaired and requires use of navigation data from at least one other GNSS, for navigation and position determination in urban canyons, or other situations or environments where augmentation and assistance may be of benefit.
In block 246, the navigation data may be screened using the integrity information received in the message 236 from the operation center 220. In block 248, any assistance information included in the message 236 or messages may be applied to assist the user equipment 238 in providing global location and navigation information to the user.
In block 250, any differential corrections may be applied to the navigation data based on the information contained in the message 236 or messages from the operation center 220. In block 252, a navigation solution or global position may be determined. Computing a navigation solution may involve using measurements such as pseudo range and carrier-phase measurements from several different GNSS systems using known techniques.
The reference station 300 may also include a processor 304 for processing the navigation data received by the one or more receivers 302 from the plurality of different GNSS's. The processor 304 may include a module 306 for processing GPS signals or primary GNSS signals and navigation data received from GPS or primary satellites and a module 308 for processing signals and navigation data from other or secondary GNSS satellites.
The processor 304 may be adapted or programmed to monitor the integrity and performance data of each different GNSS and to generate a differential correction for each. The integrity data, performance data, differential correction data as well as other information that may be used for providing augmentation and assistance service as described herein may be stored in a memory 310. The memory 310 may maintain and store databases containing the different data and information useable for augmentation and assistance by end user equipment.
The reference station 300 may also include a communications transceiver 312 to transmit the integrity and performance data, the differential correction data, as well as other information that may be useful for providing the augmentation and assistance services described herein to an operation center, such as operation center 118 in
The reference station 300 may be further adapted to selectively operate in one of a plurality of modes. For example, the modes may include but are not necessarily limited to a self-survey and self-calibration mode, a reference station/operation center (RS/OC) collaborated survey and calibration mode, and a normal operation mode. The processor 304 may include modules 314-318 operable on the processor 304 for performing each of the different modes of operation that may be selected. For example, a module 314 for the normal operation mode may be operable on the processor 304. A module 316 may be operable on the processor 304 for the RS/OC collaborated survey/calibration mode, and a module 318 for the self-survey/self calibration mode may be operable on the processor 304. The reference station 300 operating in the normal mode is adapted to perform continuous integrity monitoring of each GNSS or continuous monitoring of the particular other or secondary GNSS that is currently being used for augmentation and assistance. An example of a method for monitoring integrity that may be used in the reference station 300 for continuous integrity monitoring will be described in more detail with reference to
The reference station 300 operating in the RS/OC collaborated survey and calibration mode as represented by module 316 may be adapted to provide pseudo range and carrier-phase measurement data of each secondary GNSS or the GNSS currently being used for augmentation and assistance. As described in more detail with reference to
The reference station 300 operating in the self-survey and self-calibration mode as represented by module 318 may perform a receiver autonomous integrity monitoring (RAIM) operation or algorithm. In the self-survey and self-calibration mode, the reference station 300 may also perform verification of the integrity of the navigation data and any other information from the other or secondary GNSS, and may determine a site location of the reference station 300. An example of a method for self-survey and self-calibration will be described in more detail with reference to
In block 406, a pseudo range of the GNSS satellite or satellites within range of the reference station or currently being used for augmentation and assistance may be predicted using the navigation data received from the secondary GNSS, the clock estimates (or GPS clock estimates if from GPS satellites), and the known location of the reference station.
In block 408, a pseudo range of the GNSS available satellite or satellites or the GNSS satellites currently in view of the reference station and being used for providing augmentation and assistance services may be measured.
In block 410, the predicted pseudo range may be compared to the measured pseudo range to determine if there is any difference between the predicted and measured the pseudo ranges. In block 412, a determination may be made whether the difference between the predicted and measured pseudo ranges exceeds a predetermined threshold value. If the difference exceeds the predetermined threshold value, the method 400 may advance to block 414. In block 414, an indication may be generated and/or presented indicating that the integrity verification, test or check failed. The navigation data from the other or secondary GNSS may not be reliable for use in providing augmentation and assistance services.
If the difference between the predicted and measured pseudo ranges does not exceed the predetermined value in block 412, the method 400 may advance to block 416. In block 416, an indication may be generated and/or presented indicating that the integrity verification, test or check passed and the navigation data from the other or secondary GNSS is reliable for use in providing augmentation and assistance services.
In block 506, a receiver autonomous integrity monitoring (RAIM) process or algorithm may be performed using the GPS and GNSS received signals or the primary GNSS and secondary GNSS received signals. The self-survey and self-calibration mode may be performable using only GPS navigation data or primary navigation data when P/Y-code and/or M-code GPS signals are receivable by the reference station.
RAIM detects faults with redundant GPS or GNSS pseudo range measurements. That is, when more satellites are available than needed to produce a position fix, the extra pseudo ranges should all be consistent with the computed position. A pseudo range that differs significantly from the expected value (i.e., an outlier) may indicate a fault of the associated satellite or another signal integrity problem (e.g., ionospheric dispersion, etc.). Traditional RAIM uses fault detection (FD) only, however newer GPS receivers incorporate fault detection and exclusion (FDE) which enables them to continue to operate in the presence of a GPS failure. The test statistic used is a function of the pseudo range measurement residual (the difference between the expected measurement and the observed measurement) and the amount of redundancy. The test statistic is compared with a threshold value, which is determined based on the requirements for the probability of a false alarm (Pfa) and the probability of missed detection (Pmd).
In block 508, the integrity of the navigation data may be confirmed based on a geographic location of the reference station being known and the fact that the reference station is not moving or stationary.
In block 510, a geographic location of the reference station may be determined using the GPS navigation data or primary navigation data collected over a predetermined time period and using a GPS-based positioning technique. GPS-based positioning techniques are known, for example a simple least square approach can be used that determines the reference station location, the receiver clock bias, and clock rate error by measurements received over a period of time.
In block 512, and expected accuracy of the navigation signals being received may be determined. For example, the expected accuracy may be determined using a covariance matrix of errors associated with the received navigation signals. The covariance matrix characterizes the “variance” and “correlation” of the errors. The diagonal element of the matrix is the variances of each of the errors in the vector. The larger the variances, the more likely the error may vary which consequently means larger errors. As more measurements are received over time, knowledge of the errors becomes better and consequently the variances will become smaller. The expected accuracy of the navigation signals being received and the location of the reference station may be continuously updated in the self-survey and self-calibration mode to permit switching to the normal operation mode when the variance of the errors becomes sufficiently small.
The operation center 600 may also include a processor 606. The processor 606 may control the overall function and operation of the operation center 600. The processor 606 may include a module 608 to process GPS signals and data or signals and data from a primary GNSS. The processor 606 may also include a module 610 or modules to process other or secondary GNSS signals and data.
The processor 606 may also include a module 612 or means to consolidate integrity information from the plurality of reference stations. Analysis may be performed by the operation center on the integrity information to determine any patterns, trends or other statistical information that may be helpful in providing augmentation and assistance services.
The processor 606 may also include a module 614 to assist the reference stations in the RS/OC collaborated survey and calibration of each reference station. In conjunction with this, the operation center 600 may receive navigation data from a newly deployed reference station. The operation center 600 may combine the navigation data from the newly deployed reference station with measured navigation data from a previously surveyed and calibrated reference station using a differential GPS technique or similar technique. An example of a differential GPS technique may include using a double differenced pseudo range measurement and a double differenced carrier-phase measurement for calibrating the newly deployed reference station.
The operation center 600 may further include a memory 616. The memory 616 may store one or more databases. One database 618 may store data including but not necessarily limited to an identification of each reference station, a location of each reference station, calibration status and accuracy of each reference station, a differential correction parameter for each reference station. Another database 620 may store data or information associated with the GPS or primary constellation of satellites. Additional databases 622-624 may store data associated with other or secondary GNSS satellite constellations.
The navcom equipment 700 is adapted to use navigation data from a plurality of different GNSS's to improve performance in an environment where navigation data from one GNSS may be impaired or for some other reason use of navigation data from at least one other global navigation system may be required or beneficial. Similar to that previously described, the navcom equipment 700 is also adapted to receive a message or messages from an operation center. Information in the message from the operation center is useable by the navcom device 700 to verify the integrity and performance of the at least one other GNSS.
The user navcom equipment 700 may include a receiver and antenna 702 for receiving navigation information and other data from a first global navigation satellite system of a plurality of different global navigation satellite systems. The first global navigation satellite system may be the GPS satellite system or a primary GNSS.
The user navcom equipment 700 may also include one or more additional receivers 704 for receiving navigation information and other data from at least one other GNSS or secondary GNSS of a plurality of different GNSS's. For example, the user navcom equipment 700 may include receivers and associated antennas for receiving signals and data from the Russian Glonass constellation of navigation satellites, the European Galileo GNSS, the Chinese Compass GNSS, and any other GNSS's. In another embodiment, the user navcom equipment 700 may include a single receiver and associated antenna adapted to receive signals and data from the plurality of different GNSS's.
The user navcom equipment 700 may also include a communications transceiver 708 to receive a message or messages from an operation center similar to that previously described. The message may include augmentation and assistance information for use by the user navcom equipment 700 to provide global position and navigation information to the user using navigation data from at least one other GNSS or secondary GNSS. The transceiver 708 may also be used for other data, voice or video communications or the user navcom equipment may include one or more other transceivers of such communications.
As previously described, the augmentation and assistance information received by the user navcom equipment 700 from the operation center may be derived from integrity and performance data collected by the operation center from each of the plurality of reference stations. Each reference station may be adapted to receive navigation data from the plurality of different GNSS's and to monitor integrity and performance data for each different GNSS or secondary GNSS.
The user navcom equipment 700 may also include a memory 710 for storing databases containing data related to the integrity and performance and other information for use in augmentation and assistance, including but not limited to acquisition and tracking assistance of navigation satellites, differential corrections for the different GNSS's and associated satellites and other data.
The user navcom equipment 700 may also include a processor 712. The processor 712 may control overall operation of the user navcom equipment 700. For example, the processor 712 may include a module 714 operable on the processor 712 to process GPS signals and data or signals and data from a primary GNSS, and a module 716 operable on the processor 712 to process other or secondary GNSS signals and data.
The user navcom equipment 700 may also include a module 718 operable on the processor 712 for performing a multi-level integrity verification, test, or check with regard to the navigation data from each of the GNSS's or the GNSS currently being used for augmentation and assistance. The multi-level integrity verification may include a first level integrity verification 720 that may involve determining a first integrity indication from the message or messages from the operation center related to integrity and performance of the GNSS's. A second level integrity verification 722 may include determining a second integrity indication using a RAIM process or algorithm. A third level integrity verification 724 may include determining a third integrity indication using multi-sensor integration. An example of using multi-sensor integration may include using Kalman Filter Residuals or similar techniques. Kalman Filtering is a technique that may be used to combine (or fuse) measurements from multiple sources (such as multiple sensors). In a Kalman Filter, the measurements or information from the multiple sources is used to predict what the new measurements will be. The actual new measurements are then compared to the predicted measurements. The difference between measured and predicted measurements is known as the “Kalman Filter Residual” (also known as the “innovation”). In addition, based on “covariance information”, there is an expectation of how much variation the “residual” can have. If the actually residual value is significantly beyond the expected range of the variation, then the measurements are suspected to have been corrupted, and this may lead to a detection or integrity problem.
Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art appreciate that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown and that the embodiments herein have other applications in other environments. This application is intended to cover any adaptations or variations of the present disclosure. The following claims are in no way intended to limit the scope of the disclosure to the specific embodiments described herein.
The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. The embodiment was chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable other of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.