Patent Description:
<CIT> discloses a mobile navigation device operating in a first mode and a second mode. In the first mode, a satellite positioning module is activated while a dead reckoning module is disabled. A processor calculates the coordinates of the mobile navigation device based on the satellite navigation signals received by the satellite positioning module. In the second mode, the satellite positioning module is disabled while the dead reckoning module is activated, and the processor updates the coordinates based on displacements and rotations detected by the dead reckoning module.

<CIT> discloses an apparatus including a circuit that has a first input to receive motion data from at least one of a motion sensor and an optical sensor and that has a second input to receive directional data corresponding to the motion data. The circuit may further include an input/output interface configured to provide data to a display and a control circuit coupled to the first input, the second input, and the input/output interface. The control circuit may be configured to determine a current position based at least in part on the motion data and the directional data and update an indicator on a digital map based on the current position determined from the motion data.

<CIT> discloses a wireless device including a satellite positioning system (SPS) receiver and position location processor. The SPS receiver detects the availability of positioning signals and the position location processor determines an initial position of the wireless device based upon the positioning signals. A controller generates power saving events when the positioning signals are detected as being available. The controller determines the timing and duration of the power saving events. During a power saving event, the SPS receiver is deactivated and/or processing of the positioning signals is suspended to reduce power consumption of the wireless device. The initial position is updated based upon relative positioning information from one or more sensors during the power saving event. The controller activates the SPS receiver and resumes processing of the positioning signals following the power saving event.

<CIT> discloses various techniques for implementing low-energy GPS on a mobile device.

<CIT> discloses techniques for adaptively sampling orientation sensors in positioning systems based on location (e.g., map) data.

<CIT> discloses that when the system makes frequent stops during movement, zero velocity updates are used to correct sensor errors.

Some electronic devices can run on the power of a battery or another power source with a restricted power capacity. Examples of such electronic devices include smartphones, wearable devices (e.g., smart watches, smart eyeglasses, head-mounted devices, etc.), set-top boxes, sensor devices, household appliances, vehicles (or electronic components in vehicles), Internet-of-Things (IoT) devices, and so forth.

In some examples, electronic devices, such as loT devices including sensors, can be mounted on a moveable platform. A moveable platform can include a trailer or other cargo transportation unit (CTU), or a vehicle, such as a truck, a tractor, a car, a railed vehicle (e.g., a train), a watercraft (e.g., a ship), an aircraft, a spacecraft, and so forth.

Electronic devices can include position sensors, such as global positioning system (GPS) sensors. When activated, a position sensor can consume a relatively large amount of power, which can quickly deplete a battery or another restricted capacity power source in an electronic device.

To reduce power consumption by a position sensor, the position sensor can be deactivated at certain times, so that the position sensor acquires position data less frequently. However, deactivating a position sensor to reduce power consumption of the position sensor can reduce the accuracy of the position sensor. Therefore, there is a tradeoff between battery life and position sensor accuracy. If the position sensor is continuously activated or activated at more frequent intervals for location tracking, then battery life can be shortened in the electronic device. On the other hand, if the position sensor is activated less frequently, then position accuracy can be degraded, while power consumption of the electronic device can be reduced so that battery life can be extended.

In accordance with some implementations of the present disclosure, to determine a position of an electronic device, sensor data from at least one further sensor of the electronic device can be used to supplement position data acquired by a position sensor. The further sensor is another sensor that is distinct from the position sensor. The further sensor can acquire the further sensor data while the position sensor is inactive, such as during a low power mode of the electronic device.

In accordance with alternative implementations of the present disclosure, position data from a position sensor and sensor data from a further sensor can be used to determine a position on a moveable platform that is offset from the position of the position sensor, which is mounted on the moveable platform.

<FIG> is a block diagram of an example arrangement that includes an electronic device <NUM> and a server <NUM>. Although <FIG> shows just one electronic device <NUM>, it is noted that in additional examples, there can be multiple electronic devices <NUM> that include respective position sensors.

The electronic device <NUM> can be carried by a user or mounted on a moveable platform. In the context of being mounted on a moveable platform, the electronic device <NUM> can be part of an IoT device that is used to measure various parameters associated with the moveable platform on which the IoT device is mounted. Examples of the parameters can include temperature, a load status of the moveable platform (i.e., whether the moveable platform is loaded with cargo or human occupants), pressure, humidity, characteristics of components (such as brakes, wheels, tires, engines, etc.) of the moveable platform, and so forth.

The electronic device <NUM> includes a battery <NUM> that supplies power to components of the electronic device <NUM> when the electronic device <NUM> is not electrically connected to an external power source, such as a wall power outlet, an external battery, and so forth.

The electronic device <NUM> includes a position sensor <NUM> for acquiring position data that can be measured by the position sensor <NUM>. In some examples, the position sensor is a GPS sensor, which can receive signals from satellites of a satellite navigation system. In other examples, the position sensor <NUM> can be a different type of position sensor, such as a position sensor that is able to measure signals transmitted by base stations or access points, which are fixed-position wireless transmitters. Based on triangulation using signals from multiple fixed-position transmitters, the position sensor <NUM> is able to determine a position of the electronic device <NUM>. Base stations are part of a cellular access network, while access points are part of a wireless local area network (WLAN).

The electronic device <NUM> further includes a power management engine <NUM>, which can manage the power of the electronic device <NUM>. For example, to place the electronic device <NUM> into a lower power state, the power management engine <NUM> can deactivate one or more components in the electronic device <NUM>. A component that consumes a substantial amount of power when on is the position sensor <NUM>. Deactivating the position sensor <NUM> can help to reduce overall power consumption of the electronic device <NUM>, which can reduce the rate at which charge of the battery <NUM> is depleted.

A lower power state of the electronic device <NUM> can refer to a state in which power is removed from the electronic device <NUM>, or power is removed from one or more electronic components in the electronic device <NUM>. The one or more electronic components from which power is removed can include any or some combination of the following: a processor, a memory device, a storage device, a network interface controller, a graphics controller, the position sensor <NUM>, and so forth.

As used here, the term "engine" can refer to any or some combination of the following: a hardware processing circuit, such as a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit device, a programmable gate array, or any other type of hardware processing circuit. In other examples, the term "engine" can refer to a combination of a hardware processing circuit and machine-readable instructions executable on the hardware processing circuit.

The power management engine <NUM> can control when the position sensor <NUM> is activated such that the position sensor <NUM> can take measurements to determine a position of the electronic device <NUM>, and when the position sensor <NUM> is deactivated such that the position sensor <NUM> does not take measurements.

Alternatively, instead of controlling the activation and deactivation of the position sensor <NUM> using the power management engine <NUM>, the activation/deactivation of the position sensor <NUM> can be performed autonomously by the position sensor <NUM>, such as based on a fix profile sent to the position sensor <NUM> by the server <NUM>. The fix profile can include information indicating that the position sensor <NUM> is to periodically turn on, at a specified period, to obtain a fix of a current position of the electronic device <NUM>. Alternatively, the fix profile can include information indicating that the position sensor <NUM> is to turn on in response to an specified event.

The electronic device <NUM> further includes a further sensor <NUM> that can acquire measurement data regarding a characteristic associated with the electronic device <NUM>. The further sensor <NUM> includes an accelerometer to measure acceleration data (due to movement of the electronic device <NUM>), and, optionally, a gyroscope to measure an orientation of the electronic device <NUM>, a magnetometer to measure a magnetic field, and/or any other type of sensor.

Although just one further sensor <NUM> is shown in <FIG>, it is noted that in other examples, the electronic device <NUM> can include additional further sensors. Similarly, the electronic device <NUM> can include multiple position sensors.

The power management engine <NUM> maintains the further sensor <NUM> in the activated state (to acquire measurement data) while the position sensor <NUM> is deactivated. This allows the further sensor <NUM> to acquire sensor data that can be used to determine the position of the electronic device <NUM> while the position sensor <NUM> is inactive.

The electronic device <NUM> further includes a communication transceiver <NUM>, which can be used by the electronic device <NUM> to communicate over a network <NUM>. The communication transceiver <NUM> can be a wireless transceiver, which allows the electronic device <NUM> to perform wireless communications over the network <NUM> with the server <NUM> or another system or device.

A wireless network can include a cellular network or a wireless local area network (WLAN). An example cellular network can operate according to the Long-Term Evolution (LTE) standards as provided by the Third Generation Partnership Project (3GPP). The LTE standards are also referred to as the Evolved Universal Terrestrial Radio Access (E-UTRA) standards. In other examples, other types of cellular networks can be employed, such as second generation (<NUM>) or third generation (<NUM>) cellular networks, e.g., a Global System for Mobile (GSM) cellular network, an Enhanced Data rates for GSM Evolution (EDGE) cellular network, a Universal Terrestrial Radio Access Network (UTRAN), a Code Division Multiple Access (CDMA) <NUM> cellular network, and so forth. In further examples, cellular networks can be fifth generation (<NUM>) or beyond cellular networks.

A WLAN can operate according to the Institute of Electrical and Electronic Engineers (IEEE) <NUM> or Wi-Fi Alliance Specifications. In other examples, other types of wireless networks can be employed, such as a Bluetooth link, a ZigBee network, and so forth. Additionally, some wireless networks can enable cellular IoT, such as wireless access networks according to LTE Advanced for Machine-Type Communication (LTE-MTC), narrowband IoT (NB-IoT), and so forth.

The server <NUM> can be implemented as a computer or as a collection of computers. In some examples, the server <NUM> can include a web server, a server in a cloud, or any other type of system that is able to communicate with the electronic device <NUM>. The server <NUM> includes a position update engine <NUM>, which is able to determine a position of the electronic device <NUM> based on position data acquired by the position sensor <NUM> and further sensor data acquired by the further sensor <NUM>.

Collectively, the position data and the further sensor data are referred to as "device sensor data" <NUM>. The communication transceiver <NUM> sends the device sensor data <NUM> to the server <NUM> in one or more data packets.

Since the position sensor <NUM> of the electronic device <NUM> can be deactivated (turned off or placed into a lower power state) by the power management engine <NUM> at certain time intervals, the position data acquired by the position sensor <NUM> may become out of date when the electronic device <NUM> is moving and the position sensor <NUM> has not been activated to acquire further position data. Activating the position sensor <NUM> can be expensive in terms of power usage, which can deplete the charge of the battery <NUM>. Rather than re-activate the position sensor <NUM> to acquire a new position fix of the electronic device <NUM>, techniques or mechanisms according to some implementations use the position update engine <NUM> in the server <NUM> to update the position of the electronic device <NUM> using the position data acquired by the position sensor <NUM> (when the position sensor <NUM> was previously active) and further sensor data from the further sensor <NUM> which is able to acquire the further sensor data while the position sensor <NUM> is inactive. In this way, by using the combination of the position data (which represents the position of the electronic device <NUM> at a prior point in time) and the further sensor data (which was acquired more recently than the position data of the position sensor <NUM>), the position update engine <NUM> is able to update the position of the electronic device <NUM>, without having to re-activate the position sensor <NUM>.

The further sensor <NUM> when active consumes less power than the position sensor <NUM> when active. Thus, by using the further sensor <NUM> to update the position of the electronic device <NUM>, without re-activating the position sensor <NUM>, overall power consumption of the electronic device <NUM> is reduced.

The electronic device <NUM> further includes a controller <NUM>, which can control various functionalities of the electronic device <NUM>. The controller <NUM> can be implemented as a hardware processing circuit or a combination of a hardware processing circuit and machine-readable instructions executable on the hardware processing circuit.

<FIG> is a flow diagram of a process of the position update engine <NUM> according to some examples. The position update engine <NUM> receives (at <NUM>), over the network <NUM>, position data from the position sensor <NUM>. The position data was acquired by the position sensor <NUM> when the position sensor <NUM> was active at a previous point in time.

The position update engine <NUM> further receives (at <NUM>), over the network <NUM>, sensor data acquired by at least one further sensor <NUM> of the electronic device <NUM>, while the position sensor <NUM> of the electronic device <NUM> is inactive. The further sensor data acquired by the at least one further sensor <NUM> indicates a direction of travel of the electronic device <NUM>, assuming that the electronic device <NUM> is moving.

The position update engine <NUM> determines (at <NUM>), using the further sensor data acquired by the further sensor, a heading and movement of the electronic device <NUM> relative to the position indicated by the position data. The heading and movement can be determined using the further sensor data acquired by one further sensor, or by multiple further sensors.

A heading of the electronic device <NUM> refers to a general direction of motion of the electronic device <NUM>. The heading of the electronic device <NUM> can be based on use sensor data from any or some combination of the following: an accelerometer, a gyroscope, a magnetometer, or any other type of sensor that can be used to determine an orientation of the electronic device <NUM>.

The determined movement of the electronic device <NUM> can refer to some indication of how much the electronic device <NUM> has moved over a given time duration, such as the time duration since the position sensor <NUM> was last active. The indication of the amount of movement is based on acceleration data. The velocity of the electronic device <NUM> at any given point in time can be based on acceleration data produced by an accelerometer. In other examples, the velocity of the electronic device <NUM> can be based on measurements by a speedometer or another type of sensor.

Next, the position update engine <NUM> updates (at <NUM>) a position of the electronic device <NUM> according to the determined heading and movement.

The update of the position of the electronic device <NUM> is performed by the position update engine <NUM> in a non-real-time manner. Performing the position update in the non-real-time manner can refer to updating the position of the electronic device <NUM> after a time lag since the electronic device <NUM> has moved.

In some examples, device sensor data <NUM> can be acquired by the electronic device <NUM> over a time duration, during which the electronic device <NUM> may have alternated between being stationary and being in motion. During this time duration, the position update engine <NUM> can receive multiple instances of the device sensor data <NUM> at corresponding different time points. The position sensor <NUM> was inactive for at least a portion of the time duration. Using the multiple instances of the device sensor data <NUM> at different time points, the position update engine <NUM> can update the position of the electronic device <NUM>.

The multiple instances of the device sensor data <NUM> can indicate respective different headings and amounts of movement of the electronic device <NUM>. The position update engine <NUM> can aggregate the different headings and amounts of movement indicated by the multiple instances of the device sensor data <NUM> to derive an overall heading and movement that can be used to update the position of the electronic device <NUM>.

The position update engine <NUM> updates the position of the electronic device <NUM> in response to an event. The event is an event related to the movement of the electronic device <NUM>. When the electronic device <NUM> has come to a stop, the electronic device <NUM> sends another instance of the device sensor data <NUM> to the position update engine <NUM>. In response to receive of the other instance of the device sensor data <NUM> or in response to an indication that the electronic device <NUM> has stopped, the position update engine <NUM> is triggered to update the position of the electronic device <NUM>. The event can also include a time-based event. For example, the position update engine <NUM> can update the position of the electronic device <NUM> periodically.

The determination of whether the electronic device <NUM> has stopped is based on acceleration data acquired by an accelerometer (an example of the further sensor <NUM>) in the electronic device <NUM>.

The controller <NUM> (<FIG>) in the electronic device <NUM> detects that the electronic device <NUM> has stopped based on the acceleration data. In response to detecting that the electronic device <NUM> has stopped, the controller <NUM> sends, over the network <NUM>, the indication that the electronic device <NUM> has stopped to the position update engine <NUM>.

In further examples, when the electronic device <NUM> is mounted on a moveable platform, the electronic device <NUM> may be located at a part of the moveable platform other than at a center (or central portion) of the moveable platform. For example, as shown in <FIG>, the electronic device <NUM> can be attached to a rear side <NUM> of a moveable platform <NUM>. In the example of <FIG>, the moveable platform <NUM> is in the form of a trailer, which can be hauled by a tractor. In other examples, the moveable platform <NUM> can be another type of vehicle.

Since the electronic device <NUM> is attached to the rear side <NUM> of the moveable platform <NUM> in the example of <FIG>, it can be difficult to judge the exact position of the moveable platform <NUM>, particularly in a crowded environment such as a parking lot where there can be multiple moveable platforms parked close to each other.

In accordance with alternative implementations of the present disclosure, techniques or mechanisms are provided to determine an offset <NUM> between the location of the electronic device <NUM> (at the rear side <NUM> in the example of <FIG>) and a target location <NUM> of the moveable platform <NUM>. In some examples, the target location <NUM> is at the center or in a central portion of the moveable platform <NUM>. The target location <NUM> is closer to a center of the moveable platform <NUM> than the position of the electronic device <NUM>. In other examples, the target location <NUM> can be a different location (e.g., front side, top side, bottom side, etc.) on the moveable platform <NUM>.

The server <NUM> includes an offset determination engine <NUM> to compute the offset <NUM> between the location of the electronic device <NUM> and the target location <NUM>. The determination of the offset <NUM> is based on a determined heading (as determined from further sensor data acquired by the further sensor <NUM> of the electronic device <NUM>) and a geometry of the moveable platform <NUM>.

The geometry of the moveable platform <NUM> can include a known distance between the rear side <NUM> of the moveable platform <NUM> and the target location <NUM>. The geometry of the moveable platform <NUM> is indicated by platform geometric data <NUM> stored in a storage medium <NUM>. The storage medium <NUM> can be part of the server <NUM> or can be separate from but accessible by the server <NUM>.

Different moveable platforms can have different geometries. As a result, the storage medium <NUM> can store multiple platform geometric data <NUM> for the respective different moveable platforms.

The server <NUM> also includes a position update engine <NUM>, which is used to update the position of the moveable platform <NUM> based on the computed position of the electronic device <NUM> (such as by using techniques and mechanisms according to <FIG> and <FIG>) and based on the computed offset <NUM>. For example, the position update engine <NUM> can determine the position of the moveable platform <NUM> according to the following procedure:.

<FIG> is a flow diagram of a moveable platform position determination process performed by the server <NUM> of <FIG> (and more specifically, by the combination of the offset determination engine <NUM> and the position update engine <NUM>) according to some examples. The server <NUM> receives (at <NUM>), over the network <NUM>, position data acquired by a position sensor (e.g., <NUM>) of the electronic device <NUM> mounted to the moveable platform <NUM>. The server <NUM> determines (at <NUM>), using sensor data from a further sensor (e.g., <NUM>) of the moveable platform <NUM>, a heading of the moveable platform <NUM>.

The server <NUM> determines (at <NUM>), based on the determined heading and a geometry of the moveable platform <NUM>, the offset <NUM> from a first position of the position sensor on the moveable platform to the target location <NUM> on the moveable platform.

The server <NUM> uses (at <NUM>) the offset <NUM> to calculate a position of the moveable platform <NUM>. In some examples, the position of the moveable platform <NUM> can be computed while the moveable platform <NUM> is stationary. In other examples, the position of the moveable platform <NUM> can be computed while the moveable platform <NUM> is in motion. In such examples, the position of the moveable platform <NUM> can be determined based on position data acquired by the position sensor <NUM>, sensor data acquired by the further sensor <NUM> (from which a heading and movement can be determined such as according to <FIG>), and the computed offset <NUM>.

In some examples, based on the computed position of the moveable platform <NUM>, the server <NUM> is able to determine a position of the moveable platform <NUM> relative to a geofence. A geofence specifies a geographic area. For example, the geofence can define a parking lot or dock yard. As another example, the geofence can define a geographic area where a moveable platform should (or should not) be located, such as at a given point in time. The moveable platform <NUM> being within the geofence or outside the geofence can trigger performance of a specified action, such as the triggering of an alarm if the moveable platform <NUM> is outside the geofence (or inside the geofence), and so forth.

Claim 1:
A system comprising:
a device (<NUM>); and
at least one processor configured to:
receive (<NUM>), over a network (<NUM>), position data acquired by a position sensor (<NUM>) of the device (<NUM>);
receive (<NUM>), over the network (<NUM>), sensor data acquired by a further sensor (<NUM>) of the device in an activated state while the position sensor of the device is inactive, wherein the further sensor (<NUM>) includes an accelerometer and the sensor data is acceleration data;
the further sensor (<NUM>) in the activated state consuming less power than the position sensor when said position sensor is active;
the sensor data from the further sensor indicating a direction of travel of the device;
determine (<NUM>), using the sensor data acquired by the further sensor of the device, a heading and movement of the device relative to a position indicated by the position data;
receive from a controller of the device (<NUM>), over the network, an indication that the device has stopped based on the sensor data acquired by the further sensor (<NUM>); and
in response to receiving the indication that the device has stopped, update (<NUM>) the position of the device according to the determined heading and movement;
wherein the updating of the position of the device comprises a non-real-time update by the at least one processor.