Automatically identifying geographic direction

Automatically identifying a geographic direction (e.g., a heading relative to true north) is disclosed. Responsive to a correction trigger event, geographic position data that identifies a geographic position of the device can be obtained. A magnetic declination based on the geographic position data can be obtained. A magnetic heading of the device can be obtained. A geographic direction based on the magnetic heading and the magnetic declination can be identified without user intervention.

TECHNICAL FIELD

This subject matter is related generally to automatically identifying geographic direction.

BACKGROUND

A mobile device such as a cellular phone or a smart phone can be equipped with a magnetometer, a sensor that detects the strength and/or direction of a magnetic field. The magnetometer can be used along with other sensors, such as an accelerometer that senses orientation and velocity. Sensor readings from the magnetometer and accelerometer can be combined to provide a “heading” or “direction” much like a compass. The heading is typically given relative to a direction towards magnetic north, which can be different from the direction towards the Earth's geographic North pole, i.e., true north. The direction information may be provided for the user's own navigation knowledge, for example, to tell the user a heading relative to the direction of magnetic north while the user is walking or driving in unfamiliar surroundings. The direction information can also be used by a navigation or map application that may be running on the device.

A magnetometer can provide a measure of the magnetic field that is present in the immediate surroundings of the device as a two or three-component vector in a Cartesian coordinate system using a two or three-axis magnetic sensor. The sensed magnetic field can include a contribution from the Earth's geomagnetic field. The contribution from the Earth's geomagnetic field can vary based on space, e.g., geographic location, and time mainly due to complex interactions of an electromagnetic dynamo in the Earth's core.

The direction of magnetic north derived from the sensor readings can be corrected to identify a true north (geographic north) direction. Typically, a user consults a geomagnetic map (e.g., a geomagnetic map provided by the U.S. Geological Survey (USGS)) that shows the relationships between magnetic north and true north for a particular geographic area, where other characteristics of the environment, e.g., temperature can be considered substantially constant. In particular, the geomagnetic map can identify the magnitudes of declination at different locations in the geographic area. After identifying the magnitude of declination at a geographic location, a user can correct the magnetic heading using the magnetic variation (declination).

The correction technique described above is effective but can be time consuming. As the user travels with a mobile device, for example, the magnetic variation can change.

SUMMARY

Automatically identifying a geographic direction (e.g., a heading relative to true north) is disclosed. Responsive to a correction trigger event, geographic position data that identifies a geographic position of the device can be obtained. A magnetic declination based on the geographic position data can be obtained. A magnetic heading of the device can be obtained. A geographic direction based on the magnetic heading and the magnetic declination can be identified without user intervention.

These features allow a user to be presented with a geographic direction relative to true north without the user's interaction, thereby reducing a likelihood of user error. For example, the user does not need to separately identify the magnetic heading, declination, or convention needed to apply the declination to correct the magnetic heading. As another example, a user does not need to adjust declinations, e.g., for a compass reading, until a heading is correct or a map is correctly positioned for a particular location, thereby further reducing the likelihood of user error. In addition, new heading corrections can be automatically identified based on calculating new declination values as the user's location changes, thereby increasing an accuracy and precision of the geographic direction presented to the user.

DETAILED DESCRIPTION

The Earth's Magnetic Field—Overview

FIG. 1Aillustrates an example Cartesian coordinate system for describing the Earth's geomagnetic field in accordance with some implementations. The Earth's geomagnetic field vector {right arrow over (F)} can be described by the orthogonal components X (northerly intensity), Y (easterly intensity), and Z (vertical intensity, positive downwards); total intensity F; horizontal intensity H; and declination (or magnetic variation) D. Declination and total intensity can be computed from the orthogonal components using the equations:

where H is given by:
H=√{square root over (X2+Y2)}.

FIG. 1Billustrates an example two-axis magnetometer in accordance with some implementations. Magnetometers can be two-axis or three-axis and the processes described here apply equally to both types of sensors. For clarity, only a two-axis magnetometer will be described.

In some implementations, two-axis magnetometer sensor configuration100can be used to calculate a magnetic heading for a variety of applications, including applications running on a mobile device. Sensor configuration100can include two magnetic field sensors102and104mounted orthogonally on a board, substrate or other mounting surface. Magnetic sensors120and104can be included in an integrated circuit (IC) package with or without other sensors, such as accelerometers and gyros.

Sensor configuration100can be deployed in a host system environment. Since the Earth's geomagnetic field can vary based on space and time, a procedure can be deployed to identify a particular magnetic variation (declination) at a particular point in space and time that can be used to correct a magnetic heading. One technique is to detect X and Y sensor readings and calculate the declination D.

For this example sensor configuration, sensors102and104are at right angles with respect to each other and lie level with respect to the Earth's surface. By convention, the positive end of the X-axis points to the North and the positive end of the Y-axis points to the East.

A measurement of the sensor readings can be represented by (XE, YE). In some implementations, a basic calculation of the heading can be performed using XEand YEand the equation:
Aheading=arctan(YE,XE),
where the resulting heading Aheadingcan be mapped into the correct quadrant based on the signs of XEand YE. The heading Aheading, calculated from measurements provided by the magnetometer, is a magnetic heading that can be corrected by combining the declination with the heading Aheadingto identify a heading relative to true north.

Other implementations are possible. For example, the heading can also be calibrated based on the orientation of the device obtained from an accelerometer, inclination, and other types of corrections or calibrations.

As a user travels with a mobile device, such as a mobile phone, the declination can change. This could result in the heading correction becoming inaccurate. Periodically, a user can determine a new heading correction based on identifying a new declination from a predictive geomagnetic model such as the World Magnetic Model (WMM) and the International Geomagnetic Reference Field (IGRF). This procedure can be a tedious process for the user if performed often, and may require the user to access the model and correct the heading a number of times.

Example Correction System

Some mobile devices (e.g., an iPhone®) can use positioning technology to determine the mobile device's geographic position (e.g., including a location and a direction). The geographic position of the mobile device can be used to determine the declination at a particular location.

FIG. 2is a block diagram of example system200for automatically identifying a geographic direction in accordance with some implementations. System200can include position processor202, magnetometer204, heading module206and declination data208. System200can be implemented in software, firmware, hardware or a combination thereof. Position processor202can be a Global Positioning System (GPS) receiver or some other processor or receiver for implementing cell tower positioning technology or a Wi-Fi positioning technology (e.g., Skyhook™). Magnetometer204can be a two-axis or three-axis magnetic sensor. Heading module206can be software that receives position data and magnetic field data from position processor202and magnetometer204, respectively. Some examples of magnetic field data include the data described in reference toFIGS. 1A and 1B. Declination data208includes declination magnitudes and corresponding geographical positions and times stored in a map, diagram, table, model or other repository (e.g., on a network server) for subsequent search and retrieval. In some implementations, declination data208can be updated periodically, without user intervention. For example, a geomagnetic model can be automatically downloaded from the USGS web site to update declination data208, e.g., when a new model is available or every year.

In some implementations, system200can respond to a correction trigger event. A correction trigger event can be any event that triggers a correction procedure on the mobile device. The trigger event can be based on time, location, mobile device activity, an application request, magnetic field data, etc. As a particular example, the trigger event can be based on a mobile device's movement. The mobile device can include an accelerometer, for example, that measures the mobile device's velocity or speed. Based on the velocity (or an average velocity), a trigger event can occur at predetermined time periods. For example, if the mobile device is moving at an average velocity of 10 miles per hour, a trigger event can occur every 30 minutes so that a new declination is determined every 5 miles.

Responsive to the trigger event, position processor202determines a current position of the mobile device. Magnetometer204can provide various parameters (e.g., X, Y, and F) related to the Earth's magnetic field which can be used to calculate the heading. In addition, declination D can be determined from declination data208based on position data. Once these parameters are determined, one or more of the parameters (collectively referred to as “magnetic field data”) and declination data208can be used by heading module206to identify a magnetic declination and magnetic heading, and correct the magnetic heading using the declination to provide a geographic direction, as described with reference toFIG. 3.

Example Process For Automatically Identifying a Geographic Direction

FIG. 3is a flow diagram of an example process300for automatically identifying a geographic direction in accordance with some implementations. Process300includes obtaining geographic position data that identifies a geographic position of a device (310). For example, a mobile device can communicate to one or more network access points (e.g., Wi-Fi base station devices) or one or more cell towers. In some implementations, the access points can be any combination of 802.11b/g wireless routers, 802.11n wireless routers, and some other Wi-Fi devices that implement any suitable Wi-Fi or other wireless networking technology or protocol (e.g., GPS protocol). Using the communication with the access points or the cell towers, a location-based service can estimate geographic areas where the mobile device is currently located. Position processor202can obtain geographic position data from the location-based service.

Process300also includes identifying a magnetic declination based on the geographic position data (320). For example, heading module206can identify the magnetic declination based on geographic position data provided by position processor202. In particular, heading module206can obtain declination data208to identify the magnetic declination. In some implementations, declination data208can be represented in the form of a geomagnetic model, such as in a WMM model or an IGRF model. The geomagnetic model can provide magnetic field components X, Y, D, and F. In these and other implementations, the magnetic field components can be used to identify both the magnetic declination and the magnetic heading.

Other implementations are possible. For example, declination data208can be stored in a table. For example, the table can include rows corresponding to particular geographic positions. One or more geographic positions can be associated with corresponding magnetic field components for different dates and times. Because the Earth's magnetic field can fluctuate throughout seasons of a year, or even throughout a single day, due to solar radiation, for example, different magnetic field components can be used to calculate the magnetic declination based on a season (e.g., spring, summer, autumn, winter) or period of time (e.g., morning, afternoon, evening) that corresponds to temporal data. System200can obtain temporal data that is related to the geographic position data and that identifies a time. For example, the current time at the particular geographic position can be identified. The geographic position and the time can then be used to search for a magnitude of magnetic declination, in declination data208, that corresponds to the time and the geographic position.

Process300also includes obtaining a magnetic heading of the device (330). In some implementations, the magnetic heading of the device can be obtained based on measurements from magnetometer204as described previously with respect toFIGS. 1A and 1B. In particular, the following equations can be used to calculate Aheadingbased on the measurements of X and Y:

Process300also includes identifying, without user intervention, a geographic direction based on the magnetic heading and the magnetic declination (340). The geographic direction is automatically identified without user intervention. Typically, a user could determine the geographic direction by identifying a declination on an isogonic chart and manually adding or subtracting the declination from a heading provided by a magnetic compass, for example, by adjusting a bezel on the compass. However, some compasses do not include an adjustable bezel for performing declination compensations and require a user to determine whether to add or subtract the declination from the magnetic heading. For example, the user must know or determine that a declination of 8 degrees West indicates that magnetic north lies 8 degrees counter-clockwise from true north. As another example, the user must know or determine that −8 degrees indicates that magnetic north lies 8 degrees counter-clockwise from true north, and +8 degrees indicates that magnetic north lies 8 degrees clockwise from true north. In both situations, the additional user interaction increases the likelihood of user error.

Process300can automatically, e.g., without user intervention, identify the geographic direction. For example, using declination data208, heading module206can automatically identify the magnetic declination (based on geographic position data) and add or subtract, as appropriate, the magnetic declination from the magnetic heading identified based on magnetic data provided by magnetometer204. In fact, in some implementations, process300can include other combinations of one or more of steps310,320,330, and340performed automatically, e.g., without user intervention, thereby further reducing an amount of user interaction and the likelihood of user error.

Example Interfaces

FIG. 4illustrates an example user interface410for specifying preferences. Preferences that can be specified by a user can include, for example, selecting a type of direction to be presented. A user can select (e.g., touch) interface element420to indicate a preference that information related to directions using true north be displayed. In addition, the user can use interface element422to specify a period of time that is used to determine how often a heading correction is identified. In the particular example, “T=30” can indicate that a new heading correction is identified every 30 minutes. Furthermore, the user can select interface element430to indicate a preference that information related to directions using magnetic north be displayed.

Other implementations are possible. For example, additional interface elements can be used to present an option to show a heading relative to true north at a particular time in the past or the future. In particular, declination data208can be obtained from the 10thGeneration IGRF that can provide magnetic field components for dates in years ranging from 1900 to 2015. As other examples, additional interface elements can be used to set preferences to default values, to modify preferences that have already been set, and to present other modifiable preferences such as, but not limited to preferences to use other techniques (e.g., GPS) to identify or correct the direction.

FIG. 5illustrates an example map display500for showing a direction. In particular, the direction is represented in a map by placemark510. The direction, or heading, of device400can be represented by indicator520. In this particular example, indicator520is represented by a cone-shaped beam, much like that of a flashlight's beam, to indicate the direction that device400is pointed or moving. Other implementations are possible. For example, indicator520can be shown using other representations such as, but not limited to arrows or other forms of pointers. In addition, animations can also be used to indicate the direction, e.g., placemark520can be animated such that it looks like placemark520is jumping back and forth between a current position and a next position located in a path of the direction. The type of graphical representation used to represent placemark510and indicator520can be specified according to user preference.

FIG. 6illustrates an example heading display610for showing a direction. In particular, the direction is represented by geographic direction620, i.e., 49 degrees North. In some implementations, the representation of the geographic direction includes content630that identifies a physical location. In this particular example, a user could be standing in Paris, France and be holding device400such that it is pointing in the direction of 49 degrees North. In response, device400could present content630. Content630is an image that identifies the Eiffel Tower, which is located at approximately 48.85 degrees North and 2.29 degrees East. Other implementations are possible. For example, the content can be audio, video, or text. Returning to the example, device400could play a sound clip that states “Eiffel Tower at 48 degrees North”. As another example, device400could present a video of the Eiffel Tower or the text “Eiffel Tower”, instead of or in combination with the image. Furthermore, a user could point device400in other directions, and device400could present content630that identifies other landmarks or major cities, e.g., outside of Paris, France, such as the Statute of Liberty in New York City at approximately 40.69 degrees North and 74.04 degrees West.

Example Mobile Device Architecture

FIG. 7is a block diagram of example architecture of a mobile device700employing the process ofFIG. 3in accordance with some implementations. Mobile device700can include memory interface702, one or more data processors, image processors and/or central processing units704, and peripherals interface706. Memory interface702, one or more processors704and/or peripherals interface706can be separate components or can be integrated in one or more integrated circuits. Various components in mobile device architecture700can be coupled together by one or more communication buses or signal lines.

Sensors, devices, and subsystems can be coupled to peripherals interface706to facilitate multiple functionalities. For example, motion sensor710, light sensor712, and proximity sensor714can be coupled to peripherals interface706to facilitate orientation, lighting, and proximity functions of the mobile device. Positioning system732(e.g., a GPS receiver including position processor202) can be connected to peripherals interface706to provide geopositioning. Magnetic sensor718(e.g., an integrated circuit chip including magnetometer204) can also be connected to peripherals interface706to provide magnetic field data. Other sensor(s)716can include sensors such as an accelerometer. As described previously magnetic sensor718can be used in conjunction with other sensor(s)716, e.g., an accelerometer, to determine the direction of magnetic north or a geographic direction much like a compass.

Camera subsystem720and optical sensor722, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as recording photographs and video clips.

Communication functions can be facilitated through one or more wireless communication subsystems724, which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of wireless communication subsystem724can depend on the communication network(s) over which the mobile device is intended to operate. For example, the mobile device may include communication subsystems724designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a Bluetooth™ network. In particular, wireless communication subsystems724may include hosting protocols such that the mobile device may be configured as a base station for other wireless devices.

Audio subsystem726can be coupled to speaker728and microphone730to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions.

I/O subsystem740can include touch screen controller742and/or other input controller(s)744. Touch-screen controller742can be coupled to touch screen746. Touch screen746and touch screen controller742can, for example, detect contact and movement or break thereof using any of a number of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch screen746.

Other input controller(s)744can be coupled to other input/control devices748, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, docking station and/or a pointer device such as a stylus. The one or more buttons (not shown) can include an up/down button for volume control of speaker728and/or microphone730.

In one implementation, a pressing of the button for a first duration may disengage a lock of touch screen746; and a pressing of the button for a second duration that is longer than the first duration may turn power to the mobile device on or off. The user may be able to customize a functionality of one or more of the buttons. Touch screen746can, for example, also be used to implement virtual or soft buttons and/or a keyboard.

In some implementations, the mobile device can present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, the mobile device can include the functionality of an MP3 player, such as an iPod Touch™.

Memory interface702can be coupled to memory750. Memory750can include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). Memory750can store operating system752, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. Operating system752may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system752can be a kernel (e.g., UNIX kernel).

Memory750may also store communication instructions754to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. Memory750may include graphical user interface instructions756to facilitate graphic user interface processing; sensor processing instructions758to facilitate sensor-related processing and functions; phone instructions760to facilitate phone-related processes and functions; electronic messaging instructions762to facilitate electronic-messaging related processes and functions; web browsing instructions764to facilitate web browsing-related processes and functions; media processing instructions766to facilitate media processing-related processes and functions; GPS/Navigation instructions768to facilitate GPS and navigation-related processes and instructions; camera instructions770to facilitate camera-related processes and functions; heading data772(e.g., declination data208) and heading instructions774for heading module206, for example, to facilitate automatically identification of a geographic direction, as described with reference toFIG. 3. In some implementations, GUI instructions756and/or media processing instructions766implement the features and operations described in reference toFIGS. 1-6.

Memory750may also store other software instructions (not shown), such as web video instructions to facilitate web video-related processes and functions; and/or web shopping instructions to facilitate web shopping-related processes and functions. In some implementations, media processing instructions766are divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively. An activation record and International Mobile Equipment Identity (IMEI) or similar hardware identifier can also be stored in memory750.