WO2015168451A1 - Locally measured movement smoothing of gnss position fixes - Google Patents

Locally measured movement smoothing of gnss position fixes Download PDF

Info

Publication number
WO2015168451A1
WO2015168451A1 PCT/US2015/028600 US2015028600W WO2015168451A1 WO 2015168451 A1 WO2015168451 A1 WO 2015168451A1 US 2015028600 W US2015028600 W US 2015028600W WO 2015168451 A1 WO2015168451 A1 WO 2015168451A1
Authority
WO
WIPO (PCT)
Prior art keywords
position fix
locally measured
accelerometer
gnss
image
Prior art date
Application number
PCT/US2015/028600
Other languages
French (fr)
Inventor
Shawn Weisenburger
Richard Rudow
Nicholas C. Talbot
Peter Loomis
James M. Janky
Original Assignee
Trimble Navigation Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/268,898 external-priority patent/US9488736B2/en
Application filed by Trimble Navigation Limited filed Critical Trimble Navigation Limited
Publication of WO2015168451A1 publication Critical patent/WO2015168451A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/48Determining position by combining or switching between position solutions derived from the satellite radio beacon positioning system and position solutions derived from a further system

Definitions

  • Photogrammetry is the practice of determining the geometric properties of objects from photographic images.
  • the distance between two points that lie on a plane parallel to the photographic image plane can be determined by measuring their distance on the image, if the scale s of the image is known. This is done by multiplying the measured distance by 1/s.
  • a more sophisticated technique involves estimating the three-dimensional coordinates of points on an object. These are determined by measurements made in two or more photographic images taken from different positions (see stereoscopy). Common points are identified on each image. A line of sight (or ray) can be constructed from the camera location to the point on the object. It is the intersection of these rays (triangulation) that determines the three-dimensional location of the point. More sophisticated algorithms can exploit other information about the scene that is known a priori, for example symmetries, in some cases allowing reconstructions of 3-D coordinates from only one camera position.
  • a third solution is to use pairs or triplets of images to estimate the relative motion between the frames. This solution suffers from drift due to the loss of information connecting the measurements to images outside the pair/triplet used for the estimation.
  • FIGURE 1 is the block diagram of an apparatus of the present technology configured to implement a rolling sequential bundle adjustment algorithm in order to obtain the coordinates and orientation of an image-capturing device in real time.
  • FIGURE 2 illustrates a frame from the 720 p video (1280 x 720) sequence taken at 25 frames per second by Nikon D 800 camera using 35 mm lens for the purposes of the present technology.
  • FIGURE 3 depicts light beams passing through the pinhole of a pinhole camera for the purposes of the present technology.
  • FIGURE 4 shows 2-D projections of 3-D points on a plane by using a pinhole camera for the purposes of the present technology.
  • FIGURE 5 illustrates x- and z-coordinates of the 2-D projection of a 3-D point through a projection center of a pinhole camera for the purposes of the present technology.
  • FIGURE 6 depicts an image including a number of segments, each segment including a minimum number of tracked features for the purposes of the present technology.
  • FIGURE 7 illustrates the solution of collinearity equations utilized for estimation of camera position and orientation for each frame and for estimating 3-D coordinates of the tracked key-points system for the purposes of the present technology.
  • FIGURE 8 shows the sequential update in estimation of camera positions and orientation from the initial N frames to the subsequent (N+1 ) frames while using the rolling sequential bundle adjustment algorithm for the purposes of the present technology.
  • FIGURE 1 1 A depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 1 1 B depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 1 1 C depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 1 1 D depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 1 1 E depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 12A depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 12B depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 12C depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • LMM locally measured movement
  • FIGURE 12D depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
  • FIGURE 13 depicts a block diagram of a GNSS receiver, according to one embodiment.
  • FIGURE 14 is a block diagram of locally measured movement smoothing logic in accordance with at least one embodiment.
  • FIGURE 15 is a graph showing the respective rates of positioning degradation using image data and accelerometer data.
  • FIGURES 16A-16D are graphs of data plots showing the replacement of outlier position fix data points in accordance with various embodiments.
  • FIGURE 17A is a block diagram of a positioning component which provides locally measured movement smoothing of position fixes for an image capture device in accordance with at least one embodiment.
  • FIGURE 17B is a block diagram of a locally measured movement component which provides locally measured movement smoothing of position fixes for GNSS receivers in accordance with at least one embodiment.
  • FIGURE 18 is a flowchart of a method of improving position determination of a device using locally measured movement in accordance with at least one embodiment.
  • Figures 19A-19F show some implementations of a device of Figures 1 1A-1 1 E in accordance with various embodiments.
  • the present technology addresses and provides a solution to the following problem: How to efficiently estimate camera motion from a set of video frames or image sequences in a way feasible for real-time implementation.
  • the present technology further provides a solution for detecting and correcting, or "smoothing" position fixes generated by a GNSS receiver system using locally measured movement information received from one of an accelerometer and/or an image capture device.
  • FIGURE 1 is the block diagram of an apparatus 10 configured to implement a rolling sequential bundle adjustment algorithm in order to obtain the coordinates and orientation of the image-capturing device 14 in real time.
  • the image-capturing device 14 is mounted on the mobile platform 12.
  • the mobile platform is selected from the group consisting of: a car, a truck, a bike, a motorbike, a boat, etc.
  • the image capturing device 14 is configured to perform an image-capture of a scene (not shown) in a software mode (SW) further comprising a memory 18 loaded with an image processing algorithm 21 , and a general purpose processor (or a Digital Signal Processor, or a Graphic Processing Unit, etc.) 20 configured to analyze the set of K-images 24, 26, ..., 28 collected in each i-frame by enabling the image processing algorithm 21.
  • SW software mode
  • a general purpose processor or a Digital Signal Processor, or a Graphic Processing Unit, etc.
  • the image capturing device 14 is configured to perform an image-capture of a scene (not shown) in a hardware mode (HW) further comprising an ASIC chip (or FPGA chip) (not shown) (in analog or digital modes) configured to analyze the set of K-images 24, 26, 28 by implementing in hardware the image processing algorithm 21 .
  • HW hardware mode
  • ASIC chip or FPGA chip
  • the image processing algorithm 21 comprises the rolling sequential bundle adjustment algorithm.
  • the image capturing device 14 is selected from the group consisting of: a digital camera; a digital video camera; a digital camcorder; a stereo digital camera; a stereo video camera; a motion picture camera; and a television camera.
  • the image capturing device 14 can be modeled by a pinhole camera 108 that captures light beams 104 and 106 passing through the pinhole 102.
  • Motion picture or cine cameras record movement at regular intervals in a series of frames.
  • Television and video cameras are configured to record movement electronically for broadcast and storage on magnetic media or optical disks.
  • Camcorders are video cameras which contain both the image sensor and recording media in a single unit.
  • All other cameras use lenses 16 (of FIGURE 1 ) for focusing.
  • the focal length of lenses i.e., the distance between the rears of the lenses (when focused on infinity) the imaging device, determines the angle of view, or field of view (FOV) (not shown) and the size of objects as they appear as images 24, 26, and ...28.
  • the image is focused on that surface by adjusting the distance between the lenses and the surface.
  • the lens 16 further comprises regular rectilinear lens.
  • Rectilinear lens is a lens in which straight lines are not substantially curved or distorted.
  • the lens 16 further comprises a fisheye lens.
  • a fisheye lens is a wide-angle lens that takes in an extremely wide, hemispherical image. Fisheye lenses are often used to shoot broad landscapes. Fisheye lenses achieve extremely wide angles of view by forgoing a rectilinear image, opting instead for a special mapping (for example: equisolid angle), which gives images a characteristic convex appearance.
  • a solid angle is the two-dimensional angle in three- dimensional space that an object subtends at a point. It is a measure of how large the object appears to an observer looking from that point.
  • a solid angle is a dimensionless unit of measurement called a steradian (symbol: sr). A small object nearby may subtend the same solid angle as a larger object farther away.
  • the image capturing device 14 further comprises a display (not shown) further comprising an optical display, a liquid crystal display (LCD), or a screen.
  • a display not shown
  • LCD liquid crystal display
  • the image capturing device 14 further comprises a stereo digital camera.
  • a stereo camera is a type of camera with two or more lenses. This allows the camera to simulate binocular vision, and therefore gives it the ability to capture three-dimensional images, a process known as stereo photography.
  • Stereo cameras may be used for making stereo views and 3-D pictures for movies, or for range imaging.
  • 3-D Images Ltd. located in UK, produces a 3-D Digital Stereo camera- a fully automatic, time synchronized, digital stereo camera.
  • Point Grey Research Inc. located in Canada produces binoculars or multiple array cameras that can provide full field of view 3 D measurements in an unstructured environment.
  • the additional navigation device 22 (including the navigation processor 23) is configured to provide the initial position coordinates and orientation of the image- capturing device 14.
  • the additional navigation device 22 is selected from the group consisting of: a smart phone; a tablet, a laptop, and a personal navigation device.
  • a personal navigation assistant also known as personal navigation device or portable navigation device (PND) is a portable electronic product which combines a positioning capability (such as GPS) and navigation functions
  • PNA Packet Access Network
  • Most modern PNA devices such as those made by Garmin Ltd., Mio Technology Ltd. or TomTom International BV. are running an off- the-shelf embedded operating system such as Windows CE or Embedded Linux on commodity hardware with OEM versions of popular PDA Navigation software packages such as TomTom Navigator, l-GO 2006, Netropa IntelliNav iGuidance, or Destinator.
  • the image- capturing device 14 (camera) is calibrated. This calibration is used to correct the images for lens 16 distortions. Typical calibrations correct for principal distance (focal length), principal point offset, radial distortion, tangential distortion, and other effects that can be found in any text book on photogrammetry. All image measurements are corrected with these calibration parameters.
  • the calibrated image-capturing device 14 is configured to collect the K images (24, 26, through 28) in the i-frame; i is an integer
  • key-points are identified within each of the K images (24, 26, through 28).
  • the key-points are the features that are common in multiple frames. For example, in the first frame the key-points are: the key-point 30 in the image #1 24, the key-point i 2 32 in the image #2 26, and key- point i K 34 in the image #K 28. These key-points should be tracked in the following frames. See discussion below.
  • the obtained image data for the key-points ( 30 in the image #1 24; i 2 32 in the image #2 26; ... i K 34 in the image #K 28) is used within the bundle adjustment algorithm (please, see the discussion below) to estimate the position and orientation of the image-capturing device 14: the '6'- vector 40 including the position coordinates (x, y, z) as well as the orientation angels ⁇ , ⁇ , and ⁇ .
  • i K 34 in the image #K 28 is also used within the bundle adjustment algorithm (please, see the discussion below) to obtain the position coordinates of the key- points: position coordinates 42 (x M , y n , z M ) of the key-point H , the position coordinates 44 (x i2 , y,2, z i2 ) of the key-point i 2 , and the position coordinates 46 (x iK , y,K, z iK ) of the key-point i K .
  • the algorithm 21 includes the rolling sequential bundle adjustment algorithm, which is the further development of the full bundle adjustment algorithm.
  • the bundle adjustment can be defined as the problem of simultaneously refining the 3-D coordinates describing the scene geometry as well as the parameters of the relative motion and the optical characteristics of the image-capturing device (14 of FIGURE 1 ) employed to acquire these images, according to an optimality criterion involving the corresponding image projections of all points.
  • the correspondence problem refers to the problem of ascertaining which parts of one image correspond to which parts of another image, where differences are due to movement of the camera, the elapse of time, and/or movement of objects in the photos.
  • the correspondence problem refers to the task of finding a set of points in one image which can be identified as the same points in another image. To do this, points or features in one image are matched with the corresponding points or features in another image.
  • the images can be taken from a different point of view, at different times, or with objects in the scene in general motion relative to the image-capturing device (for example, a camera).
  • the correspondence problem can occur in a stereo situation when two images of the same scene are used, or can be generalized to the N-view correspondence problem.
  • the images may come either from N different image-capturing devices (cameras) photographing at the same time or from one image-capturing device (camera) which is moving relative to the scene and collecting the image data from N-frames.
  • the problem is made more difficult when the objects in the scene are in motion relative to the camera(s).
  • a typical application of the correspondence problem occurs in panorama creation or image stitching—when two or more images which only have a small overlap are to be stitched into a larger composite image. In this case it is necessary to be able to identify a set of corresponding points in a pair of images in order to calculate the transformation of one image to stitch it onto the other image.
  • the correlation-based method includes checking if one location in one image looks/seems like another in another image.
  • the feature-based method includes finding features in an image and seeing if the layout of a subset of features is similar in the two images. To avoid the aperture problem a good feature should have local variations in two directions.
  • Image rectification is an equivalent, and more often used alternative to perfect camera alignment. Image rectification is usually performed regardless of camera precision because it may be impractical to perfectly align cameras, and even perfectly aligned cameras may become misaligned over time.
  • an essential matrix provides the relationship between the cameras.
  • Hough transform is important in understanding the bundle adjustment. More specifically, the Hough transform is a feature extraction technique used in image analysis, computer vision, and digital image processing.
  • the purpose of the Hough transform technique is to find imperfect instances of objects within a certain class of shapes by a voting procedure.
  • This Hough voting procedure is carried out in a parameter space, from which object candidates are obtained as local maxima in a so-called accumulator space that is explicitly constructed by the algorithm for computing the Hough transform.
  • Scale-invariant feature transform is an algorithm in computer vision designed to detect and describe local features in images. The algorithm was published by David Lowe in 1999. This algorithm uses the Hough transform. Applications include object recognition, robotic mapping and navigation, image stitching, 3-D modeling, gesture recognition, video tracking, individual identification of wildlife and match moving. The algorithm is patented in the US; the owner is the University of British Columbia. Please, see US Patent No.: 6,71 1 ,293, entitled "Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image” and issued to David G. Lowe.
  • scale-invariant feature transform for any object in an image, interesting points on the object can be extracted to provide a "feature description" of the object.
  • This description extracted from a training image, can then be used to identify the object when attempting to locate the object in a test image containing many other objects.
  • the features extracted from the training image be detectable even under changes in image scale, noise and illumination.
  • Such points usually lie on high-contrast regions of the image, such as object edges.
  • SIFT detects and uses a much larger number of features from the images, which reduces the contribution of the errors caused by these local variations in the average error of all feature matching errors.
  • Lowe's patented method can robustly identify objects even among clutter and under partial occlusion, because his SIFT feature descriptor is invariant to uniform scaling, orientation, and partially invariant to affine distortion and illumination changes.
  • This section summarizes Lowe's object recognition method and mentions a few competing techniques available for object recognition under clutter and partial occlusion.
  • SIFT key-points of objects are first extracted from a set of reference images and stored in a database.
  • An object is recognized in a new image by individually comparing each feature from the new image to this database and finding candidate matching features based on Euclidean distance of their descriptor vectors. From the full set of matches, subsets of key-points that agree on the object and its location, scale, and orientation in the new image are identified to filter out good matches.
  • the determination of consistent clusters is performed rapidly by using an efficient hash table implementation of the generalized Hough transform. Each cluster of 3 or more features that agree on an object and its pose is then subject to further detailed model verification and subsequently outliers are discarded.
  • Match moving algorithm is another 3-D reconstruction algorithm.
  • match moving is a cinematic technique that allows the insertion of computer graphics into live-action footage with correct position, scale, orientation, and motion relative to the photographed objects in the shot. The term is used loosely to describe several different methods of extracting camera motion information from a motion picture.
  • match moving is related to rotoscoping and photogrammetry.
  • Rotoscoping is an animation technique in which animators trace over footage, frame by frame, for use in live-action and animated films.
  • Match moving is sometimes confused with motion capture, which records the motion of objects, often human actors, rather than the camera. Typically, motion capture requires special cameras and sensors and a controlled environment. Match moving is also distinct from motion control photography, which uses mechanical hardware to execute multiple identical camera moves. Match moving, by contrast, is typically a software-based technology, applied after the fact to normal footage recorded in uncontrolled environments with an ordinary camera.
  • Match moving is primarily used to track the movement of a camera through a shot so that an identical virtual camera move can be reproduced in a 3-D animation program. When new animated elements are composited back into the original live-action shot, they will appear in perfectly-matched perspective and therefore appear seamless [0098] By using SIFT or match moving algorithm to analyze a set of image data captured by an image-capturing device, it is possible to obtain the estimation of position of an object.
  • the SIFT or match moving algorithms never actually compute the pose of objects, only the pose of the camera. If the geometry of an object is known, the pose of the camera can be determined relative to that object. In this implementation, only key-points are used in which their positions are estimated.
  • the Bundle adjustment algorithm is used as the last step of every feature- based 3-D reconstruction algorithm. It amounts to an optimization problem on the 3-D structure and viewing parameters (i.e., camera pose and possibly intrinsic calibration and radial distortion), to obtain a reconstruction which is optimal under certain assumptions regarding the noise pertaining to the observed image features.
  • bundle adjustment is the Maximum Likelihood Estimator. Its name refers to the bundles of light rays originating from each 3-D feature and converging on each camera's optical center, which are adjusted optimally with respect to both the structure and viewing parameters.
  • MLE Maximum-Likelihood estimation
  • the method of maximum likelihood selects the set of values of the model parameters that maximizes the likelihood function. Intuitively, this maximizes the "agreement" of the selected model with the observed data, and for discrete random variables it indeed maximizes the probability of the observed data under the resulting distribution.
  • Maximum-likelihood estimation gives a unified approach to estimation, which is well-defined in the case of the normal distribution and many other problems.
  • Bundle adjustment boils down to minimizing the re-projection error between the image locations of observed and predicted image points, which is expressed as the sum of squares of a large number of nonlinear, real-valued functions.
  • the re-projection error is a geometric error corresponding to the image distance between a projected point and a measured one. It is used to quantify how closely an estimate of a 3-D point recreates the point's true projection.
  • Minimizing the re projection error can be used for estimating the error from point correspondences between two images.
  • the correspondences can be interpreted as imperfect images of a world point and the re-projection error quantifies their deviation from the true image projections
  • Bundle adjustment amounts to jointly refining a set of initial camera and structure parameter estimates for finding the set of parameters that most accurately predict the locations of the observed points in the set of available images.
  • the full bundle adjustment is the optimal solution and makes use of all images. However, it requires all images to be collected before any processing can be completed and is not a real-time solution.
  • Kalman filter also can be used to estimate the current position and orientation (pose) of an object.
  • the Kalman filter also known as linear quadratic estimation (LQE)
  • LQE linear quadratic estimation
  • the Kalman filter has numerous applications in technology. A common application is for guidance, navigation and control of vehicles, particularly aircraft and spacecraft. Furthermore, the Kalman filter is a widely applied concept in time series analysis used in fields such as signal processing and econometrics.
  • the Kalman filter algorithm works in a two-step process.
  • the Kalman filter produces estimates of the current state variables, along with their uncertainties. Once the outcome of the next measurement (necessarily corrupted with some amount of error, including random noise) is observed, these estimates are updated using a weighted average, with more weight being given to estimates with higher certainty. Because of the algorithm's recursive nature, it can run in real time using only the present input measurements and the previously calculated state; no additional past information is
  • Gaussian distribution often a multivariate Gaussian distribution
  • the present technology of the rolling bundle adjustment is an improvement over the prior art techniques of bundle adjustment algorithm because it allows to significantly decrease the amount of computation time thus making possible the real time determination of the pose of the image-capturing device.
  • the rolling bundle adjustment algorithm prescribes removing the position and orientation states associated with the oldest frame and adding position and orientation states for the new frame.
  • An initial estimate of the current frames position and orientation can be made by simply using the previous frames position and orientation estimate.
  • the image locations of the key-points from the last frame are then identified in the new frame. These image measurements are then added to the estimation process using the method of sequential least squares which is much more efficient than completely running the bundle adjustment on the last N frames.
  • the general processor 20 of FIGURE 1 is configured to execute the algorithm 21 of FIGURE 1 further comprising a rolling bundle adjustment algorithm.
  • the rolling bundle adjustment algorithm computes a bundle adjustment using N frames every time a new frame is available. This is the starting point for this new technique, however the rolling bundle adjustment algorithm uses sequential least squares to add the new frame rather than completely redo the bundle adjustment. Please, full discussion below.
  • the rolling bundle adjustment algorithm of the present technology is basically a cross between a Kalman filter and the rolling bundle adjustment. Although implemented using sequential least squares, the mathematics are identical to a Kalman filter that retains the previous N-1 frame position and orientation states. Example II.
  • N frames In general for N frames the tracking algorithm has to track at least 5 key- points through all N frames for bundle adjustment algorithm to work. How many minimum key-points the tracking algorithm has to track if only 5 frames were taken? The answer is still 5 key-points. Indeed, assume that for N taken frames; and K key-points are being tracked. This means the number of unknowns is N * 6 + K * 3 (position and orientation per frame plus the positions of the key-points) while the number of measurements is N * K * 2 (2
  • FIGURE 2 illustrates a frame from the video sequence 60 taken from a Nikon D 800 camera using a 35 mm lens. All images include at least four key-points: image 60 includes the key-points 62 through 88.
  • the camera was set to collect 720 p video (1280 x 720) at 25 frames per second.
  • Calibration parameters for the camera/lens were pre- computed using the Open CV camera calibration routines. It should be noted that the calibration parameters may also be estimated on the fly as part of the process, however this was not done in this test.
  • the round targets (1000-101 1 ) (or key-points 62, 64, 66 68, 70, 72, 74 76, 78, 80, 82 and 84), were tracked throughout the sequence while the camera was moved (keeping the targets in view at all times to simplify the test).
  • the number of frames used in the rolling bundle adjustment is 25, i.e. 1 second of data.
  • the system should be initialized.
  • the additional navigation device 22 (of FIGURE 1 ) can be used to obtain the initial position coordinates of the image-capturing device 14.
  • the key-points are identified by using 3 non-collinear targets with known absolute or relative positions. This can be done for the example by automatically identifying the target centers using an existing algorithm within Trimble. The choice of these points can be an important decision. If the initial set of points is able to sufficiently define a datum, the estimated camera positions and orientations can be in this datum and be appropriately scaled. [00129] In the embodiment of the present technology, before any estimation can be done, the key-points are identified by using a key-point detection algorithm such as Sift, Surf, BRISK, etc. Many of these algorithms are already implemented within Open CV.
  • a key-point detection algorithm such as Sift, Surf, BRISK, etc. Many of these algorithms are already implemented within Open CV.
  • an arbitrary coordinate system (not shown) can be defined. If a distance measurement is visible in the images it can be used to correctly scale the solution, otherwise the estimates will also be arbitrarily scaled (i.e. the estimated positions will require a similarity transformation to obtain world coordinates). Alternatively, if the location of the camera can be determined via some other positioning system (say GNSS), these camera location estimates can be used to scale the solution as well as define the required datum.
  • GNSS some other positioning system
  • the corresponding key-points should be found in the following frames (not shown). This can be done by using key-point descriptors or tracking algorithms such as the Lucas-Kanade tracking algorithm.
  • the Lucas-Kanade method is a widely used differential method for optical flow estimation developed by Bruce D. Lucas and Takeo Kanade. It assumes that the flow is essentially constant in the proximity of the pixel under consideration, and solves the basic optical flow equations for all the pixels in that vicinity, by the least squares criterion. By combining information from several nearby pixels, the Lucas-Kanade method can often resolve the inherent ambiguity of the optical flow equation. It is also less sensitive to image noise than point-wise methods. On the other hand, since it is a purely local method, it cannot provide flow information in the interior of uniform regions of the image.
  • KLT Kanade-Lucas-Tomasi
  • K the number of tracked features low is to segment the image 180 into sections (182, 184, 186, 188, 190, 192, 194, 199 and 198) and attempt to track a minimum two key-points (200 and 202) in each segment in the subsequent frames.
  • one of the requirements for the imagery is that the corresponding images (in consequent frames) have a significant overlap (say >50%) with one another.
  • the frame rate required to maintain such overlap is dependent on the camera dynamics. Higher dynamics will require a higher frame rate.
  • an alternative approach to using a constant frame rate is to collect images whenever the camera moves a given distance or changes orientation by a maximum rotation. This approach requires a secondary source of position, velocity, and/or orientation to control the camera shutter.
  • the collected image data is next fed into a least squares bundle adjustment algorithm 21 which estimates the position and orientation of the image-capturing device 14 for each frame (6'- vector 40 including the position coordinates (x, y, z) as well as the orientation angels ⁇ , ⁇ , and ⁇ ) as well as the 3-D coordinates of the tracked key-points: position coordinates 42 data (xn, yn, z M ) for the key-point , the position coordinates 44 data (x i2 , y i2 , z i2 ) for the key-point i 2 , and the position coordinates 46 data (s ick , y,K, z iK ) for the key-point i K .
  • the collinearity equations are a set of two equations, used in photogrammetry and remote sensing to relate coordinates in a sensor plane (in two dimensions) to object coordinates (in three dimensions).
  • the equations originate from the central projection of a point of the object through the optical center of the camera to the image on the sensor plane.
  • FIGURES 3, 4, and 5 illustrate the geometry that is utilized in collinearity equations.
  • FIGURE 3 depicts light beams 104 and 106 passing through the pinhole 102 of a pinhole camera 108.
  • FIGURE 4 shows 2-D projection 134 of 3-D point 128 (2-D projection 130 of 3-D point 124, and 2-D projection 132 of 3-D point 126) on a plane 140 by using a pinhole camera with the center 122.
  • FIGURE 5 illustrates x (168) and z (162) coordinates of 2-D projection C 156 of 3-D point through a projection center 102 of the pinhole camera 108 of FIGURE 3, as well as x (164) and z (160) coordinates of 2-D projection P 158 of 3-D point through the projection center 102 of the pinhole camera 108 of FIGURE 3.
  • x a is the measured x image coordinate of point a
  • y a is the measured y image coordinate of point a
  • X a , Y a , Z a are the world coordinates of point a;
  • Xj, Yj, Z ⁇ are the world coordinates of camera I;
  • ⁇ , ⁇ , are the Euler angle rotations of camera I;
  • c is the principal distance (approximately the focal length of the camera);
  • FIGURE 7 illustrates the geometry involved in formulation of collinearity equations (Eq. 1 and Eq. 2) with the matrix m given by (Eq. 3 and Eq. 4) that are utilized for estimation of camera position and orientation for each frame and for estimating 3-D coordinates of the tracked key-points.
  • 3-D coordinates (X A , Y A , Z A ) of 3-D point A in World Coordinate System (WCS) (X 226, Y 224, Z 222) are indicated by point 232, whereas 3-D coordinates (X L , YL, Z l ) of 3-D point of the camera center L in World Coordinate System (WCS) are indicated by point 236.
  • the collinearity equations (Eq. 1 and Eq. 2) with the matrix m given by (Eq. 3 and Eq. 4) are re-formulated in terms of least squares adjustment for the purposes of optimal estimation.
  • is a vector of adjusted observations
  • f(x) is the collinearity equations evaluated at x;
  • is the current extimate of the state x
  • f is a vector of residuals
  • A is a Jacobean matrix (partial derivatives of the collinearity equations w.r.t. the unknowns);
  • is a vector of corrections to the unknown parameters
  • w is a vector of misclosures
  • Cj is the covariance matrix for the measurements
  • C x is the covariance matrix for the estimated parameters.
  • the camera positions and orientations for the first N frames have been estimated along with the positions of the selected key-points.
  • the next step is to continue estimating the camera states the as new subsequent frames (N+1 , N+2, etc.) become available.
  • FIGURE 8 shows the rolling adjustment sequential update algorithm 250 in estimation of camera positions and orientation from the initial N frames to the subsequent (N+1 ) frames.
  • the bundle adjustment algorithm solution based on the initial N frames is schematically noted as the initial solution 274, whereas the bundle adjustment algorithm solution based on (N+1 ) frames (from 252 and up to 264) is schematically noted as the subsequent solution 276.
  • the oldest frame is removed from the state estimation.
  • the rows and columns associated with the frame to be removed are replaced with initial estimates for the newest frame.
  • This initial estimate of the camera position and orientation at the new frame may be computed from the estimated key-points or if the frame rate is high relative to the camera dynamics the estimate can simply be set to the same values as the previous frame.
  • (+), (-) indicate parameters before and after the measurement update.
  • the major advantage of this technique is that the only new inversion required for the sequential update is the matrix contained within the gain term K.
  • the matrix to be inverted is a square matrix with the dimensions equal to the number of new measurements associated with the new image.
  • the error curves are becoming negligible (max less than 7 mm) as the number of frames used is going up.
  • the computer-readable and computer-executable instructions may reside on computer useable/readable media.
  • one or more operations of various embodiments may be controlled or implemented using computer-executable instructions, such as program modules, being executed by a computer.
  • program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
  • the present technology may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer-storage media including memory-storage devices.
  • Multipath refers to the simultaneous processing in the GNSS receiver of both the desired GNSS signal and reflected versions of the desired GNSS signal that arrive a very short time after the desired signal. The two signals pass through the GNSS receiver and are processed by the down converter and the timing measurement systems that develop the pseudoranges. Instantaneous combining of the two signals, desired and slightly-later multipath, result in erroneous pseudoranges, which may be quite different in instantaneous magnitude from the true pseudorange that should have been determined.
  • the term "disciplining" describes comparing a first distance determined from two successive GNSS position fixes (e.g., P-i - P 2 ) with locally measured movement (LMM) position shift distances and, if P-i - P 2 is greater than the LMM position shift distance by a selected threshold value (e.g., 1.5 times the LMM position shift distance or greater) the GNSS position fix at P 2 is discarded and the LMM position shift distance is added to the previous GNSS position fix (e.g. Pi ) to determine the position of a device.
  • a selected threshold value e.g. 1.5 times the LMM position shift distance or greater
  • Locally measured movement information is information that includes measurements of movement where the movement, and the measurements of the movement, occur locally with respect to a cellular device.
  • a cellular device For example, an accelerometer that is attached or part of a cellular device can be used to measure the distance and direction that the cellular device has moved as well as, in some cases, its orientation.
  • a typical inertial measurement unit (IMU) refers to a device which measures gravitational forces, velocity, and orientation using a combination of
  • accelerometers and gyroscopes are typically large devices used for long-term (minutes, hours, or days), high-precision measurements of position.
  • the term "accelerometer” refers to a device which is not a component of an IMU and is used for shorter-term (e.g., 20 seconds) and less precise measurement of a device's position than is typically obtained using an IMU.
  • algorithm 21 can utilize one or more images obtained with an image capture device that is attached or part of the cellular device can be used to measure the distance and direction the cellular device has moved as well as its orientation.
  • Figure 1 1A depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with one embodiment.
  • GNSS chipset 1 107 is configured for receiving radio navigation signals from global navigation satellites (e.g., 1202 of Figure 12A) and for deriving a position fix of device 1 100 based thereon.
  • GNSS chipset 1 107 can derive a position fix for device 1 100 from a variety of satellite navigation systems including, but not limited to: GPS, GNSS, GLONASS, GALILEO, BeiDou, and Compass.
  • the hardware architecture of device 1 100 includes discreet physical layout and interconnection of multiple chipsets for processing and for special purposes such as a GNSS chipset 1 107.
  • newer architectures involve further integration of chipsets in the "system on a chip” (SoC) configuration.
  • SoC system on a chip
  • the GNSS chipset 1 107 can still be a complete element capable of delivering a PVT (position velocity and time) solution, or a low-cost implementation which simply outputs a position fix.
  • GNSS chipset 1 107 can be extracted prior to further signal processing in the GNSS chipset 1 107 and are processed using different algorithms and corrections data for developing an improved accuracy PVT solution. In so doing the deleterious effects of multipath and other error sources may be minimized. Further the GNSS chipset 1 107 outputs are ignored and not displayed when the external processing is employed and the higher-accuracy PVT data is available.
  • device 1 100 further comprises an operating system 1 160 and hardware 1 180 that are outside of the GNSS chipset 1 107.
  • LMM smoothing logic 1 130 can interface between the GNSS chipset 1 107 and the location manager logic 1 161 , which resides in the operating system 1 160.
  • hardware 1 180 comprises, but is not limited to, a processor 1 109, a memory 1 1 10 having algorithm 21 described above resident therein, at least one accelerometer 1 1 15, and an image capture device 1 1 16.
  • processor 1 109 is for processing information and instructions (e.g., stored in memory 1 1 10) while memory 1 1 10 is configured for storing information and instructions for processor 1 109.
  • memory 1 1 10 can comprise volatile memory and/or a nonvolatile computer readable storage medium, as well as removable data storage media in accordance with various embodiments.
  • An example of hardware memory 1 1 10 is a physically tangible non-transitory computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions.
  • An example of a hardware processor 1 109 for executing instructions is a central processing unit.
  • Examples of instructions which are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 which can be stored on a hardware memory 1 1 10 and can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments.
  • the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of device 1 100 that is outside of the GNSS chipset 1 107.
  • Examples of an accelerometer 1 1 15 are an ADXL330/335 chipset accelerometer made by Analog Devices Inc. and a LIS3LV02DQ made by STMicroelectronics.
  • Examples of image capture device 1 1 16 are a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera.
  • the image capture device 1 1 16 may use a lens or be a pinhole type device. It is noted that image capture device 1 1 16 is analogous to image-capturing device 14 of Figure 1.
  • Examples of image capture device 1 1 16 are a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera.
  • the image capture device 1 1 16 may use a lens or be a pinhole type device. It is noted that image capture device 1 1 16 is analogous to image-capturing device 14 of Figure 1 .
  • hardware 1 180 further comprises a wireless Personal Area Network (PAN) transceiver 1 140.
  • PAN Personal Area Network
  • Wireless PAN transceiver 1 140 is configured to utilize
  • hardware 1 180 further comprises an optional microphone (e.g., mic. 1 145) coupled with and analog-to-digital converter (ADC) 1 146.
  • microphone 1 145 is configured for receiving audible information such as ambient noise and/or voice commands which can be used to initiate and control actions performed by device 1 100 and is converted to a digital format by ADC 1 146.
  • audio information captured by microphone 1 145 and converted to a digital format by ADC 1 146 is stored in memory 1 1 10. Furthermore, in various embodiments microphone 1 145 is used for communicating (e.g., via cellular transceiver 1 1 1 1 of Figure 1 1 C) over a cellular telephone network or other communications network.
  • the output of LMM smoothing logic 1 130 can be used for determining and disciplining the location of the device 1 100. For example, a latitude, longitude and altitude can be determined based on the output of the LMM smoothing logic 1 130, which can be conveyed via wireless personal area network transceiver 1 140.
  • GNSS chipset 1 107 comprises a low-cost used by device 1 100 which simply outputs a position fix of device 1 100 based upon unsmoothed pseudoranges.
  • various features for improving the position fix are typically not built into a low-cost GNSS chipset such as 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information).
  • LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of device 1 100A.
  • GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1 100 with greater precision.
  • GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1 100.
  • WAAS Wide Area Augmentation System
  • Figure 1 1 B depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment.
  • Figure 1 1A depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment.
  • device 1 100 further comprises a location manager logic 1 161 , a location displayer logic 1 162, and hardware 1 180 that are outside of the GNSS chipset 1 107.
  • the location manager logic 1 161 can be a part of the operating system 1 160 and external to the GNSS chipset 1 107.
  • the location displayer logic 1 162 is a part of the location manager logic 1 161.
  • LMM smoothing logic 1 130 can interface between the GNSS chipset 1 107 and the location manager logic 1 161 , which resides in the operating system 1 160.
  • LMM smoothing logic 1 130 communicates the output of pseudorange information processing to the location manager logic 1 161 in the operating system 1 160.
  • the instant location or the improved location can be communicated to location manager logic 1 161 , as discussed herein, that displays the instant location or the improved location with respect to a map.
  • the location displayer logic 1 162 can display the location with respect to a digital representation of a map available, for example, from third parties via download to the device 1 100.
  • device 1 100 further comprises a display device 1 1 12 and at least one radio frequency transceiver 1 141.
  • Examples of devices which can be used as display 1 1 12 include, but are not limited to, liquid crystal displays, LED-based displays, and the like.
  • display 1 1 12 can be configured as a touch screen device (e.g., a capacitive touch screen display) for receiving inputs from a user as well as displaying data including data from location displayer logic 1 162.
  • radio frequency transceiver(s) 1 141 are for receiving GNSS corrections via public and/or proprietary radio frequency networks.
  • radio frequency transceiver 1 141 is an Ultra-high Frequency (UHF) wide band radio transceiver operating in the 410-470 MHz radio frequency spectrum.
  • UHF Ultra-high Frequency
  • Figure 1 1 C depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment.
  • device 1 100 further comprises a cellular transceiver 1 1 1 1 .
  • Examples of cellular networks used by cellular transceiver 1 1 1 1 include, but are not limited to GSM cellular networks, GPRS cellular networks, GDMA cellular networks, and EDGE cellular networks.
  • cellular transceiver 1 1 1 1 is configured to operate on a satellite- based cellular network such as the Inmarsat or Iridium communication networks.
  • device 1 100 is configured to receive GNSS corrections via a cellular network which are received by cellular transceiver 1 1 1 1.
  • device 1 100 can send position data including position fixes to other devices either located proximate to device 1 100 or at a distant location.
  • Figure 1 1 D depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment.
  • device 1 100 further comprises an optional Wi-Fi transceiver 1 1 14.
  • Wi-Fi transceiver 1 1 14 may be configured to operate on/in compliance with any suitable wireless communication protocol including, but not limited to: Wi-Fi, WiMAX, implementations of the IEEE 802.1 1 specification,
  • device 1 100 can receive corrections information for device 1 100 from proprietary or public networks.
  • ISM Instrument Scientific and Medical
  • Figure 1 1 E depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment.
  • device 1 100 further comprises an optional satellite receiver 1 106.
  • satellite receiver 1 106 is configured for receiving GNSS corrections data sent via various satellite-based augmentation systems (SBAS) including, but not limited to the WAAS used in North America and the European Geostationary Navigation Overlay Service (EGNOS).
  • SBAS satellite-based augmentation systems
  • GNOS European Geostationary Navigation Overlay Service
  • a satellite radio distributor can broadcast corrections as a broadcast from one or more communications satellites (e.g., 1201 of Figure 12D).
  • device 1 100 includes one or more integral satellite radio antennas associated with integrated satellite radio receivers 1 106. Satellite radio receiver 1 106 is one example of such a satellite receiver which would employ an integrated antenna designed to operate in the correct frequency band for receiving a corrections or other information broadcast from communication satellites 1201 . In this manner, in some embodiments, device 1 100 can receive the corrections via satellite radio receiver 1 106.
  • Figures 19A-19F show some implementations of device 1 100 in accordance with various embodiments.
  • device 1 100 comprises a ring 1901.
  • the components described above with reference to Figure 1 1 A may be disposed within a small form factor such as ring 1901.
  • ring 1901 may comprise various components shown in Figure 1 1 A including, but not limited to, GNSS chipset 1 107 (not shown), LMM smoothing logic 1 130 (not shown), processor 1 109 (not shown), image capture device 1 1 16, at least one accelerometer 1 1 15 (not shown), and microphone 1 145.
  • ring 1901 may include other components such as a radio-frequency identification device (RFID) (not shown), or other component for uniquely identifying ring 1901 .
  • RFID radio-frequency identification device
  • device 1 100 comprises a wearable watch 1910.
  • watch 1910 comprises the components described above with reference to Figure 19A as well as a display 1 1 12 for displaying the time.
  • display 1 1 12 comprises a touch screen device capable of displaying icons, menus, and other data which permits a user to control functions performed by watch 1910.
  • device 1 100 comprises a badge 1920 which is wearable by a user.
  • badge 1920 comprises the components described above with reference to Figure 19A as well as an area 1921 for a picture of the user of badge 1920.
  • badge 1920 may be attached to a user's clothing using a pin, clip, Velcro, or other fastening device.
  • badge 1920 can be mounted on devices or vehicles (e.g., a bicycle) using various fastening devices.
  • device 1 100 comprises a bracelet 1930 in accordance with various embodiments.
  • bracelet 1930 comprises the components described above with reference to Figure 19A.
  • device 1 100 comprises or is disposed as a portion of an unmanned aerial vehicle (which may also be known as a remotely piloted vehicle or as a drone), such as fixed wing unmanned aerial vehicle 1940.
  • an unmanned aerial vehicle which may also be known as a remotely piloted vehicle or as a drone
  • fixed wing unmanned aerial vehicle 1940 A perspective view is illustrated.
  • the components described above with reference to Figure 1 1 A may be disposed within a form factor of or as a sub-portion of unmanned aerial vehicle 1940.
  • one or more portions of device 1 100 may be mounted internally and/or externally to fuselage 1942, wings 1941 , or some other portion of unmanned aerial vehicle 1940.
  • unmanned aerial vehicle 1940 may comprise various components shown in Figure 1 1A including, but not limited to, GNSS chipset 1 107 (not shown), LMM smoothing logic 1 130 (not shown), processor 1 109 (not shown), image capture device 1 1 16, at least one accelerometer 1 1 15 (not shown), and microphone 1 145. Furthermore, unmanned aerial vehicle 1940 may include other components such as a radio- frequency identification device (RFID) (not shown), or other component for uniquely identifying unmanned aerial vehicle 1940.
  • RFID radio- frequency identification device
  • device 1 100 comprises or is disposed as a portion of an unmanned aerial vehicle (which may also be known as a remotely piloted vehicle or as a drone), such as rotorcraft unmanned aerial vehicle 1950 which relies on one or more rotors 1951 for lift and hovering.
  • an unmanned aerial vehicle which may also be known as a remotely piloted vehicle or as a drone
  • rotorcraft unmanned aerial vehicle 1950 which relies on one or more rotors 1951 for lift and hovering.
  • a bottom plan view is illustrated.
  • a quad-rotor embodiment is depicted, such rotorcraft may employ a single rotor or a plurality of rotors that is lesser or greater than the four illustrated rotors.
  • the components described above with reference to Figure 1 1A may be disposed within a form factor of or as a sub-portion of unmanned aerial vehicle 1950.
  • unmanned aerial vehicle 1950 may comprise various components shown in Figure 1 1A including, but not limited to, GNSS chipset 1 107 (not shown), LMM smoothing logic 1 130 (not shown), processor 1 109 (not shown), image capture device 1 1 16, at least one accelerometer 1 1 15 (not shown), and microphone 1 145.
  • unmanned aerial vehicle 1950 may include other components such as a radio-frequency identification device (RFID) (not shown), or other component for uniquely identifying unmanned aerial vehicle 1950.
  • RFID radio-frequency identification device
  • the devices 1 100 shown in Figures 19A-19F can leverage microminiaturization fabrication techniques to integrate the components described above into increasingly smaller form factors that was previously possible. Furthermore, the devices 1 100 shown in Figures 19A-19F can leverage microminiaturization fabrication techniques to integrate the components described above into increasingly smaller form factors that was previously possible. Furthermore, the devices 1 100 shown in Figures 19A-19F can leverage microminiaturization fabrication techniques to integrate the components described above into increasingly smaller form factors that was previously possible. Furthermore, the
  • implementations of device 1 100 shown in at least Figures 19A-19F are, in some embodiments
  • Figure 12A depicts a block diagram of an example cellular device 1200 in accordance with at least one embodiment.
  • Examples of a cellular device 1200 as shown in Figure 12A comprise a non-voice enabled cellular device such as a position
  • the cellular device 1200 includes a bus 1218, a GNSS chipset 1 107, a processor 1 109, memory 1 1 10, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), an optional microphone 1 145, ADC 1 146, and operating system 1 160.
  • Components 1 107, 1 109, 1 1 10, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218.
  • FIG. 12A global navigation satellites 1202 which provide radio navigation signals (e.g., the GPS, GNSS, GLONASS, GALILEO, BeiDou, Compass, etc.).
  • a cellular device 1200 can be configured with, a GNSS chipset 1 107 coupled with bus 1218 for receiving radio navigation signals from global navigation satellites 1202 and for deriving a position of cellular device 1200 based thereon.
  • the GNSS chipset 1 107 is configured to receive signals from GPS satellites, GLONASS satellites, Galileo satellites, or from a combination of satellites from different constellations.
  • the GNSS chipset 1 107 can perform GPS measurements to derive raw measurement data for a position of the cellular device 1200.
  • the raw measurement data can provide an instant location (e.g., position fix 1384 of Figure 13) of the cellular device 1200 which is output from GNSS chipset 1 107.
  • cellular device 1200 Other components of cellular device 1200 comprise a processor 1 109 coupled with bus 1218 for processing information and instructions, a memory 210 coupled with bus 1218 for storing information and instructions for processor 1 109.
  • memory 1 1 10 can comprise volatile memory and/or a non-transitory computer readable medium, as well as removable data storage media in accordance with various embodiments.
  • Examples of an accelerometer 1 1 15 are an ADXL330/335 chipset accelerometer made by Analog Devices Inc. and a LIS3LV02DQ made by STMicroelectronics.
  • cellular networks used by cellular transceiver 1 1 1 1 include, but are not limited to GSM cellular networks, GPRS cellular networks, GDMA cellular networks, and EDGE cellular networks.
  • cellular transceiver 1 1 1 1 is configured to operate on a satellite-based cellular network such as the Inmarsat or Iridium communication networks.
  • device 1 100 is configured to receive GNSS corrections via a cellular network which are received by cellular transceiver 1 1 1 1 .
  • cellular device 1200 can send position data including position fixes to other devices either located proximate to cellular device 1200 or at a distant location.
  • Examples of image capture device 1 1 16 are a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera.
  • the image capture device 1 1 16 may use a lens or be a pinhole type device. It is noted that image capture device 1 1 16 is analogous to image-capturing device 14 of Figure 1.
  • cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both.
  • the features represented by the blocks in Figure 12A can be combined in various ways.
  • a cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof.
  • various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • Various blocks in Figure 12A refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130, which can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • the cellular device 1200 includes hardware, such as the processor 1 109, memory 1 1 10, and the GNSS chipset 1 107.
  • hardware memory 1 1 10 is a physically tangible non-transitory computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions.
  • An example of a hardware processor 1 109 for executing instructions is a central processing unit.
  • Examples of instructions which are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 which can be stored on a hardware memory 1 1 10 and that can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments.
  • the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of the cellular device 1200 that is outside of the GNSS chipset 1 107.
  • GNSS chipset 1 107 comprises a low-cost used by cellular device 1200 which simply outputs a position fix of cellular device 1200 based upon unsmoothed pseudoranges.
  • various features for improving the position fix are typically not built into a low-cost GNSS chipset such as 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information).
  • LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200.
  • GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of cellular device 1200 with greater precision.
  • GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of cellular device 1200.
  • WAAS Wide Area Augmentation System
  • Figure 12B depicts a block diagram of another example cellular device 1200 in accordance with at least one embodiment.
  • Examples of a cellular device 1200 include a position recording/reporting device, a theft prevention device, or other type of security device, and a handheld navigation device.
  • the cellular device 1200 shown in Figure 12B may be mobile or stationary.
  • the cellular device 1200 includes a bus 1218, a GNSS chipset 1 107, a processor 1 109, memory 1 1 10, a display 1 1 12, audio 1213, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), an optional microphone 1 145, ADC 1 146, and operating system 1 160.
  • Components 1 107, 1 109, 1 1 10, 1 1 12, 1213, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218.
  • the components listed above which have been described previously will not again be described in the discussion of Figure 12B.
  • cellular device 1200 further comprises a display 1 1 12 and an audio component 1213.
  • Audio component 1213 is for generating audio signals such as tones, sounds, and/vocal commands and alerts.
  • cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both.
  • the features represented by the blocks in Figure 12B can be combined in various ways.
  • a cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof.
  • various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • Various blocks in Figure 12B refer to features that are logic
  • components such as but not limited to locally measured movement smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • GNSS chipset 1 107 comprises a low-cost GNSS chipset used by cellular device 1200 which simply outputs a position fix of cellular device 1200 based upon unsmoothed pseudoranges.
  • various features for improving the position fix are typically not built into a low-cost GNSS chipset such as 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information).
  • LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200.
  • GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1200 with greater precision.
  • GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1200.
  • WAAS Wide Area Augmentation System
  • Figure 12C depicts a block diagram of a set of correction delivery options for providing positioning information to a cellular device 1200 for extracting pseudorange information, according to one embodiment.
  • the cellular device 1200 shown in Figure 12C may be mobile or stationary. Examples of a cellular device 1200 include a cell phone and a mobile hand-held GNSS receiver.
  • the cellular device 1200 includes a bus 1218, a GNSS chipset 1 107, a processor 1 109, memory 1 1 10, a cellular transceiver 1 1 1 1 , a display 1 1 12, audio 1213, an optional Wi- Fi transceiver 1 1 14, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), an optional microphone 1 145, ADC 1 146, and operating system 1 160.
  • Components 1 107, 1 109, 1 1 10, 1 1 1 1 1 1 , 1 1 12, 1213, 1 1 14, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218.
  • Wi-Fi transceiver 1 1 14 may be configured to operate on/in compliance with any suitable wireless communication protocol including, but not limited to: Wi-Fi, WiMAX, implementations of the IEEE 802.1 1 specification, implementations of the IEEE 802.15.4 specification for personal area networks, and a short range wireless connection operating in the Instrument Scientific and Medical (ISM) band of the radio frequency spectrum in the 2400-2484 MHz range (e.g., implementations of the Bluetooth® standard).
  • ISM Instrument Scientific and Medical
  • Improvements in GNSS/GPS positioning may be obtained by using reference stations with a fixed receiver system to calculate corrections to the measured pseudoranges in a given geographical region. Since the reference station is located in a fixed environment and its location can be determined very precisely via ordinary survey methods, a processor associated with the Reference Station GNSS/GPS receivers can determine more precisely what the true pseudoranges should be to each satellite in view, based on geometrical considerations. Knowing the orbital positions via the GPS almanac as a function of time enables this process, first proposed in 1983, and widely adopted ever since. The difference between the observed pseudorange and the calculated pseudorange for a given Reference station is called the pseudorange correction.
  • a set of corrections for all the global navigation satellites 1202 in view is created second by second, and stored, and made available as a service, utilizing GPS/GNSS reference stations 1220 and correction services 1221 .
  • the pseudoranges at both the cellular device 1200, GNSS chipset 1 107, and those at the reference stations 1220 are time-tagged, so the corrections for each and every pseudorange measurement can be matched to the local cell phone pseudoranges.
  • the overall service is often referred to as Differential GPS, or DGPS. Without any corrections, GNSS/GPS receivers produce position fixes with absolute errors in position on the order of 4.5 to 5.5 m per the GPS SPS Performance Standard, 4 th Ed. 2008.
  • one or more correction services 1221 convey these corrections via a cellular network 1222, or the Internet 1223.
  • Internet 1223 is in turn coupled with a local Wi-Fi network 1224 which can convey the corrections to cellular device 1200 via Wi-Fi transceiver 1 1 14.
  • cellular network 1222 can convey the corrections to cellular device 1200 via cellular transceiver 1 1 1 1 .
  • Examples of a correction source that provides pseudorange corrections are at least correction service 1221 .
  • a correction source is located outside of the cellular device 1200.
  • cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both.
  • the features represented by the blocks in Figure 12C can be combined in various ways.
  • a cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof.
  • various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • Various blocks in Figure 12C refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • the cellular device 1200 includes hardware, such as the processor 1 109, memory 1 1 10, and the GNSS chipset 1 107.
  • hardware memory 1 1 10 is a physically tangible computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions.
  • An example of a hardware processor 1 109 for executing instructions is a central processing unit.
  • Examples of instructions which are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 that can be stored on a hardware memory 1 1 10 and that can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments.
  • the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of the cellular device 1200 that is outside of the GNSS chipset 1 107.
  • GNSS chipset 1 107 comprises a low-cost GNSS chipset used by device 1200 which simply outputs a position fix of cellular device 1200 based upon unsmoothed pseudoranges.
  • various features for improving the position fix are typically not necessarily built into GNSS chipset 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information).
  • carrier phase smoothing e.g., based upon real carrier phase information, reconstructed carrier phase information.
  • various corrections sources, or the capability to receive them are not used by a cellular device 1200.
  • LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200.
  • GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1200 with greater precision.
  • GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1200.
  • WAAS Wide Area Augmentation System
  • Figure 12D depicts a block diagram of a set of correction delivery options for providing positioning information to a cellular device for extracting pseudorange information, according to one embodiment.
  • a cellular device 1200 include a cell phone, a non-voice enabled cellular device, and a mobile hand-held GNSS receiver.
  • the cellular device may be mobile or stationary.
  • the cellular device 1200 includes a bus 1218, an optional satellite receiver 1 106, a GNSS chipset 1 107, an optional FM radio receiver 1 108, a processor 1 109, memory 1 1 10, a cellular transceiver 1 1 1 1 , a display 1 1 12, audio 1213, an optional Wi-Fi transceiver 1 14 at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), microphone 1 145, ADC 1 146, and operating system 1 160.
  • a bus 1218 an optional satellite receiver 1 106, a GNSS chipset 1 107, an optional FM radio receiver 1 108, a processor 1 109, memory 1 1 10, a cellular transceiver 1 1 1 1 1 , a display 1 1 12, audio 1213, an optional Wi-Fi transceiver 1 14, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g.,
  • a plurality of broadcast sources is used to convey data and media to a cellular device 1200.
  • cellular device 1200 can receive broadcast signals from communication satellites 1201 (e.g., two-way radio, satellite-based cellular such as the Inmarsat or Iridium communication networks, etc.), global navigation satellites 1202 which provide radio navigation signals (e.g., the GPS, GNSS, GLONASS, GALILEO, BeiDou, Compass, etc.), and terrestrial radio broadcast 1203 (e.g., FM radio, AM radio, shortwave radio, etc.)
  • communication satellites 1201 e.g., two-way radio, satellite-based cellular such as the Inmarsat or Iridium communication networks, etc.
  • global navigation satellites 1202 which provide radio navigation signals
  • radio navigation signals e.g., the GPS, GNSS, GLONASS, GALILEO, BeiDou, Compass, etc.
  • terrestrial radio broadcast 1203 e.g., FM radio, AM radio, shortwave radio,
  • a cellular device 1200 can be configured with an optional satellite radio receiver 1 106 coupled with a communication bus 1218 for receiving signals from communication satellites 1201 , a GNSS chipset 1 107 coupled with bus 1218 for receiving radio navigation signals from global navigation satellites 1202 and for deriving a position of cellular device 1200 based thereon.
  • the GNSS chipset 1 107 is configured to receive signals from GPS satellites, GLONASS satellites, or from a combination of satellites from different constellations.
  • the GNSS chipset 1 107 can perform GPS measurements to derive raw measurement data for a position of the cellular device 1200.
  • the raw measurement data can provide an instant location of the cellular device 1200.
  • Cellular device 1200 further comprises an optional FM radio receiver 1 108 coupled with bus 1218 for receiving broadcast signals from terrestrial radio broadcast 1203.
  • Other components of cellular device 1200 comprise a processor 1 109 coupled with bus 1218 for processing information and instructions, a memory 1 1 10 coupled with bus 1218 for storing information and instructions for processor 1 109.
  • Cellular device 1200 further comprises a cellular transceiver 1 1 1 1 coupled with bus 1218 for communicating via cellular network 1222.
  • Cellular device 1200 further comprises a display 1 1 12 coupled with bus 1218.
  • Cellular device 1200 further comprises an audio output 1213 coupled with bus 1218 for conveying audio information to a user, or for receiving voice commands or messages from a user.
  • Cellular device 1200 further comprises a Wi-Fi transceiver 1 1 14 and at least one accelerometer 1 1 15 coupled with bus 1218.
  • correction services 1221 are also coupled with a distribution service 1225 which conveys the corrections to an FM radio distributor 1226.
  • FM radio distributor 1226 can broadcast corrections as a terrestrial radio broadcast 103. It should be appreciated that an FM signal is being described as a subset of possible terrestrial radio broadcasts which may be in a variety of bands and modulated in a variety of manners.
  • cellular device 1200 includes one or more integral terrestrial radio antennas associated with integrated terrestrial receivers; FM radio receiver 1 108 is one example of such a terrestrial receiver which would employ an integrated antenna designed to operate in the correct frequency band for receiving a terrestrial radio broadcast 103. In this manner, in some embodiments, cellular device 1200 can receive the corrections via FM radio receiver 1 108 (or other applicable type of integrated terrestrial radio receiver). In some embodiments, correction services 1221 are also coupled with a distribution service 1225 which conveys the corrections to a satellite radio distributor 1227. Satellite radio distributor 1227 can broadcast corrections as a broadcast from one or more communications satellites 1201 . In some embodiments, cellular device 1200 includes one or more integral satellite radio antennas associated with integrated satellite radio receivers 1 106.
  • Satellite radio receiver 1 106 is one example of such a satellite receiver which would employ an integrated antenna designed to operate in the correct frequency band for receiving a corrections or other information broadcast from communication satellites 1201. In this manner, in some embodiments, cellular device 1200 can receive the corrections via satellite radio receiver 1 106.
  • Examples of a correction source that provides pseudorange corrections are at least correction service 1221 , FM radio distribution 1226, or satellite radio distributor 1227, or a combination thereof. According to one embodiment, a correction source is located outside of the cellular device 1200.
  • cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both.
  • the features represented by the blocks in Figure 12D can be combined in various ways.
  • a cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof.
  • various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • Various blocks in Figure 12D refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
  • the cellular device 1200 includes hardware, such as the processor 1 109, memory 1 1 10, and the GNSS chipset 1 170.
  • hardware memory 1 1 10 is a physically tangible computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions.
  • An example of a hardware processor 1 109 for executing instructions is a central processing unit.
  • Examples of instructions are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 that can be stored on a hardware memory 1 1 10 and that can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments.
  • the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of the cellular device 1200 that is outside of the GNSS chipset 1 107.
  • GNSS chipset 1 107 comprises a low-cost GNSS chipset used by device 1200 which simply outputs a position fix of device 1200 based upon unsmoothed pseudoranges.
  • various features for improving the position fix are not necessarily built into GNSS chipset 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information).
  • carrier phase smoothing e.g., based upon real carrier phase information, reconstructed carrier phase information.
  • various corrections sources, or the capability to receive them are not used by a cellular device 1200.
  • LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200.
  • GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1200 with greater precision.
  • GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1200.
  • WAAS Wide Area Augmentation System
  • the embodiments discussed in Figures 1 1A-E and 12A-D are not intended to be exhaustive listings of components in accordance with various embodiments.
  • various embodiments can utilize other positioning and/or communication technologies including, but not limited to Radio-frequency Identification transponders or tags for identifying and/or tracking device 1 100 and cellular device 1200.
  • FIG. 13 a block diagram is shown of an embodiment of an example GNSS chipset 1 107 which may be used in accordance with various embodiments described herein.
  • Figure 13 illustrates a block diagram of a GNSS receiver in the form of a general purpose GPS capable of demodulation of the L1 and/or L2 signal(s) received from one or more GPS satellites.
  • GPS receiver 1 107 A more detailed discussion of the function of a receiver such as GPS receiver 1 107 can be found in U.S. Patent Number 5,621 ,416, by Gary R. Lennen, is titled Optimized processing of signals for enhanced cross-correlation in a satellite positioning system receiver," and includes a GPS receiver very similar to GNSS chipset 1 107 of Figure 13.
  • received L1 and L2 signals are generated by at least one GPS satellite. Each GPS satellite generates different signal L1 and L2 signals and they are processed by different digital channel processors 1352 which operate in the same way as one another.
  • Antenna 1332 may be a magnetically mountable model commercially available from Trimble Navigation of
  • Master oscillator 1348 provides the reference oscillator which drives all other clocks in the system.
  • Frequency synthesizer 1338 takes the output of master oscillator 1348 and generates important clock and local oscillator frequencies used throughout the system. For example, in one embodiment frequency synthesizer 1338 generates several timing signals such as a 1 st (local oscillator) signal L01 at 1400 MHz, a 2nd local oscillator signal L02 at 175 MHz, an SCLK (sampling clock) signal at 25 MHz, and a MSEC (millisecond) signal used by the system as a measurement of local reference time.
  • 1 st local oscillator
  • SCLK sampling clock
  • MSEC millisecond
  • a filter/LNA (Low Noise Amplifier) 1334 performs filtering and low noise
  • the downconvertor 1336 mixes both L1 and L2 signals in frequency down to approximately 175 MHz and outputs the analog L1 and L2 signals into an IF (intermediate frequency) processor 1350.
  • IF processor 1350 takes the analog L1 and L2 signals at approximately 175 MHz and converts them into digitally sampled L1 and L2 inphase (L1 I and L2 I) and quadrature signals (L1 Q and L2 Q) at carrier frequencies 420 KHz for L1 and at 2.6 MHz for L2 signals respectively.
  • At least one digital channel processor 1352 inputs the digitally sampled L1 and L2 inphase and quadrature signals. All digital channel processors 1352 are typically are identical by design and typically operate on identical input samples. Each digital channel processor 1352 is designed to digitally track the L1 and L2 signals produced by one satellite by tracking code and carrier signals and to from code and carrier phase measurements in conjunction with the GNSS microprocessor system 1354. One digital channel processor 1352 is capable of tracking one satellite in both L1 and L2 channels. Microprocessor system 1354 is a general purpose computing device which facilitates tracking and measurements processes, providing pseudorange and carrier phase measurements for a determining position fix logic 1358. In one embodiment, microprocessor system 1354 provides signals to control the operation of one or more digital channel processors 1352.
  • the GNSS microprocessor system 1354 provides one or more of pseudorange information 1372, Doppler Shift information 1374, and real Carrier Phase Information 1376 to the determining position fix logic 1358.
  • One or more of pseudorange information 1372, Doppler Shift information 1374, and real Carrier Phase Information 1376 can also be obtained from storage 1360.
  • One or more of the signals 1372, 1374, and 1376 can be conveyed to an external device's processor, such as processor 1 109 that is external to the GNSS chipset 1 107 ( Figure 1 1 D).
  • processor 1354 is configured to output a position fix 1384 to a device outside of GNSS chipset 1 107 such as to processor 1 109.
  • processor 1354 can output a position, velocity, time (PVT) solution to a device outside of GNSS chipset 1 107 such as to processor 1 109.
  • Determining position fix logic 1358 performs the higher level function of combining measurements in such a way as to produce position, velocity and time information for the differential and surveying functions, for example, in the form of a position fix 1380.
  • Storage 1360 is coupled with determining position fix logic 1358 and
  • determining position fix logic 1358 performs one or more of the methods of position correction described herein.
  • microprocessor 1354 and/or determining position fix logic 1358 receive additional inputs for use in receiving corrections information (e.g., 1382).
  • an example of the corrections information is WAAS corrections.
  • examples of corrections information are differential GPS corrections, RTK corrections, signals used by the Enge-Talbot method, and wide area augmentation system (WAAS) corrections among others.
  • WAAS wide area augmentation system
  • Figure 13 depicts a GNSS chipset 1 107 with navigation signals L1 1, L1 Q, L2I, L2Q
  • the GNSS chipset 1 107 may only have an L1 1 navigational signal.
  • the GNSS chipset 1 107 may only have L1 I, L1 Q and L2I.
  • GNSS chipset 1 107 may use other combinations of navigation signals such as, but not limited to: and L1 signal, and L1 and L2C signal, and an L1 I and L1 Q signal.
  • Various embodiments are also well suited for future navigational signals.
  • various embodiments are well suited for the navigational signal L2C that is not currently generally available. However, there are plans to make it available for non-military receivers.
  • LMM smoothing logic 1 130 resides at either or both of the storage 1360 and GNSS microprocessor system 1354.
  • GNSS processing is accomplished using software components implemented by a processor in combination with hardware components.
  • GNSS chipset 1 107 comprises dual frequency antenna 1332, filter/LNA (Low Noise Amplifier) 1334, and downconverter 1336 as described above.
  • Downconverter 1336 outputs the 175 MHz intermediate frequency L1 and L2 signals and further processing of the IF L1 and L2 signals is performed by a processor which subsequently performs the processing steps described above.
  • this processing includes, but is not limited to, further mixing of the L1 and L2 signals, digital sampling of inphase and quadrature signals at respective carrier frequencies, correlation, tracking loops, measurement processing, navigation processing, corrections processing, etc.
  • this processing is performed by a processor of GNSS chipset such as GNSS microprocessor system 1354. In one or more embodiments, this can be performed by an external processor such as processor 1 109 which is separate from GNSS chipset 1 107.
  • a filter/LNA (Low Noise Amplifier) 1334 performs filtering and low noise
  • the downconvertor 1336 mixes both L1 and L2 signals in frequency down to approximately 175 MHz and outputs the analog L1 and L2 signals into an IF (intermediate frequency) processor 1350.
  • FIG 14 is a block diagram of a locally measured movement (LMM) smoothing logic component (e.g., ) 1 130 in accordance with at least one embodiment.
  • LMM smoothing logic 1 130 can be resident within and executed by GNSS chipset 1 107, or external to GNSS chipset 1 107 such as in memory 1 1 10 and executed by processor 1 109.
  • LMM smoothing logic 1 130 comprises position fix accessing logic 1401 , LMM accessing logic 1402 comprising accelerometer accessing logic 1403 and image capture device accessing logic 1404.
  • LMM smoothing logic 1 130 further comprises dual-sensor processing logic 1405 comprising dual- sensor averaging logic 1406 and dual-sensor confidence estimating logic 1406.
  • LMM smoothing logic 1 130 comprises position fix smoothing logic 1410 comprising a Kalman filter 141 1.
  • LMM smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Furthermore, it is noted that in accordance with various embodiments, some of the components shown in Figure 14 may not be used in
  • position fix accessing logic 1401 is configured to retrieve GNSS position fixes 1384 generated by a GNSS receiver system such as GNSS chipset 1 107 of Figures 1 1A-E and 12A-D, or GNSS receiver 1 107 shown in Figure 13.
  • position fix accessing logic 1401 outputs position fixes 1384 as an input to position fix smoothing logic 1410.
  • position fix accessing logic 1401 can output a position, velocity, time (PVT) solution as discussed above.
  • position fix(es) 1384 can be retrieved from a memory such as 1 1 10 of Figure 1 1A-E and 12A-D, or storage 1360 of Figure 13.
  • GNSS position fixes 1384 can be generated based upon uncorrected pseudorange information, smoothed pseudoranges, and corrected pseudoranges.
  • smoothed smoothed
  • pseudoranges can be generated based upon carrier phase information, or based upon reconstructed carrier phase information derived from Doppler shift data.
  • One example of creating smoothed pseudoranges in accordance with various embodiments is described in U.S. Patent Application No. 14/035,884, filed on Sept. 24, 2013 entitled, "EXTRACTING PSEUDORANGE INFORMATION USING A CELLULAR DEVICE” by Rudow et al., the contents of which are incorporated herein by reference.
  • accelerometer data 1421 receives accelerometer data 1421 from accelerometer 1 1 15, or memory 1 1 10 of Figure 1 1A-E and 12A-D, which indicates position shifts of a device (e.g., device 1 100 or cellular device 1200).
  • accelerometer data 1421 comprises a '6'-vector including the position coordinates (x, y, z) as well as the orientation angles ⁇ , ⁇ , and ⁇ of device 1 100 or cellular device 1200.
  • accelerometer data 1421 comprises the position coordinates (x, y, z) of device 1 100 or cellular device 1200.
  • image data 1422 receives image data 1422 which is output from algorithm 21 of Figure 1 which also indicates position shifts of a device (e.g., device 1 100 or cellular device 1200) based upon image data.
  • image data 1422 is updated as algorithm 21 performs rolling sequential bundle adjustments to image data as described above and can either be sent directly to image data accessing logic 1422, or to storage such as memory 1 1 10 of device 1 100 or cellular device 1200.
  • image data 1422 comprises '6'-vector 40 including the position coordinates (x, y, z) as well as the orientation angles ⁇ , ⁇ , and ⁇ of image capture device 1 1 16 and is updated as new rolling sequential bundle adjustments are performed by algorithm 21.
  • accelerometer data accessing logic 1402 outputs accelerometer data 1421 as an input to position fix smoothing logic 1410 and image data accessing logic 1404 outputs image data 1422 as another input to position fix smoothing logic 1410.
  • position fix smoothing logic 1410 comprises a Kalman filter 141 1 which uses as inputs, position fix(es) 1384 and locally measured movement data such as accelerometer data 1421 and/or image data 1422.
  • position fix smoothing logic 1410 can use another filtering logic such as Robust Estimation, Least Square fitting methods, particle filtering, Hough transform, Random Sample Consensus (RANSAC), non-linear variants, such as sigma- editing, both a priori and a posteriori, and non-optimal (in a Gaussian sense) linear variants, instead of, or in addition to, the use of Kalman filter 141 1 .
  • Least Square fitting methods include using sequential least squares processing which is similar to Kalman filtering with the last N position and orientation states in the filter.
  • the output of Kalman filter 141 1 is smoothed position fixes 1429.
  • the smoothed position fixes 1429 are position fixes with improved quality of measurement for determining with greater precision, the position of device 1 100 and/or cellular device 1200. More specifically, Kalman filter 141 1 can identify outlier data points of position fix(es) 1384 which may be caused by erroneous pseudorange determination based upon, for example, multipath signal propagation which is exhibited when a GNSS receiver (e.g., GNSS chipset 1 107) is located beneath foliage, or in built-up areas which tend to reflect GNSS signals from various locations to the antenna 1332 of the GNSS receiver.
  • GNSS receiver e.g., GNSS chipset 1 107
  • Kalman filter 141 1 replaces the discarded position fix 1384 with a position fix derived at least in part using position data (e.g., accelerometer data 1421 and/or image data 1422) from
  • device 1 100 or cellular device 1200 can generate a position fix 1384 using, for example, GNSS chipset 1 107. Subsequent to time to, as device 1 100 or cellular device 1200 is moved it will continuously generate new position fixes 1384 using GNSS chipset 1 107 as well as locally measured movement data (e.g., using accelerometer 1 1 15 and/or image capture device 1 1 16) which also can be used to determine a position fix for device 1 100 or cellular device 1200.
  • GNSS chipset 1 107 for example, GNSS chipset 1 107
  • locally measured movement data e.g., using accelerometer 1 1 15 and/or image capture device 1 1 16
  • Kalman filter 141 1 can discard the erroneous position fix 1384 generated by GNSS chipset 1 107 and replace it with a position fix generated using data received from accelerometer 1 1 15 and/or image capture device 1 1 16. In accordance with at least one embodiment, this can comprise adding a movement vector derived from data (e.g., 1421 and/or 1422) received from accelerometer 1 1 15 and/or image capture device 1 1 16 to a previous "correct" position fix generated by GNSS chipset 1 107.
  • a movement vector derived from data e.g., 1421 and/or 1422
  • accelerometer data accessing logic 1403 and image data accessing logic 1404 can output accelerometer data 1421 and image data 1422 respectively as inputs to dual-sensor processing logic 1405.
  • dual-sensor processing logic 1405 comprises dual-sensor averaging logic 1406 and/or dual-sensor confidence estimating logic 1407.
  • dual-sensor averaging logic 1406 is configured to determine an average value of the indicated movement of a device comprising LMM smoothing logic 1 130.
  • dual-sensor averaging logic 1406 may average these two values and determine that device 1 100 or cellular device 1200 has moved 2.1 meters in that time interval. This is output as movement data 1425 which is input to position fix smoothing logic 1410 instead of accelerometer data 1421 and image data 1422.
  • the quality of the estimate of motion detected e.g., accelerometer data 1421
  • an accelerometer e.g., 1 1 15
  • the estimate of motion detected by an image capture device e.g., 1 1 16
  • the discarded position fix is replaced with and averaged position fix based at least in part on data from dual-sensor averaging logic 1406.
  • Figure 15 which plots positioning error 1502 as a y-axis over x-axis time 1501. Also shown in Figure 15 is the rate of positioning degradation (over time) using image data (e.g., data plot 1505) and data plot 1510 which shows the rate of positioning degradation (over time) using accelerometer data.
  • image data e.g., data plot 1505
  • data plot 1510 which shows the rate of positioning degradation (over time) using accelerometer data.
  • plot 1505 of the rate of positioning degradation (over time) using image data is a linear function
  • plot 1510 of the rate of positioning degradation (over time) using accelerometer data is a quadratic function meaning that the rate of positioning degradation over time is much greater when using accelerometer data.
  • the position error from image capture devices degrades more due to motion rather than time.
  • the slope of data plot 1505 will increase as the velocity of the image capture device 1 1 16 increases.
  • the rate of positioning degradation encountered using image data is still lower than the rate of positioning degradation encountered using an accelerometer.
  • the circular error probability of determining a position fix at a given time As shown in Figure 15, at time t1 , the circular error probability (CEP) 1520 using either image data or accelerometer data is roughly the same.
  • the size of CEP 1520 indicates that an output position fix using either accelerometer data or image data will fall somewhere within the circle of CEP 1520. As an example, if the size of CEP 1520 is a 20 cm.
  • CEP 1521 shows the circular error probability in determining the position fix using image data at a time t2. Due to the linear function of plot 1505, the size of CEP 1521 grows at a much slower rate that the size of CEP 1522 which shows the circular error probability in determining the position fix using accelerometer data at t2. Thus, at time t2, if the size of CEP 1521 now represents a 30 cm. radius, it means that the determined movement, and in turn the position fix, of device 1 100 or cellular device 1200 when relying upon image data is accurate within a 30 cm. radius of the actual position of device 1 100 or cellular device 1200 at that time.
  • CEP 1522 now represents a 100 cm.
  • the determined movement, and in turn the position fix, of device 1 100 or cellular device 1200 when relying upon accelerometer data is now accurate within a 100 cm. radius of the actual position of device 1 100 or cellular device 1200 at that time.
  • accelerometer data alone in determining how far device 1 100 or cellular device 1200 has moved.
  • weighting of data may be implemented by dual-sensor averaging logic 1406 based upon how old either of accelerometer data 1421 and/or image data 1422 is.
  • image data 1422 can be weighted with a higher value as a metric of determining locally measured movement than accelerometer data 1421 .
  • accelerometer data 1421 and image data 1422 can be equally weighted (e.g., 0.5 for both accelerometer data 1421 and image data 1422) as they both result in similar CEPs.
  • movement data 1425 can represent an average value of locally measured movement of device 1 100 or cellular device 1200 based upon acceleration data 1421 and image data 1422, or can be a weighted average of locally measured device movement information based upon acceleration data 1421 and image data 1422.
  • dual-sensor confidence estimating logic 1407 receives accelerometer data 1421 and image data 1422 and generates movement data 1426 as an input to position fix smoothing logic 1410.
  • dual- sensor confidence estimating logic 1407 is used to determine if either of accelerometer data 1421 or image data 1422 has become an unreliable metric for determining the movement of device 1 100 or cellular device 1200.
  • a respective confidence metric can be generated by dual-sensor confidence estimating logic 1407 for each of accelerometer data
  • dual-sensor confidence estimating logic 1407 can use respective Kalman filters to identify outlier data points from accelerometer data 1421 and image data 1422.
  • dual-sensor confidence estimating logic 1407 can use another filtering logic such as Robust Estimation, Least Square fitting methods, particle filtering, Hough transform, Random Sample Consensus (RANSAC), non-linear variants, such as sigma-editing, both a priori and a posteriori, and non-optimal (in a Gaussian sense) linear variants, instead of, or in addition to, the use of Kalman filter 141 1.
  • Least Square fitting methods include using sequential least squares processing which is similar to Kalman filtering with the last N position and orientation states in the filter. These outlier data points would then be discarded by dual-sensor confidence estimating logic 1407 and not used for position fix smoothing.
  • the values of accelerometer data 1421 and image data include using sequential least squares processing which is similar to Kalman filtering with the last N position and orientation states in the filter. These outlier data points would then be discarded by dual-sensor confidence estimating logic 1407 and not used for position fix smoothing.
  • the disparity between these sets of data may indicate that one should not be used as an input to position fix smoothing logic 1410. For example, greater weight may be given to image data 1422 due to the lower rate of positioning degradation over time when using image data. Thus, if there is a disparity between accelerometer data 1421 and image data 1422 which exceeds a pre-determined parameter, dual-sensor confidence estimating logic 1407 will discard accelerometer data 1421 and send image data 1422 alone to position fix smoothing logic 1410.
  • accelerometer data 1421 when neither accelerometer data 1421 nor image data 1422 is available for position fix smoothing a default condition in which the position fix 1384 is output from position fix smoothing logic 1410. Additionally, in accordance with one embodiment, if accelerometer data 1421 is deemed as having expired, it will not be used by LMM smoothing logic 1 130. For example, accelerometer data 1421 is combined with a determined GNSS position fix 1384, which defines an initializing time for the accelerometer 1 1 15, to derive a subsequent position fix.
  • the circular error probability of a position fix using accelerometer data 1421 may be determined to be too great in accurately determining a position fix.
  • the accelerometer data 1421 may be discarded or disregarded by LMM smoothing logic 1 130 in determining or disciplining a position fix.
  • Figure 16A depicts a diagram of a pattern where locally measured movement information (e.g., 1421 of Figure 14) from an accelerometer (e.g., 1 1 15 of Figure 1 1 D) to improve position determination, according to one embodiment.
  • Axis 1601 A, 1602A, 1603A are for time for an accelerometer measurement of movement, a position fix, and a smoothed position fix respectively.
  • Axis 1601 B is for distance measured by the accelerometer 1 1
  • axis 1602B is for position fix distance (e.g., 1384 of Figure 13) output by GNSS chipset 1 107
  • axis 1603B is for a smoothed position fix (e.g., 1429 of Figure 14) output by LMM smoothing logic 1 130.
  • Plot 1612A represents locally determined measurements of the movement of device 1 100 or cellular device 1200 using accelerometer 1 1 15.
  • the distance travelled by device 1 100 or cellular device 1200 during a given epoch is represented by the vertical distance between two data points (e.g., 1612B and 1612C, or 1614B and 1614C).
  • the position of device 1 100 or cellular device 1200 is known using, for example, a position fix 1384 generated by GNSS chipset 1 107.
  • Time tO is also used as the initializing time for accelerometer 1 1 15.
  • Subsequent position fixes 1384 generated by GNSS chipset 1 107 are represented by plot 1614A.
  • the known position of device 1 100 or cellular device 1200 as shown as a data point at tO, as well as the locally measured movement information represented by plot 1612A provide position fixes for determining the location at which device 1 100 or cellular device 1200 is located based upon locally measured accelerometer distance 1421.
  • Plot 1616A represents discreet smoothed position fixes output by LMM smoothing logic 1 130 based upon detecting outlier data points in plot 1614A (e.g., 1614C of Figure 16A) which may result from various factors which affect the precision with which a GNSS receiver can determine its position.
  • Distance measured by the accelerometer 1 1 15 is an example of locally measured movement information.
  • the locally measured accelerometer distance 1421 is locally measured movement of the real distance of a device 1 100 or cellular device 1200 as it is moving.
  • the locally measured accelerometer distance 1421 is used to correct the position fix distances 1614C which indicates that device 1 100 or cellular device 1200 moved backwards at data point 1614C.
  • data from accelerometer 1 1 15, as shown in plot 1612A indicate that device 1 100 or cellular device 1200 continued moving at a constant rate.
  • the distance travelled as determined by GNSS chipset 1 107 can be determined as Pi - P 2 (e.g., data point 1614B - data point 1614C).
  • the distance travelled e.g., Pi - P 2
  • a locally measured movement (LMM) position shift distance for the same epoch e.g., 1612B - 1612C
  • a selected threshold value e.g. 1 .5 times the LMM position shift distance or greater
  • the GNSS position fix at P 2 e.g., 1614C
  • the LMM position shift distance e.g., 1612B - 1612C
  • the previous GNSS position fix e.g. P-i (data point 1614B)
  • data point 1616B of smoothed position fix plot 1616A approximates the accelerometer distance data point 1612C rather than position fix distance data point 1614C.
  • the selected threshold value used to identify an outlier data point can be larger or smaller than that discussed above.
  • LMM smoothing logic 1 130 upon detecting outlier data such as data point 1614C, discards that outlier position fix 1384, and replaces it with a new smoothed position fix 1429 of Figure 14 (e.g., data point 1616B of Figure 16A) based at least in part on the data from accelerometer 1 1 15.
  • the accelerometer data 1421 from accelerometer 1 1 15 can be used as a replacement to an outlier position fix data point (e.g., 1614C) to derive a smoothed position fix data point (e.g., 1616B).
  • an outlier position fix data point e.g., 1614C
  • a smoothed position fix data point e.g., 1616B
  • the accelerometer reaches a limiting factor at which time data from accelerometer 1 1 15 may be considered unreliable as discussed above at which point accelerometer 1 1 15 can be set to zero.
  • Figure 16B depicts a diagram of a pattern where locally measured movement information (e.g., plot 1618A of Figure 16B) from an image capture device (e.g., 1 1 16 of Figure 1 1 D) to improve position determination, according to one embodiment.
  • Axis 1602A, 1603A, 1604A are for time
  • axis 1604B is for distance measured by the image capture device 1 1 16
  • axis 1602B is for position fix distance (e.g., data plot 1614D)
  • axis 1603B is for smoothed position fixes (e.g., data plot 1616C).
  • Distance measured by the image capture device 1 1 16 is another example of locally measured movement information.
  • the locally measured image capture device distances shown in plot 1618A represent locally measured movements of the real distance device 1 100 or cellular device 1200 has moved since time tO.
  • the locally measured image capture device distance 1618B is used to correct the position fix distance 1614E which has been identified as an outlier by LMM smoothing logic 1 130.
  • the distance travelled by device 1 100 and/or cellular device 1200 e.g., position fix 1384 as shown at data point 1614E of Figure 16B
  • LMM locally measured movement
  • data point 1616D of smoothed position fix plot 1616C approximates the image measured distance data point 1618B rather than position fix distance data point 1614D. Therefore, the plot of the smoothed position fix distances 1616C approximates the data shown in plot 1618A.
  • Figure 16C depicts a diagram of a pattern where locally measured movement information data plots 1612D and 1618D respectively from accelerometer 1 1 15 and image capture device 1 1 16 are continuously integrated together to improve position determination during a period of time. Again, the data points comprising data plots 1612D and 1618D are based upon accelerometer data 1421 and image data 1422 respectively.
  • Axis 1601A, 1602A, 1603A and 1604A are for time, axis 1601 B represents distances measured by the accelerometer 1 1 15 as shown by plot 1612D, axis 1602B represents position fix distances as shown by plot 1614G, axis 1603B represents smoothed position fixes as shown by plot 1616E, and axis 1604B is for distances measured by image capture device 1 1 16 as shown by plot 1618D.
  • Distances represented in plots 1612C and 1618D are based upon data from accelerometer 1 1 15 and image capture device 1 1 16 and are examples of locally measured movement information. In the example of Figure 16C, distances from plots 1612C and 1618D are used to correct an outlier position fix 1614G.
  • the data from accelerometer 1 1 15 is differing somewhat from that received from image capture device 1 1 16, possibly due to the greater increase in positioning error over time exhibited by accelerometers. Therefore, the curve of the smoothed position fix as shown by plot 1616E approximates the curve of plot 1618D rather than plot 1612D as the data from image capture device 1 1 16 is used as the basis for correcting the outlier position fix 16141.
  • the distance travelled by device 1 100 and/or cellular device 1200 e.g., position fix 1384 as shown at data point 1614G of Figure 16C
  • LMM locally measured movement
  • Figure 16D depicts a diagram of a pattern where the position determination is improved by alternating the use of non-overlapping locally measured movement information 1612G and 1618G from accelerometer 1 1 15 and image capture device 1 1 16 respectively, according to one embodiment.
  • the locally measured movement information from accelerometer 1 1 15 e.g., accelerometer data 1421
  • image capture device 1 1 16 e.g., image data 1422
  • the locally measured accelerometer data 1612G and the image capture device's data 1618G are used to correct the position fix distances as represented by plot 1614J as needed.
  • the position fix represented by data point 1614J is identified as an outlier data point and is replaced based upon image data 1422 due to the timeout limit 1620 having been reached for data from accelerometer 1 1 15. Therefore, the curve of the smoothed position fixes as shown by plot 1616H utilizes image data 1422 to derive a position fix using data point 1618H to replace data point 1614J.
  • Figures 16A-16D were depicted with movement information from one sensor or two sensors. Also, the features dual-sensor averaging logic 1406 and dual-sensor confidence estimating logic 1407 have not been represented in Figures 16A-16D. Additionally, various embodiments are well suited to a different number of sensors as well.
  • device 1 100 or cellular device 1200 was used as example devices.
  • most cellular telephones currently are configured with image capture devices, GPS/GNSS chipsets, and accelerometers which can be in accordance with various embodiments.
  • various embodiments are not limited to cellular devices alone and can be implemented on a wide variety of devices (e.g., 1 100 of Figures 1 1 A-E) including, but not limited to, laptop computers, tablet computers (e.g., Microsoft Surface, Apple iPads and iPad mini families; and Samsung Galaxy Tab families), personal digital assistants (PDAs), surveying devices such as surveying rover units, a surveying data collector, a vehicular system, or the like.
  • PDAs personal digital assistants
  • surveying devices such as surveying rover units, a surveying data collector, a vehicular system, or the like.
  • FIG 17A is a block diagram of a positioning component 1700 which provides locally measured movement smoothing of position fixes for an image capture capable device in accordance with at least one embodiment.
  • the image capture capable device with which positioning component 1700 is coupled may comprise a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera.
  • positioning component 1700 will be described as being coupled with a "camera”.
  • the positioning component 1700 includes a bus 1718, a GNSS chipset 1707, a processor 1709, memory 1710, a display 1712, at least one accelerometer 1715, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), and operating system 1 160.
  • Components 1707, 1709, 1710, 1712, and 1715, are all connected with the bus 1718.
  • the function of the components listed above will not be repeated as they have been described in detail with reference to Figures 1 1 A-E and 12A-D.
  • positioning component 1700 further comprises an input/output (I/O) connection 1710.
  • I/O connection 1710 is used to facilitate the exchange of data between positioning component 1700 and a camera with which it is coupled.
  • I/O connection 1710 in accordance with various embodiments include, but are not limited to, implementations of the IEEE 1394 serial bus interface standards more commonly known as "Firewire” and a Universal Serial Bus (USB) connection, or both. Firewire and USB are widely used in the consumer market and in at least embodiment, both connections are provided by I/O connection 1710. It is noted that I/O connection 1710 is not limited to these implementations alone and that other industry standard, or proprietary, connectors and communication protocols may be implemented as I/O connection 1710. Increasingly, the market is overwhelmingly dominated by digital cameras which may, or may not have integrated position fix generating capabilities.
  • positioning component 1700 can be coupled with a camera to provide positioning information based upon position fixes generated by GNSS chipset 1707, or by a GNSS chipset internal to the camera to which it is coupled. In so doing, positioning component 1700 facilitates using locally measured movement smoothing of position fixes generated by the camera itself, accelerometer 1715, or by GNSS chipset 1707. It is noted that in at least one embodiment, GNSS chipset 1707 can be a high precision GNSS receiver such as 1 107 of Figure 13. Furthermore, while not shown in Figure 17A, other components described above with reference to Figures 1 1A-E and 12A-D can be implemented by positioning component 1700.
  • Examples include, but are not limited to, satellite receiver 1 106, FM radio receiver 1 108, cellular transceiver 1 1 1 1 , and Wi-Fi transceiver 1 1 14 which can be used to receive GNSS corrections data from sources outside of positioning component 1700.
  • Display 1712 can be used to display for users a visual representation, using a map display, of the location at which they are located as determined by LMM smoothing logic 1 130.
  • FIG. 17B is a block diagram of a locally measured movement component 1750 which provides locally measured movement smoothing of position fixes for GNSS receivers in accordance with at least one embodiment.
  • the locally measured movement component 1750 includes a bus 1718, a processor 1709, memory 1710, a display 1712, at least one accelerometer 1715, an image capture device 1716, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), and operating system 1 160.
  • Components 1709, 1710, 1712, 1715, and 1716 are all connected with the bus 1718.
  • the function of the components listed above will not be repeated as they have been described in detail with reference to Figures 1 1 and 17A.
  • locally measured movement component 1750 can be coupled with a GPS/GNSS receiver to provide positioning information including position fix smoothing based upon position fixes generated by a GNSS chipset internal to the GPS/GNSS receiver to which it is coupled. In so doing, locally measured movement component 1750 facilitates using locally measured movement smoothing of position fixes generated by the GPS/GNSS receiver itself, accelerometer 1715, or by GNSS chipset 1707. While not shown in Figure 17B, other components described above with reference to Figure 1 1 D can be implemented by locally measured movement component 1750. Examples include, but are not limited to, satellite receiver 1 106, FM radio receiver 1 108, cellular transceiver 1 1 1 1 , and Wi-Fi transceiver 1 1 14.
  • Figure 18 is a flowchart of a method 1800 of improving position determination of a device using locally measured movement in accordance with at least one embodiment.
  • a first position fix of a Global Navigation Satellite System (GNSS) receiver system (e.g., GNSS chipset of Figures 1 1A-E and 12A-D) of a device is accessed.
  • LMM smoothing logic 1 130 obtains position fixes (e.g., 1384 of Figure 13) either directly from a GNSS receiver system, or from a memory to which those position fixes are stored.
  • the GNSS receiver system comprises a plurality of sub-systems and wherein at least one of said plurality of sub-systems is accessible by a processor, or the GNSS receiver system comprises a GNSS chipset.
  • the device of which the GNSS receiver is a portion is a mobile device that may easily be moved from a first position to a second position that is different from the first position.
  • Some examples of devices that are easily moved are those that are hand-holdable such as cellular telephones and tablet computers or wearable devices such as watches, rings, bracelets, and the like.
  • the device itself may be coupled with or a portion of a mobile entity such as a vehicle.
  • the device may be a portion of an unmanned aerial vehicle (also known as a remotely piloted vehicle or a drone).
  • a second position fix of said GNSS receiver system is accessed at a subsequent time to said first position fix.
  • plots 1614A, 1614D, 1614G, and 16141 show plots of data points representing a plurality of position fixes from a GNSS receiver or GNSS chipset 1 107.
  • locally measured device movement information is obtained from at least one sensor that is in a known physical relationship to the device for a time period after the first position fix and no later than the second position fix.
  • the known physical relationship may be at a known location that is either internal or external to the device. For example, with respect to an externally located sensor, the location and orientation of the sensor is known with respect to the device and other components of the device.
  • the senor may be physically separate from the device at a fixed distance and relationship with respect to the device and components of the device (e.g., in one embodiment both the device and the sensor may be coupled to one another in a fixed relationship with hook and loop fasteners, adhesive, or other fasteners; in another embodiment both the device and the sensor may commonly coupled separately, but in a fixed relationship with one another, to a shared intermediate item such as, but not limited to, a pole or a portion of an unmanned aerial vehicle).
  • the sensor is selected from at least one of an image capture device (e.g., 1 1 16 of Figure 1 1 D) and at least one accelerometer (e.g., 1 1 15 of Figure 1 1 D).
  • accelerometer data 1421 and image data 1422 are received by LMM accessing logic 1402.
  • the accelerometer data 1421 and/or image data 1422 is retrieved from a memory.
  • the accelerometer data 1421 and/or image data 1422 is retrieved from a memory.
  • accelerometer data 1421 and the image data 1422 can be sent directly to position fix smoothing logic 1410.
  • accelerometer data 1421 and image data 1422 can be sent to dual-sensor processing logic 1405.
  • dual-sensor averaging logic 1406 of dual-sensor processing logic 1405 creates an average value of locally measured device movement information received from accelerometer 1 1 15 and image capture device 1 1 16 to indicate the movement of the device.
  • the average value of locally measured device movement information comprises a weighted average.
  • dual-sensor confidence estimating logic 1407 of dual-sensor processing logic 1405 is configured to determine if the locally measured device movement information (e.g., accelerometer data 1421 ) received from accelerometer 1 1 15 has become an unreliable metric for determining the movement of a device. In response to determining that the locally measured device movement information received from accelerometer 1 1 15 has become an unreliable metric for determining the movement of a device, dual-sensor processing logic 1405 is configured to use the locally measured device movement information (e.g., image data 1422) received from image capture device 1 1 16 for disciplining the second position fix.
  • the locally measured device movement information e.g., accelerometer data 1421
  • position fix smoothing logic 1410 is configured to adjust erroneous position fixes which may be generated by the GNSS receiver system due to, for example, multipath signal error which can cause erroneous calculation of a position fix.
  • position fix smoothing logic 1410 comprises a Kalman filter 141 1 which is configured to determine that the second position fix comprises an outlier value.
  • position fix smoothing logic 1410 can use another filtering logic such as Robust Estimation, Least Square fitting methods, particle filtering, Hough transform, Random Sample Consensus (RANSAC), non-linear variants, such as sigma-editing, both a priori and a posteriori, and non-optimal (in a
  • Kalman filter 141 1 is configured to detect when outlier values of position fixes 1384 (e.g., 1614C, 1614E, 16141, and 1614K respectively) occur. In accordance with at least one embodiment, Kalman filter 141 1 is configured to discard a position fix which is identified as an outlier value. In at least one embodiment, Kalman filter 141 1 is configured to use locally measured device movement information originating from accelerometer 1 1 15 and/or image capture device 1 1 16 and received either from LMM accessing logic 1402 or dual-sensor processing logic 1405.
  • the GNSS receiver system comprises a plurality of sub-systems of which at least one of the sub-systems is accessible by a processor and the accessing of position fixes, obtaining locally measured device movement information, and improving the quality of measurement of the second position fix are performed by one or more hardware processors located in the GNSS receiver system.
  • the GNSS receiver system comprises a GNSS chipset 1 107 and the accessing of position fixes, obtaining locally measured device movement information, and improving the quality of measurement of the second position fix are performed by one or more hardware processors located in the device and outside of the GNSS chipset (e.g., 1 109 of Figures 1 1A-E and/or 12A-D).
  • the GNSS receiver system comprises a GNSS chipset 1 107 and the accessing of position fixes, obtaining locally measured device movement information, and improving the quality of measurement of the second position fix are performed by one or more hardware processors (e.g., 1354 of Figure 13) located in GNSS chipset.
  • one or more hardware processors e.g., 1354 of Figure 13
  • a method of improving position determination of a device using locally measured movement comprising:
  • GNSS Global Navigation Satellite System
  • ADC analog-to-digital converter
  • a non-transitory computer readable storage medium having computer readable instructions stored thereon for causing a computer system to perform a method of improving position determination of a device using locally measured movement, said method comprising:
  • GNSS Global Navigation Satellite System
  • ADC analog-to-digital converter
  • a system for improving position determination of a device using locally measured movement comprising:
  • LMM locally measured movement smoothing logic component implemented by a processor for accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device and for accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
  • GNSS Global Navigation Satellite System
  • an image capture device for obtaining locally measured device movement information from at least one sensor, that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix; and wherein said LMM smoothing logic is further configured for improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
  • At least one accelerometer which is not a component of an inertial measurement unit (IMU), that is in a known physical relationship to said device, for obtaining locally measured device movement information for a time period after said first position fix and no later than said second position fix.
  • IMU inertial measurement unit
  • a dual-sensor averaging logic implemented by said processor for determining an average value of locally measured device movement information received from said accelerometer and said image capture device to indicate the movement of said device.
  • a dual-sensor averaging logic implemented by said processor for determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device and for using the locally measured device movement information received from said image capture device for disciplining said second position fix in response to determining information received from said accelerometer is unreliable for determining the movement of said device.
  • a microphone configured for capturing audio information
  • ADC analog-to-digital converter

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

A method of improving position determination of a device using locally measured movement. A first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device is accessed. A second position fix of the GNSS receiver system is accessed at a time subsequent to the first position fix. Locally measured device movement information is obtained from at least one sensor, that is in a known physical relationship to the device, for a time period after the first position fix and no later than the second position fix, wherein the at least one sensor comprises an image capture device. The quality of measurement of the second position fix is improved by disciplining the second position fix based on the locally measured device movement information.

Description

LOCALLY MEASURED MOVEMENT SMOOTHING OF GNSS POSITION FIXES
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to and claims priority to and benefit of U.S. Patent Application No. 14/268,898 filed on May 2, 2014 entitled "LOCALLY MEASURED
MOVEMENT SMOOTHING OF GNSS POSITION FIXES" by Shawn D. Weisenburger, having Attorney Docket No. TRMB-4134.CIP1.
[0002] U.S. Application No. 14/268,898 is a continuation-in-part application of and claims the benefit of co-pending U.S. Patent Application No. 13/954,995 filed on July 31 , 2013, entitled "ROLLING SEQUENTIAL BUNDLE ADJUSTMENT," by Shawn D. Weisenburger, having Attorney Docket No. TRMB-4134, and assigned to the assignee of the present application
[0003] Application Serial Number 14/268,898 claims priority to and is a continuation-in-part to the co-pending patent application, Serial Number 14/035,884, Attorney Docket Number TRMB-3172.CIP1 , entitled "EXTRACTING PSEUDORANGE INFORMATION USING A CELLULAR DEVICE," by Richard Rudow et al, with filing date Sept. 24, 2013, and assigned to the assignee of the present application.
[0004] U.S. Patent Application No. 14/035,884 claims priority to and benefit of then copending U.S. Provisional Patent Application No. 61/746,916, filed on December 28, 2012 entitled, "IMPROVED GPS/GNSS ACCURACY FOR A CELL PHONE" by Rudow et al., having Attorney Docket No. TRMB-3172.PRO, and assigned to the assignee of the present application.
[0005] Application Serial Number 14/035,884, also claims priority to and is a continuation- in-part to the co-pending patent application, Serial Number 13/842,447, Attorney Docket Number TRMB-3172, entitled OBTAINING PSEUDORANGE INFORMATION USING A CELLULAR DEVICE," by Richard Rudow, with filing date March 15, 2013, and assigned to the assignee of the present application.
BACKGROUND
[0006] Photogrammetry is the practice of determining the geometric properties of objects from photographic images. In the simplest example, the distance between two points that lie on a plane parallel to the photographic image plane can be determined by measuring their distance on the image, if the scale s of the image is known. This is done by multiplying the measured distance by 1/s.
[0007] A more sophisticated technique, called stereo photogrammetry, involves estimating the three-dimensional coordinates of points on an object. These are determined by measurements made in two or more photographic images taken from different positions (see stereoscopy). Common points are identified on each image. A line of sight (or ray) can be constructed from the camera location to the point on the object. It is the intersection of these rays (triangulation) that determines the three-dimensional location of the point. More sophisticated algorithms can exploit other information about the scene that is known a priori, for example symmetries, in some cases allowing reconstructions of 3-D coordinates from only one camera position.
[0008] There are known current shortcomings of the available solutions. Indeed, the optimal solution was to use a bundle adjustment which is computationally expensive due to the fact that all data is required before the solution can be computed. This means a bundle adjustment per se is not appropriate for real-time implementation.
[0009] Alternative solutions include the usage of a Kalman filter. However, this approach fails to take advantage of the connection of the current measurements to previously estimated position and orientation states.
[0010] A third solution is to use pairs or triplets of images to estimate the relative motion between the frames. This solution suffers from drift due to the loss of information connecting the measurements to images outside the pair/triplet used for the estimation.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The accompanying drawings, which are incorporated in and form a part of this application, illustrate embodiments of the subject matter, and together with the description of embodiments, serve to explain the principles of the embodiments of the subject matter. Unless noted, the drawings referred to in this brief description of drawings should be understood as not being drawn to scale. Herein, like items are labeled with like item numbers.
[0012] FIGURE 1 is the block diagram of an apparatus of the present technology configured to implement a rolling sequential bundle adjustment algorithm in order to obtain the coordinates and orientation of an image-capturing device in real time.
[0013] FIGURE 2 illustrates a frame from the 720 p video (1280 x 720) sequence taken at 25 frames per second by Nikon D 800 camera using 35 mm lens for the purposes of the present technology.
[0014] FIGURE 3 depicts light beams passing through the pinhole of a pinhole camera for the purposes of the present technology.
[0015] FIGURE 4 shows 2-D projections of 3-D points on a plane by using a pinhole camera for the purposes of the present technology.
[0016] FIGURE 5 illustrates x- and z-coordinates of the 2-D projection of a 3-D point through a projection center of a pinhole camera for the purposes of the present technology.
[0017] FIGURE 6 depicts an image including a number of segments, each segment including a minimum number of tracked features for the purposes of the present technology.
[0018] FIGURE 7 illustrates the solution of collinearity equations utilized for estimation of camera position and orientation for each frame and for estimating 3-D coordinates of the tracked key-points system for the purposes of the present technology.
[0019] FIGURE 8 shows the sequential update in estimation of camera positions and orientation from the initial N frames to the subsequent (N+1 ) frames while using the rolling sequential bundle adjustment algorithm for the purposes of the present technology. [0020] FIGURE 9 depicts the comparison of the output camera trajectories obtained by employing the rolling sequential bundle adjustment algorithm of the present technology and obtained by employing the prior art bundle adjustment algorithm for values of number of frames used: N = 25, 50, and 100.
[0021] FIGURE 10 illustrates the comparison of positions of the camera obtained by employing the rolling sequential bundle adjustment algorithm of the present technology and obtained by employing the prior art bundle adjustment algorithm for values of number of frames used: N = 25, 50, and 100.
[0022] FIGURE 1 1 A depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0023] FIGURE 1 1 B depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0024] FIGURE 1 1 C depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0025] FIGURE 1 1 D depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0026] FIGURE 1 1 E depicts a block diagram of a device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0027] FIGURE 12A depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0028] FIGURE 12B depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0029] FIGURE 12C depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment.
[0030] FIGURE 12D depicts a block diagram of a cellular device for implementing locally measured movement (LMM) pseudorange smoothing, according to one embodiment. [0031] FIGURE 13 depicts a block diagram of a GNSS receiver, according to one embodiment.
[0032] FIGURE 14 is a block diagram of locally measured movement smoothing logic in accordance with at least one embodiment.
[0033] FIGURE 15 is a graph showing the respective rates of positioning degradation using image data and accelerometer data.
[0034] FIGURES 16A-16D are graphs of data plots showing the replacement of outlier position fix data points in accordance with various embodiments.
[0035] FIGURE 17A is a block diagram of a positioning component which provides locally measured movement smoothing of position fixes for an image capture device in accordance with at least one embodiment.
[0036] FIGURE 17B is a block diagram of a locally measured movement component which provides locally measured movement smoothing of position fixes for GNSS receivers in accordance with at least one embodiment.
[0037] FIGURE 18 is a flowchart of a method of improving position determination of a device using locally measured movement in accordance with at least one embodiment.
[0038] Figures 19A-19F show some implementations of a device of Figures 1 1A-1 1 E in accordance with various embodiments.
DESCRIPTION OF EMBODIMENTS
[0039] Reference will now be made in detail to various embodiments of the subject matter, examples of which are illustrated in the accompanying drawings. While various
embodiments are discussed herein, it will be understood that they are not intended to limit to these embodiments. On the contrary, the presented embodiments are intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope the various embodiments as defined by the appended claims. Furthermore, in the following Description of Embodiments, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present subject matter. However, embodiments may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the described embodiments.
[0040] Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the description of embodiments, discussions utilizing terms such as "accessing," "obtaining," "improving," "using," "discarding," and "determining," to transform the state of a computer system," or the like, refer to the actions and processes of a computer system, data storage system, storage system controller, microcontroller, hardware processor, or similar electronic computing device or combination of such electronic computing devices. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system's/device's registers and memories into other data similarly represented as physical quantities within the computer system's/device's memories or registers or other such information storage, transmission, or display devices.
[0041] The present technology addresses and provides a solution to the following problem: How to efficiently estimate camera motion from a set of video frames or image sequences in a way feasible for real-time implementation. The present technology further provides a solution for detecting and correcting, or "smoothing" position fixes generated by a GNSS receiver system using locally measured movement information received from one of an accelerometer and/or an image capture device.
[0042] The main idea is to estimate camera motion by using the previous N frames, whereas each new frame can be sequentially added to the estimation while the oldest frame is removed from the state. The sequential addition of measurements from a new frame is much more efficient than completely re-estimating the last N frames in a bundle adjustment. [0043] In the embodiment of the present technology, FIGURE 1 is the block diagram of an apparatus 10 configured to implement a rolling sequential bundle adjustment algorithm in order to obtain the coordinates and orientation of the image-capturing device 14 in real time.
[0044] In the embodiment of the present technology, the image-capturing device 14 is mounted on the mobile platform 12. The mobile platform is selected from the group consisting of: a car, a truck, a bike, a motorbike, a boat, etc.
[0045] In an embodiment of the present technology, the image capturing device 14 is configured to perform an image-capture of a scene (not shown) in a software mode (SW) further comprising a memory 18 loaded with an image processing algorithm 21 , and a general purpose processor (or a Digital Signal Processor, or a Graphic Processing Unit, etc.) 20 configured to analyze the set of K-images 24, 26, ..., 28 collected in each i-frame by enabling the image processing algorithm 21.
[0046] In an embodiment of the present technology, the image capturing device 14 is configured to perform an image-capture of a scene (not shown) in a hardware mode (HW) further comprising an ASIC chip (or FPGA chip) (not shown) (in analog or digital modes) configured to analyze the set of K-images 24, 26, 28 by implementing in hardware the image processing algorithm 21 .
[0047] In an embodiment of the present technology, the image processing algorithm 21 comprises the rolling sequential bundle adjustment algorithm. Please, see discussion below. In an embodiment of the present technology, the image capturing device 14 is selected from the group consisting of: a digital camera; a digital video camera; a digital camcorder; a stereo digital camera; a stereo video camera; a motion picture camera; and a television camera.
[0048] In an embodiment of the present technology, as shown in FIGURE 3, the image capturing device 14 can be modeled by a pinhole camera 108 that captures light beams 104 and 106 passing through the pinhole 102.
[0049] Motion picture or cine cameras record movement at regular intervals in a series of frames. Television and video cameras are configured to record movement electronically for broadcast and storage on magnetic media or optical disks. Camcorders are video cameras which contain both the image sensor and recording media in a single unit. [0050] But for the exclusion of pinhole cameras, which focus the image on the film through a tiny hole, all other cameras use lenses 16 (of FIGURE 1 ) for focusing. The focal length of lenses, i.e., the distance between the rears of the lenses (when focused on infinity) the imaging device, determines the angle of view, or field of view (FOV) (not shown) and the size of objects as they appear as images 24, 26, and ...28. The image is focused on that surface by adjusting the distance between the lenses and the surface.
[0051] In an embodiment of the present technology, referring still to FIGURE 1 , the lens 16 further comprises regular rectilinear lens. Rectilinear lens is a lens in which straight lines are not substantially curved or distorted.
[0052] In an embodiment of the present technology, the lens 16 further comprises a fisheye lens. A fisheye lens is a wide-angle lens that takes in an extremely wide, hemispherical image. Fisheye lenses are often used to shoot broad landscapes. Fisheye lenses achieve extremely wide angles of view by forgoing a rectilinear image, opting instead for a special mapping (for example: equisolid angle), which gives images a characteristic convex appearance.
[0053] In geometry, a solid angle (symbol: Ω) is the two-dimensional angle in three- dimensional space that an object subtends at a point. It is a measure of how large the object appears to an observer looking from that point. In the International System of Units (SI), a solid angle is a dimensionless unit of measurement called a steradian (symbol: sr). A small object nearby may subtend the same solid angle as a larger object farther away.
[0054] In an embodiment of the present technology, the image capturing device 14 further comprises a display (not shown) further comprising an optical display, a liquid crystal display (LCD), or a screen.
[0055] In an embodiment of the present technology, the image capturing device 14 further comprises a stereo digital camera. A stereo camera is a type of camera with two or more lenses. This allows the camera to simulate binocular vision, and therefore gives it the ability to capture three-dimensional images, a process known as stereo photography.
[0056] Stereo cameras may be used for making stereo views and 3-D pictures for movies, or for range imaging. 3-D Images Ltd., located in UK, produces a 3-D Digital Stereo camera- a fully automatic, time synchronized, digital stereo camera. Point Grey Research Inc., located in Canada produces binoculars or multiple array cameras that can provide full field of view 3 D measurements in an unstructured environment.
[0057] In an embodiment of the present technology, referring still to FIGURE 1 , the additional navigation device 22 (including the navigation processor 23) is configured to provide the initial position coordinates and orientation of the image- capturing device 14.
[0058] In an embodiment of the present technology, the additional navigation device 22 is selected from the group consisting of: a smart phone; a tablet, a laptop, and a personal navigation device.
[0059] A personal navigation assistant (PNA) also known as personal navigation device or portable navigation device (PND) is a portable electronic product which combines a positioning capability (such as GPS) and navigation functions
[0060] The latest generation of PNA have sophisticated navigation functions and feature a variety of user interfaces including maps, turn-by-turn guidance and voice instructions. To reduce total cost of ownership and time to market, most modern PNA devices such as those made by Garmin Ltd., Mio Technology Ltd. or TomTom International BV. are running an off- the-shelf embedded operating system such as Windows CE or Embedded Linux on commodity hardware with OEM versions of popular PDA Navigation software packages such as TomTom Navigator, l-GO 2006, Netropa IntelliNav iGuidance, or Destinator.
[0061] Other manufacturers like Garmin and Magellan prefer to bundle their own software developed in-house. Because many of these devices use an embedded OS, many technically inclined users find it easy to modify PNAs to run third party software and use them for things other than navigation, such as a low-cost audio-video player or PDA replacement.
[0062] In an embodiment of the present technology, referring still to FIGURE 1 , the image- capturing device 14 (camera) is calibrated. This calibration is used to correct the images for lens 16 distortions. Typical calibrations correct for principal distance (focal length), principal point offset, radial distortion, tangential distortion, and other effects that can be found in any text book on photogrammetry. All image measurements are corrected with these calibration parameters. [0063] In an embodiment of the present technology, referring still to FIGURE 1 , the calibrated image-capturing device 14 is configured to collect the K images (24, 26, through 28) in the i-frame; i is an integer
[0064] In an embodiment of the present technology, referring still to FIGURE 1 , within each of the K images (24, 26, through 28) key-points are identified. The key-points are the features that are common in multiple frames. For example, in the first frame the key-points are: the key-point 30 in the image #1 24, the key-point i2 32 in the image #2 26, and key- point iK 34 in the image #K 28. These key-points should be tracked in the following frames. See discussion below.
[0065] In an embodiment of the present technology, referring still to FIGURE 1 , the obtained image data for the key-points ( 30 in the image #1 24; i2 32 in the image #2 26; ... iK 34 in the image #K 28) is used within the bundle adjustment algorithm (please, see the discussion below) to estimate the position and orientation of the image-capturing device 14: the '6'- vector 40 including the position coordinates (x, y, z) as well as the orientation angels Θ, φ, and ψ. The obtained image data for the key-points ( 30 in the image #1 24; i2 32 in the image #2 26; ... iK 34 in the image #K 28) is also used within the bundle adjustment algorithm (please, see the discussion below) to obtain the position coordinates of the key- points: position coordinates 42 (xM, yn, zM) of the key-point H , the position coordinates 44 (xi2, y,2, zi2) of the key-point i2 , and the position coordinates 46 (xiK, y,K, ziK) of the key-point iK.
[0066] In an embodiment of the present technology, referring still to FIGURE 1 , the algorithm 21 includes the rolling sequential bundle adjustment algorithm, which is the further development of the full bundle adjustment algorithm.
[0067] Given a set of images depicting a number of 3-D points from different viewpoints, the bundle adjustment can be defined as the problem of simultaneously refining the 3-D coordinates describing the scene geometry as well as the parameters of the relative motion and the optical characteristics of the image-capturing device (14 of FIGURE 1 ) employed to acquire these images, according to an optimality criterion involving the corresponding image projections of all points.
[0068] The correspondence problem refers to the problem of ascertaining which parts of one image correspond to which parts of another image, where differences are due to movement of the camera, the elapse of time, and/or movement of objects in the photos. [0069] Given two or more images of the same 3-D scene, taken from different points of view, the correspondence problem refers to the task of finding a set of points in one image which can be identified as the same points in another image. To do this, points or features in one image are matched with the corresponding points or features in another image. The images can be taken from a different point of view, at different times, or with objects in the scene in general motion relative to the image-capturing device (for example, a camera).
[0070] The correspondence problem can occur in a stereo situation when two images of the same scene are used, or can be generalized to the N-view correspondence problem. In the latter case, the images may come either from N different image-capturing devices (cameras) photographing at the same time or from one image-capturing device (camera) which is moving relative to the scene and collecting the image data from N-frames. The problem is made more difficult when the objects in the scene are in motion relative to the camera(s).
[0071] A typical application of the correspondence problem occurs in panorama creation or image stitching— when two or more images which only have a small overlap are to be stitched into a larger composite image. In this case it is necessary to be able to identify a set of corresponding points in a pair of images in order to calculate the transformation of one image to stitch it onto the other image.
[0072] There are two basic ways to find the key-points between two images: the correlation- based; and the feature based.
[0073] The correlation-based method includes checking if one location in one image looks/seems like another in another image.
[0074] The feature-based method includes finding features in an image and seeing if the layout of a subset of features is similar in the two images. To avoid the aperture problem a good feature should have local variations in two directions.
[0075] In computer vision applications the correspondence problem is studied for the case when a computer should solve it automatically with only images as input. Once the correspondence problem has been solved, resulting in a set of image points which are in correspondence, other methods can be applied to this set to reconstruct the position, motion and/or rotation of the corresponding 3-D points in the scene. Example I.
[0076] To find the correspondence between set A [1 ,2,3,4,5] and set B [3,4,5,6,7] find where they overlap and how far off one set is from the other. Here we see that the last three numbers in set A correspond with the first three numbers in set B. This shows that B is offset 2 to the left of A.
[0077] In most camera configurations, finding correspondences requires a search in two- dimensions. However, if the two cameras are aligned to be coplanar, the search is simplified to one dimension - a horizontal line parallel to the line between the cameras. Furthermore, if the location of a point in the left image is known, it can be searched for in the right image by searching left of this location along the line, and vice versa).
[0078] Image rectification is an equivalent, and more often used alternative to perfect camera alignment. Image rectification is usually performed regardless of camera precision because it may be impractical to perfectly align cameras, and even perfectly aligned cameras may become misaligned over time.
[0079] If the images to be rectified are taken from camera pairs without geometric distortion, this calculation can easily be made with a transformation including: (i) X & Y rotation that puts the images on the same plane, (ii) scaling that makes the image frames be the same size, and (iii) Z rotation & skew adjustments that make the image pixel rows directly line up. The rigid alignment of the cameras needs to be known (by calibration) and the calibration coefficients are used by the transform.
[0080] In performing the transform, if the cameras themselves are calibrated for internal parameters, an essential matrix provides the relationship between the cameras.
[0081] The more general case (without camera calibration) is represented by the
fundamental matrix. If the fundamental matrix is not known, it is necessary to find preliminary point correspondences between stereo images to facilitate its extraction.
[0082] There are basically three algorithms for image rectification: planar rectification, cylindrical rectification, and polar rectification. A simple method is to compare small patches between rectified images. This works best with images taken with roughly the same point of view and either at the same time or with little to no movement of the scene between image captures, such as stereo images. [0083] A small window is passed over a number of positions in one image. Each position is checked to see how well it compares with the same location in the other image. Also several nearby locations are also compared for the objects in one image may not be at exactly the same image-location in the other image. It is possible that there is no fit that is good enough. This may mean that the feature is not present in both images, it has moved farther than your search accounted for; it has changed too much, or is being hidden by other parts of the image.
[0084] The notion of Hough transform is important in understanding the bundle adjustment. More specifically, the Hough transform is a feature extraction technique used in image analysis, computer vision, and digital image processing.
[0085] The purpose of the Hough transform technique is to find imperfect instances of objects within a certain class of shapes by a voting procedure. This Hough voting procedure is carried out in a parameter space, from which object candidates are obtained as local maxima in a so-called accumulator space that is explicitly constructed by the algorithm for computing the Hough transform.
[0086] The classical Hough transform was concerned with the identification of lines in the image, but later the Hough transform has been extended to identifying positions of arbitrary shapes, most commonly circles or ellipses.
[0087] There are several examples of a feature-based 3-D reconstruction algorithm.
[0088] Scale-invariant feature transform (or SIFT) is an algorithm in computer vision designed to detect and describe local features in images. The algorithm was published by David Lowe in 1999. This algorithm uses the Hough transform. Applications include object recognition, robotic mapping and navigation, image stitching, 3-D modeling, gesture recognition, video tracking, individual identification of wildlife and match moving. The algorithm is patented in the US; the owner is the University of British Columbia. Please, see US Patent No.: 6,71 1 ,293, entitled "Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image" and issued to David G. Lowe.
[0089] According to the scale-invariant feature transform (or SIFT) algorithm, for any object in an image, interesting points on the object can be extracted to provide a "feature description" of the object. This description, extracted from a training image, can then be used to identify the object when attempting to locate the object in a test image containing many other objects. To perform reliable recognition, it is important that the features extracted from the training image be detectable even under changes in image scale, noise and illumination. Such points usually lie on high-contrast regions of the image, such as object edges.
[0090] Another important characteristic of these features is that the relative positions between them in the original scene shouldn't change from one image to another. For example, if only the four corners of a door were used as features, they would work regardless of the door's position; but if points in the frame were also used, the recognition would fail if the door is opened or closed. Similarly, features located in articulated or flexible objects would typically not work if any change in their internal geometry happens between two images in the set being processed.
[0091] However, in practice SIFT detects and uses a much larger number of features from the images, which reduces the contribution of the errors caused by these local variations in the average error of all feature matching errors.
[0092] Lowe's patented method can robustly identify objects even among clutter and under partial occlusion, because his SIFT feature descriptor is invariant to uniform scaling, orientation, and partially invariant to affine distortion and illumination changes. This section summarizes Lowe's object recognition method and mentions a few competing techniques available for object recognition under clutter and partial occlusion.
[0093] SIFT key-points of objects are first extracted from a set of reference images and stored in a database. An object is recognized in a new image by individually comparing each feature from the new image to this database and finding candidate matching features based on Euclidean distance of their descriptor vectors. From the full set of matches, subsets of key-points that agree on the object and its location, scale, and orientation in the new image are identified to filter out good matches. The determination of consistent clusters is performed rapidly by using an efficient hash table implementation of the generalized Hough transform. Each cluster of 3 or more features that agree on an object and its pose is then subject to further detailed model verification and subsequently outliers are discarded. Finally the probability that a particular set of features indicates the presence of an object is computed, given the accuracy of fit and number of probable false matches. Object matches that pass all these tests can be identified as correct with high confidence. Table I summarizes the advantages of using SIFT algorithm in the image analysis. [0094] [Table I.
Figure imgf000016_0001
[0095] Match moving algorithm is another 3-D reconstruction algorithm. In cinematography, match moving is a cinematic technique that allows the insertion of computer graphics into live-action footage with correct position, scale, orientation, and motion relative to the photographed objects in the shot. The term is used loosely to describe several different methods of extracting camera motion information from a motion picture. Sometimes referred to as motion tracking or camera solving, match moving is related to rotoscoping and photogrammetry. Rotoscoping is an animation technique in which animators trace over footage, frame by frame, for use in live-action and animated films.
[0096] Match moving is sometimes confused with motion capture, which records the motion of objects, often human actors, rather than the camera. Typically, motion capture requires special cameras and sensors and a controlled environment. Match moving is also distinct from motion control photography, which uses mechanical hardware to execute multiple identical camera moves. Match moving, by contrast, is typically a software-based technology, applied after the fact to normal footage recorded in uncontrolled environments with an ordinary camera.
[0097] Match moving is primarily used to track the movement of a camera through a shot so that an identical virtual camera move can be reproduced in a 3-D animation program. When new animated elements are composited back into the original live-action shot, they will appear in perfectly-matched perspective and therefore appear seamless [0098] By using SIFT or match moving algorithm to analyze a set of image data captured by an image-capturing device, it is possible to obtain the estimation of position of an object.
[0099] The SIFT or match moving algorithms never actually compute the pose of objects, only the pose of the camera. If the geometry of an object is known, the pose of the camera can be determined relative to that object. In this implementation, only key-points are used in which their positions are estimated.
[00100] The Bundle adjustment algorithm is used as the last step of every feature- based 3-D reconstruction algorithm. It amounts to an optimization problem on the 3-D structure and viewing parameters (i.e., camera pose and possibly intrinsic calibration and radial distortion), to obtain a reconstruction which is optimal under certain assumptions regarding the noise pertaining to the observed image features.
[00101] If the image error is zero-mean Gaussian, then bundle adjustment is the Maximum Likelihood Estimator. Its name refers to the bundles of light rays originating from each 3-D feature and converging on each camera's optical center, which are adjusted optimally with respect to both the structure and viewing parameters.
[00102] In statistics, Maximum-Likelihood estimation (MLE) is a method of estimating the parameters of a statistical model. When applied to a data set and given a statistical model, maximum-likelihood estimation provides estimates for the model's parameters.
[00103] In general, for a fixed set of data and underlying statistical model, the method of maximum likelihood selects the set of values of the model parameters that maximizes the likelihood function. Intuitively, this maximizes the "agreement" of the selected model with the observed data, and for discrete random variables it indeed maximizes the probability of the observed data under the resulting distribution. Maximum-likelihood estimation gives a unified approach to estimation, which is well-defined in the case of the normal distribution and many other problems.
[00104] Bundle adjustment boils down to minimizing the re-projection error between the image locations of observed and predicted image points, which is expressed as the sum of squares of a large number of nonlinear, real-valued functions. [00105] The re-projection error is a geometric error corresponding to the image distance between a projected point and a measured one. It is used to quantify how closely an estimate of a 3-D point recreates the point's true projection.
[00106] Minimizing the re projection error can be used for estimating the error from point correspondences between two images. The correspondences can be interpreted as imperfect images of a world point and the re-projection error quantifies their deviation from the true image projections
[00107] Thus, the minimization of the re projection error can be achieved by using nonlinear least-squares algorithms. Of these, Levenberg-Marquardt has proven to be one of the most successful due to its ease of implementation and its use of an effective damping strategy that lends it the ability to converge quickly from a wide range of initial guesses.
[00108] Various more-or-less heuristic arguments have been put forward for the best choice for the damping parameter λ. Theoretical arguments exist showing why some of these choices guaranteed local convergence of the algorithm; however these choices can make the global convergence of the algorithm suffer from the undesirable properties of steepest-descent, in particular very slow convergence close to the optimum.
[00109] Marquardt recommended starting with a value λ0 and a factor v > 1. Initially setting λ = λ0 and computing the residual sum of squares after one step from the starting point with the damping factor of λ = λ0 and secondly with λ0/ν. If both of these are worse than the initial point then the damping is increased by successive multiplication by v until a better point is found with a new damping factor of A0vk for some k.
[00110] If use of the damping factor λ/ν results in a reduction in squared residual then this is taken as the new value of λ (and the new optimum location is taken as that obtained with this damping factor) and the process continues; if using λ/ν resulted in a worse residual, but using λ resulted in a better residual, then λ is left unchanged and the new optimum is taken as the value obtained with λ as damping factor.
[00111] When solving the minimization problems arising in the framework of bundle adjustment, the normal equations have a sparse block structure owing to the lack of interaction among parameters for different 3-D points and cameras. This can be exploited to gain tremendous computational benefits by employing a sparse variant of the Levenberg- Marquardt algorithm which explicitly takes advantage of the normal equations zeros pattern, avoiding storing and operating on zero elements.
[00112] Bundle adjustment amounts to jointly refining a set of initial camera and structure parameter estimates for finding the set of parameters that most accurately predict the locations of the observed points in the set of available images.
[00113] The full bundle adjustment is the optimal solution and makes use of all images. However, it requires all images to be collected before any processing can be completed and is not a real-time solution.
[00114] In the pair-wise or triplet pose change technique, only 2 or 3 images are used to estimate the change in position and orientation over the image set. When summed up over many images, a trajectory can be estimated. For example, see the US Patent No.: 7336814 entitled "Method and apparatus for machine-vision". However, the solution provided by this a technology is prone to drift over time due to the loss of connection between even 2 or 3 images over time.
[00115] Kalman filter also can be used to estimate the current position and orientation (pose) of an object.
[00116] More specifically, the Kalman filter, also known as linear quadratic estimation (LQE), is an algorithm that uses a series of measurements observed over time, containing noise (random variations) and other inaccuracies, and produces estimates of unknown variables that tend to be more precise than those based on a single measurement alone.
[00117] The Kalman filter has numerous applications in technology. A common application is for guidance, navigation and control of vehicles, particularly aircraft and spacecraft. Furthermore, the Kalman filter is a widely applied concept in time series analysis used in fields such as signal processing and econometrics.
[00118] The Kalman filter algorithm works in a two-step process. In the prediction step, the Kalman filter produces estimates of the current state variables, along with their uncertainties. Once the outcome of the next measurement (necessarily corrupted with some amount of error, including random noise) is observed, these estimates are updated using a weighted average, with more weight being given to estimates with higher certainty. Because of the algorithm's recursive nature, it can run in real time using only the present input measurements and the previously calculated state; no additional past information is
[00119] From a theoretical standpoint, the main assumption of the Kalman filter is that the underlying system is a linear dynamical system and that all error terms and
measurements have a Gaussian distribution (often a multivariate Gaussian distribution).
[00120] However, a solution provided by the Kalman drifts over time due to loss of connection between images thus making it difficult to use the Kalman filter for real time applications.
[00121] The present technology of the rolling bundle adjustment, as it is explained below, is an improvement over the prior art techniques of bundle adjustment algorithm because it allows to significantly decrease the amount of computation time thus making possible the real time determination of the pose of the image-capturing device.
[00122] Indeed, as it is fully explained below, with each new frame, the rolling bundle adjustment algorithm prescribes removing the position and orientation states associated with the oldest frame and adding position and orientation states for the new frame. An initial estimate of the current frames position and orientation can be made by simply using the previous frames position and orientation estimate. The image locations of the key-points from the last frame are then identified in the new frame. These image measurements are then added to the estimation process using the method of sequential least squares which is much more efficient than completely running the bundle adjustment on the last N frames.
[00123] In the embodiment of the present technology, as shown in FIGURE 1 , the general processor 20 of FIGURE 1 is configured to execute the algorithm 21 of FIGURE 1 further comprising a rolling bundle adjustment algorithm. The rolling bundle adjustment algorithm computes a bundle adjustment using N frames every time a new frame is available. This is the starting point for this new technique, however the rolling bundle adjustment algorithm uses sequential least squares to add the new frame rather than completely redo the bundle adjustment. Please, full discussion below.
[00124] The rolling bundle adjustment algorithm of the present technology is basically a cross between a Kalman filter and the rolling bundle adjustment. Although implemented using sequential least squares, the mathematics are identical to a Kalman filter that retains the previous N-1 frame position and orientation states. Example II.
[00125] In general for N frames the tracking algorithm has to track at least 5 key- points through all N frames for bundle adjustment algorithm to work. How many minimum key-points the tracking algorithm has to track if only 5 frames were taken? The answer is still 5 key-points. Indeed, assume that for N taken frames; and K key-points are being tracked. This means the number of unknowns is N*6 + K*3 (position and orientation per frame plus the positions of the key-points) while the number of measurements is N*K*2 (2
measurements per key point per frame). So if N=5, there are (30+K*3) unknowns and 10*K measurements. Since, more measurements than unknowns are required for a problem to be at least determined (or over-determined, but not under-determined): 10*K > (30+3*K), so K >30/7 or K>= 5.
Example III.
[00126] FIGURE 2 illustrates a frame from the video sequence 60 taken from a Nikon D 800 camera using a 35 mm lens. All images include at least four key-points: image 60 includes the key-points 62 through 88. The camera was set to collect 720 p video (1280 x 720) at 25 frames per second. Calibration parameters for the camera/lens were pre- computed using the Open CV camera calibration routines. It should be noted that the calibration parameters may also be estimated on the fly as part of the process, however this was not done in this test. The round targets (1000-101 1 ) (or key-points 62, 64, 66 68, 70, 72, 74 76, 78, 80, 82 and 84), were tracked throughout the sequence while the camera was moved (keeping the targets in view at all times to simplify the test). For this example the number of frames used in the rolling bundle adjustment is 25, i.e. 1 second of data.
[00127] In order for the rolling bundle adjustment algorithm of the present technology to work, the system should be initialized. For example, the additional navigation device 22 (of FIGURE 1 ) can be used to obtain the initial position coordinates of the image-capturing device 14.
[00128] In the embodiment of the present technology, after the initialization is done, but before any estimation can be done, the key-points are identified by using 3 non-collinear targets with known absolute or relative positions. This can be done for the example by automatically identifying the target centers using an existing algorithm within Trimble. The choice of these points can be an important decision. If the initial set of points is able to sufficiently define a datum, the estimated camera positions and orientations can be in this datum and be appropriately scaled. [00129] In the embodiment of the present technology, before any estimation can be done, the key-points are identified by using a key-point detection algorithm such as Sift, Surf, BRISK, etc. Many of these algorithms are already implemented within Open CV.
[00130] When natural features are used, an arbitrary coordinate system (not shown) can be defined. If a distance measurement is visible in the images it can be used to correctly scale the solution, otherwise the estimates will also be arbitrarily scaled (i.e. the estimated positions will require a similarity transformation to obtain world coordinates). Alternatively, if the location of the camera can be determined via some other positioning system (say GNSS), these camera location estimates can be used to scale the solution as well as define the required datum.
[00131] In the embodiment of the present technology, referring still to FIGURE 1 , once the key-point 30 has been found in the first image 24, the corresponding key-points should be found in the following frames (not shown). This can be done by using key-point descriptors or tracking algorithms such as the Lucas-Kanade tracking algorithm.
[00132] The Lucas-Kanade method is a widely used differential method for optical flow estimation developed by Bruce D. Lucas and Takeo Kanade. It assumes that the flow is essentially constant in the proximity of the pixel under consideration, and solves the basic optical flow equations for all the pixels in that vicinity, by the least squares criterion. By combining information from several nearby pixels, the Lucas-Kanade method can often resolve the inherent ambiguity of the optical flow equation. It is also less sensitive to image noise than point-wise methods. On the other hand, since it is a purely local method, it cannot provide flow information in the interior of uniform regions of the image.
[00133] The Kanade-Lucas-Tomasi (KLT) feature tracker is an approach to feature extraction. It is proposed mainly for the purpose of dealing with the problem that traditional image registration techniques are generally costly. KLT makes use of spatial intensity information to direct the search for the position that yields the best match. It is faster than traditional techniques for examining far fewer potential matches between the images.
[00134] In an embodiment of the present technology, the rolling sequential bundle adjustment algorithm (21 of FIGURE 1 ) needs at least 5 key-points for each frame when K=1 . [00135] In an embodiment of the present technology, as shown in FIGURE 6, to ensure good geometry while also keeping the number of tracked features low is to segment the image 180 into sections (182, 184, 186, 188, 190, 192, 194, 199 and 198) and attempt to track a minimum two key-points (200 and 202) in each segment in the subsequent frames.
[00136] In an embodiment of the present technology, one of the requirements for the imagery is that the corresponding images (in consequent frames) have a significant overlap (say >50%) with one another. The frame rate required to maintain such overlap is dependent on the camera dynamics. Higher dynamics will require a higher frame rate.
[00137] In an embodiment of the present technology, an alternative approach to using a constant frame rate is to collect images whenever the camera moves a given distance or changes orientation by a maximum rotation. This approach requires a secondary source of position, velocity, and/or orientation to control the camera shutter.
[00138] In an embodiment of the present technology, referring still to FIGURE 1 , the collected image data is next fed into a least squares bundle adjustment algorithm 21 which estimates the position and orientation of the image-capturing device 14 for each frame (6'- vector 40 including the position coordinates (x, y, z) as well as the orientation angels θ, φ, and ψ) as well as the 3-D coordinates of the tracked key-points: position coordinates 42 data (xn, yn, zM) for the key-point , the position coordinates 44 data (xi2, yi2, zi2) for the key-point i2 , and the position coordinates 46 data (sick, y,K, ziK) for the key-point iK .
[00139] The fundamental equations that are solved in the estimation are known as the collinearity equations. The collinearity equations are a set of two equations, used in photogrammetry and remote sensing to relate coordinates in a sensor plane (in two dimensions) to object coordinates (in three dimensions). The equations originate from the central projection of a point of the object through the optical center of the camera to the image on the sensor plane.
[00140] FIGURES 3, 4, and 5 illustrate the geometry that is utilized in collinearity equations.
[00141] More specifically, FIGURE 3 depicts light beams 104 and 106 passing through the pinhole 102 of a pinhole camera 108. [00142] FIGURE 4 shows 2-D projection 134 of 3-D point 128 (2-D projection 130 of 3-D point 124, and 2-D projection 132 of 3-D point 126) on a plane 140 by using a pinhole camera with the center 122.
[00143] FIGURE 5 illustrates x (168) and z (162) coordinates of 2-D projection C 156 of 3-D point through a projection center 102 of the pinhole camera 108 of FIGURE 3, as well as x (164) and z (160) coordinates of 2-D projection P 158 of 3-D point through the projection center 102 of the pinhole camera 108 of FIGURE 3.
[00144] Derivation and details of the collinearity equations can be found in any textbook on photogrammetry. One possible derivation (please, see for the reference "Elements of Photogrammetry" by Paul R. Wolf, published by McGraw-Hill, 2000) results in the following:
_ rmii(Xa-Xi)+m12 (Ya-Yi)+m13(Za-Zi)1 rm21(Xa-Xi)+m22 (Ya-Yi)+m23(Za-Zi)1 _\
Figure imgf000024_0001
CO φ COS sin ω sin φ cos + cos ω sin — cos ω sin φ cos + sin ω sin
m |— cos φ sin K - sin ω sin φ sin + cos ω cos cos ω sin φ sin + sin ω cos
sin cf) — sin ω cos φ cos ω cos φ
(Eq. 4) where
xa is the measured x image coordinate of point a;
ya is the measured y image coordinate of point a;
Xa, Ya, Za are the world coordinates of point a;
Xj, Yj, Z\ are the world coordinates of camera I;
ω, φ, are the Euler angle rotations of camera I;
c is the principal distance (approximately the focal length of the camera);
m is the rotation matrix from the camera coordinate system to the world coordinate system. [00145] In an embodiment of the present technology, FIGURE 7 illustrates the geometry involved in formulation of collinearity equations (Eq. 1 and Eq. 2) with the matrix m given by (Eq. 3 and Eq. 4) that are utilized for estimation of camera position and orientation for each frame and for estimating 3-D coordinates of the tracked key-points.
[00146] Referring still to FIGURE 7, 3-D coordinates (XA, YA, ZA) of 3-D point A in World Coordinate System (WCS) (X 226, Y 224, Z 222) are indicated by point 232, whereas 3-D coordinates (XL, YL, Zl) of 3-D point of the camera center L in World Coordinate System (WCS) are indicated by point 236.
[00147] Referring still to FIGURE 7, 2-D coordinates (xa, ya) of the point a in 2-D camera Local Coordinate System (LCS) (camera frame plane) are shown by point 230.
Example IV.
[00148] Referring still to FIGURE 2, suppose that the 12 targets (62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, and 84) are tracked and their coordinates are known. Each image results in 2 measurements (x and y) per target per frame resulting in 2*12*25 = 1200 measurements for 25 frames. The unknowns in this example would be the position and orientation of the image-capturing device (14 of FIGURE 1 ) (including camera Nikon D 800 camera using a 35 mm lens) per frame, i.e. 6*25 = 150 unknowns. Clearly the minimum number of image measurements should be 150/25/2 = 3. In the case where an additional 3 natural features are tracked, there would be an additional 3*2*25 = 150 measurements as well as an additional 3*3 = 9 unknowns (XYZ for each of the three points). Additional measurements to known or unknown points can add significant geometric strength to the estimation resulting in estimates with less noise.
[00149] In an embodiment of the present technology, the collinearity equations (Eq. 1 and Eq. 2) with the matrix m given by (Eq. 3 and Eq. 4) are re-formulated in terms of least squares adjustment for the purposes of optimal estimation.
[00150] More specifically, in an embodiment of the present technology, the basic least squares equations for the above problem are summarized as follows:
1 = f(x) (Eq. 5) f = AS + w (Eq. 6) w=f(x°) - 1 (Eq. 7)
Figure imgf000026_0001
Cx = N"1 (Eq. 9)
Where
Ϊ is a vector of adjusted observations;
f(x) is the collinearity equations evaluated at x;
x° is the current extimate of the state x;
f is a vector of residuals;
A is a Jacobean matrix (partial derivatives of the collinearity equations w.r.t. the unknowns);
§ is a vector of corrections to the unknown parameters;
w is a vector of misclosures;
Cj is the covariance matrix for the measurements;
Cx is the covariance matrix for the estimated parameters.
[00151] One of the most time consuming operations in the estimation is the inversion of the matrix (N) with the number of rows and columns equal to the number of unknown states. Given the iterative nature of least squares, this matrix may require inversion once per iteration.
[00152] In an embodiment of the present technology, as was disclosed above, once the initialization has been completed, the camera positions and orientations for the first N frames have been estimated along with the positions of the selected key-points. The next step is to continue estimating the camera states the as new subsequent frames (N+1 , N+2, etc.) become available.
[00153] In an embodiment of the present technology, FIGURE 8 shows the rolling adjustment sequential update algorithm 250 in estimation of camera positions and orientation from the initial N frames to the subsequent (N+1 ) frames.
[00154] More specifically, the bundle adjustment algorithm solution based on the initial N frames (from 252 and up to 262) is schematically noted as the initial solution 274, whereas the bundle adjustment algorithm solution based on (N+1 ) frames (from 252 and up to 264) is schematically noted as the subsequent solution 276. [00155] When a new frame becomes available, the oldest frame is removed from the state estimation. The rows and columns associated with the frame to be removed are replaced with initial estimates for the newest frame. This initial estimate of the camera position and orientation at the new frame may be computed from the estimated key-points or if the frame rate is high relative to the camera dynamics the estimate can simply be set to the same values as the previous frame.
[00156] In an embodiment of the present technology, the rolling sequential update is accomplished in a sequential manner using the following equations: δ(+) = δΗ - K w2 + Α2δ . (-)' (Eq. 10)
C^+) = Ni 1 - KA2Ni 1 (Eq. 1 1 )
K = N1-1Al[C1 + A2N1-1Al]"1 (Eq. 12)
Where (+), (-) indicate parameters before and after the measurement update.
[00157] The major advantage of this technique is that the only new inversion required for the sequential update is the matrix contained within the gain term K. The matrix to be inverted is a square matrix with the dimensions equal to the number of new measurements associated with the new image.
Example V.
[00158] For the Examples III and IV outlined above in which 12 key-points are tracked, the required inversion would be on a 24 x 24 matrix. This is compared to recomputing the bundle adjustment with all N frames which would require an inversion of a matrix with dimensions of 25*6 x 25*6 = 150 x 150.
[00159] One of the practical justifications of the present algorithm of rolling sequential bundle adjustment that utilizes images to track position and orientation changes is that some key-points will no longer be visible as the camera moves.
[00160] This requires that the no longer visible key-points be removed from the estimation as they no longer provide useful information. This removal is accomplished by simply removing the associated rows and columns in the state and covariance matrices. Also, as the camera moves it will become necessary to identify and track new key-points and add them into the estimation. Once a new key-point is identified, it should be tracked over multiple images in order to compute initial coordinates which can then be used to insert the associated position into the state and covariance matrices.
[00161] FIGURE 9 depicts in the Global Coordinate System X (310), Y (308) and Z (306) the comparison 300 of the output camera trajectories (302 and 304) obtained by employing the rolling sequential bundle adjustment algorithm of the present technology and obtained by employing the prior art bundle adjustment algorithm for values of number of frames used: N = 25, 50, and 100.
[00162] The results illustrated in FIGURE 9 demonstrate the proof of concept that the results obtained by employing the rolling sequential bundle adjustment algorithm of the present technology and obtained by employing the prior art bundle adjustment algorithm are very close, but the method of the present technology of employing the rolling sequential bundle adjustment algorithm required exponential less computing time.
[00163] FIGURE 10 illustrates the comparison 320 of positions of the camera obtained by employing the rolling sequential bundle adjustment algorithm of the present technology and obtained by employing the prior art bundle adjustment algorithm for values of number of frames used: N = 25 (the error curve 324), 50 (the error curve 322), and 100 (the error curve 326). The error curves are becoming negligible (max less than 7 mm) as the number of frames used is going up.
[00164] As N gets larger, the differences between the optimal solution and the sequential solution begin to approach one another, and however the cost is a slight increase in computational requirements. For this example even when N=25 the maximum difference is about 21 mm. Also, the time required to update a frame was approximately 25 msec on a laptop with an Intel i7 processor and no optimization of the software.
[00165] The results illustrated in FIGURE 10 again demonstrate the proof of concept that the results obtained by employing the rolling sequential bundle adjustment algorithm of the present technology and obtained by employing the prior art bundle adjustment algorithm are very close, but the method of the present technology of employing the rolling sequential bundle adjustment algorithm required exponential less computing time.
[00166] The above discussion has set forth the operation of various exemplary systems and devices, as well as various embodiments pertaining to exemplary methods of operating such systems and devices. In various embodiments, one or more steps of a method of implementation are carried out by a processor under the control of computer- readable and computer-executable instructions. Thus, in some embodiments, these methods are implemented via a computer.
[00167] In an embodiment, the computer-readable and computer-executable instructions may reside on computer useable/readable media.
[00168] Therefore, one or more operations of various embodiments may be controlled or implemented using computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. In addition, the present technology may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer-storage media including memory-storage devices.
[00169] Although specific steps of exemplary methods of implementation are disclosed herein, these steps are examples of steps that may be performed in accordance with various exemplary embodiments. That is, embodiments disclosed herein are well suited to performing various other steps or variations of the steps recited. Moreover, the steps disclosed herein may be performed in an order different than presented, and not all of the steps are necessarily performed in a particular embodiment.
[00170] Although various electronic and software based systems are discussed herein, these systems are merely examples of environments that might be utilized, and are not intended to suggest any limitation as to the scope of use or functionality of the present technology. Neither should such systems be interpreted as having any dependency or relation to any one or combination of components or functions illustrated in the disclosed examples.
LOCALLY MEASURED MOVEMENT SMOOTHING OF GNSS POSITION FIXES
[00171] Various embodiments are well suited for correcting errors caused by multipath in pseudorange estimates. For example, multipath error can occur as signals bounce off of various objects, such as buildings or other objects, reflecting signals along many paths. Extracted pseudorange information is an example of pseudorange estimates. [00172] Multipath refers to the simultaneous processing in the GNSS receiver of both the desired GNSS signal and reflected versions of the desired GNSS signal that arrive a very short time after the desired signal. The two signals pass through the GNSS receiver and are processed by the down converter and the timing measurement systems that develop the pseudoranges. Instantaneous combining of the two signals, desired and slightly-later multipath, result in erroneous pseudoranges, which may be quite different in instantaneous magnitude from the true pseudorange that should have been determined.
[00173] Since it is very hard to shield a GNSS receiver/antenna system from such reflections, alternate means for coping with the interference have been developed. In accordance with various embodiments described herein, locally measured movement can be used to discipline, or correct, errant data position fixes which can be caused by various factors including multipath errors. The term "disciplining" is used in the art to describe bringing two dissimilar signals into near congruity by a comparison method such as by using feedback loops. One example uses a phase-tracking system which adjusts a local reference signal to match as closely as possibly another incoming signal. With reference to various embodiments, the term "disciplining" describes comparing a first distance determined from two successive GNSS position fixes (e.g., P-i - P2) with locally measured movement (LMM) position shift distances and, if P-i - P2 is greater than the LMM position shift distance by a selected threshold value (e.g., 1.5 times the LMM position shift distance or greater) the GNSS position fix at P2 is discarded and the LMM position shift distance is added to the previous GNSS position fix (e.g. Pi ) to determine the position of a device.
[00174] Locally measured movement information, according to one embodiment, is information that includes measurements of movement where the movement, and the measurements of the movement, occur locally with respect to a cellular device. For example, an accelerometer that is attached or part of a cellular device can be used to measure the distance and direction that the cellular device has moved as well as, in some cases, its orientation. A typical inertial measurement unit (IMU) refers to a device which measures gravitational forces, velocity, and orientation using a combination of
accelerometers and gyroscopes, and also sometimes magnetometers. These IMUs are typically large devices used for long-term (minutes, hours, or days), high-precision measurements of position. It is noted that for the purpose of the present application, the term "accelerometer" refers to a device which is not a component of an IMU and is used for shorter-term (e.g., 20 seconds) and less precise measurement of a device's position than is typically obtained using an IMU. Similarly, as described above algorithm 21 can utilize one or more images obtained with an image capture device that is attached or part of the cellular device can be used to measure the distance and direction the cellular device has moved as well as its orientation.
[00175] Figure 1 1A depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with one embodiment.
[00176] As described herein, in various embodiments information can be extracted from the GNSS receiver 1 107, such as, but not limited to, a position fix, pseudorange information, Doppler Shift Information, Real Carrier Phase Measurement, WAAS and SBAS. Other types of processing information output by the GNSS chipset 1 107 can be ignored. In accordance with various embodiments, GNSS chipset 1 107 is configured for receiving radio navigation signals from global navigation satellites (e.g., 1202 of Figure 12A) and for deriving a position fix of device 1 100 based thereon. As an example, GNSS chipset 1 107 can derive a position fix for device 1 100 from a variety of satellite navigation systems including, but not limited to: GPS, GNSS, GLONASS, GALILEO, BeiDou, and Compass.
[00177] The hardware architecture of device 1 100 includes discreet physical layout and interconnection of multiple chipsets for processing and for special purposes such as a GNSS chipset 1 107. In addition, newer architectures involve further integration of chipsets in the "system on a chip" (SoC) configuration. In this configuration, the GNSS chipset 1 107 can still be a complete element capable of delivering a PVT (position velocity and time) solution, or a low-cost implementation which simply outputs a position fix. However in another embodiment, pseudorange information, carrier phase, and/or Doppler
measurements, along with WAAS corrections if available, can be extracted prior to further signal processing in the GNSS chipset 1 107 and are processed using different algorithms and corrections data for developing an improved accuracy PVT solution. In so doing the deleterious effects of multipath and other error sources may be minimized. Further the GNSS chipset 1 107 outputs are ignored and not displayed when the external processing is employed and the higher-accuracy PVT data is available.
[00178] As depicted in Figure 1 1A, device 1 100 further comprises an operating system 1 160 and hardware 1 180 that are outside of the GNSS chipset 1 107. In accordance with various embodiments, LMM smoothing logic 1 130 can interface between the GNSS chipset 1 107 and the location manager logic 1 161 , which resides in the operating system 1 160. In the embodiment of Figure 1 1 A, hardware 1 180 comprises, but is not limited to, a processor 1 109, a memory 1 1 10 having algorithm 21 described above resident therein, at least one accelerometer 1 1 15, and an image capture device 1 1 16. In accordance with various embodiments, processor 1 109 is for processing information and instructions (e.g., stored in memory 1 1 10) while memory 1 1 10 is configured for storing information and instructions for processor 1 109. It is noted that memory 1 1 10 can comprise volatile memory and/or a nonvolatile computer readable storage medium, as well as removable data storage media in accordance with various embodiments. An example of hardware memory 1 1 10 is a physically tangible non-transitory computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions. An example of a hardware processor 1 109 for executing instructions is a central processing unit. Examples of instructions which are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 which can be stored on a hardware memory 1 1 10 and can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments.
According to at least one embodiment, the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of device 1 100 that is outside of the GNSS chipset 1 107. Examples of an accelerometer 1 1 15 are an ADXL330/335 chipset accelerometer made by Analog Devices Inc. and a LIS3LV02DQ made by STMicroelectronics.
[00179] Examples of image capture device 1 1 16 are a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera. The image capture device 1 1 16 may use a lens or be a pinhole type device. It is noted that image capture device 1 1 16 is analogous to image-capturing device 14 of Figure 1. Examples of image capture device 1 1 16 are a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera. The image capture device 1 1 16 may use a lens or be a pinhole type device. It is noted that image capture device 1 1 16 is analogous to image-capturing device 14 of Figure 1 .
[00180] In Figure 1 1A, hardware 1 180 further comprises a wireless Personal Area Network (PAN) transceiver 1 140. Wireless PAN transceiver 1 140 is configured to utilize
implementations of the IEEE 802.15.4 specification for personal area networks operating in the Instrument Scientific and Medical (ISM) ban of the radio frequency spectrum in the 2400-2484 MHz range such as implementations of the Bluetooth® standard and of the ZigBee® standard. In Figure 1 1 A, hardware 1 180 further comprises an optional microphone (e.g., mic. 1 145) coupled with and analog-to-digital converter (ADC) 1 146. In at least one embodiment, microphone 1 145 is configured for receiving audible information such as ambient noise and/or voice commands which can be used to initiate and control actions performed by device 1 100 and is converted to a digital format by ADC 1 146. In accordance with at least one embodiment, audio information captured by microphone 1 145 and converted to a digital format by ADC 1 146 is stored in memory 1 1 10. Furthermore, in various embodiments microphone 1 145 is used for communicating (e.g., via cellular transceiver 1 1 1 1 of Figure 1 1 C) over a cellular telephone network or other communications network.
[00181] The output of LMM smoothing logic 1 130 can be used for determining and disciplining the location of the device 1 100. For example, a latitude, longitude and altitude can be determined based on the output of the LMM smoothing logic 1 130, which can be conveyed via wireless personal area network transceiver 1 140.
[00182] The blocks that represent features in Figure 1 1 A can be arranged differently than as illustrated, and can implement additional or fewer features than what are described herein. Further, the features represented by the blocks in Figure 1 1 A can be combined in various ways and can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Further, unless specified otherwise, various embodiments that are described as being a part of the device 1 100, whether depicted as a part of the device 1 100 or not, can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof. Various blocks in Figure 1 1 A refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130 which can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
[00183] In accordance with one embodiment, GNSS chipset 1 107 comprises a low-cost used by device 1 100 which simply outputs a position fix of device 1 100 based upon unsmoothed pseudoranges. In other words, in the interest of reducing costs, various features for improving the position fix are typically not built into a low-cost GNSS chipset such as 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information). As will be discussed in greater detail below, at least one implementation of LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of device 1 100A. Alternatively, GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1 100 with greater precision. For example, GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1 100.
[00184] Figure 1 1 B depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment. For the purposes of brevity, the components described above with reference to Figure 1 1A which are common also to Figure 1 1 B will not be described in detail again.
[00185] In Figure 1 1 B, device 1 100 further comprises a location manager logic 1 161 , a location displayer logic 1 162, and hardware 1 180 that are outside of the GNSS chipset 1 107. The location manager logic 1 161 can be a part of the operating system 1 160 and external to the GNSS chipset 1 107. According to one embodiment, the location displayer logic 1 162 is a part of the location manager logic 1 161. In accordance with various embodiments, LMM smoothing logic 1 130 can interface between the GNSS chipset 1 107 and the location manager logic 1 161 , which resides in the operating system 1 160.
According to one embodiment, LMM smoothing logic 1 130 communicates the output of pseudorange information processing to the location manager logic 1 161 in the operating system 1 160. The instant location or the improved location can be communicated to location manager logic 1 161 , as discussed herein, that displays the instant location or the improved location with respect to a map. The location displayer logic 1 162 can display the location with respect to a digital representation of a map available, for example, from third parties via download to the device 1 100.
[00186] In Figure 1 1 B, device 1 100 further comprises a display device 1 1 12 and at least one radio frequency transceiver 1 141. Examples of devices which can be used as display 1 1 12 include, but are not limited to, liquid crystal displays, LED-based displays, and the like. It is noted that display 1 1 12 can be configured as a touch screen device (e.g., a capacitive touch screen display) for receiving inputs from a user as well as displaying data including data from location displayer logic 1 162. In accordance with various embodiments, radio frequency transceiver(s) 1 141 are for receiving GNSS corrections via public and/or proprietary radio frequency networks. In one embodiment, radio frequency transceiver 1 141 is an Ultra-high Frequency (UHF) wide band radio transceiver operating in the 410-470 MHz radio frequency spectrum.
[00187] Figure 1 1 C depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment. For the purposes of brevity, the components described above with reference to Figures 1 1 A and 1 1 B which are common also to Figure 1 1 C will not be described in detail again. In Figure 1 1 C, device 1 100 further comprises a cellular transceiver 1 1 1 1 . Examples of cellular networks used by cellular transceiver 1 1 1 1 include, but are not limited to GSM cellular networks, GPRS cellular networks, GDMA cellular networks, and EDGE cellular networks. In accordance with at least one embodiment, cellular transceiver 1 1 1 1 is configured to operate on a satellite- based cellular network such as the Inmarsat or Iridium communication networks. In at least one embodiment, device 1 100 is configured to receive GNSS corrections via a cellular network which are received by cellular transceiver 1 1 1 1. Similarly, using cellular transceiver 1 1 1 1 , device 1 100 can send position data including position fixes to other devices either located proximate to device 1 100 or at a distant location.
[00188] Figure 1 1 D depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment. For the purposes of brevity, the components described above with reference to Figures 1 1 A -1 1 C which are common also to Figure 1 1 D will not be described in detail again. In Figure 1 1 D, device 1 100 further comprises an optional Wi-Fi transceiver 1 1 14. Wi-Fi transceiver 1 1 14 may be configured to operate on/in compliance with any suitable wireless communication protocol including, but not limited to: Wi-Fi, WiMAX, implementations of the IEEE 802.1 1 specification,
implementations of the IEEE 802.15.4 specification for personal area networks, and a short range wireless connection operating in the Instrument Scientific and Medical (ISM) band of the radio frequency spectrum in the 2400-2484 MHz range (e.g., implementations of the Bluetooth® standard). In accordance with various embodiments, device 1 100 can receive corrections information for device 1 100 from proprietary or public networks.
[00189] Figure 1 1 E depicts a block diagram of a device 1 100 for applying LMM smoothing logic in accordance with at least one embodiment. For the purposes of brevity, the components described above with reference to Figures 1 1 A -1 1 D which are common also to Figure 1 1 E will not be described in detail again. In Figure 1 1 E, device 1 100 further comprises an optional satellite receiver 1 106. In accordance with various embodiments, satellite receiver 1 106 is configured for receiving GNSS corrections data sent via various satellite-based augmentation systems (SBAS) including, but not limited to the WAAS used in North America and the European Geostationary Navigation Overlay Service (EGNOS). For example, a satellite radio distributor (e.g., 1227 of Figure 12D) can broadcast corrections as a broadcast from one or more communications satellites (e.g., 1201 of Figure 12D). In one embodiment, device 1 100 includes one or more integral satellite radio antennas associated with integrated satellite radio receivers 1 106. Satellite radio receiver 1 106 is one example of such a satellite receiver which would employ an integrated antenna designed to operate in the correct frequency band for receiving a corrections or other information broadcast from communication satellites 1201 . In this manner, in some embodiments, device 1 100 can receive the corrections via satellite radio receiver 1 106.
[00190] It is noted that the embodiments described above with reference to Figures 1 1 A- 1 1 E can be implemented in a variety of form factors in accordance with various
embodiments. Figures 19A-19F show some implementations of device 1 100 in accordance with various embodiments.
[00191] In Figure 19A, device 1 100 comprises a ring 1901. In accordance with at least one embodiment, the components described above with reference to Figure 1 1 A may be disposed within a small form factor such as ring 1901. Thus, ring 1901 may comprise various components shown in Figure 1 1 A including, but not limited to, GNSS chipset 1 107 (not shown), LMM smoothing logic 1 130 (not shown), processor 1 109 (not shown), image capture device 1 1 16, at least one accelerometer 1 1 15 (not shown), and microphone 1 145. Furthermore, ring 1901 may include other components such as a radio-frequency identification device (RFID) (not shown), or other component for uniquely identifying ring 1901 .
[00192] In Figure 19B, device 1 100 comprises a wearable watch 1910. Again, in various embodiments watch 1910 comprises the components described above with reference to Figure 19A as well as a display 1 1 12 for displaying the time. It is noted that in various embodiments, display 1 1 12 comprises a touch screen device capable of displaying icons, menus, and other data which permits a user to control functions performed by watch 1910. In Figure 1 1 C, device 1 100 comprises a badge 1920 which is wearable by a user.
[00193] In Figure 19C, badge 1920 comprises the components described above with reference to Figure 19A as well as an area 1921 for a picture of the user of badge 1920. In accordance with various embodiments, badge 1920 may be attached to a user's clothing using a pin, clip, Velcro, or other fastening device. Also, in accordance with various embodiments, badge 1920 can be mounted on devices or vehicles (e.g., a bicycle) using various fastening devices. In Figure 19D, device 1 100 comprises a bracelet 1930 in accordance with various embodiments. In Figure 19D, bracelet 1930 comprises the components described above with reference to Figure 19A.
[00194] In Figure 19E, device 1 100 comprises or is disposed as a portion of an unmanned aerial vehicle (which may also be known as a remotely piloted vehicle or as a drone), such as fixed wing unmanned aerial vehicle 1940. A perspective view is illustrated. In accordance with at least one embodiment, the components described above with reference to Figure 1 1 A may be disposed within a form factor of or as a sub-portion of unmanned aerial vehicle 1940. For example, one or more portions of device 1 100 may be mounted internally and/or externally to fuselage 1942, wings 1941 , or some other portion of unmanned aerial vehicle 1940. Thus, unmanned aerial vehicle 1940 may comprise various components shown in Figure 1 1A including, but not limited to, GNSS chipset 1 107 (not shown), LMM smoothing logic 1 130 (not shown), processor 1 109 (not shown), image capture device 1 1 16, at least one accelerometer 1 1 15 (not shown), and microphone 1 145. Furthermore, unmanned aerial vehicle 1940 may include other components such as a radio- frequency identification device (RFID) (not shown), or other component for uniquely identifying unmanned aerial vehicle 1940.
[00195] In Figure 19F, device 1 100 comprises or is disposed as a portion of an unmanned aerial vehicle (which may also be known as a remotely piloted vehicle or as a drone), such as rotorcraft unmanned aerial vehicle 1950 which relies on one or more rotors 1951 for lift and hovering. A bottom plan view is illustrated. Although a quad-rotor embodiment is depicted, such rotorcraft may employ a single rotor or a plurality of rotors that is lesser or greater than the four illustrated rotors. In accordance with at least one embodiment, the components described above with reference to Figure 1 1A may be disposed within a form factor of or as a sub-portion of unmanned aerial vehicle 1950. For example, one or more portions of device 1 100 may be mounted internally and/or externally to fuselage 1952 or some other portion of unmanned aerial vehicle 1950. Thus, unmanned aerial vehicle 1950 may comprise various components shown in Figure 1 1A including, but not limited to, GNSS chipset 1 107 (not shown), LMM smoothing logic 1 130 (not shown), processor 1 109 (not shown), image capture device 1 1 16, at least one accelerometer 1 1 15 (not shown), and microphone 1 145. Furthermore, unmanned aerial vehicle 1950 may include other components such as a radio-frequency identification device (RFID) (not shown), or other component for uniquely identifying unmanned aerial vehicle 1950.
[00196] It is noted that the devices 1 100 shown in Figures 19A-19F can leverage microminiaturization fabrication techniques to integrate the components described above into increasingly smaller form factors that was previously possible. Furthermore, the
implementations of device 1 100 shown in at least Figures 19A-19F are, in some
embodiments, examples of "spime" devices, which are machines which are aware of their environment. [00197] Figure 12A depicts a block diagram of an example cellular device 1200 in accordance with at least one embodiment. Examples of a cellular device 1200 as shown in Figure 12A comprise a non-voice enabled cellular device such as a position
recording/reporting device, a theft prevention device, or other type of security device.
[00198] The cellular device 1200 includes a bus 1218, a GNSS chipset 1 107, a processor 1 109, memory 1 1 10, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), an optional microphone 1 145, ADC 1 146, and operating system 1 160. Components 1 107, 1 109, 1 1 10, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218.
[00199] In Figure 12A, global navigation satellites 1202 which provide radio navigation signals (e.g., the GPS, GNSS, GLONASS, GALILEO, BeiDou, Compass, etc.). A cellular device 1200 can be configured with, a GNSS chipset 1 107 coupled with bus 1218 for receiving radio navigation signals from global navigation satellites 1202 and for deriving a position of cellular device 1200 based thereon. According to one embodiment, the GNSS chipset 1 107 is configured to receive signals from GPS satellites, GLONASS satellites, Galileo satellites, or from a combination of satellites from different constellations. The GNSS chipset 1 107 can perform GPS measurements to derive raw measurement data for a position of the cellular device 1200. The raw measurement data can provide an instant location (e.g., position fix 1384 of Figure 13) of the cellular device 1200 which is output from GNSS chipset 1 107.
[00200] Other components of cellular device 1200 comprise a processor 1 109 coupled with bus 1218 for processing information and instructions, a memory 210 coupled with bus 1218 for storing information and instructions for processor 1 109. It is noted that memory 1 1 10 can comprise volatile memory and/or a non-transitory computer readable medium, as well as removable data storage media in accordance with various embodiments. Examples of an accelerometer 1 1 15 are an ADXL330/335 chipset accelerometer made by Analog Devices Inc. and a LIS3LV02DQ made by STMicroelectronics. Examples of cellular networks used by cellular transceiver 1 1 1 1 include, but are not limited to GSM cellular networks, GPRS cellular networks, GDMA cellular networks, and EDGE cellular networks. In accordance with at least one embodiment, cellular transceiver 1 1 1 1 is configured to operate on a satellite-based cellular network such as the Inmarsat or Iridium communication networks. In at least one embodiment, device 1 100 is configured to receive GNSS corrections via a cellular network which are received by cellular transceiver 1 1 1 1 . Similarly, using cellular transceiver 1 1 1 1 , cellular device 1200 can send position data including position fixes to other devices either located proximate to cellular device 1200 or at a distant location.
[00201] Examples of image capture device 1 1 16 are a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera. The image capture device 1 1 16 may use a lens or be a pinhole type device. It is noted that image capture device 1 1 16 is analogous to image-capturing device 14 of Figure 1.
[00202] The blocks that represent features in Figure 12A can be arranged differently than as illustrated, and can implement additional or fewer features than what are described herein. For example, in accordance with various embodiments, cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both. Further, the features represented by the blocks in Figure 12A can be combined in various ways. A cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Further, unless specified otherwise, various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not, can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof. Various blocks in Figure 12A refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130, which can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
[00203] The cellular device 1200, according to one embodiment, includes hardware, such as the processor 1 109, memory 1 1 10, and the GNSS chipset 1 107. An example of hardware memory 1 1 10 is a physically tangible non-transitory computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions. An example of a hardware processor 1 109 for executing instructions is a central processing unit. Examples of instructions which are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 which can be stored on a hardware memory 1 1 10 and that can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments. According to at least one embodiment, the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of the cellular device 1200 that is outside of the GNSS chipset 1 107.
[00204] In accordance with one embodiment, GNSS chipset 1 107 comprises a low-cost used by cellular device 1200 which simply outputs a position fix of cellular device 1200 based upon unsmoothed pseudoranges. In other words, in the interest of reducing costs, various features for improving the position fix are typically not built into a low-cost GNSS chipset such as 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information). As will be discussed in greater detail below, at least one implementation of LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200. Alternatively, GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of cellular device 1200 with greater precision. For example, GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of cellular device 1200.
[00205] Figure 12B depicts a block diagram of another example cellular device 1200 in accordance with at least one embodiment. Examples of a cellular device 1200 include a position recording/reporting device, a theft prevention device, or other type of security device, and a handheld navigation device. The cellular device 1200 shown in Figure 12B may be mobile or stationary.
[00206] The cellular device 1200 includes a bus 1218, a GNSS chipset 1 107, a processor 1 109, memory 1 1 10, a display 1 1 12, audio 1213, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), an optional microphone 1 145, ADC 1 146, and operating system 1 160. Components 1 107, 1 109, 1 1 10, 1 1 12, 1213, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218. For the purpose of brevity, the components listed above which have been described previously will not again be described in the discussion of Figure 12B.
[00207] In the embodiment of Figure 12B, cellular device 1200 further comprises a display 1 1 12 and an audio component 1213. Audio component 1213 is for generating audio signals such as tones, sounds, and/vocal commands and alerts.
[00208] The blocks that represent features in Figure 12B can be arranged differently than as illustrated, and can implement additional or fewer features than what are described herein. For example, in accordance with various embodiments, cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both. Further, the features represented by the blocks in Figure 12B can be combined in various ways. A cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Further, unless specified otherwise, various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not, can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof. Various blocks in Figure 12B refer to features that are logic
components, such as but not limited to locally measured movement smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
[00209] In accordance with one embodiment, GNSS chipset 1 107 comprises a low-cost GNSS chipset used by cellular device 1200 which simply outputs a position fix of cellular device 1200 based upon unsmoothed pseudoranges. In other words, in the interest of reducing costs, various features for improving the position fix are typically not built into a low-cost GNSS chipset such as 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information). As will be discussed in greater detail below, at least one implementation of LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200. Alternatively, GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1200 with greater precision. For example, GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1200.
[00210] Figure 12C depicts a block diagram of a set of correction delivery options for providing positioning information to a cellular device 1200 for extracting pseudorange information, according to one embodiment. The cellular device 1200 shown in Figure 12C may be mobile or stationary. Examples of a cellular device 1200 include a cell phone and a mobile hand-held GNSS receiver.
[00211] The cellular device 1200 includes a bus 1218, a GNSS chipset 1 107, a processor 1 109, memory 1 1 10, a cellular transceiver 1 1 1 1 , a display 1 1 12, audio 1213, an optional Wi- Fi transceiver 1 1 14, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), an optional microphone 1 145, ADC 1 146, and operating system 1 160. Components 1 107, 1 109, 1 1 10, 1 1 1 1 , 1 1 12, 1213, 1 1 14, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218.
[00212] Wi-Fi transceiver 1 1 14 may be configured to operate on/in compliance with any suitable wireless communication protocol including, but not limited to: Wi-Fi, WiMAX, implementations of the IEEE 802.1 1 specification, implementations of the IEEE 802.15.4 specification for personal area networks, and a short range wireless connection operating in the Instrument Scientific and Medical (ISM) band of the radio frequency spectrum in the 2400-2484 MHz range (e.g., implementations of the Bluetooth® standard).
[00213] Improvements in GNSS/GPS positioning may be obtained by using reference stations with a fixed receiver system to calculate corrections to the measured pseudoranges in a given geographical region. Since the reference station is located in a fixed environment and its location can be determined very precisely via ordinary survey methods, a processor associated with the Reference Station GNSS/GPS receivers can determine more precisely what the true pseudoranges should be to each satellite in view, based on geometrical considerations. Knowing the orbital positions via the GPS almanac as a function of time enables this process, first proposed in 1983, and widely adopted ever since. The difference between the observed pseudorange and the calculated pseudorange for a given Reference station is called the pseudorange correction. A set of corrections for all the global navigation satellites 1202 in view is created second by second, and stored, and made available as a service, utilizing GPS/GNSS reference stations 1220 and correction services 1221 . The pseudoranges at both the cellular device 1200, GNSS chipset 1 107, and those at the reference stations 1220 are time-tagged, so the corrections for each and every pseudorange measurement can be matched to the local cell phone pseudoranges. The overall service is often referred to as Differential GPS, or DGPS. Without any corrections, GNSS/GPS receivers produce position fixes with absolute errors in position on the order of 4.5 to 5.5 m per the GPS SPS Performance Standard, 4th Ed. 2008. In Figure 12C, one or more correction services 1221 convey these corrections via a cellular network 1222, or the Internet 1223. Internet 1223 is in turn coupled with a local Wi-Fi network 1224 which can convey the corrections to cellular device 1200 via Wi-Fi transceiver 1 1 14. Alternatively, cellular network 1222 can convey the corrections to cellular device 1200 via cellular transceiver 1 1 1 1 .
[00214] Examples of a correction source that provides pseudorange corrections are at least correction service 1221 . According to one embodiment, a correction source is located outside of the cellular device 1200.
[00215] The blocks that represent features in Figure 12C can be arranged differently than as illustrated, and can implement additional or fewer features than what are described herein. For example, in accordance with various embodiments, cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both. Further, the features represented by the blocks in Figure 12C can be combined in various ways. A cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Further, unless specified otherwise, various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not, can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof. Various blocks in Figure 12C refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
[00216] The cellular device 1200, according to one embodiment, includes hardware, such as the processor 1 109, memory 1 1 10, and the GNSS chipset 1 107. An example of hardware memory 1 1 10 is a physically tangible computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions. An example of a hardware processor 1 109 for executing instructions is a central processing unit. Examples of instructions which are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 that can be stored on a hardware memory 1 1 10 and that can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments.
According to at least one embodiment, the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of the cellular device 1200 that is outside of the GNSS chipset 1 107.
[00217] In accordance with one embodiment, GNSS chipset 1 107 comprises a low-cost GNSS chipset used by device 1200 which simply outputs a position fix of cellular device 1200 based upon unsmoothed pseudoranges. In other words, in the interest of reducing costs, various features for improving the position fix are typically not necessarily built into GNSS chipset 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information). Furthermore, in some implementations, various corrections sources, or the capability to receive them, are not used by a cellular device 1200. As will be discussed in greater detail below, at least one implementation of LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200. Alternatively, GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1200 with greater precision. For example, GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1200.
[00218] Figure 12D depicts a block diagram of a set of correction delivery options for providing positioning information to a cellular device for extracting pseudorange information, according to one embodiment. Examples of a cellular device 1200 include a cell phone, a non-voice enabled cellular device, and a mobile hand-held GNSS receiver. The cellular device may be mobile or stationary.
[00219] The cellular device 1200 includes a bus 1218, an optional satellite receiver 1 106, a GNSS chipset 1 107, an optional FM radio receiver 1 108, a processor 1 109, memory 1 1 10, a cellular transceiver 1 1 1 1 , a display 1 1 12, audio 1213, an optional Wi-Fi transceiver 1 1 14, at least one accelerometer 1 1 15, an image capture device 1 1 16, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), microphone 1 145, ADC 1 146, and operating system 1 160. Components 1 106, 1 107, 1 108, 1 109, 1 1 10, 1 1 1 1 , 1 1 12, 1213, 1 1 14, 1 1 15, 1 1 16, and 1 146 are all connected with the bus 1218. For the purpose of brevity, the components shown in Figure 12D which have previously been discussed will not again be described in detail with reference to Figure 12D.
[00220] In Figure 12D, a plurality of broadcast sources is used to convey data and media to a cellular device 1200. As an example, cellular device 1200 can receive broadcast signals from communication satellites 1201 (e.g., two-way radio, satellite-based cellular such as the Inmarsat or Iridium communication networks, etc.), global navigation satellites 1202 which provide radio navigation signals (e.g., the GPS, GNSS, GLONASS, GALILEO, BeiDou, Compass, etc.), and terrestrial radio broadcast 1203 (e.g., FM radio, AM radio, shortwave radio, etc.)
[00221] A cellular device 1200 can be configured with an optional satellite radio receiver 1 106 coupled with a communication bus 1218 for receiving signals from communication satellites 1201 , a GNSS chipset 1 107 coupled with bus 1218 for receiving radio navigation signals from global navigation satellites 1202 and for deriving a position of cellular device 1200 based thereon. According to one embodiment, the GNSS chipset 1 107 is configured to receive signals from GPS satellites, GLONASS satellites, or from a combination of satellites from different constellations. The GNSS chipset 1 107 can perform GPS measurements to derive raw measurement data for a position of the cellular device 1200. The raw measurement data can provide an instant location of the cellular device 1200.
[00222] Cellular device 1200 further comprises an optional FM radio receiver 1 108 coupled with bus 1218 for receiving broadcast signals from terrestrial radio broadcast 1203. Other components of cellular device 1200 comprise a processor 1 109 coupled with bus 1218 for processing information and instructions, a memory 1 1 10 coupled with bus 1218 for storing information and instructions for processor 1 109. Cellular device 1200 further comprises a cellular transceiver 1 1 1 1 coupled with bus 1218 for communicating via cellular network 1222. Cellular device 1200 further comprises a display 1 1 12 coupled with bus 1218.
Cellular device 1200 further comprises an audio output 1213 coupled with bus 1218 for conveying audio information to a user, or for receiving voice commands or messages from a user. Cellular device 1200 further comprises a Wi-Fi transceiver 1 1 14 and at least one accelerometer 1 1 15 coupled with bus 1218.
[00223] As discussed above, improvements in GNSS/GPS positioning may be obtained by using reference stations with a fixed receiver system to calculate corrections to the measured pseudoranges in a given geographical region. In addition to use of conveying GNSS corrections data via cellular network 1222, or via the Internet 1223, in various embodiments correction services 1221 are also coupled with a distribution service 1225 which conveys the corrections to an FM radio distributor 1226. FM radio distributor 1226 can broadcast corrections as a terrestrial radio broadcast 103. It should be appreciated that an FM signal is being described as a subset of possible terrestrial radio broadcasts which may be in a variety of bands and modulated in a variety of manners. In some embodiments, cellular device 1200 includes one or more integral terrestrial radio antennas associated with integrated terrestrial receivers; FM radio receiver 1 108 is one example of such a terrestrial receiver which would employ an integrated antenna designed to operate in the correct frequency band for receiving a terrestrial radio broadcast 103. In this manner, in some embodiments, cellular device 1200 can receive the corrections via FM radio receiver 1 108 (or other applicable type of integrated terrestrial radio receiver). In some embodiments, correction services 1221 are also coupled with a distribution service 1225 which conveys the corrections to a satellite radio distributor 1227. Satellite radio distributor 1227 can broadcast corrections as a broadcast from one or more communications satellites 1201 . In some embodiments, cellular device 1200 includes one or more integral satellite radio antennas associated with integrated satellite radio receivers 1 106. Satellite radio receiver 1 106 is one example of such a satellite receiver which would employ an integrated antenna designed to operate in the correct frequency band for receiving a corrections or other information broadcast from communication satellites 1201. In this manner, in some embodiments, cellular device 1200 can receive the corrections via satellite radio receiver 1 106.
[00224] Examples of a correction source that provides pseudorange corrections are at least correction service 1221 , FM radio distribution 1226, or satellite radio distributor 1227, or a combination thereof. According to one embodiment, a correction source is located outside of the cellular device 1200.
[00225] The blocks that represent features in Figure 12D can be arranged differently than as illustrated, and can implement additional or fewer features than what are described herein. For example, in accordance with various embodiments, cellular device 1200 may comprise at least one accelerometer 1 1 15, an image capture device 1 1 16, or both. Further, the features represented by the blocks in Figure 12D can be combined in various ways. A cellular device 1200 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Further, unless specified otherwise, various embodiments that are described as being a part of the cellular device 1200, whether depicted as a part of the cellular device 1200 or not, can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof. Various blocks in Figure 12D refer to features that are logic components, such as but not limited to locally measured movement smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, software and firmware, or a combination thereof.
[00226] The cellular device 1200, according to one embodiment, includes hardware, such as the processor 1 109, memory 1 1 10, and the GNSS chipset 1 170. An example of hardware memory 1 1 10 is a physically tangible computer readable storage medium, such as, but not limited to a disk, a compact disk (CD), a digital versatile device (DVD), random access memory (RAM) or read only memory (ROM) for storing instructions. An example of a hardware processor 1 109 for executing instructions is a central processing unit. Examples of instructions are computer readable instructions for implementing various embodiments include LMM smoothing logic 1 130 that can be stored on a hardware memory 1 1 10 and that can be executed, for example, by the hardware processor 1 109, and algorithm 21 described above for implementing rolling sequential bundle adjustments. According to at least one embodiment, the LMM smoothing logic 1 130 and algorithm 21 are located in a portion of the cellular device 1200 that is outside of the GNSS chipset 1 107.
[00227] In accordance with one embodiment, GNSS chipset 1 107 comprises a low-cost GNSS chipset used by device 1200 which simply outputs a position fix of device 1200 based upon unsmoothed pseudoranges. In other words, in the interest of reducing costs, various features for improving the position fix are not necessarily built into GNSS chipset 1 107 including, but not limited to, pseudorange smoothing, carrier phase smoothing (e.g., based upon real carrier phase information, reconstructed carrier phase information). Furthermore, in some implementations, various corrections sources, or the capability to receive them, are not used by a cellular device 1200. As will be discussed in greater detail below, at least one implementation of LMM smoothing logic 1 130 can be used to perform smoothing of position fixes output by GNSS chipset 1 107 to improve the performance of determining the position of cellular device 1200. Alternatively, GNSS chipset 1 107 may incorporate features which facilitate determining a position fix of device 1200 with greater precision. For example, GNSS chipset 1 107 can comprise a Wide Area Augmentation System (WAAS) enabled receiver configured to receive broadcast WAAS corrections which can be used to improve the precision in determining the position of device 1200. It is noted that the embodiments discussed in Figures 1 1A-E and 12A-D are not intended to be exhaustive listings of components in accordance with various embodiments. Thus, various embodiments can utilize other positioning and/or communication technologies including, but not limited to Radio-frequency Identification transponders or tags for identifying and/or tracking device 1 100 and cellular device 1200.
Example GNSS Receiver
[00228] With reference now to Figure 13, a block diagram is shown of an embodiment of an example GNSS chipset 1 107 which may be used in accordance with various embodiments described herein. In particular, Figure 13 illustrates a block diagram of a GNSS receiver in the form of a general purpose GPS capable of demodulation of the L1 and/or L2 signal(s) received from one or more GPS satellites. A more detailed discussion of the function of a receiver such as GPS receiver 1 107 can be found in U.S. Patent Number 5,621 ,416, by Gary R. Lennen, is titled Optimized processing of signals for enhanced cross-correlation in a satellite positioning system receiver," and includes a GPS receiver very similar to GNSS chipset 1 107 of Figure 13.
[00229] In Figure 13, received L1 and L2 signals are generated by at least one GPS satellite. Each GPS satellite generates different signal L1 and L2 signals and they are processed by different digital channel processors 1352 which operate in the same way as one another. Figure 13 shows GPS signals (L1 =1575.42 MHz, L2=1227.60 MHz) entering GPS chipset 1 107 through a dual frequency antenna 1332. Antenna 1332 may be a magnetically mountable model commercially available from Trimble Navigation of
Sunnyvale, Calif. Master oscillator 1348 provides the reference oscillator which drives all other clocks in the system. Frequency synthesizer 1338 takes the output of master oscillator 1348 and generates important clock and local oscillator frequencies used throughout the system. For example, in one embodiment frequency synthesizer 1338 generates several timing signals such as a 1 st (local oscillator) signal L01 at 1400 MHz, a 2nd local oscillator signal L02 at 175 MHz, an SCLK (sampling clock) signal at 25 MHz, and a MSEC (millisecond) signal used by the system as a measurement of local reference time.
[00230] A filter/LNA (Low Noise Amplifier) 1334 performs filtering and low noise
amplification of both L1 and L2 signals. The noise figure of GPS chipset 1 107 is dictated by the performance of the filter/LNA combination. The downconvertor 1336 mixes both L1 and L2 signals in frequency down to approximately 175 MHz and outputs the analog L1 and L2 signals into an IF (intermediate frequency) processor 1350. IF processor 1350 takes the analog L1 and L2 signals at approximately 175 MHz and converts them into digitally sampled L1 and L2 inphase (L1 I and L2 I) and quadrature signals (L1 Q and L2 Q) at carrier frequencies 420 KHz for L1 and at 2.6 MHz for L2 signals respectively.
[00231] At least one digital channel processor 1352 inputs the digitally sampled L1 and L2 inphase and quadrature signals. All digital channel processors 1352 are typically are identical by design and typically operate on identical input samples. Each digital channel processor 1352 is designed to digitally track the L1 and L2 signals produced by one satellite by tracking code and carrier signals and to from code and carrier phase measurements in conjunction with the GNSS microprocessor system 1354. One digital channel processor 1352 is capable of tracking one satellite in both L1 and L2 channels. Microprocessor system 1354 is a general purpose computing device which facilitates tracking and measurements processes, providing pseudorange and carrier phase measurements for a determining position fix logic 1358. In one embodiment, microprocessor system 1354 provides signals to control the operation of one or more digital channel processors 1352. According to one embodiment, the GNSS microprocessor system 1354 provides one or more of pseudorange information 1372, Doppler Shift information 1374, and real Carrier Phase Information 1376 to the determining position fix logic 1358. One or more of pseudorange information 1372, Doppler Shift information 1374, and real Carrier Phase Information 1376 can also be obtained from storage 1360. One or more of the signals 1372, 1374, and 1376 can be conveyed to an external device's processor, such as processor 1 109 that is external to the GNSS chipset 1 107 (Figure 1 1 D). In accordance with various embodiments, processor 1354 is configured to output a position fix 1384 to a device outside of GNSS chipset 1 107 such as to processor 1 109. Additionally, processor 1354 can output a position, velocity, time (PVT) solution to a device outside of GNSS chipset 1 107 such as to processor 1 109. Determining position fix logic 1358 performs the higher level function of combining measurements in such a way as to produce position, velocity and time information for the differential and surveying functions, for example, in the form of a position fix 1380. Storage 1360 is coupled with determining position fix logic 1358 and
microprocessor system 1354. It is appreciated that storage 1360 may comprise a volatile or non-volatile storage such as a RAM or ROM, or some other computer readable memory device or media. In some embodiments, determining position fix logic 1358 performs one or more of the methods of position correction described herein.
[00232] In some embodiments, microprocessor 1354 and/or determining position fix logic 1358 receive additional inputs for use in receiving corrections information (e.g., 1382).
According to one embodiment, an example of the corrections information is WAAS corrections. According to one embodiment, examples of corrections information are differential GPS corrections, RTK corrections, signals used by the Enge-Talbot method, and wide area augmentation system (WAAS) corrections among others.
[00233] Although Figure 13 depicts a GNSS chipset 1 107 with navigation signals L1 1, L1 Q, L2I, L2Q, various embodiments are well suited different combinations of navigational signals. For example, according to one embodiment, the GNSS chipset 1 107 may only have an L1 1 navigational signal. According to one embodiment, the GNSS chipset 1 107 may only have L1 I, L1 Q and L2I. In other embodiments, GNSS chipset 1 107 may use other combinations of navigation signals such as, but not limited to: and L1 signal, and L1 and L2C signal, and an L1 I and L1 Q signal.
[00234] Various embodiments are also well suited for future navigational signals. For example, various embodiments are well suited for the navigational signal L2C that is not currently generally available. However, there are plans to make it available for non-military receivers.
[00235] According to at least one embodiment, LMM smoothing logic 1 130 resides at either or both of the storage 1360 and GNSS microprocessor system 1354. In at least one embodiment, GNSS processing is accomplished using software components implemented by a processor in combination with hardware components. For example, in one embodiment, GNSS chipset 1 107 comprises dual frequency antenna 1332, filter/LNA (Low Noise Amplifier) 1334, and downconverter 1336 as described above. Downconverter 1336 outputs the 175 MHz intermediate frequency L1 and L2 signals and further processing of the IF L1 and L2 signals is performed by a processor which subsequently performs the processing steps described above. This includes, but is not limited to, further mixing of the L1 and L2 signals, digital sampling of inphase and quadrature signals at respective carrier frequencies, correlation, tracking loops, measurement processing, navigation processing, corrections processing, etc. In accordance with various embodiments, this processing is performed by a processor of GNSS chipset such as GNSS microprocessor system 1354. In one or more embodiments, this can be performed by an external processor such as processor 1 109 which is separate from GNSS chipset 1 107.
[00236] A filter/LNA (Low Noise Amplifier) 1334 performs filtering and low noise
amplification of both L1 and L2 signals. The noise figure of GPS chipset 1 107 is dictated by the performance of the filter/LNA combination. The downconvertor 1336 mixes both L1 and L2 signals in frequency down to approximately 175 MHz and outputs the analog L1 and L2 signals into an IF (intermediate frequency) processor 1350.
[00237] Figure 14 is a block diagram of a locally measured movement (LMM) smoothing logic component (e.g., ) 1 130 in accordance with at least one embodiment. In accordance with various embodiments, LMM smoothing logic 1 130 can be resident within and executed by GNSS chipset 1 107, or external to GNSS chipset 1 107 such as in memory 1 1 10 and executed by processor 1 109. In the embodiment of Figure 14, LMM smoothing logic 1 130 comprises position fix accessing logic 1401 , LMM accessing logic 1402 comprising accelerometer accessing logic 1403 and image capture device accessing logic 1404. LMM smoothing logic 1 130 further comprises dual-sensor processing logic 1405 comprising dual- sensor averaging logic 1406 and dual-sensor confidence estimating logic 1406. Finally, LMM smoothing logic 1 130 comprises position fix smoothing logic 1410 comprising a Kalman filter 141 1. In accordance with various embodiments, LMM smoothing logic 1 130 can be implemented using software, hardware, hardware and software, hardware and firmware, or a combination thereof. Furthermore, it is noted that in accordance with various embodiments, some of the components shown in Figure 14 may not be used in
implementations of LMM smoothing logic 1 130.
[00238] In accordance with various embodiments, position fix accessing logic 1401 is configured to retrieve GNSS position fixes 1384 generated by a GNSS receiver system such as GNSS chipset 1 107 of Figures 1 1A-E and 12A-D, or GNSS receiver 1 107 shown in Figure 13. In Figure 14, position fix accessing logic 1401 outputs position fixes 1384 as an input to position fix smoothing logic 1410. In accordance with various embodiments, position fix accessing logic 1401 can output a position, velocity, time (PVT) solution as discussed above. In accordance with various embodiments, position fix(es) 1384 can be retrieved from a memory such as 1 1 10 of Figure 1 1A-E and 12A-D, or storage 1360 of Figure 13. In accordance with various embodiments, GNSS position fixes 1384 can be generated based upon uncorrected pseudorange information, smoothed pseudoranges, and corrected pseudoranges. In accordance with various embodiments, smoothed
pseudoranges can be generated based upon carrier phase information, or based upon reconstructed carrier phase information derived from Doppler shift data. One example of creating smoothed pseudoranges in accordance with various embodiments is described in U.S. Patent Application No. 14/035,884, filed on Sept. 24, 2013 entitled, "EXTRACTING PSEUDORANGE INFORMATION USING A CELLULAR DEVICE" by Rudow et al., the contents of which are incorporated herein by reference.
[00239] In accordance with at least one embodiment, accelerometer data accessing logic
1403 of LMM accessing logic 1402 receives accelerometer data 1421 from accelerometer 1 1 15, or memory 1 1 10 of Figure 1 1A-E and 12A-D, which indicates position shifts of a device (e.g., device 1 100 or cellular device 1200). In accordance with at least one embodiment, accelerometer data 1421 comprises a '6'-vector including the position coordinates (x, y, z) as well as the orientation angles θ, φ, and ψ of device 1 100 or cellular device 1200. In another embodiment accelerometer data 1421 comprises the position coordinates (x, y, z) of device 1 100 or cellular device 1200. Image data accessing logic
1404 of LMM accessing logic 1402 receives image data 1422 which is output from algorithm 21 of Figure 1 which also indicates position shifts of a device (e.g., device 1 100 or cellular device 1200) based upon image data. In accordance with various embodiments, image data 1422 is updated as algorithm 21 performs rolling sequential bundle adjustments to image data as described above and can either be sent directly to image data accessing logic 1422, or to storage such as memory 1 1 10 of device 1 100 or cellular device 1200. In other words, image data 1422 comprises '6'-vector 40 including the position coordinates (x, y, z) as well as the orientation angles θ, φ, and ψ of image capture device 1 1 16 and is updated as new rolling sequential bundle adjustments are performed by algorithm 21.
[00240] In accordance with one embodiment, accelerometer data accessing logic 1402 outputs accelerometer data 1421 as an input to position fix smoothing logic 1410 and image data accessing logic 1404 outputs image data 1422 as another input to position fix smoothing logic 1410. As shown in Figure 14, in one embodiment position fix smoothing logic 1410 comprises a Kalman filter 141 1 which uses as inputs, position fix(es) 1384 and locally measured movement data such as accelerometer data 1421 and/or image data 1422. In one or more embodiments, position fix smoothing logic 1410 can use another filtering logic such as Robust Estimation, Least Square fitting methods, particle filtering, Hough transform, Random Sample Consensus (RANSAC), non-linear variants, such as sigma- editing, both a priori and a posteriori, and non-optimal (in a Gaussian sense) linear variants, instead of, or in addition to, the use of Kalman filter 141 1 . In one embodiment, Least Square fitting methods include using sequential least squares processing which is similar to Kalman filtering with the last N position and orientation states in the filter. In accordance with various embodiments, the output of Kalman filter 141 1 is smoothed position fixes 1429. The smoothed position fixes 1429 are position fixes with improved quality of measurement for determining with greater precision, the position of device 1 100 and/or cellular device 1200. More specifically, Kalman filter 141 1 can identify outlier data points of position fix(es) 1384 which may be caused by erroneous pseudorange determination based upon, for example, multipath signal propagation which is exhibited when a GNSS receiver (e.g., GNSS chipset 1 107) is located beneath foliage, or in built-up areas which tend to reflect GNSS signals from various locations to the antenna 1332 of the GNSS receiver. These outlier data points can be compared with accelerometer data 1421 and/or image data 1422 by Kalman filter 141 1 and discarded for use in determining the position of, for example, device 1 100 or cellular device 1200. In accordance with at least one embodiment, Kalman filter 141 1 replaces the discarded position fix 1384 with a position fix derived at least in part using position data (e.g., accelerometer data 1421 and/or image data 1422) from
accelerometer 1 1 15 and/or image capture device 1 1 16. For example, at a time to, device 1 100 or cellular device 1200 can generate a position fix 1384 using, for example, GNSS chipset 1 107. Subsequent to time to, as device 1 100 or cellular device 1200 is moved it will continuously generate new position fixes 1384 using GNSS chipset 1 107 as well as locally measured movement data (e.g., using accelerometer 1 1 15 and/or image capture device 1 1 16) which also can be used to determine a position fix for device 1 100 or cellular device 1200. If it is determined that there is an outlier position fix 1384 which was generated by GNSS chipset 1 107, Kalman filter 141 1 can discard the erroneous position fix 1384 generated by GNSS chipset 1 107 and replace it with a position fix generated using data received from accelerometer 1 1 15 and/or image capture device 1 1 16. In accordance with at least one embodiment, this can comprise adding a movement vector derived from data (e.g., 1421 and/or 1422) received from accelerometer 1 1 15 and/or image capture device 1 1 16 to a previous "correct" position fix generated by GNSS chipset 1 107. [00241] In another embodiment shown in Figure 14, accelerometer data accessing logic 1403 and image data accessing logic 1404 can output accelerometer data 1421 and image data 1422 respectively as inputs to dual-sensor processing logic 1405. In the embodiment of Figure 14, dual-sensor processing logic 1405 comprises dual-sensor averaging logic 1406 and/or dual-sensor confidence estimating logic 1407. In accordance with various embodiments, dual-sensor averaging logic 1406 is configured to determine an average value of the indicated movement of a device comprising LMM smoothing logic 1 130. For example, if accelerometer data 1421 indicates that device 1 100 or cellular device 1200 has moved 2 meters in a given time interval, and image data 1422 indicates that device 1 100 or cellular device 1200 has moved 2.2 meters in the same time interval, dual-sensor averaging logic 1406 may average these two values and determine that device 1 100 or cellular device 1200 has moved 2.1 meters in that time interval. This is output as movement data 1425 which is input to position fix smoothing logic 1410 instead of accelerometer data 1421 and image data 1422. It is well known in the art that, over time, the quality of the estimate of motion detected (e.g., accelerometer data 1421 ) by an accelerometer (e.g., 1 1 15) degrades at a much higher rate that the estimate of motion detected by an image capture device (e.g., 1 1 16), or more specifically image data 1422. In accordance with at least one embodiment, the discarded position fix is replaced with and averaged position fix based at least in part on data from dual-sensor averaging logic 1406.
[00242] This is shown in greater detail in Figure 15 which plots positioning error 1502 as a y-axis over x-axis time 1501. Also shown in Figure 15 is the rate of positioning degradation (over time) using image data (e.g., data plot 1505) and data plot 1510 which shows the rate of positioning degradation (over time) using accelerometer data. Typically, plot 1505 of the rate of positioning degradation (over time) using image data is a linear function while plot 1510 of the rate of positioning degradation (over time) using accelerometer data is a quadratic function meaning that the rate of positioning degradation over time is much greater when using accelerometer data. Additionally, the position error from image capture devices degrades more due to motion rather than time. Thus, the slope of data plot 1505 will increase as the velocity of the image capture device 1 1 16 increases. However, at the velocities encountered by a typical user of a cellular telephone 1200, or device 1 100, the rate of positioning degradation encountered using image data is still lower than the rate of positioning degradation encountered using an accelerometer. Also shown in Figure 15 is the circular error probability of determining a position fix at a given time. As shown in Figure 15, at time t1 , the circular error probability (CEP) 1520 using either image data or accelerometer data is roughly the same. Thus, the size of CEP 1520 indicates that an output position fix using either accelerometer data or image data will fall somewhere within the circle of CEP 1520. As an example, if the size of CEP 1520 is a 20 cm. radius, it means that the determined movement, and in turn the position fix, of device 1 100 or cellular device 1200 when relying upon either image data or accelerometer data is accurate within a 20 cm. radius of the actual position of device 1 100 or cellular device 1200 at that time. CEP 1521 shows the circular error probability in determining the position fix using image data at a time t2. Due to the linear function of plot 1505, the size of CEP 1521 grows at a much slower rate that the size of CEP 1522 which shows the circular error probability in determining the position fix using accelerometer data at t2. Thus, at time t2, if the size of CEP 1521 now represents a 30 cm. radius, it means that the determined movement, and in turn the position fix, of device 1 100 or cellular device 1200 when relying upon image data is accurate within a 30 cm. radius of the actual position of device 1 100 or cellular device 1200 at that time.
However, due to the quadratic function used to show the rate of positioning degradation (over time) using accelerometer data, the size of CEP 1522 now represents a 100 cm.
radius. Thus, at time t2, the determined movement, and in turn the position fix, of device 1 100 or cellular device 1200 when relying upon accelerometer data is now accurate within a 100 cm. radius of the actual position of device 1 100 or cellular device 1200 at that time. Thus, over time it becomes less desirable to rely upon accelerometer data alone in determining how far device 1 100 or cellular device 1200 has moved.
[00243] Returning to Figure 14, in accordance with various embodiments, weighting of data may be implemented by dual-sensor averaging logic 1406 based upon how old either of accelerometer data 1421 and/or image data 1422 is. As an example, over time image data 1422 can be weighted with a higher value as a metric of determining locally measured movement than accelerometer data 1421 . Thus, referring again to Figure 15, at time t1 , accelerometer data 1421 and image data 1422 can be equally weighted (e.g., 0.5 for both accelerometer data 1421 and image data 1422) as they both result in similar CEPs.
However, at time t2, due to the much larger CEP incurred using accelerometer data 1421 , image data 1422 can be given a higher weighted value while accelerometer data 1421 can be give a lower weighted value (e.g., 0.7 for image data 1422 and 0.3 for accelerometer data 1421 ). Thus, in various embodiments, movement data 1425 can represent an average value of locally measured movement of device 1 100 or cellular device 1200 based upon acceleration data 1421 and image data 1422, or can be a weighted average of locally measured device movement information based upon acceleration data 1421 and image data 1422.
[00244] In another embodiment, dual-sensor confidence estimating logic 1407 receives accelerometer data 1421 and image data 1422 and generates movement data 1426 as an input to position fix smoothing logic 1410. In accordance with various embodiments, dual- sensor confidence estimating logic 1407 is used to determine if either of accelerometer data 1421 or image data 1422 has become an unreliable metric for determining the movement of device 1 100 or cellular device 1200. For example, a respective confidence metric can be generated by dual-sensor confidence estimating logic 1407 for each of accelerometer data
1421 and image data 1422. For example in one embodiment, dual-sensor confidence estimating logic 1407 can use respective Kalman filters to identify outlier data points from accelerometer data 1421 and image data 1422. Again, according to various embodiments, dual-sensor confidence estimating logic 1407 can use another filtering logic such as Robust Estimation, Least Square fitting methods, particle filtering, Hough transform, Random Sample Consensus (RANSAC), non-linear variants, such as sigma-editing, both a priori and a posteriori, and non-optimal (in a Gaussian sense) linear variants, instead of, or in addition to, the use of Kalman filter 141 1. In one embodiment, Least Square fitting methods include using sequential least squares processing which is similar to Kalman filtering with the last N position and orientation states in the filter. These outlier data points would then be discarded by dual-sensor confidence estimating logic 1407 and not used for position fix smoothing. In another embodiment, the values of accelerometer data 1421 and image data
1422 can be compared to determine whether one or the other should be discarded. For example, if accelerometer data 1421 indicates that device 1 100 or cellular device 1200 has moved 2 meters, image data 1422 indicates that device 1 100 or cellular device 1200 has moved 0.5 meters, the disparity between these sets of data may indicate that one should not be used as an input to position fix smoothing logic 1410. For example, greater weight may be given to image data 1422 due to the lower rate of positioning degradation over time when using image data. Thus, if there is a disparity between accelerometer data 1421 and image data 1422 which exceeds a pre-determined parameter, dual-sensor confidence estimating logic 1407 will discard accelerometer data 1421 and send image data 1422 alone to position fix smoothing logic 1410. In accordance with at least one embodiment, when neither accelerometer data 1421 nor image data 1422 is available for position fix smoothing a default condition in which the position fix 1384 is output from position fix smoothing logic 1410. Additionally, in accordance with one embodiment, if accelerometer data 1421 is deemed as having expired, it will not be used by LMM smoothing logic 1 130. For example, accelerometer data 1421 is combined with a determined GNSS position fix 1384, which defines an initializing time for the accelerometer 1 1 15, to derive a subsequent position fix. However, if the "age" of the GNSS position fix 1384 exceeds a pre-defined parameter (e.g., greater than 10 seconds), the circular error probability of a position fix using accelerometer data 1421 may be determined to be too great in accurately determining a position fix. In such a case, the accelerometer data 1421 may be discarded or disregarded by LMM smoothing logic 1 130 in determining or disciplining a position fix.
[00245] Figure 16A depicts a diagram of a pattern where locally measured movement information (e.g., 1421 of Figure 14) from an accelerometer (e.g., 1 1 15 of Figure 1 1 D) to improve position determination, according to one embodiment. Axis 1601 A, 1602A, 1603A are for time for an accelerometer measurement of movement, a position fix, and a smoothed position fix respectively. Axis 1601 B is for distance measured by the accelerometer 1 1 15, axis 1602B is for position fix distance (e.g., 1384 of Figure 13) output by GNSS chipset 1 107, axis 1603B is for a smoothed position fix (e.g., 1429 of Figure 14) output by LMM smoothing logic 1 130. Plot 1612A represents locally determined measurements of the movement of device 1 100 or cellular device 1200 using accelerometer 1 1 15. As shown in Figure 16A, the distance travelled by device 1 100 or cellular device 1200 during a given epoch is represented by the vertical distance between two data points (e.g., 1612B and 1612C, or 1614B and 1614C). At time tO, the position of device 1 100 or cellular device 1200 is known using, for example, a position fix 1384 generated by GNSS chipset 1 107. Time tO is also used as the initializing time for accelerometer 1 1 15. Subsequent position fixes 1384 generated by GNSS chipset 1 107 are represented by plot 1614A. In accordance with various embodiments, the known position of device 1 100 or cellular device 1200, as shown as a data point at tO, as well as the locally measured movement information represented by plot 1612A provide position fixes for determining the location at which device 1 100 or cellular device 1200 is located based upon locally measured accelerometer distance 1421. Plot 1616A represents discreet smoothed position fixes output by LMM smoothing logic 1 130 based upon detecting outlier data points in plot 1614A (e.g., 1614C of Figure 16A) which may result from various factors which affect the precision with which a GNSS receiver can determine its position. Distance measured by the accelerometer 1 1 15 is an example of locally measured movement information. The locally measured accelerometer distance 1421 is locally measured movement of the real distance of a device 1 100 or cellular device 1200 as it is moving. The locally measured accelerometer distance 1421 is used to correct the position fix distances 1614C which indicates that device 1 100 or cellular device 1200 moved backwards at data point 1614C. In contrast, data from accelerometer 1 1 15, as shown in plot 1612A, indicate that device 1 100 or cellular device 1200 continued moving at a constant rate. As discussed above, the distance travelled as determined by GNSS chipset 1 107 can be determined as Pi - P2 (e.g., data point 1614B - data point 1614C). In accordance with at least one embodiment, when the distance travelled (e,g., Pi - P2) exceeds a locally measured movement (LMM) position shift distance for the same epoch (e.g., 1612B - 1612C) by a selected threshold value (e.g., 1 .5 times the LMM position shift distance or greater), the GNSS position fix at P2 (e.g., 1614C) is identified as an outlier data point and is discarded and the LMM position shift distance (e.g., 1612B - 1612C) is added to the previous GNSS position fix (e.g. P-i (data point 1614B)) to determine the position of a device. As a result, data point 1616B of smoothed position fix plot 1616A approximates the accelerometer distance data point 1612C rather than position fix distance data point 1614C. It is noted that the selected threshold value used to identify an outlier data point can be larger or smaller than that discussed above. In accordance with various embodiments, upon detecting outlier data such as data point 1614C, LMM smoothing logic 1 130 discards that outlier position fix 1384, and replaces it with a new smoothed position fix 1429 of Figure 14 (e.g., data point 1616B of Figure 16A) based at least in part on the data from accelerometer 1 1 15. In accordance with various embodiments the accelerometer data 1421 from accelerometer 1 1 15 (e.g., 1612C of Figure 16A) can be used as a replacement to an outlier position fix data point (e.g., 1614C) to derive a smoothed position fix data point (e.g., 1616B). As depicted, at point 1620, the accelerometer reaches a limiting factor at which time data from accelerometer 1 1 15 may be considered unreliable as discussed above at which point accelerometer 1 1 15 can be set to zero.
[00246] Figure 16B depicts a diagram of a pattern where locally measured movement information (e.g., plot 1618A of Figure 16B) from an image capture device (e.g., 1 1 16 of Figure 1 1 D) to improve position determination, according to one embodiment. Axis 1602A, 1603A, 1604A are for time, axis 1604B is for distance measured by the image capture device 1 1 16, axis 1602B is for position fix distance (e.g., data plot 1614D), axis 1603B is for smoothed position fixes (e.g., data plot 1616C). Distance measured by the image capture device 1 1 16 is another example of locally measured movement information. The locally measured image capture device distances shown in plot 1618A represent locally measured movements of the real distance device 1 100 or cellular device 1200 has moved since time tO. The locally measured image capture device distance 1618B is used to correct the position fix distance 1614E which has been identified as an outlier by LMM smoothing logic 1 130. In other words, the distance travelled by device 1 100 and/or cellular device 1200 (e.g., position fix 1384 as shown at data point 1614E of Figure 16B) exceeds the locally measured movement (LMM) position shift distance for the same epoch by a selected threshold value. As a result, data point 1616D of smoothed position fix plot 1616C approximates the image measured distance data point 1618B rather than position fix distance data point 1614D. Therefore, the plot of the smoothed position fix distances 1616C approximates the data shown in plot 1618A.
[00247] Figure 16C depicts a diagram of a pattern where locally measured movement information data plots 1612D and 1618D respectively from accelerometer 1 1 15 and image capture device 1 1 16 are continuously integrated together to improve position determination during a period of time. Again, the data points comprising data plots 1612D and 1618D are based upon accelerometer data 1421 and image data 1422 respectively. Axis 1601A, 1602A, 1603A and 1604A are for time, axis 1601 B represents distances measured by the accelerometer 1 1 15 as shown by plot 1612D, axis 1602B represents position fix distances as shown by plot 1614G, axis 1603B represents smoothed position fixes as shown by plot 1616E, and axis 1604B is for distances measured by image capture device 1 1 16 as shown by plot 1618D. Distances represented in plots 1612C and 1618D are based upon data from accelerometer 1 1 15 and image capture device 1 1 16 and are examples of locally measured movement information. In the example of Figure 16C, distances from plots 1612C and 1618D are used to correct an outlier position fix 1614G. In Figure 16C, the data from accelerometer 1 1 15 is differing somewhat from that received from image capture device 1 1 16, possibly due to the greater increase in positioning error over time exhibited by accelerometers. Therefore, the curve of the smoothed position fix as shown by plot 1616E approximates the curve of plot 1618D rather than plot 1612D as the data from image capture device 1 1 16 is used as the basis for correcting the outlier position fix 16141. In other words, the distance travelled by device 1 100 and/or cellular device 1200 (e.g., position fix 1384 as shown at data point 1614G of Figure 16C) exceeds the locally measured movement (LMM) position shift distance for the same epoch by a selected threshold value. As a result, data point 1616F of smoothed position fix plot 1616E approximates the image measured distance data point 1618B rather than position fix distance data point 1614G.
[00248] Figure 16D depicts a diagram of a pattern where the position determination is improved by alternating the use of non-overlapping locally measured movement information 1612G and 1618G from accelerometer 1 1 15 and image capture device 1 1 16 respectively, according to one embodiment. For example, up to time t1 , only the locally measured movement information from accelerometer 1 1 15 (e.g., accelerometer data 1421 ) is used as represented by plot 1612G. Subsequent to that only the locally measured movement information from image capture device 1 1 16 (e.g., image data 1422) is used as represented by plot 1618G. The locally measured accelerometer data 1612G and the image capture device's data 1618G are used to correct the position fix distances as represented by plot 1614J as needed. More specifically, the position fix represented by data point 1614J is identified as an outlier data point and is replaced based upon image data 1422 due to the timeout limit 1620 having been reached for data from accelerometer 1 1 15. Therefore, the curve of the smoothed position fixes as shown by plot 1616H utilizes image data 1422 to derive a position fix using data point 1618H to replace data point 1614J. [00249] For the sake of simplicity, Figures 16A-16D were depicted with movement information from one sensor or two sensors. Also, the features dual-sensor averaging logic 1406 and dual-sensor confidence estimating logic 1407 have not been represented in Figures 16A-16D. Additionally, various embodiments are well suited to a different number of sensors as well.
[00250] In the above description of various embodiments, device 1 100 or cellular device 1200 was used as example devices. In current practice, most cellular telephones currently are configured with image capture devices, GPS/GNSS chipsets, and accelerometers which can be in accordance with various embodiments. It is noted that various embodiments are not limited to cellular devices alone and can be implemented on a wide variety of devices (e.g., 1 100 of Figures 1 1 A-E) including, but not limited to, laptop computers, tablet computers (e.g., Microsoft Surface, Apple iPads and iPad mini families; and Samsung Galaxy Tab families), personal digital assistants (PDAs), surveying devices such as surveying rover units, a surveying data collector, a vehicular system, or the like.
[00251] Figure 17A is a block diagram of a positioning component 1700 which provides locally measured movement smoothing of position fixes for an image capture capable device in accordance with at least one embodiment. It is noted that the image capture capable device with which positioning component 1700 is coupled may comprise a camera, a video camera, a digital camera, a digital video camera, a digital camcorder, a stereo digital camera, a stereo video camera, a motion picture camera, and a television camera. For the purpose of the present discussion, positioning component 1700 will be described as being coupled with a "camera".
[00252] The positioning component 1700 includes a bus 1718, a GNSS chipset 1707, a processor 1709, memory 1710, a display 1712, at least one accelerometer 1715, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), and operating system 1 160. Components 1707, 1709, 1710, 1712, and 1715, are all connected with the bus 1718. For the purpose of brevity, the function of the components listed above will not be repeated as they have been described in detail with reference to Figures 1 1 A-E and 12A-D. In Figure 17A, positioning component 1700 further comprises an input/output (I/O) connection 1710. I/O connection 1710 is used to facilitate the exchange of data between positioning component 1700 and a camera with which it is coupled. Examples of I/O connection 1710 in accordance with various embodiments include, but are not limited to, implementations of the IEEE 1394 serial bus interface standards more commonly known as "Firewire" and a Universal Serial Bus (USB) connection, or both. Firewire and USB are widely used in the consumer market and in at least embodiment, both connections are provided by I/O connection 1710. It is noted that I/O connection 1710 is not limited to these implementations alone and that other industry standard, or proprietary, connectors and communication protocols may be implemented as I/O connection 1710. Increasingly, the market is overwhelmingly dominated by digital cameras which may, or may not have integrated position fix generating capabilities. In accordance with various embodiments, positioning component 1700 can be coupled with a camera to provide positioning information based upon position fixes generated by GNSS chipset 1707, or by a GNSS chipset internal to the camera to which it is coupled. In so doing, positioning component 1700 facilitates using locally measured movement smoothing of position fixes generated by the camera itself, accelerometer 1715, or by GNSS chipset 1707. It is noted that in at least one embodiment, GNSS chipset 1707 can be a high precision GNSS receiver such as 1 107 of Figure 13. Furthermore, while not shown in Figure 17A, other components described above with reference to Figures 1 1A-E and 12A-D can be implemented by positioning component 1700. Examples include, but are not limited to, satellite receiver 1 106, FM radio receiver 1 108, cellular transceiver 1 1 1 1 , and Wi-Fi transceiver 1 1 14 which can be used to receive GNSS corrections data from sources outside of positioning component 1700.
Display 1712 can be used to display for users a visual representation, using a map display, of the location at which they are located as determined by LMM smoothing logic 1 130.
[00253] Figure 17B is a block diagram of a locally measured movement component 1750 which provides locally measured movement smoothing of position fixes for GNSS receivers in accordance with at least one embodiment. The locally measured movement component 1750 includes a bus 1718, a processor 1709, memory 1710, a display 1712, at least one accelerometer 1715, an image capture device 1716, locally measured movement smoothing logic 1 130 (e.g., LMM smoothing logic 1 130), and operating system 1 160. Components 1709, 1710, 1712, 1715, and 1716 are all connected with the bus 1718. For the purpose of brevity, the function of the components listed above will not be repeated as they have been described in detail with reference to Figures 1 1 and 17A. Many people own personal GPS/GNSS receivers which they can use for navigation, either on foot, by bicycle, or in a vehicle. In accordance with various embodiments, locally measured movement component 1750 can be coupled with a GPS/GNSS receiver to provide positioning information including position fix smoothing based upon position fixes generated by a GNSS chipset internal to the GPS/GNSS receiver to which it is coupled. In so doing, locally measured movement component 1750 facilitates using locally measured movement smoothing of position fixes generated by the GPS/GNSS receiver itself, accelerometer 1715, or by GNSS chipset 1707. While not shown in Figure 17B, other components described above with reference to Figure 1 1 D can be implemented by locally measured movement component 1750. Examples include, but are not limited to, satellite receiver 1 106, FM radio receiver 1 108, cellular transceiver 1 1 1 1 , and Wi-Fi transceiver 1 1 14.
[00254] Figure 18 is a flowchart of a method 1800 of improving position determination of a device using locally measured movement in accordance with at least one embodiment.
[00255] In operation 1810 of Figure 18, a first position fix of a Global Navigation Satellite System (GNSS) receiver system (e.g., GNSS chipset of Figures 1 1A-E and 12A-D) of a device is accessed. As discussed above, in accordance with various embodiments, LMM smoothing logic 1 130 obtains position fixes (e.g., 1384 of Figure 13) either directly from a GNSS receiver system, or from a memory to which those position fixes are stored. In accordance with various embodiments, the GNSS receiver system comprises a plurality of sub-systems and wherein at least one of said plurality of sub-systems is accessible by a processor, or the GNSS receiver system comprises a GNSS chipset. In various
embodiments the device of which the GNSS receiver is a portion is a mobile device that may easily be moved from a first position to a second position that is different from the first position. Some examples of devices that are easily moved are those that are hand-holdable such as cellular telephones and tablet computers or wearable devices such as watches, rings, bracelets, and the like. In some embodiments, the device itself may be coupled with or a portion of a mobile entity such as a vehicle. For example, the device may be a portion of an unmanned aerial vehicle (also known as a remotely piloted vehicle or a drone).
[00256] In operation 1820 of Figure 18, a second position fix of said GNSS receiver system is accessed at a subsequent time to said first position fix. As shown in Figures 16A-16D, plots 1614A, 1614D, 1614G, and 16141 show plots of data points representing a plurality of position fixes from a GNSS receiver or GNSS chipset 1 107.
[00257] In operation 1830 of Figure 18, locally measured device movement information is obtained from at least one sensor that is in a known physical relationship to the device for a time period after the first position fix and no later than the second position fix. The known physical relationship may be at a known location that is either internal or external to the device. For example, with respect to an externally located sensor, the location and orientation of the sensor is known with respect to the device and other components of the device. For example, with respect to an externally located sensor, the sensor may be physically separate from the device at a fixed distance and relationship with respect to the device and components of the device (e.g., in one embodiment both the device and the sensor may be coupled to one another in a fixed relationship with hook and loop fasteners, adhesive, or other fasteners; in another embodiment both the device and the sensor may commonly coupled separately, but in a fixed relationship with one another, to a shared intermediate item such as, but not limited to, a pole or a portion of an unmanned aerial vehicle). The sensor is selected from at least one of an image capture device (e.g., 1 1 16 of Figure 1 1 D) and at least one accelerometer (e.g., 1 1 15 of Figure 1 1 D). Referring again to Figure 14, accelerometer data 1421 and image data 1422 are received by LMM accessing logic 1402. In at least one embodiment, the accelerometer data 1421 and/or image data 1422 is retrieved from a memory. In accordance with various embodiments, the
accelerometer data 1421 and the image data 1422 can be sent directly to position fix smoothing logic 1410. Alternatively, accelerometer data 1421 and image data 1422 can be sent to dual-sensor processing logic 1405. In one embodiment, dual-sensor averaging logic 1406 of dual-sensor processing logic 1405 creates an average value of locally measured device movement information received from accelerometer 1 1 15 and image capture device 1 1 16 to indicate the movement of the device. In one embodiment, the average value of locally measured device movement information comprises a weighted average. In another embodiment, dual-sensor confidence estimating logic 1407 of dual-sensor processing logic 1405 is configured to determine if the locally measured device movement information (e.g., accelerometer data 1421 ) received from accelerometer 1 1 15 has become an unreliable metric for determining the movement of a device. In response to determining that the locally measured device movement information received from accelerometer 1 1 15 has become an unreliable metric for determining the movement of a device, dual-sensor processing logic 1405 is configured to use the locally measured device movement information (e.g., image data 1422) received from image capture device 1 1 16 for disciplining the second position fix.
[00258] In operation 1840 of Figure 18, the quality of measurement of the second position fix is improved by disciplining the second position fix based on the locally measured device movement information. In accordance with various embodiments, position fix smoothing logic 1410 is configured to adjust erroneous position fixes which may be generated by the GNSS receiver system due to, for example, multipath signal error which can cause erroneous calculation of a position fix. In one embodiment, position fix smoothing logic 1410 comprises a Kalman filter 141 1 which is configured to determine that the second position fix comprises an outlier value. In one or more embodiments, position fix smoothing logic 1410 can use another filtering logic such as Robust Estimation, Least Square fitting methods, particle filtering, Hough transform, Random Sample Consensus (RANSAC), non-linear variants, such as sigma-editing, both a priori and a posteriori, and non-optimal (in a
Gaussian sense) linear variants, instead of, or in addition to, the use of Kalman filter 141 1 . In one embodiment, Least Square fitting methods include using sequential least squares processing which is similar to Kalman filtering with the last N position and orientation states retained in the filter. Referring again to Figures 16A-16D, in accordance with various embodiments, Kalman filter 141 1 is configured to detect when outlier values of position fixes 1384 (e.g., 1614C, 1614E, 16141, and 1614K respectively) occur. In accordance with at least one embodiment, Kalman filter 141 1 is configured to discard a position fix which is identified as an outlier value. In at least one embodiment, Kalman filter 141 1 is configured to use locally measured device movement information originating from accelerometer 1 1 15 and/or image capture device 1 1 16 and received either from LMM accessing logic 1402 or dual-sensor processing logic 1405.
[00259] In accordance with various embodiments, the GNSS receiver system comprises a plurality of sub-systems of which at least one of the sub-systems is accessible by a processor and the accessing of position fixes, obtaining locally measured device movement information, and improving the quality of measurement of the second position fix are performed by one or more hardware processors located in the GNSS receiver system. In another embodiment, the GNSS receiver system comprises a GNSS chipset 1 107 and the accessing of position fixes, obtaining locally measured device movement information, and improving the quality of measurement of the second position fix are performed by one or more hardware processors located in the device and outside of the GNSS chipset (e.g., 1 109 of Figures 1 1A-E and/or 12A-D). In at least one embodiment, the GNSS receiver system comprises a GNSS chipset 1 107 and the accessing of position fixes, obtaining locally measured device movement information, and improving the quality of measurement of the second position fix are performed by one or more hardware processors (e.g., 1354 of Figure 13) located in GNSS chipset.
[00260] As short summaries this writing has disclosed at least the following broad concepts.
Concept 1 . A method of improving position determination of a device using locally measured movement, said method comprising:
accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device;
accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
obtaining locally measured device movement information, from at least one sensor that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix, wherein said at least one sensor comprises an image capture device; and
improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
Concept 2. The method of Concept 1 wherein said at least one sensor further comprises at least one accelerometer which is not a component of an inertial measurement unit (IMU).
Concept 3. The method of Concept 2 further comprising:
determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device; and
responsive to said locally measured device movement information received from said accelerometer being determined to be unreliable for determining the movement of said device, using the locally measured device movement information received from said image capture device for disciplining said second position fix.
Concept 4. The method of Concept 1 wherein said GNSS receiver system comprises a plurality of sub-systems and wherein at least one of said plurality of sub-systems is accessible by a processor.
Concept 5. The method of Concept 4 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS receiver system.
Concept 6. The method of Concept 1 wherein said GNSS receiver system comprises a GNSS chipset.
Concept 7. The method of Concept 6 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said device and outside of said GNSS chipset.
Concept 8. The method of Concept 6 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS chipset.
Concept 9. The method of Concept 1 further comprising:
determining that said second position fix comprises an erroneous position fix. Concept 10. The method of Concept 9 wherein said improving said quality of measurement of said second position fix further comprises:
using a Kalman filter to determine that said second position fix comprises an outlier value.
Concept 1 1. The method of Concept 10 further comprising:
discarding said second position fix based on said locally measured device movement information.
Concept 12. The method of Concept 10 further comprising:
using locally measured device movement information received from at least said image capture device to derive a third position fix.
Concept 13. The method of Concept 1 further comprising:
determining an average value of locally measured device movement information received from said image capture device to indicate the movement of said device.
Concept 14. The method of Concept 13 wherein said average value comprises a weighted average of locally measured device movement information received from said image capture device.
Concept 15. The method of Concept 1 further comprising:
capturing audio information using a microphone coupled with said device; and converting said audio information using an analog-to-digital converter (ADC).
Concept 16. The method of Concept 1 , wherein said accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device, wherein said device is a mobile device:
accessing said first position fix of said GNSS receiver system of said device, wherein said device is a mobile device.
Concept 17. The method of Concept 1 , wherein said accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device, wherein said device is a mobile device:
accessing said first position fix of said GNSS receiver system of said device, wherein said device is disposed as a portion of an unmanned aerial vehicle. Concept 18. A non-transitory computer readable storage medium having computer readable instructions stored thereon for causing a computer system to perform a method of improving position determination of a device using locally measured movement, said method comprising:
accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device;
accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
obtaining locally measured device movement information, from at least one sensor that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix, wherein said at least one sensor comprises an image capture device; and
improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
Concept 19. The non-transitory computer readable storage medium of Concept 18 wherein said at least one sensor further comprises at least one accelerometer which is not a component of an inertial measurement unit (IMU).
Concept 20. The non-transitory computer readable storage medium of Concept 19, wherein said method further comprises:
determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device; and
responsive to said locally measured device movement information received from said accelerometer being determined to be unreliable for determining the movement of said device, using the locally measured device movement information received from said image capture device for disciplining said second position fix.
Concept 21. The non-transitory computer readable storage medium of Concept 18 wherein said GNSS receiver system comprises a plurality of sub-systems and wherein at least one of said plurality of sub-systems is accessible by a processor.
Concept 22. The non-transitory computer readable storage medium of Concept 21 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS receiver system. Concept 23. The non-transitory computer readable storage medium of Concept 18 wherein said GNSS receiver system comprises a GNSS chipset.
Concept 24. The non-transitory computer readable storage medium of Concept 23 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said device and outside of said GNSS chipset.
Concept 25. The non-transitory computer readable storage medium of Concept 23 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS chipset.
Concept 26. The non-transitory computer readable storage medium of Concept 18 wherein said improving said quality of measurement of said second position fix further comprises: determining that said second position fix comprises an erroneous position fix.
Concept 27. The non-transitory computer readable storage medium of Concept 26 wherein said improving said quality of measurement of said second position fix further comprises: using a Kalman filter to determine that said second position fix comprises an outlier value.
Concept 28. The non-transitory computer readable storage medium of Concept 27 further comprising:
discarding said second position fix based on said locally measured device movement information.
Concept 29. The non-transitory computer readable storage medium of Concept 27 further comprising:
using locally measured device movement information received from at least said image capture device to derive a third position fix.
Concept 30. The non-transitory computer readable storage medium of Concept 18 further comprising:
determining an average value of locally measured device movement information received from said image capture device to indicate the movement of said device. Concept 31. The non-transitory computer readable storage medium of Concept 30 wherein said average value comprises a weighted average of locally measured device movement information received from said image capture device.
Concept 32. The non-transitory computer readable storage medium of Concept 18 wherein said method further comprises:
capturing audio information using a microphone coupled with said device; and converting said audio information using an analog-to-digital converter (ADC).
Concept 33. A system for improving position determination of a device using locally measured movement, said system comprising:
a locally measured movement (LMM) smoothing logic component implemented by a processor for accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device and for accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
an image capture device for obtaining locally measured device movement information from at least one sensor, that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix; and wherein said LMM smoothing logic is further configured for improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
Concept 34. The system of Claim 33 further comprising:
at least one accelerometer, which is not a component of an inertial measurement unit (IMU), that is in a known physical relationship to said device, for obtaining locally measured device movement information for a time period after said first position fix and no later than said second position fix.
Concept 35. The system of Concept 34 further comprising:
a dual-sensor averaging logic implemented by said processor for determining an average value of locally measured device movement information received from said accelerometer and said image capture device to indicate the movement of said device.
Concept 36. The system of Concept 35 wherein said average value comprises a weighted average of locally measured device movement information received from said accelerometer and said image capture device. Concept 37. The system of Concept 34 further comprising:
a dual-sensor averaging logic implemented by said processor for determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device and for using the locally measured device movement information received from said image capture device for disciplining said second position fix in response to determining information received from said accelerometer is unreliable for determining the movement of said device.
Concept 38. The system of Concept 33 further comprising:
a microphone configured for capturing audio information; and
an analog-to-digital converter (ADC) coupled with microphone and configured to convert the audio information to a digital format.
Concept 39. The system of Concept 33 wherein said GNSS receiver system comprises a GNSS chipset.
Concept 40. The system of Concept 33 wherein said GNSS receiver system comprises a plurality of sub-systems and wherein at least one of said plurality of sub-systems is accessible by a processor.
Concept 41. The system of Concept 40 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS receiver system.
Concept 42. The system of Concept 33 wherein said LMM smoothing logic is configured to determine that said second position fix comprises an erroneous position fix.
Concept 43. The system of Concept 42 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said device and outside of said GNSS chipset.
Concept 44. The system of Concept 42 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS chipset.
Concept 45. The system of Concept 42 wherein said LMM smoothing logic comprises a Kalman filter configured to determine that said second position fix comprises an outlier value. Concept 46. The system of Concept 45 wherein said LMM smoothing logic is further configured to discard said second position fix based on said locally measured device movement information.
Concept 47. The system of Concept 45 wherein said LMM smoothing logic is further configured to use locally measured device movement information received from at least said image capture device.
Concept 48. The system of Concept 33, wherein said device comprises a mobile device.
Concept 49. The system of Concept 33 wherein said device is a portion of an unmanned aerial vehicle.
Conclusion
[00261] Example embodiments of the subject matter are thus described. Although the subject matter has been described in a language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
[00262] Various embodiments have been described in various combinations and illustrations. However, any two or more embodiments or features may be combined.
Further, any embodiment or feature may be used separately from any other embodiment or feature. Phrases, such as "an embodiment," "one embodiment," among others, used herein, are not necessarily referring to the same embodiment. Features, structures, or
characteristics of any embodiment may be combined in any suitable manner with one or more other features, structures, or characteristics.

Claims

CLAIMS What is Claimed is:
1. A method of improving position determination of a device using locally measured movement, said method comprising:
accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device;
accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
obtaining locally measured device movement information, from at least one sensor that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix, wherein said at least one sensor comprises an image capture device; and
improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
2. The method of Claim 1 wherein said at least one sensor further comprises at least one accelerometer which is not a component of an inertial measurement unit (IMU).
3. The method of Claim 2 further comprising:
determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device; and
responsive to said locally measured device movement information received from said accelerometer being determined to be unreliable for determining the movement of said device, using the locally measured device movement information received from said image capture device for disciplining said second position fix.
4. The method of Claim 1 , 2, or 3, wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS receiver system.
5. The method of Claim 1 , 2, or 3 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said device and outside of said GNSS receiver system.
6. The method of Claim 1 , 2, or 3 further comprising: determining, using a Kalman filter, that said second position fix comprises an erroneous position fix;
discarding said second position fix based on said locally measured device movement information; and
using locally measured device movement information received from at least said image capture device to derive a third position fix.
7. A non-transitory computer readable storage medium having computer readable instructions stored thereon for causing a computer system to perform a method of improving position determination of a device using locally measured movement, said method comprising:
accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device;
accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
obtaining locally measured device movement information, from at least one sensor that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix, wherein said at least one sensor comprises an image capture device; and
improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
8. The non-transitory computer readable storage medium of Claim 7 wherein said at least one sensor further comprises at least one accelerometer which is not a component of an inertial measurement unit (IMU).
9. The non-transitory computer readable storage medium of Claim 8 wherein said method further comprises:
determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device; and
responsive to said locally measured device movement information received from said accelerometer being determined to be unreliable for determining the movement of said device, using the locally measured device movement information received from said image capture device for disciplining said second position fix.
10. The non-transitory computer readable storage medium of Claim 7, 8, or 9 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said device and outside of said GNSS receiver.
1 1 . The non-transitory computer readable storage medium of Claim 7, 8, or 9 wherein said accessing, said obtaining, and said improving are performed by one or more hardware processors located in said GNSS receiver.
12. A system for improving position determination of a device using locally measured movement, said system comprising:
a locally measured movement (LMM) smoothing logic component implemented by a processor for accessing a first position fix of a Global Navigation Satellite System (GNSS) receiver system of a device and for accessing a second position fix of said GNSS receiver system at a subsequent time to said first position fix;
an image capture device for obtaining locally measured device movement information from at least one sensor, that is in a known physical relationship to said device, for a time period after said first position fix and no later than said second position fix; and wherein said LMM smoothing logic is further configured for improving a quality of measurement of said second position fix by disciplining said second position fix based on said locally measured device movement information.
13. The system of Claim 12 further comprising:
at least one accelerometer, which is not a component of an inertial measurement unit (IMU), that is in a known physical relationship to said device, for obtaining locally measured device movement information for a time period after said first position fix and no later than said second position fix.
14. The system of Claim 13 further comprising:
a dual-sensor averaging logic implemented by said processor for determining an average value of locally measured device movement information received from said accelerometer and said image capture device to indicate the movement of said device.
15. The system of Claim 13 further comprising:
a dual-sensor averaging logic implemented by said processor for determining if the locally measured device movement information received from said accelerometer has become an unreliable metric for determining the movement of said device and for using the locally measured device movement information received from said image capture device for disciplining said second position fix in response to determining information received from said accelerometer is unreliable for determining the movement of said device.
PCT/US2015/028600 2014-05-02 2015-04-30 Locally measured movement smoothing of gnss position fixes WO2015168451A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/268,898 US9488736B2 (en) 2012-12-28 2014-05-02 Locally measured movement smoothing of GNSS position fixes
US14/268,898 2014-05-02

Publications (1)

Publication Number Publication Date
WO2015168451A1 true WO2015168451A1 (en) 2015-11-05

Family

ID=53177896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/028600 WO2015168451A1 (en) 2014-05-02 2015-04-30 Locally measured movement smoothing of gnss position fixes

Country Status (1)

Country Link
WO (1) WO2015168451A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128669A1 (en) * 2017-01-04 2018-07-12 Qualcomm Incorporated Systems and methods for using a sliding window of global positioning epochs in visual-inertial odometry
CN110100151A (en) * 2017-01-04 2019-08-06 高通股份有限公司 The system and method for global positioning system speed is used in vision inertia ranging

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621416A (en) 1995-02-02 1997-04-15 Trimble Navigation Limited Optimized processing of signals for enhanced cross-correlation in a satellite positioning system receiver
US6711293B1 (en) 1999-03-08 2004-03-23 The University Of British Columbia Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image
US20060146136A1 (en) * 2004-12-21 2006-07-06 Seong-Ik Cho Apparatus for correcting position and attitude information of camera and method thereof
US7336814B2 (en) 2004-07-14 2008-02-26 Braintech Canada, Inc. Method and apparatus for machine-vision
WO2009074654A1 (en) * 2007-12-11 2009-06-18 Nemerix Sa Gnss method and receiver with camera aid
EP2275778A1 (en) * 2009-07-17 2011-01-19 Kabushiki Kaisha TOPCON Position measuring
WO2011120141A1 (en) * 2010-03-31 2011-10-06 Ambercore Software Inc. Dynamic network adjustment for rigorous integration of passive and active imaging observations into trajectory determination
US20120116676A1 (en) * 2010-11-10 2012-05-10 Gm Global Technology Operations, Inc. Method of Augmenting GPS or GPS/Sensor Vehicle Positioning Using Additional In-Vehicle Vision Sensors

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621416A (en) 1995-02-02 1997-04-15 Trimble Navigation Limited Optimized processing of signals for enhanced cross-correlation in a satellite positioning system receiver
US6711293B1 (en) 1999-03-08 2004-03-23 The University Of British Columbia Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image
US7336814B2 (en) 2004-07-14 2008-02-26 Braintech Canada, Inc. Method and apparatus for machine-vision
US20060146136A1 (en) * 2004-12-21 2006-07-06 Seong-Ik Cho Apparatus for correcting position and attitude information of camera and method thereof
WO2009074654A1 (en) * 2007-12-11 2009-06-18 Nemerix Sa Gnss method and receiver with camera aid
EP2275778A1 (en) * 2009-07-17 2011-01-19 Kabushiki Kaisha TOPCON Position measuring
WO2011120141A1 (en) * 2010-03-31 2011-10-06 Ambercore Software Inc. Dynamic network adjustment for rigorous integration of passive and active imaging observations into trajectory determination
US20120116676A1 (en) * 2010-11-10 2012-05-10 Gm Global Technology Operations, Inc. Method of Augmenting GPS or GPS/Sensor Vehicle Positioning Using Additional In-Vehicle Vision Sensors

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"GPS SPS Performance Standard", 2008
PAUL R. WOLF: "Elements of Photogrammetry", 2000, MCGRAW-HILL

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128669A1 (en) * 2017-01-04 2018-07-12 Qualcomm Incorporated Systems and methods for using a sliding window of global positioning epochs in visual-inertial odometry
US10267924B2 (en) 2017-01-04 2019-04-23 Qualcomm Incorporated Systems and methods for using a sliding window of global positioning epochs in visual-inertial odometry
CN110100151A (en) * 2017-01-04 2019-08-06 高通股份有限公司 The system and method for global positioning system speed is used in vision inertia ranging
CN110100190A (en) * 2017-01-04 2019-08-06 高通股份有限公司 System and method for using the sliding window of global location epoch in vision inertia ranging

Similar Documents

Publication Publication Date Title
US9488736B2 (en) Locally measured movement smoothing of GNSS position fixes
US9177384B2 (en) Sequential rolling bundle adjustment
US9602974B2 (en) Dead reconing system based on locally measured movement
US9910158B2 (en) Position determination of a cellular device using carrier phase smoothing
US9880286B2 (en) Locally measured movement smoothing of position fixes based on extracted pseudoranges
EP3469306B1 (en) Geometric matching in visual navigation systems
US10242454B2 (en) System for depth data filtering based on amplitude energy values
US9875579B2 (en) Techniques for enhanced accurate pose estimation
US9683832B2 (en) Method and apparatus for image-based positioning
US10147201B2 (en) Method of determining a direction of an object on the basis of an image of the object
US20150092048A1 (en) Off-Target Tracking Using Feature Aiding in the Context of Inertial Navigation
Hide et al. Low cost vision-aided IMU for pedestrian navigation
US8933986B2 (en) North centered orientation tracking in uninformed environments
CN107850673A (en) Vision inertia ranging attitude drift is calibrated
US10841570B2 (en) Calibration device and method of operating the same
JP2012112959A (en) Satellite signal multipath mitigation in gnss devices
WO2011071948A2 (en) System and method for determining geo-location(s) in images
US11042984B2 (en) Systems and methods for providing image depth information
EP3137923B1 (en) Dead reckoning system based on locally measured movement
CN115164900A (en) Omnidirectional camera based visual aided navigation method and system in urban environment
WO2015168451A1 (en) Locally measured movement smoothing of gnss position fixes
Kuo et al. Calibrating a wide-area camera network with non-overlapping views using mobile devices
Rossi et al. Comparison between rgb and rgb-d cameras for supporting low-cost gnss urban navigation
Adeel et al. Research and performance analysis of tightly coupled vision, INS and GNSS system for land vehicle applications
Moun et al. Localization and building identification in outdoor environment for smartphone using integrated GPS and camera

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15722633

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15722633

Country of ref document: EP

Kind code of ref document: A1