Embodiments of the disclosure provide a cross coupled position engine architecture for sensor integration in a Global Navigation Satellite System. In one embodiment, a data processing engine for processing inertial sensor data within a positioning system receiver is disclosed. The data processing engine includes a first input for receiving the sensor data, and a second input for receiving a positioning data. The data processing system also includes a memory and a processor. The processor of the data processing system is coupled to the memory and to the first and second input. The processor of the data processing system is configured to calculate a net acceleration profile data from the inertial sensor data and from the positioning data. The net acceleration profile data calculated by the processor of the data processing system is used for the Global Positioning System (GPS) receiver to subsequently calculate a position and a velocity data.
|
1. A process of performing parallel operations in a data processing sensor engine and a data processing position engine of a receiver, comprising:
receiving satellite information from GPS satellites in an integrated circuit;
transmitting the satellite information in parallel to the data processing position engine and the data processing sensor engine;
performing receiver autonomous integrity monitoring in both the data processing position engine and the data processing sensor engine at the same time;
performing Kalman filtering in both the data processing position engine and the data processing sensor engine;
digitally processing input sensor data and positional data in the data processing sensor engine;
digitally processing calibrated acceleration data and positional data in the data processing position engine;
outputting velocity data and position data from the data processing position engine; and
outputting acceleration information from the data processing sensor engine.
2. The process of
3. The process of
4. The process of
5. The process of
|
This application is a divisional of prior application Ser. No. 13/163,199, filed Jun. 17, 2011, now U.S. Pat. No. 9,030,356, issued May 12, 2015.
Global Navigation Satellite system (GNSS) and, more particularly, to cross coupled Positioning Engine (PE) architecture for sensor integration Engine in Global Navigation Satellite System (GNSS).
A satellite-based navigation system may suffer from performance degradation when a satellite signal is unavailable, blocked, attenuated and/or reflected. Example locations where the satellite-based navigation system suffer from performance degradation may include indoors and/or urban canyons. A Global Navigation Satellite system (GNSS) receiver may be integrated with a sensor-based Inertial Navigation System (INS) to improve performance when some or all satellite signals are not available or attenuated.
In some architecture of GNSS receivers, a sensor input may be provided directly as one of inputs to a position engine of a GNSS receiver for computing position information. However, in such architectures, the position engine may be designed for computing and calibrating an output (e.g., velocity data, position data, time drift) based on the type of predetermined sensors. Such architectures may not support any change in the type of sensor being used in the receiver. If there is a requirement for a modification of the type of sensor being used or new sensors are to be added to the receiver, the architecture of the GNSS receiver may have to be redesigned.
Disclosed are a method, an apparatus, and a system to Cross coupled PE Architecture for sensor integration in a Global Navigation Satellite System (GNSS).
In one aspect, a data processing engine for processing inertial sensor data within a positioning system receiver is disclosed. The positioning system is a Global Positioning System (GPS) or GNSS. The data processing engine as described herein is a Sensor Engine (SE). The data processing engine includes a first input for receiving the sensor data, and a second input for receiving a positioning data. The positioning data may be a fractional or a complete component of satellite data. The data processing system also includes a memory and a processor. The processor of the data processing system is coupled to the memory and to the first and second input. The processor of the data processing system is configured to calculate a net acceleration profile data from the inertial sensor data and from the positioning data. The net acceleration profile data calculated by the processor of the data processing system is used for the GPS receiver to subsequently calculate a position and a velocity data.
In another aspect, a data processing engine for processing data within a positioning system is disclosed. The data processing engine as described herein is a Position Engine (PE). The data processing engine includes a first input for receiving an acceleration profile from a separate engine, and a second input for receiving a positioning data. In addition, the data processing engine also includes an output and a memory coded with firmware. The data processing engine as described herein includes a fixed architecture circuit coupled to the first input, the second input, the output, and the memory. The fixed architecture circuit of the data processing engine computes a velocity vector data and a position vector data from the satellite data and the acceleration profile.
In yet another aspect, a receiver for processing data signals to determine a position or a velocity of the receiver is disclosed. The receiver as described herein is a Global Positioning System (GPS). The receiver includes a first data-processing engine having an input to receive satellite information for use in determining the position or the velocity of the receiver. The receiver also includes a second data-processing engine coupled to the first data-processing engine. The second data-processing engine has an input to receive the satellite information in parallel to the first data-processing engine. The second data-processing engine is configured to process the satellite data for calculating an acceleration profile data.
In still yet another aspect, a GPS receiver for processing data signals to determine position or velocity is disclosed. The receiver includes an antenna for receiving satellite information for use in an algorithm to determine position and velocity. The receiver also includes two or more data-processing engines coupled to each other. The two or more data-processing engines are configured to perform Receiver Autonomous Integrity Monitoring (RAIM) of the satellite information in parallel.
In yet still another aspect, a GPS system is disclosed. The GPS system includes a transmitter, and a receiver unit. The transmitter may be a satellite. The receiver is configured to receive a signal from one or more transmitters. The receiver unit includes a first data-processing engine and a second data-processing engine coupled to each other. The first data-processing engine includes an input to receive satellite information for use in determining the position or the velocity of the receiver. Also, the second data-processing engine of the GPS system includes an input to receive the satellite information in parallel to the first data-processing engine. The second data-processing engine as described herein is configured to process the satellite data for calculating an acceleration profile data.
In another aspect, a method of processing sensor data in a data processing engine having a processor coupled to a memory, an input and an output is disclosed. The method includes receiving sensor data at the input of the data processing engine. In addition, the method also includes calculating an acceleration profile. The method also includes receiving a satellite information from one or more of GPS satellites at the input of the processing engine.
In yet another aspect, a method of calculating a position and velocity data in a data processing engine having an Application Specific Integrated Circuit (ASIC) coupled to a memory and to an input and output is disclosed. The method includes receiving satellite information of ephemerides from GPS satellites at the input of the data processing engine. In addition, the method includes receiving a net acceleration profile data at the input of the processing engine. The method also includes calculating an updated position and velocity data from the satellite information and the net acceleration profile data.
In still another aspect, a method of calculating position or velocity data of a GPS receiver unit is disclosed. The method includes receiving satellite information of ephemerides from a plurality of GPS satellites at an input to the receiver unit. The method also includes communicating the satellite information to both a Position Engine (PE) and a Sensor Engine (SE). The PE and the SE are configured to process the satellite information in parallel.
In yet still another aspect, a method of reprogramming a GPS receiver having a fixed architecture engine coupled to a reprogrammable engine is disclosed. The method includes receiving at the programmable engine portion of the receiver, one item selected from a group of a modified algorithm, a modified sensor type of data, a modified sensor configuration information, and a combination of any of these items. In addition, the method includes reprogramming the programmable engine to perform one item selected from a group consisting of the modified algorithm, the modified sensor type of data, the modified sensor configuration information, and the combination of any of these items. The method also includes substantially maintaining the architecture or firmware configuration of the fixed architecture engine to maintain the qualification status without needing to re-qualify.
The methods, systems, and apparatuses disclosed herein may be implemented in any means for achieving various aspects. Other features will be apparent from the accompanying drawings and from the detailed description that follows.
Example embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.
Disclosed are a method, an apparatus and/or system for cross coupling Position Engine (PE) architecture for sensor integration in a Global Navigation Satellite System (GNSS). Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments.
Receiver 150 further includes an antenna 130 designed to receive navigation data from satellite 108 (or alternatively, from a pseudolite or any other positioning system). The navigation data includes, but is not limited to, a satellite pseudo-range, satellite vehicle information, delta range measurement for each satellite and Doppler signals. The navigation data received through antenna 130 may be processed by ME 106 to generate a measurement data to be communicated to SE 104 and/or PE system 102.
SE 104 of receiver 150 is configured to detect a spatial inertial change of receiver 150 to generate an acceleration profile or to compute position and velocity information based on input obtained from one or more sensors of IMU 112. SE 104 may include an Inertial Navigation System (INS) calibration component to process the input data obtained from the one or more sensors of IMU 112. IMU 112 may include inertial sensors such as accelerometer(s), gyroscope(s), e-compass(es) and/or altimeter(s), to provide an acceleration data, angular/orientation data, direction data and/or altitude data respectively as the input to the SE 104.
PE system 102 may include an interface to receive calibrated data (e.g., acceleration vector, positional data and velocity vector) from SE 104 of receiver 150 at periodic intervals. Additionally, PE system 102 may also include another dedicated interface to receive the measurement data from the ME 106. The PE SYSTEM 102 may also include more interfaces to receive data from other positioning technologies and the like. The calibrated data obtained from SE 104 and the measurement data obtained from ME 106 may be used by PE system 102 to generate an output. The output generated by PE system 192 may be a velocity vector data and a position vector data of receiver 150. The logical illustration of the aforementioned receiver 150 is described in
High-speed, configurable processing unit 154 is configured to process a variable data 151 (e.g., sensor inputs) from one or more inertial sensor sources (e.g., the IMU 112). Variable data 151 may be processed using one or more algorithms 153. One or more algorithms 153 for computing the variable data are input to high-speed, configurable processing unit 154 through an interface provided thereof. Further, one or more algorithms 153 used for computing the variable data 151 in high-speed, configurable processing unit 154 may be modifiable and can be updated. Also, additional algorithms can be input into the high-speed, configurable processing unit 154 through the interface provided thereof.
High-speed, configurable processing unit 154 may also be configured to receive a positioning data 160 from a source such as a transmitter, satellite, a pseudolite, wireless based positioning, cellular based positioning or any other positioning technologies at various data rates. Positioning data 160 received by high-speed, configurable processing unit 154 from the source may be a partial positioning data (or fractional data) or a complete positioning data. In addition, high-speed, configurable processing unit 154 may be configured to receive positioning data such as position data and/or velocity data computed by low-speed, fixed architecture processing unit 152. Also, high-speed, configurable processing unit 154 may be configured to receive positioning data such as position data and velocity data from other positioning technologies such as WiFi™ based positioning technology and cellular based positioning technology. In some embodiments of the disclosure, high-speed, configurable processing unit 154 may not receive any positioning data, thereby driving the high-speed, configurable processing unit 154 to use variable data 151 (e.g., dead reckoning) for computing velocity data and position data.
High-speed, configurable processing unit 154 may also be configured to perform a runtime calibration to generate a fixed format intermediate data 157 using variable data 151 and/or positioning data 160 at periodic intervals, in addition to performing a receiver autonomous integrity monitoring (RAIM) on positioning data 160. A Kalman filter may be used to integrate/blend variable data 151 and positioning data 160 to enable high-speed, configurable processing unit 154 to perform a runtime calibration to generate a fixed format intermediate data 157.
Fixed format intermediate data 157 is a net acceleration profile data, or an absolute position and velocity data analogous to the calibrated data as described in
Further, low-speed, fixed architecture processing unit 152 is configured to receive the net acceleration profile data or absolute velocity and/or position data in a form of fixed format intermediate data 157 periodically from high-speed, configurable processing unit 154 and/or the positioning information from positioning data 160 to generate an output (e.g., a velocity vector data and a position vector data) of a constant data type 159 at a predetermined data rate. Low-speed, fixed architecture processing unit 152 may be include algorithms to determine whether to use the net acceleration profile data, positioning data 160, and/or the absolute velocity and position data to generate an output representing a position of the receiver 150. The output may be communicated to receiver 150 for further processing.
In one embodiment, GNSS SE 204 may be configured to receive one or more sensor inputs 208 from an IMU 252 at data rates appropriate for a specific navigation application. In addition, GNSS SE 204 may also be configured to receive a positional data 206A from GNSS ME 256 at a predetermined moment of time or at every GNSS epoch. The positional data may include a satellite pseudo-range, and a Doppler or a delta range. IMU 252 may be a component of receiver 150 that obtains sensor input from sensor devices such as, but not limited to, accelerometer(s) and gyroscope(s). The sensor input as described herein may include, but is not limited to, an acceleration data, a velocity data, a directional data, an altimeter data, and a barometric pressure data.
GNSS SE 204 may be configured to apply RAIM on the input positional data 206A to remove all erroneous positional information in input positional data 206. The RAIM qualified positional data may be blended/integrated with the sensor inputs to generate a velocity data and a net acceleration profile at every GNSS epoch. The velocity data and/or the generated net acceleration profile may be communicated to GNSS PE 202 at every GNSS epoch.
GNSS PE 202 may be configured to receive the velocity data and/or the net acceleration profile from GNSS SE 204 at a periodicity of output data rate. In addition, GNSS PE 202 may also be configured to receive a positional data 206 such as a satellite pseudo-range, and a Doppler or a delta range from GNSS ME 256. Further, GNSS PE 202 may be configured to apply RAIM on positional data 206 to remove erroneous positional information in positional data 206. The RAIM qualified positional data 206 may be integrated/blended with net acceleration profile and a velocity vector 212A and a position vector 212B may be generated. In one example embodiment, Kalman filter algorithm may be used for integrating/blending RAIM qualified positional data 206 and the net acceleration profile.
In another embodiment, GNSS SE 204 may be configured to receive one or more sensor inputs 208 from an IMU 252 at a data rates appropriate for a specific navigation application. GNSS SE 204 may also be configured to receive a positional data 206A from GNSS ME 256 at a predetermined moment of time or at every GNSS epoch. Also, GNSS SE 204 may be configured to receive additional positional data (not shown in figure) from other positioning technologies such WiFi™ based positioning technology, cellular based positioning technology and pseudolites at data rates based on the respective positioning technology. The data obtained by GNSS SE 204 may be in a form of raw measurements and/or refined position and velocity information.
GNSS SE 204 may also be configured to apply RAIM on all input positional data 206A to remove all erroneous positional information in input positional data 206A. Further, the RAIM qualified positional data and the additional input positional data may be blended/integrated with the sensor inputs to generate a velocity data and a net acceleration profile at every GNSS epoch. The velocity data and/or the generated net acceleration profile may be communicated to GNSS PE 202 at every GNSS epoch.
GNSS PE 202 may be configured to receive the velocity data and/or the net acceleration profile from GNSS SE 204 at a periodicity of output data rate. In addition, GNSS PE 202 may also be configured to receive a positional data 206 such as a satellite pseudo-range, and a Doppler or a delta range from GNSS ME 256. Also, GNSS PE 202 may also be configured to receive additional positional data from the other positioning technologies at a data rate based on the positioning technology providing positioning data.
Further, GNSS PE 202 may be configured to apply RAIM on positional data 206 to remove erroneous positional information in positional data 206. RAIM qualified positional data 206 and the additional positional data may be integrated/blended with the net acceleration profile and a velocity vector 212A and a position vector 212B may be generated. A Kalman filter algorithm may be used for integrating/blending RAIM qualified positional data 206 and the net acceleration profile.
In yet another embodiment, GNSS SE 204 may be configured to receive one or more sensor inputs 208 from an IMU 252 at a data rates appropriate for a specific navigation application. In addition, GNSS SE 204 may also be configured to receive a positional data 206A from GNSS ME 256 at every GNSS epoch. Also, GNSS SE 204 may also be configured to receive positioning data from the other positioning technologies such as from a cellular based positioning. The data obtained by GNSS SE 204 may be in a form of raw measurements and/or refined position and velocity information of the receiver.
GNSS SE 204 may be configured to apply RAIM on all input positional data 206A to remove all erroneous positional information in input positional data 206A. Further, the RAIM qualified positional data and the additional input positional data may be integrated/blended with the sensor inputs to generate a velocity data and a net acceleration profile at every GNSS epoch. The velocity data and/or the generated net acceleration profile may be communicated to the GNSS PE 202 at every GNSS epoch.
GNSS PE 202 may be configured to receive the velocity data and/or the net acceleration profile from GNSS SE 204 at a periodicity of output data rate. In addition, GNSS PE 202 may also be configured to receive a positional data 206 such as a satellite pseudo-range, and a Doppler or a delta range from GNSS ME 256. Further, GNSS PE 202 may be configured to apply RAIM on positional data 206 to remove erroneous positional information in positional data 206. RAIM qualified positional data 206 may be integrated/blended with the net acceleration profile and a velocity vector 212A and a position vector 212B may be generated. In one example embodiment, Kalman filter algorithm may be used for integrating/blending RAIM qualified positional data 206 and the net acceleration profile.
In a further embodiment, GNSS SE 204 may be configured to receive one or more sensor inputs 208 from an IMU 252 at a data rates appropriate for a specific navigation application. In addition, GNSS SE 204 may be configured to receive positional data from the other positional technologies such as the WiFi™ based positioning technology, cellular based positioning technology and pseudolites at data rates based on the respective positioning technology. GNSS SE 204 may also be configured to receive computed position and velocity information from GNSS PE 202.
GNSS SE 204 may be configured to apply RAIM on all input positional data 206A to remove all erroneous positional information in input positional data 206A. Further, the RAIM qualified positional data and the additional input positional data may be blended/integrated with the sensor inputs to generate a velocity data and a net acceleration profile at every GNSS epoch. The velocity data and/or the generated net acceleration profile may be communicated to GNSS PE 202 at every GNSS epoch.
GNSS PE 202 may be configured to receive the velocity data and/or the net acceleration profile from GNSS SE 204 at a periodicity of output data rate. In addition, GNSS PE 202 may also be configured to receive a positional data 206 such as a satellite pseudo-range, and a Doppler or a delta range from GNSS ME 256. Further, GNSS PE 202 may be configured to apply RAIM on positional data 206 to remove erroneous positional information in positional data 206. RAIM qualified positional data 206 may be integrated/blended with the net acceleration profile and a velocity vector 212A and a position vector 212B may be generated. A Kalman filter algorithm may be used for integrating/blending RAIM qualified positional data 206 and the net acceleration profile. Also, GNSS PE 202 may be configured to generate a velocity data and the position data based on positional data 206 obtained from the GNSS ME 256. The generated velocity data and the position data may be communicated to GNSS SE 204 for further computation.
In yet another embodiment, GNSS SE 204 may be configured to receive one or more sensor inputs 208 from an IMU 252 at a data rates appropriate for a specific navigation application. In addition, GNSS SE 204 may be configured to receive computed position and velocity information from GNSS PE 202.
GNSS SE 204 may be configured to apply RAIM on the input positional data obtained from GNSS PE 202 to remove all erroneous positional information in the input positional data. Further, the RAIM qualified positional data may be blended/integrated with the sensor inputs obtained from IMU 252 to generate a velocity data and a net acceleration profile at every GNSS epoch. The velocity data and/or the generated net acceleration profile may be communicated to GNSS PE 202 at every GNSS epoch.
GNSS PE 202 may be configured to receive the velocity data and/or the net acceleration profile from GNSS SE 204 at a periodicity of output data rate. GNSS PE 202 may also be configured to receive a positional data 206 such as a satellite pseudo-range, and a Doppler or a delta range from GNSS ME 256. GNSS PE 202 may also be configured to receive additional positional data from the other positioning technologies such as the WiFi™ based positioning technology, and cellular based positioning technology.
Further, GNSS PE 202 may be configured to apply RAIM on positional data 206 to remove erroneous positional information in positional data 206. RAIM qualified positional data 206 and the additional positional data may be integrated/blended with the net acceleration profile. Further, a velocity vector 212A and a position vector 212B may be generated using the integrated/blended data. A Kalman filter algorithm may be used for integrating/blending RAIM qualified positional data 206 and the net acceleration profile. Also, GNSS PE 202 may be configured to generate a velocity data and the position data based on the positional data obtained from GNSS ME 256 and the additional positional data obtained from the other positioning technologies. The generated velocity data and the position data may be communicated to GNSS SE 204 for further computation.
Velocity vectors 212A and position vector 212B generated by GNSS PE 202 may also be communicated to receiver 150 for further processing.
As described, GNSS SE 204 is configured to receive a sensor input and positioning data through two or more interfaces 330 of I/O 324. I/O 324 includes interfaces 330 to receive the sensor input, positioning data, additional positioning data, and/or additional input from GNSS PE 202. Further, the sensor data may be received through an interface at a first data rate and/or the positioning data may be received through another interface at a second data rate. Other additional positioning data and/or additional input may be received at a data rate as defined by standards. Moreover, the first data rate may be greater than the second data rate. The difference in the data rates may be based on mode of operation of the receiver.
RAM (Random Access Memory) 320 of GNSS SE 204 may be a programmable memory that can be used for storing one or more algorithms such as a Kalman filter algorithm, RAIM algorithm and new algorithms, and input data. The algorithms may be input to GNSS SE 204 through an interface of the I/O dedicated thereof. Although, RAM 320 is described as the memory element of GNSS SE 204, any other reprogrammable memory can be used in place of RAM 320. Microprocessor 310 in GNSS SE 204 may be configured to compute a calibrated acceleration data 210 (e.g., also known as a net acceleration profile) from the sensor data, the positional data, the addition positional data, and/or an input from GNSS PE 202 using a suitable algorithm stored in RAM 320. In addition, microprocessor 310 is also configured to remove erroneous components in the input in the sensor data and positioning data through an application of Kalman filter and RAIM. Although, component microprocessor 310 is used in the disclosure, other types of processing devices such as a microcontroller, Programmable Logic device (PLD), Field Programmable Gate Array (FPGA) and the like may be used in place of microprocessor 310. Communication between the components of GNSS SE 204 through system bus 326 may be controlled through DMA controller 322.
In addition to the above, calibrated acceleration data 210 data and the positional data may be processed by the firmware through ASIC 410 to generate a velocity vector data and a position vector data as an output. Calibrated acceleration data 210 data and the positional data may be obtained through two or more interfaces 430 provided thereof by I/O 424. A Kalman filter and the RAIM may be applied to discard the error data while processing calibrated acceleration data 210 data and the positional data.
In operation 514, if the condition evaluates to be false then operation 518 is performed. In operation 518, a net acceleration profile is transmitted to a subsequent GNSS PE 202.
Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments.
Rao, Sandeep, Waters, Deric W., Pande, Tarkesh, Dutta, Goutam
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
8311740, | Jan 28 2010 | CSR TECHNOLOGY HOLDINGS INC | Use of accelerometer only data to improve GNSS performance |
20020173910, | |||
20110001663, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 14 2015 | Texas Instruments Incorporated | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Nov 18 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Nov 21 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 07 2019 | 4 years fee payment window open |
Dec 07 2019 | 6 months grace period start (w surcharge) |
Jun 07 2020 | patent expiry (for year 4) |
Jun 07 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 07 2023 | 8 years fee payment window open |
Dec 07 2023 | 6 months grace period start (w surcharge) |
Jun 07 2024 | patent expiry (for year 8) |
Jun 07 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 07 2027 | 12 years fee payment window open |
Dec 07 2027 | 6 months grace period start (w surcharge) |
Jun 07 2028 | patent expiry (for year 12) |
Jun 07 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |