Method and apparatus for kinematic initialization of global navigation satellite system-inertial navigation system

CN115777056BActive Publication Date: 2026-10-27QUALCOMM INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180048276.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-07-13
Filing Date
2021-06-07
Publication Date
2026-10-27
Estimated Expiration
2041-06-07

Smart Images

  • Figure CN115777056B_ABST
    Figure CN115777056B_ABST
Patent Text Reader

Abstract

A mobile device (100) in a moving vehicle (102) initializes a global navigation satellite system (GNSS)-inertial navigation system (INS) system with an orientation of the mobile device (100) relative to a global reference frame while the vehicle (102) is in motion. The mobile device (100) determines a gravity vector using gyroscope (312) measurements taken while the vehicle (102) is turning. The gravity vector and accelerometer (311) measurements can be used to determine a forward vector of the mobile device (100). A north vector is determined using GNSS (110) measurements. After the GNSS-INS system is calibrated, the mobile device (100) can be repositioned relative to the vehicle (102). Prior to repositioning, the orientation of the mobile device (100) can be compared to a current orientation determined while the vehicle (102) is in motion to determine whether the GNSS-INS system should be reinitialized.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority claim according to 35 U.SC § 119

[0002] This application has the benefit and priority of U.S. non-provisional application No. 16 / 927,337, filed July 13, 2020, entitled “METHOD AND APPARATUSFOR IN MOTION INITIALIZATION OF GLOBAL NAVIGATION SATELLITE SYSTEM–INERTIALNAVIGATION SYSTEM”, filed pursuant to 35 USC §119, both of which are assigned to the assignee of this application and are incorporated herein by reference in their entirety.

[0003] background Background Technology

[0004] This disclosure generally relates to apparatus and methods for locating wireless devices using a combination of navigation systems, and more particularly to the initialization of a navigation system for locating.

[0005] Relevant background

[0006] In addition to measurements from inertial navigation sensors (INS), mobile devices used for navigation in vehicles or other transportation vehicles sometimes use Global Navigation Satellite System (GNSS) positioning information to determine accurate positioning and to formulate current speed and heading. GNSS provides absolute positioning, while inertial sensors in the INS (such as, for example, accelerometers and gyroscopes) provide relative positioning. Absolute positioning from GNSS can be used to calibrate the INS, which can then be used to provide positioning and heading updates more quickly than GNSS. Furthermore, when mobile devices are in GNSS-rejected environments (such as urban canyons), INS can be used to compensate for the loss of GNSS signal by continuing to provide positioning and heading updates from the last known GNSS position (e.g., dead reckoning). Additional types of sensors (such as visual / camera sensors, e.g., visual inertial odometry (VIO)) can be coupled with GNSS to assist in positioning and heading determination.

[0007] GNSS-INS filters require initialization to estimate the orientation of the mobile device relative to a global reference frame. For example, when a mobile device is placed inside a vehicle (e.g., mounted in a bracket or other fixed structure within the vehicle), the orientation of the inertial sensors within the mobile device relative to the vehicle and relative to the global reference frame is unknown. Sensor calibration typically requires the mobile device and vehicle to be stationary, free from external acceleration. However, the orientation of the mobile device within a vehicle can change arbitrarily and frequently. For example, a user may move the mobile device within the vehicle, or the mobile device's location may shift while in motion. After the mobile device's orientation has changed, reinitialization of the GNSS-INS filter may be necessary. However, during travel, there are likely few stationary periods during which the GNSS-INS filter can be reinitialized without external acceleration.

[0008] Overview

[0009] A mobile device in a moving vehicle initializes its Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) with its orientation relative to a global reference frame while the vehicle is in motion. The mobile device uses gyroscope measurements taken as the vehicle turns to determine its gravity vector. Gravity vector and accelerometer measurements are used to determine the mobile device's forward vector. GNSS measurements are used to determine the north vector. After the GNSS-INS system is calibrated, the mobile device can be positioned relative to the vehicle. Before repositioning, this orientation of the mobile device can be compared to the current orientation determined while the vehicle is in motion to determine whether the GNSS-INS system should be reinitialized.

[0010] In one implementation, a method for in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) in a mobile device within a vehicle includes: determining a gravity vector based on gyroscope measurements when the vehicle is turning; determining a forward vector based on the gravity vector and accelerometer measurements when the vehicle is traveling straight; determining a north vector based on GNSS measurements of the heading angle; and initializing a GNSS-INS filter using the gravity vector, the forward vector, and the north vector.

[0011] In one implementation, a mobile device located in a vehicle is configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system within the mobile device. The mobile device includes: an inertial measurement unit (IMU) comprising an accelerometer and a gyroscope; a GNSS receiver; at least one memory; and at least one processor coupled to the IMU, the GNSS receiver, and the at least one memory. The at least one processor is configured to: determine a gravity vector based on gyroscope measurements when the vehicle is turning; determine a forward vector based on the gravity vector and accelerometer measurements when the vehicle is traveling straight; determine a north vector based on GNSS measurements of the heading angle; and initialize a GNSS-INS filter using the gravity vector, the forward vector, and the north vector.

[0012] In one implementation, a mobile device located in a vehicle is configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system within the mobile device. The mobile device includes: means for determining a gravity vector based on gyroscope measurements when the vehicle is turning; means for determining a forward vector based on the gravity vector and accelerometer measurements when the vehicle is traveling straight; means for determining a north vector based on GNSS measurements of the heading angle; and means for initializing a GNSS-INS filter using the gravity vector, the forward vector, and the north vector.

[0013] In one implementation, a non-transient storage medium includes program code stored thereon operable for configuring at least one processor in a mobile device located in a vehicle, the mobile device being configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system in the mobile device. The program code includes: program code for determining a gravity vector based on gyroscope measurements when the vehicle is turning; program code for determining a forward vector based on the gravity vector and accelerometer measurements when the vehicle is traveling straight; program code for determining a north vector based on GNSS measurements of the heading angle; and program code for initializing a GNSS-INS filter using the gravity vector, the forward vector, and the north vector.

[0014] In one implementation, a method for in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) in a mobile device located in a vehicle includes: determining a first orientation of the mobile device relative to a global reference frame based on previous calibration of a GNSS-INS filter; detecting an indication that the mobile device has moved relative to the vehicle; determining a second orientation of the mobile device relative to the global reference frame based on the in-motion calibration of the GNSS-INS filter while the vehicle is moving; comparing the first orientation and the second orientation; and applying the first orientation to the GNSS-INS filter to generate positioning and heading based on the first orientation if the difference between the first orientation and the second orientation is less than a threshold, and applying the second orientation to the GNSS-INS filter to generate positioning and heading based on the second orientation if the difference between the first orientation and the second orientation is greater than the threshold.

[0015] In one implementation, a mobile device located in a vehicle is configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system within the mobile device. The mobile device includes: an inertial measurement unit (IMU) comprising an accelerometer and a gyroscope; a GNSS receiver; at least one memory; and at least one processor coupled to the IMU, the GNSS receiver, and the at least one memory. The at least one processor is configured to: determine a first orientation of the mobile device relative to a global reference frame based on previous calibration of a GNSS-INS filter; detect indications that the mobile device has moved relative to the vehicle; determine a second orientation of the mobile device relative to the global reference frame based on in-motion calibration of the GNSS-INS filter while the vehicle is moving; compare the first orientation and the second orientation; and, if the difference between the first and second orientations is less than a threshold, use the first orientation for the GNSS-INS filter to generate positioning and heading based on the first orientation, and if the difference between the first and second orientations is greater than the threshold, use the second orientation for the GNSS-INS filter to generate positioning and heading based on the second orientation.

[0016] In one implementation, a mobile device located in a vehicle is configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system within the mobile device. The mobile device includes: means for determining a first orientation of the mobile device relative to a global reference frame based on previous calibration of a GNSS-INS filter; means for detecting an indication that the mobile device has moved relative to the vehicle; means for determining a second orientation of the mobile device relative to the global reference frame based on in-motion calibration of the GNSS-INS filter while the vehicle is moving; means for comparing the first and second orientations; and means for applying the first orientation to the GNSS-INS filter to generate positioning and heading based on the first orientation if the difference between the first and second orientations is less than a threshold, and for applying the second orientation to the GNSS-INS filter to generate positioning and heading based on the second orientation if the difference between the first and second orientations is greater than the threshold.

[0017] In one implementation, a non-transient storage medium includes program code stored thereon operable for configuring at least one processor in a mobile device located in a vehicle, the mobile device being configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system in the mobile device. The program code includes: program code for determining a first orientation of the mobile device relative to a global reference frame based on previous calibration of a GNSS-INS filter; program code for detecting an indication that the mobile device has moved relative to the vehicle; program code for determining a second orientation of the mobile device relative to the global reference frame based on in-motion calibration of the GNSS-INS filter while the vehicle is moving; program code for comparing the first and second orientations; and program code for using the first orientation for the GNSS-INS filter to generate positioning and heading based on the first orientation if the difference between the first and second orientations is less than a threshold, and for using the second orientation for the GNSS-INS filter to generate positioning and heading based on the second orientation if the difference between the first and second orientations is greater than the threshold. Brief description of the attached diagram

[0019] Non-limiting and non-exhaustive aspects are described with reference to the following figures, wherein, unless otherwise specified, similar reference numerals are used throughout the figures to refer to similar parts.

[0020] Figure 1 The text explains mobile devices within vehicles that can be configured to support in-motion calibration of GNSS-INS systems.

[0021] Figure 2AThe Earth and global reference frame available from GNSS are explained.

[0022] Figure 2B The text explains mobile devices and object reference frames.

[0023] Figure 3 A block diagram of a mobile device is shown, which can be configured to perform positioning using combined GNSS and INS measurements and to initialize the GNSS-INS system while in motion.

[0024] Figure 4 This is a flowchart illustrating the initialization process of a GNSS-INS filter in motion within a mobile device that is kept in a fixed orientation in a vehicle.

[0025] Figure 5 This is a flowchart explaining the re-initialization process of the GNSS-INS filter in a mobile device during movement after the mobile device has been moved within a vehicle.

[0026] Figure 6 This is a flowchart illustrating another implementation of the re-initialization process of the GNSS-INS filter in a mobile device during movement after the mobile device has been moved within a vehicle.

[0027] Figure 7 This is a flowchart explaining the in-motion calibration method of GNSS-INS systems in mobile devices within moving vehicles.

[0028] Figure 8 This is a flowchart illustrating another in-motion calibration method for GNSS-INS systems in mobile devices within moving vehicles.

[0029] Detailed description

[0030] The detailed description set forth below in conjunction with the accompanying drawings is intended to describe various aspects of this disclosure and is not intended to represent only those aspects that may be practiced. Each aspect described in this disclosure is provided merely as an example or illustration of the disclosure and is not necessarily to be construed as superior to or better than the other aspects. This detailed description includes specific details in order to provide a thorough understanding of this disclosure. However, it will be apparent to those skilled in the art that this disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form to avoid obscuring the concepts of this disclosure. Acronyms and other descriptive terms are used only for convenience and clarity and are not intended to limit the scope of this disclosure.

[0031] The location determination techniques described in this article can be implemented in conjunction with various wireless communication networks, such as Wireless Wide Area Networks (WWAN), Wireless Local Area Networks (WLAN), and Wireless Personal Area Networks (WPAN). The terms "network" and "system" are often used interchangeably. A WWAN can be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single Carrier Frequency Division Multiple Access (SC-FDMA) network, or Long Term Evolution (LTE). A CDMA network can implement one or more Radio Access Technologies (RATs), such as cdma2000, Wideband CDMA (W-CDMA), etc. Cdma2000 includes the IS-95, IS-2000, and IS-856 standards. A TDMA network can implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Telephone Systems (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from an organization called the Third Generation Partnership Project (3GPP). Cdma2000 is described in documents from an organization called "3rd Generation Partnership Project 2" (3GPP2). 3GPP and 3GPP2 documents are publicly available. WLAN can be an IEEE 802.11x network, and WPAN can be a Bluetooth network, IEEE 802.15x, or some other type of network. These technologies can also be implemented in any combination of WWAN, WLAN, and / or WPAN.

[0032] Satellite positioning systems (SPS) typically include transmitter systems positioned such that entities can determine their location on or above the Earth, at least in part, based on signals received from these transmitters. Such transmitters typically transmit signals labeled with a set number of repeating pseudo-random noise (PN) codes and may be located on ground-based control stations, user equipment, and / or spacecraft. In a particular example, such transmitters may be located on Earth-orbiting satellite launch vehicles (SVs). For example, SVs in a Global Navigation Satellite System (GNSS) constellation (such as GPS, Galileo, GLONASS, or Compass) may transmit signals labeled with PN codes that can be distinguished from PN codes transmitted by other SVs in the constellation (e.g., using different PN codes for each satellite as in GPS, or using the same code at different frequencies as in GLONASS). According to certain aspects, the techniques presented herein are not limited to global systems (e.g., GNSS) for SPS. For example, the techniques provided herein can be applied to or otherwise implemented for use with various regional systems (such, for example, the Quasi-Zenith Satellite System (QZSS) over Japan, the Indian Regional Navigation Satellite System (IRNSS) over India, and BeiDou over China) and / or can be associated with one or more global and / or regional navigation satellite systems or otherwise implemented for use with one or more global and / or regional navigation satellite systems (e.g., satellite-based augmentation systems (SBAS)). By way of example and not limitation, SBAS may include augmentation systems that provide integrity information, differential correction, etc., such as, for example, Wide Area Augmentation System (WAAS), European Geostationary Navigation Coverage Service (EGNOS), Multifunctional Satellite Augmentation System (MSAS), GPS-Assisted Geographic Augmentation Navigation, or GPS and Geographic Augmentation Navigation System (GAGAN). Therefore, as used herein, SPS may include any combination of one or more global and / or regional navigation satellite systems and / or augmentation systems, and SPS signals may include SPS, SPS-like signals, and / or other signals associated with such one or more SPS.

[0033] As used herein, mobile devices are sometimes referred to as mobile stations (MS) or user equipment (UE), such as cellular phones, mobile phones or other wireless communication devices, personal communication system (PCS) devices, personal navigation devices (PNDs), personal information managers (PIMs), personal digital assistants (PDAs), tablet computers, laptop computers, tracking devices, wearable devices (e.g., smartwatches, glasses, augmented reality (AR) / virtual reality (VR) headsets, etc.), vehicles (e.g., cars, motorcycles, bicycles, etc.), Internet of Things (IoT) devices, etc., or other suitable mobile devices capable of receiving wireless communication and / or navigation signals. The term "mobile device" is also intended to include devices that communicate with a personal navigation device (PND) (such as via short-range wireless, infrared, wired, or other connections)—regardless of whether satellite signal reception, auxiliary data reception, and / or positioning-related processing occur on the device or at the PND. Furthermore, "mobile device" is intended to include all devices (including wireless communication devices, computers, laptops, etc.) capable of communicating with a server, such as via the Internet, WiFi, or other networks, regardless of whether satellite signal reception, auxiliary data reception, and / or positioning-related processing occur on the device, on the server, or on another device associated with the network. Any operative combination of the above is also considered a "mobile station".

[0034] Figure 1 The description refers to a mobile device 100, along with a satellite positioning system (SPS) (referred to herein as GNSS 110), located within a vehicle 102 (e.g., described as a vehicle). The mobile device 100 may be mounted in a bracket or otherwise held within the vehicle 102. Furthermore, although the mobile device 100 is described as being within a vehicle, it should be understood that the mobile device 100 may be located within any ground or air vehicle. The mobile device 100 may be placed within the vehicle 102, for example, to assist a user in navigation while the vehicle 102 is in motion. The mobile device 100 may act as a hands-free device displaying a local map and may present audio and visual route information.

[0035] Mobile device 100 can use GNSS signals received from satellites in GNSS 110, along with local sensor data, to estimate the current position, speed, or heading of vehicle 102. As explained, the coordinate system of vehicle 102 is defined by a horizontal XY plane perpendicular to the gravity vector (which forms the Z-axis). The X-axis can be defined as the direction in which vehicle 102 is facing, and the Y-axis can be defined as the lateral direction perpendicular to both the forward direction (X-axis) and the vertical gravity vector (Z-axis). Rotation relative to each axis can be defined as roll (rotation relative to the X-axis), pitch (rotation relative to the Y-axis), and yaw (rotation relative to the Z-axis).

[0036] The X, Y, and Z axes represent the local reference frame of the vehicle 102. Additionally, the global reference frame can be represented by longitude and latitude, or by longitude, latitude, and altitude. GNSS data is generated relative to the global reference frame. The third reference frame is an object reference frame defined relative to the body of the mobile device 100. For example, inertial sensor data is generated by inertial sensors within the mobile device 100 in an object reference frame.

[0037] Figure 2A The Earth 200 and global reference frames available from GNSS are explained. As explained, in the Earth-centered Earth Fixed (ECEF) coordinate system, X... ECEF The axis extends from the Earth's center to the Prime Meridian 202 at 0° latitude and the Equator 204 at 0° longitude, and Z... ECEF The axis extends from the Earth's center to the North Pole, and the Y-axis is perpendicular to the X-axis. ECEF and Z ECEF Axis. Position 206 on the Earth's surface can be defined by latitude (the angle with the equator) and longitude (the angle with the prime meridian), and heading can be defined relative to north (N), east (E), and up (U).

[0038] Figure 2B The mobile device 100 and an object reference frame, comprising the X, Y, and Z axes relative to the body of the mobile device 100, have been described. An inertial measurement unit (IMU) 210 within the mobile device 100 provides sensor data relative to the object reference frame. It should be understood that sensors within the IMU 210 (e.g., a three-axis accelerometer and a three-axis gyroscope) generate sensor data relative to an inertial frame within the object reference frame, which can be translated to a navigation frame.

[0039] During the initialization of the GNSS-INS system in the mobile device 100, the orientation of the IMU 210 needs to be calibrated relative to a global reference frame (specifically, relative to the gravity vector, forward vector, and north vector). Typically, calibration of the global reference frame requires the mobile device 100 and vehicle 102 to be in a static (i.e., not moving) state for a period during which no acceleration is applied to the inertial sensors. During static calibration, the accelerometers in the inertial sensors detect the direction of gravity.

[0040] However, in some instances, the mobile device 100 and vehicle 102 may be in motion when initialization is required. For example, vehicle 102 may already be moving when the GNSS-INS system is first used. Alternatively, the GNSS-INS system may have been initialized, for example, during a static period, and the orientation of the mobile device 100 within vehicle 102 may be changed as vehicle 102 moves. For example, a user may move the mobile device 100, or the mobile device 100 may be moved away from its position while the vehicle is moving. Therefore, reinitialization of the GNSS-INS system while the vehicle is in motion can be desirable.

[0041] Figure 3 A block diagram of a mobile device 100 is shown, which can be configured for positioning using combined GNSS and INS measurements and for initializing a GNSS-INS system while in motion, as discussed herein. The mobile device 100 includes an inertial sensor 310 (also referred to as an inertial measurement unit (IMU) 310), which may include both an accelerometer 311 and a gyroscope 312. Both the accelerometer 311 and the gyroscope 312 can generate three-dimensional measurements.

[0042] Mobile device 100 also includes a GNSS receiver 306 and one or more processors 302, which, together with an IMU 310, are operatively coupled to one or more connections 305 (e.g., bus, line, fiber optic, link, etc.) to a non-transient computer-readable medium 320 and a memory 304. Mobile device 100 may further include additional items such as a display 314 and a camera 316. For example, the display 314 may be coupled to the processor 302 and may be used to present maps, route information, and direction information to a user. The camera 316 may be used as a sensor, for example, for a visual inertial odometry (VIO). Mobile device 100 may include additional elements such as a keypad or other input device (such as a virtual keypad on a display) that a user can interface with a user device. In some example implementations, all or part of mobile device 100 may take the form of a chipset, etc.

[0043] Accelerometer 311 generates three-dimensional accelerometer measurements (a x ,a y ,a z The data is in the form of ω, which uses an accelerometer bias to reference the object's reference frame. The gyroscope 312 generates the angular velocity (ω). x ,ω y ,ω zThe data is in the form of a 3D measurement, which identifies the change in angle compared to a previously measured angle. The angular velocity data generated by the gyroscope 312 is also a three-dimensional measurement using the gyroscope bias to reference the object's reference frame. The GNSS receiver 306 can provide absolute position (e.g., latitude, longitude, and altitude) and can provide GNSS velocity and heading (which can be a scalar value with reference to north (0°)).

[0044] The one or more processors 302 may be implemented using a combination of hardware, firmware, and software. For example, the one or more processors 302 may be configured to perform the functions discussed herein by implementing one or more instructions or program code 308 on a non-transient computer-readable medium (such as medium 320 and / or memory 304). In some embodiments, the one or more processors 302 may represent one or more circuits that may be configured to perform at least a portion of a data signal calculation procedure or process related to the operation of the mobile device 100.

[0045] Medium 320 and / or memory 304 may store instruction or program code 308 containing executable code or software instructions that, when executed by one or more processors 302, cause one or more processors 302 to operate as a dedicated computer programmed to perform the techniques disclosed herein. As explained in mobile device 100, medium 320 and / or memory 304 may include one or more components or modules that may be implemented by the one or more processors 302 to perform the methodologies described herein. Although each component or module is described as software in medium 320 executable by the one or more processors 302, it should be understood that each component or module may be stored in memory 304 or may be dedicated hardware in or outside of the one or more processors 302.

[0046] Several software modules and data tables may reside in medium 320 and / or memory 304 and be utilized by one or more processors 302 to manage both the communication and functionality described herein. It should be understood that the organization of the contents of medium 320 and / or memory 304 as shown in mobile device 100 is merely exemplary, and thus, the functionality of the individual modules and / or data structures may be combined, separated, and / or constructed in different ways depending on the implementation of mobile device 100.

[0047] For example, medium 320 and / or memory 304 may include a GNSS-INS filter module 322, which, when implemented by the one or more processors 302, configures the one or more processors 302 to fuse GNSS data from GNSS receiver 306 with INS data from IMU 310 to provide positioning and heading information. For example, the one or more processors 302 may operate as a Kalman filter. In some implementations, the GNSS-INS filter may be implemented in hardware, or it may be implemented by a processor 302 of a dedicated computer programmed via the GNSS-INS filter module 322, and accordingly, will be referred to as GNSS-INS filter 322.

[0048] For example, medium 320 and / or memory 304 may include an initialization module 322, which, when implemented by the one or more processors 302, configures the one or more processors 302 to initialize a GNSS-INS filter based on INS data from IMU 310 and GNSS data from GNSS receiver 306, as discussed herein.

[0049] The methodologies described herein can be implemented through various means depending on the application. For example, these methodologies can be implemented in hardware, firmware, software, or any combination thereof. For hardware implementation, the one or more processors 302 can be implemented within one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or combinations thereof.

[0050] For firmware and / or software implementations, these methodologies can be implemented using modules (e.g., procedures, functions, etc.) that perform the functions described herein. Any machine-readable medium that tangibly embodies instructions can be used to implement the methodologies described herein. For example, software code can be stored in a non-transient computer-readable medium 320 or memory 304 connected to and executed by one or more processors 302. Memory can be implemented within or outside of the one or more processors. As used herein, the term "memory" means any type of long-term, short-term, volatile, non-volatile, or other memory, and is not limited to any particular type or number of memories, or the type of medium on which memory is stored.

[0051] If implemented in firmware and / or software, the functionality may be stored as one or more instructions or program code 308 on a non-transient computer-readable medium (such as medium 320 and / or memory 304). Examples include computer-readable media encoding data structures and computer-readable media encoding computer programs 308. For example, a non-transient computer-readable medium including program code 308 stored thereon may include program code 308 supporting GNSS-INS initialization in a manner consistent with the disclosed embodiments. The non-transient computer-readable medium 320 includes a physical computer storage medium. The storage medium may be any available medium that can be accessed by a computer. By way of example and not limitation, such non-transient computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage, disk storage, or other magnetic storage devices, or any other medium that can be used to store desired program code 308 in the form of instructions or data structures and that can be accessed by a computer; as used herein, disk and disc include compact discs (CDs), laser discs, optical discs, digital multi-purpose discs (DVDs), floppy disks, and Blu-ray discs, wherein disks often magnetically reproduce data, while discs optically reproduce data using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0052] In addition to being stored on computer-readable medium 320, instructions and / or data may also be provided as signals on a transmission medium included in a communication device (such as a wireless transceiver capable of receiving WWAN or WLAN signals) in mobile device 100. For example, the communication device may include a transceiver having signals indicating instructions and data. These instructions and data are configured to cause one or more processors to perform the functions outlined in the claims. That is, the communication device includes a transmission medium having signals indicating information for performing the disclosed functions.

[0053] Memory 304 can represent any data storage device. Memory 304 may include, for example, main memory and / or secondary memory. Main memory may include, for example, random access memory, read-only memory, etc. Although described in this example as separate from one or more processors 302, it should be understood that all or part of the main memory may be located within one or more processors 302 or otherwise coexist / coupled with one or more processors 302. Secondary memory may include, for example, memory of the same or similar type as the main memory and / or one or more data storage devices or systems (such as, for example, disk drives, optical disk drives, tape drives, solid-state drives, etc.).

[0054] In some implementations, secondary memory may be operatively accommodated or otherwise configured to be coupled to non-transient computer-readable medium 320. Thus, in some example implementations, the methods and / or apparatus presented herein may take the form of a computer-readable medium 320 that may include all or a portion of computer-readable code 308 stored thereon, which, when executed by one or more processors 302, may be operatively implemented to perform all or a portion of the example operations as described herein. Computer-readable medium 320 may be part of memory 304.

[0055] As discussed above, in some implementations, the mobile device 100 may be in a moving vehicle 102 when initialization of the GNSS-INS filter 322 is required. For example, the mobile device 100 may already be in the vehicle 102 when the GNSS-INS system is first used, or the GNSS-INS system may have already been initialized and the orientation of the mobile device 100 within the vehicle 102 may have changed, thus requiring reinitialization of the GNSS-INS system when the vehicle 102 moves.

[0056] Figure 4 This is a flowchart 400 illustrating the initialization process of the GNSS-INS filter 322 in a mobile device 100 held in a fixed orientation within a vehicle 102 during motion. In the process illustrated in flowchart 400, it is assumed that the gyroscope and accelerometer biases are known. If the biases are not known, the process can still be used for initialization assuming zero bias. Not knowing these biases may affect the detection of straight-ahead (e.g., in box 404) and turning (e.g., in box 402). However, vehicle motion can still be classified, e.g., turning, straight-ahead, by examining the variance and variation of the gyroscope and accelerometer.

[0057] As explained, in box 402, the gravity vector is estimated based on gyroscope measurements taken when the vehicle 102 (e.g., on a flat surface) turns. Gyroscope measurements can be used, for example, to detect when the vehicle 102 turns (e.g., when the measured angular velocity (ω)...). x ,ω y ,ω z (When the value is greater than a threshold indicating that vehicle 102 is turning). This threshold can be a predetermined threshold large enough to avoid false indications of turning due to noise in sensor measurements. During turning, the gyroscope measures the angular velocity along the gravity axis. The gravity vector can be determined as:

[0058]

[0059] Where [ω x ,ωy ,ω z ] is the angular velocity for each gyroscope axis, and ||ω||2 is the normalized angular velocity.

[0060] In some implementations, when a turn is detected, a process can be performed to determine whether the turn is on a sloping curve or a flat curve. For example, a turn may last for several seconds (e.g., 6-10 seconds), during which multiple gyroscope measurements can be taken (e.g., 600-1000 times, assuming the gyroscope updates at, for example, 100Hz). The gravity vector can be obtained, for example, by averaging all gyroscope measurements during the turn.

[0061]

[0062] To detect inclined or flat curves, the gravity vector is calculated for each sample measured by the gyroscope. With the averaged gravity vector The angle between them.

[0063]

[0064]

[0065] On a flat curve, θ for each sample i It will be almost zero, while on a sloping curve, θ i It will change and will not be zero (due to the change in the gravity vector during the turn).

[0066] In box 404, the forward vector is determined when vehicle 102 is not turning (i.e., during straight-line motion, when the vehicle is accelerating or decelerating). The time during which vehicle 102 travels straight can be detected, for example, using gyroscope measurements (e.g., when the measured angular velocity (ω)...). x ,ω y ,ω z (When the threshold for indicating that vehicle 102 has not turned is lower than the threshold). Forward vector Based on the measured accelerometer data, the following can be used: Gravity vector determined based on gyroscope data And determine it using the known accelerometer bias:

[0067]

[0068] In box 406, the heading angle received from the GNSS receiver is used to determine the north vector.

[0069] In box 408, a gravity vector, a forward vector, and a north vector are provided for initializing the GNSS-INS filter (e.g., a Kalman filter). Initializing the GNSS-INS filter provides the orientation of the mobile device 100 relative to a global reference frame. Once initialized, the GNSS-INS filter can generate positioning and heading based on received GNSS and IMU data.

[0070] In some implementations, the GNSS-INS filter in the mobile device 100 may have already been initialized while the mobile device 100 is moving within the vehicle. For example, the GNSS-INS filter may have already been initialized while in motion (e.g., using...). Figure 4 The initialization process described herein, or in another example, the GNSS-INS may have been routinely initialized during a static period (i.e., when the mobile device 100 and vehicle 102 are not moving). For example, in a routine static initialization, accelerometer data may be used to detect the gravity vector. When the vehicle 102 is in motion, the mobile device 100 may be moved within the vehicle 102. For example, a user may move the mobile device 100, or the mobile device 100 may be moved unintentionally. In some instances, the mobile device 100 may be moved from one orientation relative to the vehicle 102 and returned to a different orientation relative to the vehicle 102. In such instances, it may be necessary to reinitialize the GNSS-INS filter while the vehicle is in motion. However, in other instances, the mobile device 100 may be returned to its original orientation within the vehicle 102. For example, a user may temporarily remove the mobile device 100 from a bracket in the vehicle 102 and return the mobile device to that bracket, and thus, the mobile device 100 may be returned to the same orientation relative to the vehicle. In such instances, reinitializing the orientation of the GNSS-INS filter may not be necessary or advantageous. For example, reinitializing the orientation of the GNSS-INS filter may result in the unnecessary loss of positioning history that can be used by the GNSS-INS filter.

[0071] Figure 5This is a flowchart 500 illustrating the motion-based re-initialization process of the GNSS-INS filter 322 in the mobile device 100 after it has been moved within the vehicle 102. In the process illustrated in flowchart 500, it is assumed that the mobile device 100 is mounted in a fixed orientation or otherwise positioned within the vehicle 102; for example, the mobile device 100 may have been mounted in a bracket or other mounting structure fixed within the vehicle 102. Additionally, the GNSS-INS filter has been initialized with the orientation of the mobile device 100 relative to the global reference frame (e.g., using conventional static initialization or motion-based initialization processes such as…). Figure 4 As described in ( ). Additionally, in the process illustrated in flowchart 500, the gyroscope and accelerometer biases are known.

[0072] In box 502, a change in the orientation of the mobile device 100 within the vehicle 102 is detected. For example, while the mobile device 100 may be mounted in a bracket or other mounting structure fixed within the vehicle 102 (which typically provides a relative orientation between the mobile device 100 and the vehicle 102 that does not change over time), the orientation of the mobile device 100 within the vehicle 102 may be unintentionally or intentionally interfered with (for example, by a user, for instance, by readjusting the mobile device 100 to obtain a better view). The change in the orientation of the mobile device 100 within the vehicle 102 may be detected, for example, based on measurement data from the IMU 310 and a GNSS-IMS filter. For example, data from one or more inertial sensors may be compared with data generated by a GNSS-IMS filter (e.g., speed or heading data), where a significant difference (e.g., greater than a predetermined threshold) in the magnitude of motion determined by the inertial sensor measurements and the GNSS-IMS filter can be used as an indication that the mobile device 100 has moved relative to the vehicle 102. Alternatively, it may be detected using data from (… Figure 3 The camera 316 (shown) or data from external sensors (such as switches or sensors in the bracket where the mobile device 100 is mounted) is used to detect changes in the orientation of the mobile device 100 within the vehicle 102.

[0073] In block 504, the last known orientation of the mobile device 100 relative to the global reference frame is stored as a first orientation. The last known orientation is the orientation of the mobile device 100 before a change in orientation of the mobile device 100 within the vehicle 102 is detected at block 502, and may include parameters such as the current gyroscope and accelerometer biases. The last known orientation may be based on a previous calibration of the GNSS-INS filter performed using a conventional static initialization or in-motion initialization procedure.

[0074] In block 506, a new orientation of the mobile device 100 relative to a global reference frame is determined as a second orientation while the mobile device 100 is in motion. This second orientation can be determined, for example, after determining that the orientation of the mobile device 100 relative to the vehicle 102 is static (e.g., by comparing measurements generated by inertial sensors with measurements generated by a GNSS-IMS filter (e.g., in the absence of significant amplitude differences (e.g., less than a predetermined threshold))). In some implementations, the determination of the second orientation can be performed at least partially while the vehicle is turning, for example, by using gyroscope measurements to determine the gravity vector. For example, the orientation of the mobile device 100 relative to the global reference frame can be determined using... Figure 4 The process described in flowchart 400 is used to determine this.

[0075] In box 508, all orientations (e.g., the first orientation from box 504 and the second orientation from box 506) are evaluated to determine which orientation should be coupled to the GNSS-INS filter at box 510. The first and second orientations are evaluated to determine if the orientation of the mobile device 100 relative to the global reference frame has changed significantly. For example, it is possible that the mobile device 100 has been moved but repositioned to the same orientation relative to the vehicle 102 (and the vehicle 102 has not changed its orientation relative to the global reference frame), and therefore, the last known orientation remains valid. On the other hand, it is also possible that the orientation of the mobile device 100 relative to the vehicle 102 is no longer valid. For example, the evaluation of the first and second orientations may include comparing the first and second orientations to determine if there is a significant difference. For example, if the difference between the first and second orientations is less than a predetermined threshold, these orientations can be considered the same and there is no need to reinitialize the GNSS-INS filter (i.e., providing the GNSS-INS filter with the first device orientation (from box 504) at box 510). On the other hand, if the difference between the first orientation and the second orientation is greater than a predetermined threshold, these orientations are not the same, which indicates that the first orientation is no longer valid, and a second device orientation (from box 506) is provided to the GNSS-INS filter at box 510.

[0076] In block 510, the GNSS-INS filter receives either a first device orientation (from block 504) or a second device orientation (from block 506), and generates positioning and heading based on the received GNSS and IMU data. If the first device orientation (from block 504) is used, the GNSS-INS filter continues to generate positioning and heading based on the last known orientation, and is therefore a continuation of previous positioning that includes positioning and heading history. On the other hand, if the second device orientation (from block 506) is used, the GNSS-INS filter is reinitialized and generates positioning and heading based on the new orientation.

[0077] Figure 6 This is another implementation of flowchart 600 illustrating the re-initialization process of the GNSS-INS filter 322 in the mobile device 100 during movement after the mobile device 100 has been moved within the vehicle 102. The process illustrated in flowchart 600 is similar to... Figure 5 The process described in flowchart 500 has similar specified elements that are the same.

[0078] like Figure 6 As explained below, in addition to the first device orientation (from box 504) and the second device orientation (from box 506), a third orientation of the mobile device 100 relative to the global reference frame is determined when the mobile device 100 is in motion, following an indication (from box 502) of a change in orientation of the mobile device 100 within the vehicle 102. For example, the third orientation may be based on previous calibrations of the GNSS-INS system (such as from previous static calibrations or from previous in-motion calibrations).

[0079] In box 608, similar to Figure 5 Box 508, as discussed in the document, evaluates all orientations (including a first orientation from box 504, a second orientation from box 506, and a third evaluation from box 602). If any of these orientations is significantly different (e.g., as determined by a difference greater than a predetermined threshold between any two orientations), a second device orientation (from box 506) is provided to the GNSS-INS filter at box 510. However, if all these orientations are similar (as determined by a predetermined threshold), a first device orientation (from box 504) is provided to the GNSS-INS filter at box 510.

[0080] Figure 7 This is a flowchart 700 explaining the in-motion calibration method of the GNSS-INS system in a mobile device (such as mobile device 100 in vehicle 102) in a moving vehicle.

[0081] In box 702, the mobile device can determine the gravity vector based on gyroscope measurements taken when the vehicle turns, such as Figure 4 The discussion is at box 402. For example, the gravity vector can be determined when vehicle 102 turns on a flat surface. For example, the gravity vector can be determined as follows: Figure 4 The process is performed as discussed in box 402. In some implementations, the mobile device may use gyroscope measurements to determine if the vehicle is turning before determining the gravity vector (e.g., by determining the measured angular velocity (ω)). x ,ω y ,ω z When is it greater than a threshold? For example, such as... Figure 4 The discussion is at box 402 in the table. In some implementations, the gravity vector can be determined based on gyroscope measurements and normalized gyroscope values ​​(e.g., as shown in Equation 1), such as... Figure 4 The discussion is at box 402 in the document. For example, a device for determining the gravity vector based on gyroscope measurements during a vehicle's turn may include, for example... Figure 3 The IMU 310 shown includes a gyroscope 312 and one or more processors 302 with dedicated hardware or implementation memory 304 and / or media 320 containing executable code or software instructions.

[0082] In box 704, the mobile device can determine the forward vector based on the gravity vector and accelerometer measurements when the vehicle is traveling straight, for example, as Figure 4 This is discussed at box 404 in the document. In some implementations, the mobile device may use gyroscope measurements to determine if the vehicle is traveling in a straight line before estimating the forward vector (e.g., when the angular velocity (ω) measured from the gyroscope). x ,ω y ,ω z When the threshold is below, for example, such as Figure 4 (Discussed at box 404 in the text). In some implementations, the forward vector can be determined based on the difference between the accelerometer measurement and the gravity vector and a predetermined accelerometer bias (e.g., as shown in Equation 5), such as... Figure 4 The discussion is at box 404 in the document. For example, a device for determining a forward vector based on a gravity vector and accelerometer measurements while the vehicle is traveling straight may include, for example... Figure 3 The IMU 310 shown includes an accelerometer 311 and a gyroscope 312, as well as one or more processors 302 with dedicated hardware or executable code or software instructions in memory 304 and / or medium 320.

[0083] In box 706, the mobile device can determine the north vector based on GNSS measurements of the heading angle, for example, as Figure 4The discussion is in box 406. For example, an apparatus for determining the north vector based on GNSS measurements of the heading angle may include, for example... Figure 3 The GNSS receiver 306 shown includes one or more processors 302 with dedicated hardware or executable code or software instructions in memory 304 and / or medium 320.

[0084] In box 708, the mobile device can use the gravity vector, forward vector, and north vector to initialize the GNSS-INS filter, for example, as Figure 4 This is discussed in box 408. For example, initializing the GNSS-INS filter can determine the orientation of the mobile device relative to the global reference frame, such as... Figure 4 The discussion is in box 408. The apparatus for initializing the GNSS-INS filter using the gravity vector, forward vector, and north vector may include, for example... Figure 3 The GNSS-INS filter 322 shown, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320.

[0085] In some implementations, once the GNSS-INS filter is initialized, the mobile device can use the GNSS-INS filter to further determine the mobile device's location or positioning (also known as location locking), such as... Figure 4 The device discussed in box 408 of the document, for determining positioning lock using a GNSS-INS filter, may include, for example... Figure 3 The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320 are shown.

[0086] Figure 8 This is a flowchart 800 explaining the in-motion calibration method of the GNSS-INS system in a mobile device (such as mobile device 100 in vehicle 102) in a moving vehicle.

[0087] In box 802, the mobile device can determine its first orientation relative to the global reference frame based on previous calibration of the GNSS-INS filter, for example, as... Figure 5 This is discussed at box 504 in the document. In some implementations, the previous calibration of the GNSS-INS filter can be determined when the vehicle is not moving, for example, as... Figure 5 This is discussed at box 504 in the document. In some implementations, the previous calibration of the GNSS-INS filter can be determined while the vehicle is moving, for example, as... Figure 5The apparatus for determining the first orientation of the mobile device relative to a global reference frame based on prior calibration using a GNSS-INS filter may include, as discussed in box 504. Figure 3 The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320 are shown.

[0088] In box 804, the mobile device can detect indications about whether the mobile device has moved relative to the vehicle, for example, such as... Figure 5 As discussed in box 502. An indication that a mobile device has moved relative to a vehicle can be detected, for example, by comparing inertial sensor measurement data with at least one of velocity data and heading data from a GNSS-IMS filter, and determining that the difference between the motion determined based on the inertial sensor measurement data and the motion determined by the GNSS-IMS filter is greater than a threshold. Figure 5 The device discussed at box 502 in the document includes means for detecting indications that a mobile device has moved relative to a vehicle. Figure 3 The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320 are shown.

[0089] In box 806, the mobile device can determine its second orientation relative to a global reference frame by motion calibration based on a GNSS-INS filter while the vehicle is in motion, for example, as... Figure 5 This is discussed at box 506 in the document. In some implementations, the mobile device may perform at least partially the determination of a second orientation of the mobile device relative to a global reference frame when the vehicle turns, for example, as... Figure 5 Discussed at box 506. The means for determining the second orientation of a mobile device relative to a global reference frame during motion calibration based on a GNSS-INS filter may include... Figure 3 The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320 are shown.

[0090] In box 808, the mobile device can compare the first orientation and the second orientation, for example, as Figure 5 This is discussed in box 508. For example, a first orientation can be compared with a second orientation to determine if there is a significant difference (e.g., greater than a predetermined threshold), such as... Figure 5 The device for comparing the first orientation and the second orientation, as discussed in section 508, may include... Figure 3 The processor 302 shown has dedicated hardware or implements executable code or software instructions in memory 304 and / or medium 320.

[0091] In box 810, the mobile device can use the first orientation for a GNSS-INS filter to generate positioning and heading based on the first orientation if the difference between the first and second orientations is less than a threshold, and use the second orientation for a GNSS-INS filter to generate positioning and heading based on the second orientation if the difference between the first and second orientations is greater than a threshold, for example, as... Figure 5 The method discussed in boxes 508 and 510 includes: an apparatus for using a GNSS-INS filter to generate positioning and heading based on the first orientation when the difference between the first and second orientations is less than a threshold, and for using a second orientation to generate positioning and heading based on the second orientation when the difference between the first and second orientations is greater than a threshold. Figure 3 The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320 are shown.

[0092] In some implementations, the mobile device can additionally determine its third orientation relative to the global reference frame based on previous calibration of the GNSS-INS filter, for example, as... Figure 6 The discussion is at box 602. The mobile device can compare a first orientation and a second orientation, including a first orientation, a second orientation, and a third orientation, wherein the first orientation is used for the GNSS-INS filter if the difference between any of the first, second, and third orientations is less than a threshold, and the second orientation is used for the GNSS-INS filter if the difference between the first, second, and third orientations is greater than a threshold, for example, as... Figure 6 The apparatus discussed at frames 608 and 510 may include the following: Figure 3The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320: determine the third orientation of the mobile device relative to a global reference frame based on previous calibration of the GNSS-INS filter, wherein comparing the first orientation and the second orientation includes the first orientation, the second orientation, and the third orientation, wherein the first orientation is used for the GNSS-INS filter if the difference between any of the first, second, and third orientations is less than a threshold, and the second orientation is used for the GNSS-INS filter if the difference between the first, second, and third orientations is greater than a threshold.

[0093] In some implementations, the mobile device can be configured to determine its second orientation relative to a global reference frame based on motion calibration using a GNSS-INS filter while the vehicle is in motion, for example, as... Figure 5 The discussion at box 506 (determining the gravity vector based on gyroscope measurements during vehicle turning, such as...) Figure 4 (Discussed at box 402 in the text). For example, the gravity vector can be determined when vehicle 102 turns on a flat surface. For example, the gravity vector can be determined as follows: Figure 4 The process is performed as discussed in box 402. In some implementations, the mobile device may use gyroscope measurements to determine if the vehicle is turning before determining the gravity vector (e.g., by determining the measured angular velocity (ω)). x ,ω y ,ω z When is it greater than a threshold (e.g., as...) Figure 4 (Discussed at box 402 in the text). In some implementations, the gravity vector can be determined based on gyroscope measurements and normalized gyroscope values ​​(e.g., as shown in Equation 1), such as Figure 4 The discussion is at box 402 in the document. For example, a device for determining the gravity vector based on gyroscope measurements during a vehicle's turn may include, for example... Figure 3 The IMU 310 shown includes a gyroscope 312 and one or more processors 302 with dedicated hardware or implementation memory 304 and / or media 320 containing executable code or software instructions.

[0094] The mobile device can be further configured to determine a second orientation of the mobile device relative to a global reference frame based on motion calibration using a GNSS-INS filter while the vehicle is in motion, for example, as... Figure 5 The discussion at box 506 (determining the forward vector based on the gravity vector and accelerometer measurements while the vehicle is traveling straight, such as...) Figure 4(Discussed at box 404 in the document). In some implementations, the mobile device may use gyroscope measurements to determine if the vehicle is traveling in a straight line before estimating the forward vector (e.g., when the angular velocity (ω) measured from the gyroscope). x ,ω y ,ω z When the threshold is below, for example, such as Figure 4 (Discussed at box 404 in the table). In some implementations, the forward vector can be determined based on the difference between the accelerometer measurement and the gravity vector and a predetermined accelerometer bias (e.g., as shown in Equation 5), such as Figure 4 The discussion is at box 404 in the document. For example, a device for determining a forward vector based on a gravity vector and accelerometer measurements while the vehicle is traveling straight may include, for example... Figure 3 The IMU 310 shown includes an accelerometer 311 and a gyroscope 312, as well as one or more processors 302 with dedicated hardware or executable code or software instructions in memory 304 and / or medium 320.

[0095] The mobile device can be further configured to determine a second orientation of the mobile device relative to a global reference frame based on motion calibration using a GNSS-INS filter while the vehicle is in motion, for example, as... Figure 5 The discussion at box 506 (determining the north vector through GNSS measurements of the heading angle, such as...) Figure 4 (Discussed at box 406 in the document). For example, an apparatus for determining the north vector based on GNSS measurements of the heading angle may include, for example... Figure 3 The GNSS receiver 306 shown includes one or more processors 302 with dedicated hardware or executable code or software instructions in memory 304 and / or medium 320.

[0096] The mobile device can be further configured to determine a second orientation of the mobile device relative to a global reference frame based on motion calibration using a GNSS-INS filter while the vehicle is in motion, for example, as... Figure 5 The discussion at box 506 (determining the second orientation of the mobile device relative to the global reference frame based on the gravity vector, forward vector, and north vector, as...) Figure 4 (Discussed at box 408 in the document). A means for initializing a GNSS-INS filter using gravity vector, forward vector, and north vector may include, for example... Figure 3 The GNSS-INS filter 322 shown, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320.

[0097] In some implementations, once the GNSS-INS filter is initialized, the mobile device can use either a first or a second orientation to further determine the location lock using the GNSS-INS filter, such as... Figure 5 The device discussed in box 510 of the diagram is for determining positioning lock using a GNSS-INS filter with either a first or a second orientation. Figure 3 The IMU 310, GNSS receiver 306, GNSS-INS filter 322, and one or more processors 302 having dedicated hardware or executable code or software instructions in memory 304 and / or medium 320 are shown.

[0098] Throughout this specification, the terms "an example," "an example," "some examples," or "exemplary implementation" mean that a particular feature, structure, or characteristic described in conjunction with a feature and / or example may be included in at least one feature and / or example of the claimed subject matter. Therefore, the phrases "in an example," "an example," "some examples," or "in some implementations," or other similar phrases appearing throughout the specification do not necessarily all refer to the same feature, example, and / or limitation. Furthermore, these particular features, structures, or characteristics may be combined in one or more examples and / or features.

[0099] Some portions of the detailed description included herein are presented in the form of algorithms or symbolic representations of operations on binary digital signals stored in the memory of a particular device or dedicated computing device or platform. In the context of this particular specification, the terms "particular device," etc., include general-purpose computers that, once programmed, perform specific operations according to instructions from program software. Algorithm descriptions or symbolic representations are examples of techniques used by those skilled in the art of signal processing or related fields to convey the essence of their work to others skilled in the art. An algorithm herein and generally is considered as a self-consistent sequence of operations or similar signal processing leading to a desired result. In this context, the operation or processing involves the physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transmitted, combined, compared, or otherwise manipulated. It has proven convenient at times to refer to such signals as bits, data, values, elements, symbols, characters, items, numbers, numerical values, etc., primarily for reasons of general use. However, it should be understood that all such terms, or similar terms, are to be associated with the appropriate physical quantity and are merely convenient labels. Unless otherwise specifically stated, as will be apparent from the discussion herein, throughout this specification, the use of terms such as “processing,” “calculating,” “determining,” and “determining” refers to the actions or processes of a particular device (such as a dedicated computer, dedicated computing device, or similar dedicated electronic computing device). In the context of this specification, therefore, a dedicated computer or similar dedicated electronic computing device is capable of manipulating or transforming signals that are generally represented as physical electronic or magnetic quantities within the memory, registers, or other information storage, transmission, or display devices of such dedicated computer or similar dedicated electronic computing device.

[0100] In the detailed description above, numerous specific details have been set forth to provide a thorough understanding of the claimed subject matter. However, those skilled in the art will understand that the claimed subject matter can be practiced without these specific details. In other instances, methods and apparatus known to those of ordinary skill in the art have not been described in detail to avoid obscuring the claimed subject matter.

[0101] As used herein, the terms “and,” “or,” and “and / or” may include a variety of meanings, which are also contemplated, at least in part, depending on the context in which such terms are used. Generally, “or,” when used to relate a list such as A, B, or C, is intended to mean A, B, and C (in the inclusive sense) and A, B, or C (in the exclusive sense). Additionally, the term “one or more” as used herein may be used to describe any feature, structure, or characteristic in the singular form, or to describe multiple features, structures, or characteristics, or some other combination thereof. However, it should be noted that this is merely an illustrative example, and the claimed subject matter is not limited to this example.

[0102] While the features currently considered exemplary have been explained and described, those skilled in the art will understand that various other modifications can be made and equivalents can be substituted without departing from the claimed subject matter. Additionally, numerous modifications can be made to adapt a particular scenario to the teachings of the claimed subject matter without departing from the central concepts described herein.

[0103] Therefore, the subject matter claimed is not intended to be limited to the specific examples disclosed, but may also include all aspects falling within the scope of the appended claims and their equivalents.

Claims

1. A method for in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) in a mobile device located in a vehicle, the method comprising: The first orientation of the mobile device relative to the global reference frame is determined based on the prior calibration of the GNSS-INS filter; Detect an indication that the mobile device has moved relative to the vehicle; The second orientation of the mobile device relative to the global reference frame is determined based on motion calibration using the GNSS-INS filter as the vehicle moves. Compare the first orientation and the second orientation; as well as The first orientation is used in the GNSS-INS filter to generate positioning and heading based on the first orientation if the difference between the first orientation and the second orientation is less than a threshold, and the second orientation is used in the GNSS-INS filter to generate positioning and heading based on the second orientation if the difference between the first orientation and the second orientation is greater than the threshold.

2. The method of claim 1, further comprising: The third orientation of the mobile device relative to the global reference frame is determined based on the previous calibration of the GNSS-INS filter, wherein comparing the first orientation and the second orientation includes comparing the first orientation, the second orientation, and the third orientation, wherein the first orientation is used for the GNSS-INS filter if the difference between any of the first, second, and third orientations is less than the threshold, and the second orientation is used for the GNSS-INS filter if the difference between the first, second, and third orientations is greater than the threshold.

3. The method of claim 1, wherein the previous calibration of the GNSS-INS filter was determined when the vehicle was not moving.

4. The method of claim 1, wherein the prior calibration of the GNSS-INS filter is determined while the vehicle is in motion.

5. The method of claim 1, wherein detecting the indication that the mobile device has moved relative to the vehicle comprises: The inertial sensor measurement data is compared with at least one of the velocity data and heading data generated by the GNSS-INS filter, and the mobile device is determined to have moved relative to the vehicle when the difference between the motion determined based on the inertial sensor measurement data and the motion determined by the GNSS-INS filter is greater than a second threshold.

6. The method of claim 1, wherein determining the second orientation of the mobile device relative to the global reference frame is performed at least in part when the vehicle is turning.

7. The method of claim 1, wherein determining the second orientation of the mobile device relative to the global reference frame based on motion calibration of the GNSS-INS filter while the vehicle is moving comprises: The gravity vector is determined based on gyroscope measurements taken when the vehicle turns. The forward vector is determined based on the gravity vector and accelerometer measurements when the vehicle is traveling straight. The north vector is determined based on GNSS measurements of the heading angle; as well as The second orientation of the mobile device relative to the global reference frame is determined based on the gravity vector, the forward vector, and the north vector.

8. The method of claim 7, further comprising: Before determining the gravity vector, the gyroscope is used to measure whether the vehicle is turning.

9. The method of claim 7, wherein the gravity vector is determined based on gyroscope measurements and normalized gyroscope values.

10. The method of claim 7, further comprising: Before estimating the forward vector, the gyroscope measurements are used to determine whether the vehicle is traveling in a straight line.

11. The method of claim 7, wherein the forward vector is determined based on the difference between the accelerometer measurement and the gravity vector and a predetermined accelerometer bias.

12. The method of claim 1, further comprising: The GNSS-INS filter is used to determine positioning lock using either the first orientation or the second orientation.

13. A mobile device located in a vehicle, the mobile device being configured to support in-motion calibration of a Global Navigation Satellite System (GNSS)-Inertial Navigation System (INS) system within the mobile device, the mobile device comprising: An inertial measurement unit including accelerometers and gyroscopes; GNSS receiver; At least one memory; At least one processor coupled to the inertial measurement unit, the GNSS receiver, and the at least one memory, wherein the at least one processor is configured to: The first orientation of the mobile device relative to the global reference frame is determined based on the prior calibration of the GNSS-INS filter; Detect an indication that the mobile device has moved relative to the vehicle; The second orientation of the mobile device relative to the global reference frame is determined based on motion calibration using the GNSS-INS filter as the vehicle moves. Compare the first orientation and the second orientation; as well as The first orientation is used in the GNSS-INS filter to generate positioning and heading based on the first orientation if the difference between the first orientation and the second orientation is less than a threshold, and the second orientation is used in the GNSS-INS filter to generate positioning and heading based on the second orientation if the difference between the first orientation and the second orientation is greater than the threshold.

14. The mobile device of claim 13, wherein the at least one processor is further configured to: determine a third orientation of the mobile device relative to the global reference frame based on the previous calibration of the GNSS-INS filter, wherein the at least one processor is configured to compare the first orientation and the second orientation by being configured to: compare the first orientation, the second orientation, and the third orientation, wherein the first orientation is used for the GNSS-INS filter if the difference between any of the first orientation, the second orientation, and the third orientation is less than the threshold, and the second orientation is used for the GNSS-INS filter if the difference between the first orientation, the second orientation, and the third orientation is greater than the threshold.

15. The mobile device of claim 13, wherein the prior calibration of the GNSS-INS filter was determined when the vehicle was not moving.

16. The mobile device of claim 13, wherein the prior calibration of the GNSS-INS filter was determined while the vehicle was in motion.

17. The mobile device of claim 13, wherein the at least one processor is further configured to detect the indication that the mobile device has moved relative to the vehicle by being configured to: compare inertial sensor measurement data with at least one of velocity data and heading data generated by the GNSS-INS filter, and determine that the mobile device has moved relative to the vehicle when the difference between the motion determined based on the inertial sensor measurement data and the motion determined by the GNSS-INS filter is greater than a second threshold.

18. The mobile device of claim 13, wherein the at least one processor is configured to determine that the second orientation of the mobile device relative to the global reference frame is performed at least partially when the vehicle is turning.

19. The mobile device of claim 13, wherein the at least one processor is configured to determine the second orientation of the mobile device relative to the global reference frame by calibration based on the GNSS-INS filter during the movement of the vehicle: The gravity vector is determined based on gyroscope measurements taken when the vehicle turns. The forward vector is determined based on the gravity vector and accelerometer measurements when the vehicle is traveling straight. The north vector is determined based on GNSS measurements of the heading angle; as well as The second orientation of the mobile device relative to the global reference frame is determined based on the gravity vector, the forward vector, and the north vector.

20. The mobile device of claim 19, wherein the at least one processor is further configured to: determine, using the gyroscope measurement, that the vehicle is turning before determining the gravity vector.

21. The mobile device of claim 19, wherein the gravity vector is determined based on gyroscope measurements and normalized gyroscope values.

22. The mobile device of claim 19, wherein the at least one processor is further configured to: determine, using the gyroscope measurement, that the vehicle is traveling in a straight line before estimating the forward vector.

23. The mobile device of claim 19, wherein the forward vector is determined based on the difference between the accelerometer measurement and the gravity vector and a predetermined accelerometer bias.

24. The mobile device of claim 13, wherein the at least one processor is further configured to: use the GNSS-INS filter to determine location lock using one of the first orientation and the second orientation.

Citation Information

Patent Citations

  • Inertial sensor aided heading and positioning for GNSS vehicle navigation

    CN103339472A

  • Cradle rotation insensitive inertial navigation

    US20170059326A1