# Patent

## Title
Viewing and display apparatus position determination algorithms

## Abstract

Celestial object location devices with sensor arrays of having less that one sensor for each of three orthogonal components of gravity and magnetic field vectors. The accuracy of position sensing is enhanced by estimating “missing” sensor input based on input from two orthogonal sensors provided, or determined with limitations from the two gravitational sensors provided.

## Background
This application is continuation of U.S. application Ser. No. 11/376,670, filed Mar. 14, 2006, now U.S. Pat. No. 7,155,833, which is a continuation of U.S. application Ser. No. 10/861,032 filed Jun. 4, 2004, now U.S. Pat. No. 7,010,862.


FIELD OF THE INVENTIONS
The inventions described below relate the field of astronomy, specifically to an electronic device capable of locating and identifying celestial objects.
BACKGROUND OF THE INVENTIONS
Norton, Viewing And Display Apparatus, U.S. Pat. No. 5,311,203 (May 10, 1994) describes a viewing device for identifying features of interest which appear in the field of view of the device. Though Norton was described in the context of a hand-held star-gazing device, and purported to provide information about asterisms (constellations or groups of stars) in the field of view, the device does not work unless held with certain components held perfectly vertical during use. Any twisting or rotation of the device about the viewing axis necessarily causes errors, and introduces ambiguity that cannot be resolved. Thus, it is not possible to implement the Norton system, as proposed by Norton, in a hand-held device. Norton consists of a box-like housing with a viewing channel therethrough, an LCD display and image overlay system for superimposing an image on the field of view, optics for manipulating the superimposed image to make it appear at infinity, a single axis eccentrically weighted inclinometer to measure inclination of the device and three magnetic sensors to determine the bearing of the device, a database with information regarding the constellations which might be viewed with the device, and a microprocessor. The viewing channel establishes a field of view for the user, through which the user can see constellations. The microprocessor is programmed to interpret sensor input and search the database for constellations in the field of view, and transmit a reference display data to the display.
The Norton system suffers from crippling defects. An operational device depends on perfect vertical alignment of the inclinometer. Without perfect vertical alignment of the inclinometer the device cannot unambiguously determine its orientation. The slightest deviation from vertical introduces ambiguity, such that the device can determine only that the viewing channel is aligned somewhere on a wide arc of the sky. If the device is not held perfectly vertically, that is, if it is twisted or rotated about the viewing axis, projection errors are introduced into the output from the inclinometer, so that the device has inadequate information regarding its inclination. In the case that the twist induced error is small enough that the device can determine its viewing axis with enough precision to generate a reference display that corresponds to constellations in the field of view, the device has no way to determine that it is twisted, and thus cannot rotate the reference display to align with the constellation.
Our own patents, Lemp, Celestial Object Location Device, U.S. Pat. No. 6,366,212 (Apr. 2, 2002) and U.S. Pat. No. 6,570,506 (May 27, 2003) and our pending patent application Lemp, U.S. Publication 20030218546 (Nov. 27, 2003) (the entirety of which is hereby incorporated by reference) provides solutions to this problem. Lemp shows a device for viewing celestial objects from a location at a time and date ascertained by the device, comprising a viewing means to observe along a viewing axis defined by an azimuth angle and a nadir angle or altitude; a processor, a multi-axis magnetic sensor adapted to provide the processor with azimuth data representing the azimuth angle, a multi-axis gravitational sensor adapted to provide the processor with nadir data representing the nadir angle; location means for providing location data representing the location of the viewing device to the processor; time means for providing time and date data representing the time and date to the processor; and a database adapted to be accessed by the processor and provide data such that the processor determines celestial coordinates of right ascension and declination corresponding to the viewing axis based on the azimuth data, the nadir data, the location data, and the time and date data. The device can be used to direct a user to a celestial object (its resolution is very high, so that it can direct the user to individual stars and planets, as well as constellations and asterisms) and it can be used to identify an object to which the user has pointed the device.
The position sensing function of the device is most accurately determined using a three axis magnetic sensor and a three axis gravitational sensor. The use of lesser arrays will generally result in reduced accuracy and resolution of the device, such that it will be desirable to improve the resolution with the methods described below, especially when the devices are embodied in celestial object location devices with magnifying optics.
SUMMARY
The devices and methods described below provide for enhanced accuracy of position sensing in a celestial object location device using sensor arrays of less than three axes. Information that would otherwise be provided by a third axis gravitational sensor, for example, is obtained by estimation based on input from the two gravitational sensors provided, or determined with limitations from the two gravitational sensors provided.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a celestial object location device.
FIG. 2 illustrates the arrangement of the position sensor arrays in relation to the viewing axis of the celestial object location device.
FIGS. 3 through 6 illustrate various transformations accomplished by the device microprocessor in calculating the nadir angle and azimuth angle of the device.



DETAILED DESCRIPTION OF THE INVENTIONS
FIG. 1 shows a celestial object location device (COL device) 10 is being used by a user 12 to locate a celestial object 14. The COL device 10 has housing 16 adapted to be hand-held. Other embodiments of the device may or may not be hand-held. Non-limiting examples of such embodiments naturally include telescopes, binoculars, eyepieces, headpieces, and any means for viewing objects. The housing 16 of the COL device 10 has a first view port 18 that is held proximate to the user 12 and a second view port 20 proximate to the celestial object 14. During use, the view ports 18 and 20 are aligned between the user 12 and the celestial object 14 and the COL device 10 is adapted such that the user views the celestial object through the COL device along a viewing axis 34. Operation of the system is accomplished through one or more microprocessors operably connected to the sensors, a database, and user input mechanisms, and outputs such as a side panel display, an aperture stop display, images superimposed on the field of view, images communicated to a remote display, or audio segments played on a speaker or headphone or other suitable output means. The microprocessor may provide images or audio contents containing identifying data or locating instructions (as described in our U.S. Pat. No. 6,366,212, which is hereby incorporated by reference) to the output means.
FIG. 2 illustrates the arrangement of the position sensor arrays in relation to the viewing axis of the celestial object location device. A magnetic field sensor array 21 and a gravitational sensor array 22 are mounted on the housing 16, in fixed relationship to the viewing axis 34. The magnetic field sensor array 21 includes one magnetic sensor for each axis associated with a coordinate system defined relative to the device and its viewing axis. (This coordinate system is defined by the viewing axis, a second axis perpendicular to the viewing axis and initially oriented upward relative to the ground when in use, and a third axis perpendicular to the first and second axes (initially parallel to the ground). Though these axes may be conceived of as vertical or horizontal when considering the methods described herein, the tilting and twisting of the device in use will cause these axes to shift with no essential relationship to the terrestrial coordinate systems.) A first magnetic field sensor 21x is aligned parallel to the viewing axis, and a second magnetic field sensor 21y is arranged perpendicular to the first sensor, and a third magnetic field sensor is aligned perpendicular to the first and second magnetic field sensors, thus forming an array of three orthogonal magnetic sensors. The gravitation sensor array includes a first gravitational sensor 22x arranged in parallel to the viewing axis and a second gravitational sensor 22y arranged perpendicular to the first sensor. Gravitational sensor 22y may be parallel or skewed parallel to the second magnetic field sensor 21y. Each of the magnetic field sensors and gravitational sensors are operably connected to the microprocessor to provide input to the microprocessor.
These arrays of sensors may be used to determine the direction in which the celestial object location is pointed, and the degree to which it is twisted about the viewing axis, within the typical viewing situations. The use of arrays with gravitational sensor arrays and/or magnetic field arrays with sensors oriented on less than three axes will generally result in reduced accuracy and resolution of the device, such that improved accuracy may be desired when the device is embodied in celestial object location devices with magnifying optics, and the devices and methods described herein provide for enhanced accuracy of position sensing in a celestial object location device using sensor arrays of less than three axes. The new methods of calculating position of a celestial object location device which incorporates only two gravitational sensors may be employed if one sensor involves estimating the missing third axis sensor via the magnitude of the existing two, and an estimate or calculation of the magnitude of the local gravity vector, from there it is similar to a full 3+3 system. The degree of error encountered in the necessary calculations can be greatly reduced with the algorithms described in the following paragraphs.
In the first method presented here, the missing component of the gravity information is calculated using the input from the existing sensors. As initial steps, the system is initialized, a process which includes system startup and obtains position data and time data from appropriate sources (preferably GPS and its associated time signal and/or an onboard clock, though time and location can be manually input, or obtained from satellite broadcast time signals and alternative satellite or navigational locating systems). The system then determines error correction factors for sensor characteristics, such as alignment errors, temperature corrections, and other errors and biases. Some of these steps are performed at system startup and periodically during use.
Thereafter, the system receives and interprets input from the magnetic field sensor array and the gravitational sensor array. The algorithm first determines the nadir angle of the device by using the gravitational sensor array to calculate the gravity vector and its relationship to the viewing axis. To accomplish this, the system receives input from the gravitational sensors, and then estimates the input from the “missing” gravitational sensor via an equation such as the following:

z=√{square root over (grav2−(x2+y2))}

where z is the missing component, grav=estimated or calculated gravity field magnitude for the current location (though the calculation can assume gravity equals one g in most cases, or resort to a more precise gravitational model where additional accuracy is desired), x is the value corresponding to the signal from the gravitational sensor which is parallel to sighting channel (item 22x), and y is the value corresponding to the signal from the gravitational sensor which is perpendicular to sighting channel (item 22y). With this information, the system determines the gravity vector, which is comprised of the direction and magnitude of the sensed gravity.

Next, the system calculates a projection of the gravity vector onto the device—coordinate y-z plane. This step is illustrated in FIG. 3. This provides the basis for determining the twist of the device in the next step.
Next, the system determines the “twist” of the device, which is the rotation angle of the gravity vector (or its projection) about the viewing axis, using the y-axis as a starting point. To determine the rotation angle, the microprocessor calculates the angle between the gravitational vector projection and the device y-axis (which is established by gravitational sensor 22y).
Next, the system virtually “de-rotates” the device by rotating the gravity vector projection about the device x-axis by the rotation angle. This provides the basis for determining the nadir angle of the device, as that is the rotation of the device about its y-axis (which has been rotated to match the local horizontal plane). This step is illustrated in FIG. 4.
Next, the system calculates the nadir angle of the rotated gravity vector projection, using the x-axis sensor.
With the nadir angle calculated, the system proceeds to use the input of the magnetic field sensors to determine the azimuth angle. This is done by taking the magnetic field sensor input to calculate a magnetic field vector, and then transforming the magnetic field vector into horizon coordinates (terrestrial coordinates defined relative to the earth's local horizontal plane). This is accomplished by virtually rotating the magnetic field vector about the device x-axis by the rotation angle. This is illustrated in FIG. 5. Next the rotated magnetic vector M is virtually rotated around the device y-axis by the nadir angle to derive the device orientation in the local magnetic field. This is illustrated in FIG. 6. This will orient the device such that its coordinate system is correlated with the terrestrial coordinate system such that the device x-y plane is parallel to the terrestrial horizontal plane. Next, optionally, the system may refer to a magnetic model to ascertain the local dip angle and the expected magnitude of the magnetic field, and this may be used to confirm that output of the magnetic sensors is reliable (this step is more fully described in our co-pending U.S. application Ser. No. 10/444,788, filed May 23, 2003, the entirety of which is hereby incorporated by reference). Next, the resultant magnetic vector is projected onto the local, terrestrial horizontal plane, and the system calculates the azimuth angle (this allows the azimuth angle determination to be independent of the dip angle). The azimuth angle is calculated by determining the angle between projected magnetic vector and device x-axis. Finally, the magnetic declination correction (the difference between local magnetic north and true north) is used to determine the actual azimuth angle.
With the azimuth angle and the nadir angle determined, the device knows where it is pointed in the sky, and can determine, as required by the user input, what celestial objects appear in its field of view (for the identify function) or where the user must be prompted, by appropriate output, to move the device to align the viewing axis with a desired celestial object (for the locate function).
In the second method of position sensing, rather than estimate a third axis gravitational input, the system uses the gravitational sensor parallel to the viewing axis (22x) to calculate the altitude, and uses the gravitational sensor perpendicular to the sighting channel to calculate device rotation. Once these two angles are read, calculations proceed in a manner similar to a full 3-axis gravitational/3-axis magnetic field sensor system. Again, as initial steps, the system is initialized, including system startup and obtaining position data and time data from appropriate sources, and the system determines error correction factors for sensor characteristics, such as alignment errors, temperature corrections, and other errors and biases.
Next, the system determines nadir angle on the basis of the input of the x-axis gravitational sensor 22x, using an estimated or known local gravity magnitude (estimated gravity magnitude should be sufficient for handheld devices with little or no magnification). The rotation angle of the device is then determined based on the output of y-axis gravitational sensor 22y, which is perpendicular to the viewing axis. The step of estimating the third axis gravitational vector is not used in this method.
Next, the system determines the azimuth angle as above. This includes determining the overall magnetic field vector M by combining the input from the three magnetic field sensors 21x, 21y and 21z, transforming the magnetic field vector so that it is in terrestrial coordinates with an x-y plane parallel to the local ground plane, and completing this transform to terrestrial coordinates by rotating this vector about the device y-axis by the rotation angle, and projecting this resulting vector onto the terrestrial x-y plane, and then determining the azimuth angle of the device by calculating the angel between the projected vector and the device x-axis. Again, the system may optionally compare the measured magnetic vector with the known local dip angle and the expected magnitude of the magnetic field for correlation with a magnetic model, and the system will preferably add a correction to the calculated azimuth angle for the known magnetic declination correction (suitable corrections techniques are disclosed in our co-pending U.S. application Ser. No. 10/444,788).
For both methods, the system may make use of the known dip angle (which is determined by the known terrestrial position and the magnetic model stored in the database), and the measured magnetic field vector to determine provide additional input to the nadir angle calculation. In this method, the system determines the nadir angle based on the gravitational sensors and the local vertical as established by the comparison of the magnetic vector and the dip angle.
The method described above can be implemented with a variety of gravitational sensors and magnetic field sensors. They can even be implemented with inclinometers instead of gravitational sensors, though the range in which the device can provide accurate location and identify functionality may be limited. Also, the steps indicated above may be accomplished in any appropriate order. Though the calculations have been described in relation to linear algebra techniques suitable for the underlying calculations, the calculations may be performed using spherical trigonometry techniques (such techniques being equivalent to the underlying linear algebra). The methods and devices may be incorporated into Celestial Object Location devices comprising scopes with out optics or magnification, telescopes and binoculars, or any other viewing means. Thus, while the preferred embodiments of the devices and methods have been described in reference to the environment in which they were developed, they are merely illustrative of the principles of the inventions. Other embodiments and configurations may be devised without departing from the spirit of the inventions and the scope of the appended claims.

## Claims

1. A method of viewing celestial objects comprising the steps:
providing a celestial object viewing device having a viewing axis defined by an azimuth angle and a nadir angle, a magnetic field sensor array having a first, second and third magnetic field sensors arranged orthogonally with the first magnetic field sensor aligned parallel to the viewing axis and each magnetic field sensor generating a signal proportional to a sensed magnetic field, a gravitational sensor array having two perpendicular gravity sensors, with a first gravity sensor aligned parallel to the viewing axis and each gravity sensor generating a signal proportional to a sensed gravity field, a microprocessor, a database, and output means;
the microprocessor receiving signals from the magnetic field sensors and the gravity field sensors;
the microprocessor computing an azimuth angle and a nadir angle relative to the viewing axis;
the microprocessor providing data from the database to the output means related to celestial objects aligned with the viewing axis.

2. The method of claim 1 wherein the microprocessor computing step further comprises the steps:
determining a first gravity field component from the first gravity field sensor;
determining a second gravity field component from the gravity field sensor perpendicular to the first gravity field sensor;
computing a third gravity field component using the first and second gravity field components;
computing the nadir angle using the first, second and third gravity field components.

3. The method of claim 1 wherein the microprocessor computing step further comprises the steps:
determining a first magnetic field component from the first magnetic field sensor;
determining a second magnetic field component from the second magnetic field sensor;
determining a third magnetic field component from the third magnetic field sensor;
computing the azimuth angle using the first, second and third magnetic field components.

4. A celestial viewing device comprising:
a housing defining a viewing axis forming an azimuth angle and a nadir angle;
a magnetic sensor array in the housing, the magnetic sensor array having a first, second and third magnetic field sensors arranged orthogonally with the first magnetic field sensor aligned parallel to the viewing axis and each magnetic field sensor operable to produce a magnetic signal proportional to a sensed magnetic field;
a gravitational sensor array in the housing, the gravitational sensor array having two perpendicular gravity sensors, with a first gravity sensor aligned parallel to the viewing axis and each gravity sensor operable to produce a gravity signal proportional to a sensed gravity field;
a database;
output means for presenting data to a user; and
a microprocessor operable to receive the magnetic signals and compute the azimuth angle relative to the viewing axis, and receive the gravity signals and compute the nadir angle relative to the viewing axis, and interact with the database to provide data to the output means related to the viewing axis.

5. The apparatus of claim 4 wherein the microprocessor further comprises:
a microprocessor operable to determine a first gravity field component from the first gravity field sensor signal, and determine a second gravity field component from the gravity signal of the gravity field sensor perpendicular to the first gravity field sensor, and compute a third gravity field component using the first and second gravity field components and compute the nadir angle relative to the viewing axis using the first, second and third gravity field components, receive the magnetic signals and compute the azimuth angle relative to the viewing axis, and interact with the database to provide data to the output means related to the viewing axis.

6. The apparatus of claim 4 wherein the microprocessor further comprises:
a microprocessor operable to determine a first magnetic field component from the first magnetic field sensor, to determine a second magnetic field component from the second magnetic field sensor, to determine a third magnetic field component from the third magnetic field sensor, to compute the azimuth angle using the first, second and third magnetic field components, and receive the gravity signals and compute the nadir angle relative to the viewing axis, and interact with the database to provide data to the output means related to the viewing axis.

7. The apparatus of claim 4 wherein the microprocessor further comprises:
a microprocessor operable to determine a first gravity field component from the first gravity field sensor signal, and determine a second gravity field component from the gravity signal of the gravity field sensor perpendicular to the first gravity field sensor, and compute a third gravity field component using the first and second gravity field components and compute the nadir angle relative to the viewing axis using the first, second and third gravity field components, the microprocessor operable to determine a first magnetic field component from the first magnetic field sensor, to determine a second magnetic field component from the second magnetic field sensor, to determine a third magnetic field component from the third magnetic field sensor, to compute the azimuth angle using the first, second and third magnetic field components, and the microprocessor operable interact with the database to provide data to the output means related to the viewing axis.

8. A method of viewing celestial objects comprising the steps:
providing a celestial object viewing device having a viewing axis defined by an azimuth angle and a nadir angle, a magnetic field sensor array having a first, second and third magnetic field sensors arranged orthogonally with the first magnetic field sensor aligned parallel to the viewing axis and each magnetic field sensor generating a signal proportional to a sensed magnetic field, a gravitational sensor array having two perpendicular gravity sensors, with a first gravity sensor aligned parallel to the viewing axis and each gravity sensor generating a signal proportional to a sensed gravity field, a microprocessor, a database, and output means;
the microprocessor receiving signals from the magnetic field sensors and the gravity field sensors;
the microprocessor computing an azimuth angle and a nadir angle relative to the viewing axis.

9. The method of claim 8 wherein the microprocessor computing step further comprises the steps:
determining a first gravity field component from the first gravity field sensor;
determining a second gravity field component from the gravity field sensor perpendicular to the first gravity field sensor;
computing a third gravity field component using the first and second gravity field components;
computing the nadir angle using the first, second and third gravity field components.

10. The method of claim 8 wherein the microprocessor computing step further comprises the steps:
determining a first magnetic field component from the first magnetic field sensor;
determining a second magnetic field component from the second magnetic field sensor;
determining a third magnetic field component from the third magnetic field sensor;
computing the azimuth angle using the first, second and third magnetic field components.

11. A celestial viewing device comprising:
a housing defining a viewing axis forming an azimuth angle and a nadir angle;
a magnetic sensor array in the housing, the magnetic sensor array having a first, second and third magnetic field sensors arranged orthogonally with the first magnetic field sensor aligned parallel to the viewing axis and each magnetic field sensor operable to produce a magnetic signal proportional to a sensed magnetic field;
a gravitational sensor array in the housing, the gravitational sensor array having two perpendicular gravity sensors, with a first gravity sensor aligned parallel to the viewing axis and each gravity sensor operable to produce a gravity signal proportional to a sensed gravity field;
output means for presenting data to a user; and
a microprocessor operable to receive the magnetic signals and compute the azimuth angle relative to the viewing axis, and receive the gravity signals and compute the nadir angle relative to the viewing axis, and provide data to the output means related to the viewing axis.

12. The apparatus of claim 11 wherein the microprocessor further comprises:
a microprocessor operable to determine a first gravity field component from the first gravity field sensor signal, and determine a second gravity field component from the gravity signal of the gravity field sensor perpendicular to the first gravity field sensor, and compute a third gravity field component using the first and second gravity field components and compute the nadir angle relative to the viewing axis using the first, second and third gravity field components, receive the magnetic signals and compute the azimuth angle relative to the viewing axis, and interact with the database to provide data to the output means related to the viewing axis.

13. The apparatus of claim 11 wherein the microprocessor further comprises:
a microprocessor operable to determine a first magnetic field component from the first magnetic field sensor, to determine a second magnetic field component from the second magnetic field sensor, to determine a third magnetic field component from the third magnetic field sensor, to compute the azimuth angle using the first, second and third magnetic field components, and receive the gravity signals and compute the nadir angle relative to the viewing axis, and interact with the database to provide data to the output means related to the viewing axis.

14. The apparatus of claim 11 wherein the microprocessor further comprises:
a microprocessor operable to determine a first gravity field component from the first gravity field sensor signal, and determine a second gravity field component from the gravity signal of the gravity field sensor perpendicular to the first gravity field sensor, and compute a third gravity field component using the first and second gravity field components and compute the nadir angle relative to the viewing axis using the first, second and third gravity field components, the microprocessor operable to determine a first magnetic field component from the first magnetic field sensor, to determine a second magnetic field component from the second magnetic field sensor, to determine a third magnetic field component from the third magnetic field sensor, to compute the azimuth angle using the first, second and third magnetic field components, and the microprocessor operable interact with the database to provide data to the output means related to the viewing axis.