Patent Description:
There is provided a device, a method, and a non-transitory machine-readable storage medium as described in the claims.

A moveable platform can be used to carry physical items between different geographic locations. For example, the moveable platform can be a container (that is attached to a tractor), a truck, or a trailer in which the physical items can be stored during shipment. In other examples, the moveable platform can include another type of carrier structure that is able to carry physical items. More generally, the moveable platform can be part of, mounted on, or attached to a vehicle, such as a truck, a tractor, a car, a train, a ship, an airplane, and so forth. It is noted that although the present discussion refers to a moveable platform as a container, techniques or mechanisms according to some implementations of the present disclosure are applicable to other cargo carrying platforms.

An entity such as a shipping company, a manufacturer, a seller of goods, or any other entity may desire to track assets (such as cargo) that are being transported using moveable platforms. To do so, a sensor device can be mounted on a moveable platform. Sensor devices on various moveable platforms can communicate sensor information over a network to a remote service (which can include a server or a collection of servers and associated network equipment) to allow the remote service to track assets that are being moved by various moveable platforms. The server(s) and associated network equipment can be located at one fixed location or in a mobile unit or can be part of a data center or cloud. The tracking can include tracking the current locations of the assets, cargo load status of moveable platforms, conditions of the environment around the assets (where such conditions can include a measured temperature, a measured humidity, etc.), and/or other information.

A sensor device can include a communication component to communicate over a network. In some examples, sensor devices mounted on moveable platforms can be part of a larger network of devices. This larger network of devices can be part of the "Internet-of-Things" (IoT) technology paradigm to allow different types of devices to communicate different types of data (including sensor data, voice data, video data, e-mail data, text messaging data, web browsing data, and so forth).

Sensor devices mounted on moveable platforms can be powered using batteries. To extend the lifetime of a battery for a sensor device, the sensor device can be placed in a sleep state during times when the sensor device does not have to measure data or process data. However, it can be challenging to determine when the sensor device is to be activated from the sleep state to an operational state to allow the sensor device to perform respective measurement and/or processing tasks. A sleep state refers to a state of the sensor device where a sensor device is powered off, or a portion of the sensor device <NUM> is powered off, such that the sensor device consumes a lower amount of power than another state of the sensor device, such as the operational state. An operational state of the sensor device is a state of the sensor device where the sensor device is able to perform specified tasks, including measurement of data and/or processing of data. In the operational state, the sensor device consumes more power than the power consumed by the sensor device in the sleep state.

If the sensor device is not awakened when certain events occur, then various measurement information corresponding to such events may be missed, and thus, as a result, the tracking of assets being transported by moveable platforms may be incomplete or inaccurate.

In accordance with some implementations of the present disclosure, as shown in <FIG>, a sensor device <NUM> that can be mounted on a moveable platform includes a sensor <NUM> to measure a parameter and to output corresponding measurement data of the parameter. Although <FIG> shows just one sensor <NUM>, it is noted that the sensor device <NUM> can include multiple sensors in other examples, where the multiple sensors can measure different parameters.

The sensor device <NUM> further includes a controller <NUM>. The controller <NUM> can be implemented with a hardware processing circuit, such as a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable gate array, a programmable integrated circuit device, or any other type of hardware processing circuit. Alternatively, the controller <NUM> can be implemented as a combination of a hardware processing circuit and machine-readable instructions executable on the hardware processing circuit.

The controller <NUM> determines, based on the measurement data output by the sensor <NUM>, whether a moveable platform on which the sensor device <NUM> is mounted is in transit motion. Transit motion of a moveable platform refers to motion of the moveable platform that causes the moveable platform to be moved between different physical locations. It is noted that in some cases, the sensor device <NUM> may be attached to a door or other entry barrier on the moveable platform, where the entry barrier can be moved between an open position and a closed position. The movement that is detected by the sensor device <NUM> that corresponds to the movement of such an entry barrier may not correspond to a transit motion of the moveable platform on which the sensor device <NUM> is mounted, because the moveable platform may remain stationary even though the entry barrier is being moved between an open position and a closed position. Generally, an entry barrier (or more simply a barrier) can refer to any structure, such as a door, a window, or any other structure that can be opened to allow entry through an opening, or closed to block entry through the opening.

In response to determining that the moveable platform on which the sensor device <NUM> is mounted is in transit motion, the controller <NUM> can activate an awaken indication <NUM> to cause the sensor device <NUM> to transition from a sleep state to an operational state. The awaken indication <NUM> can include a signal that has an active state (e.g., logic high or logic low), and an inactive state (e.g., logic low or logic high). Activating the signal refers to asserting the signal to the active state. In other examples, the awaken indication <NUM> can include a message, an information element, or any other type of indication.

Activation of the awaken indication <NUM> causes certain device component(s) <NUM> of the sensor device <NUM> to be activated from a lower power state to a higher power state. As discussed further below, such device component(s) <NUM> can include one or more of the following: a processor, another sensor, a communication component (e.g., a wireless transceiver and associated circuits to communicate wirelessly over a wireless network, or a wired transceiver and associated circuits to communicate over a wired network), and so forth. A lower power state of a device component refers to a state where the device component consumes less power than a higher power state of the device component. For example, to set the device component in the lower power state, the device component (or a portion of the device component) can be turned off, or can be run at a lower clock frequency, or can be run at a lower power supply voltage level.

<FIG> illustrates an example truck <NUM> that includes a tractor unit <NUM> and a container <NUM> (provided on a chassis) hauled by the tractor unit <NUM>. <FIG> is a perspective view of the container <NUM>. The container <NUM> is an example of a moveable platform that can be used to carry physical items. The container <NUM> includes a door <NUM> that is pivotable between an open position and a closed position. In <FIG>, the door <NUM> is in the open position.

In the ensuing discussion, reference is made to examples where a moveable platform is the container <NUM>, and where an entry barrier is the door <NUM>. It is noted that techniques or mechanisms according to some implementations of the present disclosure can be applied with sensor devices used with other types of moveable platforms and entry barriers.

The door <NUM> is pivotally mounted on hinges <NUM>, which are attached to a frame <NUM> (referred to as "door frame") of the container <NUM>. The door <NUM> is able to rotate about the hinges <NUM> between the open position and the closed position. In <FIG>, two hinges <NUM> are shown. In other examples, the door <NUM> can be mounted on just one hinge, or on more than two hinges.

In some examples, the sensor device <NUM> is attached to the door <NUM>. The sensor device <NUM> can be mounted to an outer surface of the door <NUM> that faces the environment outside the container <NUM>, or alternatively, the sensor device <NUM> can be mounted to an inner surface of the door <NUM> that faces into an inner chamber <NUM> of the container <NUM>. In yet further examples, the sensor device <NUM> can be provided within a recess in the wall of the door <NUM>. In other examples, the sensor device <NUM> can be mounted elsewhere on the container <NUM>.

In <FIG>, three axes are defined: X, Y, and Z. In the view of <FIG>, the X axis points generally upwardly, which in the view of <FIG> is generally parallel with a rotation axis of each hinge <NUM>. The door <NUM> is rotatable about the rotation axis of the hinge <NUM>. The Y axis is a radial axis that is perpendicular to the X axis. In the view shown in <FIG>, the Y axis is parallel to the main surface of the door <NUM> and points towards the hinges <NUM>. The Z axis is in a direction that is normal to the main surface of the door <NUM>; when the door <NUM> is in the closed position, the Z axis points into the inner chamber <NUM> of the container <NUM>.

Although reference is made to the X axis as pointing upwardly in the view shown in <FIG>, it is noted that in other examples, the X axis can point in a different direction. More generally, the X axis is parallel to the rotation axis of a hinge about which the door <NUM> is rotatably mounted. Thus, in a different example, a hinge of the door <NUM> can be mounted such that its rotation axis extends along a horizontal axis, or along a diagonal axis. In other examples, rolling doors that move up and down do not have hinges but have rollers or other mechanisms to move up and down.

In some implementations, the sensor <NUM> of the sensor device <NUM> includes an accelerometer that can measure acceleration data representing an acceleration of the sensor device <NUM>. In the ensuing discussion, reference is made to the "accelerometer <NUM>. " Note, however, that in other examples, the sensor <NUM> can be implemented with a different type of sensor that can measure displacement or velocity. A determination of whether the container <NUM> is in transition motion can be based on the acceleration data from the accelerometer <NUM> (and possibly other sensor data as discussed further below).

Although just one accelerometer <NUM> is shown in <FIG> and <FIG>, it is noted that in other examples, multiple accelerometers <NUM> can be used to output acceleration data that can be processed to determine whether or not the moveable platform on which the sensor device <NUM> is mounted is in transit motion.

According to the claimed invention, velocity and position of the sensor device <NUM> (and corresponding velocity and position of the container <NUM> on which the sensor device <NUM> is mounted) can be estimated based on the acceleration data from the accelerometer <NUM>. according to the claimed invention, the acceleration data from the accelerometer <NUM> is integrated to obtain velocity and position. A single integration over time can be applied on the acceleration data to obtain velocity, and a double integration over time can be applied on the acceleration data to obtain position. From the velocity and position information derived based on the acceleration data, the controller <NUM> decides whether or not the moveable platform on which the sensor device <NUM> is mounted is in transit motion. According to the claimed invention, if the detected velocity lasts for longer than a specified time duration, and if positions calculated at different times from the acceleration data indicate that the moveable platform has in fact moved between different locations, then the controller <NUM> indicates that the container <NUM> is in transit motion.

In some examples, the accelerometer <NUM> can be a multi-axis accelerometer that can measure acceleration along each of the X, Y, and Z axes. In other examples, the accelerometer <NUM> can measure acceleration in a subset of the X, Y, and Z axes.

<FIG> is a state diagram that illustrates operation of the controller <NUM> according to some examples. While the container <NUM> is stationary (which can be determined based on the acceleration data from the accelerometer <NUM>), the controller <NUM> remains in a stationary state <NUM>. In the stationary state <NUM>, the sensor device <NUM> is maintained in the sleep state.

The controller <NUM> can transition from the stationary state <NUM> in response to one of several different events. A first event that can cause the controller <NUM> to exit the stationary state <NUM> is a transit event. The transit event is triggered in response to the controller <NUM> detecting, based on acceleration data from the accelerometer <NUM>, that the container <NUM> on which the sensor device <NUM> is mounted has started transit motion (i.e., started moving from being stationary).

In response to the transit event, the controller <NUM> transitions from the stationary state <NUM> to an update state <NUM>, where the controller <NUM> triggers a power state transition in the sensor device <NUM>. More specifically, the controller <NUM> triggers the sensor device <NUM> to transition from the sleep state to the operational state. In response to transitioning the sensor device <NUM> to the operational state, the sensor device <NUM> can make measurements using the sensor(s) (in addition to the accelerometer <NUM>) in the sensor device <NUM>, and can perform data processing using a processor in the sensor device <NUM>. Moreover, in the update state <NUM>, a communication component may be activated to allow the sensor device <NUM> to transmit information to (and receive information from) a remote entity over a network. The remote entity can be a remote service that is used to track assets that are being transported by moveable platforms. In other examples, the remote entity can be a different destination device.

The controller <NUM> then transitions from the update state <NUM> to a transit state <NUM>, which corresponds to a state of the controller <NUM> when the container <NUM> on which the sensor device <NUM> is mounted is in transit motion. In the transit state <NUM>, the controller <NUM> triggers the sensor device <NUM> to transition from the operational state back to the sleep state. While the container <NUM> remains in transit motion, the sensor device <NUM> can be maintained generally in the sleep state since data measurement and/or data processing does not have to be performed while the container <NUM> is continually in motion. However, in some implementations, the sensor device <NUM> can be intermittently activated (e.g., periodically activated or activated at irregular intervals) while the container <NUM> is in motion.

As shown in <FIG>, in response to a time event, the controller <NUM> transitions from the transit state to an update state <NUM>. In the update state <NUM>, the controller <NUM> triggers a power state transition in the sensor device <NUM> to cause the sensor device <NUM> to transition from the sleep state to the operational state. In the update state <NUM>, one or more of the following device components in the sensor device <NUM> can be activated from a lower power state to a higher power state: the processor, sensor(s) (in addition to the accelerometer <NUM>), the communication component, and so forth.

The time event can be generated in response to expiration of a timer in the sensor device <NUM>. For example, the timer can count a specified time duration, and upon expiration of the time duration, the timer activates a timeout indication to cause the time event to be produced.

From the update state <NUM>, the controller <NUM> determines (at <NUM>) whether the container <NUM> has come to a stop after being in transit motion. The determination of whether the container <NUM> has come to a stop can be based on the acceleration data (and possibly other sensor data as discussed further below). The container <NUM> is considered to have come to a stop if the container <NUM> is detected to be stationary for a specified time duration (e.g., several seconds).

If the container <NUM> has not come to a stop from being in transit motion, the controller <NUM> transitions back to the transit state <NUM>, and causes the sensor device <NUM> to transition from the operational state to the sleep state.

However, if the controller <NUM> determines (at <NUM>) that the container <NUM> has come to a stop after being in transit motion, the controller <NUM> transitions to the stationary state <NUM>, and causes the sensor device <NUM> to transition from the operational state to the sleep state.

Another event that can cause the controller <NUM> to exit the stationary state <NUM> is a door open event. In response to a door open event (detected when the door <NUM> is opened from a closed position), the controller <NUM> transitions from the stationary state <NUM> to an update state <NUM>, where the controller triggers the sensor device <NUM> to transition from the sleep state to the operational state. In the update state <NUM>, one or more of the following device components in the sensor device <NUM> can be activated from a lower power state to a higher power state: the processor, sensor(s) (in addition to the accelerometer <NUM>), the communication component, and so forth.

In some examples, while the door remains open, the sensor device <NUM> can remain in the operational state. In response to a door close event (corresponding to the door being closed from the open position), the controller <NUM> transitions back to the stationary state <NUM>, and triggers the sensor device <NUM> to transition from the operational state to the sleep state.

The door open event is produced in response to detecting that the door has been moved from a closed position to an open position. The detection of the door being opened can be based on use of any various different techniques. For example, a switch can be attached to the door, where the switch changes state in response to the door being opened. As another example, a magnetic sensor can be used, where the magnetic sensor can be in proximity to a magnet when the door is closed, but when the door is opened, the magnetic sensor moves away from the magnet. The magnetic sensor can thus output different values depending upon whether the door is opened or closed. In other examples, acceleration data from the accelerometer <NUM> and rotation data from a rotation sensor (discussed further below) can be used for detecting the door being opened and closed.

In other examples, a further event that can cause the controller <NUM> to exit the stationary state <NUM> is a door close event. In response to a door close event (detected when the door <NUM> is closed from an open position), the controller <NUM> transitions from the stationary state <NUM> to an update state, where the controller triggers the sensor device <NUM> to transition from the sleep state to the operational state. Subsequently, in response to a door open event (corresponding to the door being opened from the closed position), the controller <NUM> transitions back to the stationary state <NUM>, and triggers the sensor device <NUM> to transition from the operational state to the sleep state.

Thus, more generally, a door change event (representing a door being moved between an open position and a closed position) can cause the controller <NUM> to transition from the stationary state <NUM> to an update state (e.g., <NUM>). A door being moved between an open position and a closed position can refer to the door being opened or the door being closed. A subsequent door change event causes the controller <NUM> to transition from the update state back to the stationary state <NUM>.

In yet further examples, other events can cause transitions between different states.

It is noted that the sleep state of the sensor device <NUM> while the controller <NUM> is in the stationary state <NUM>, and the sleep state of the sensor device <NUM> while the controller is in the transit state <NUM>, may not be the same. For example, a device component (or multiple device components such as the processor, other sensor(s), and the communication component) of the sensor device <NUM> may be activated in the sleep state corresponding to the transit state <NUM>, but may be inactivated in the sleep state corresponding to the stationary state <NUM>, or vice versa.

Similarly, the operational state of the sensor device <NUM> corresponding to the update states <NUM>, <NUM>, and <NUM> may be different. For example, some device component(s) of the sensor device <NUM> may be inactivated in one of the update states <NUM>, <NUM>, and <NUM>, but may be activated in another of the update states <NUM>, <NUM>, and <NUM>.

<FIG> is a block diagram of a sensor device <NUM> according to further implementations. The sensor device <NUM> includes the accelerometer <NUM> and a gyroscope <NUM>. The gyroscope <NUM> is an example of a rotation sensor that is used to measure rotation about each of one or more axes (such as the X, Y, and Z axes of <FIG>). More specifically, a rotation sensor can measure a rotation speed or rate of rotation about each respective axis. In other examples, instead of a gyroscope, a rotation sensor can be implemented using a rotation vector sensor, where a rotation vector produced by the rotation vector sensor represents the orientation of the rotation vector sensor as a combination of an angle and an axis, in which a device has been rotated through an angle around a specific axis.

The accelerometer <NUM> produces acceleration data, and the gyroscope <NUM> produces rotation data. The acceleration data and the rotation data are provided as inputs to the controller <NUM>.

The sensor device <NUM> further includes a processor <NUM>, other sensor(s) <NUM>, and a communication component <NUM>, which are examples of the device components <NUM> shown in <FIG>. The sensor device <NUM> further includes a battery <NUM> that provides power to the components of the sensor device <NUM>.

Based on the acceleration data and the rotation data, the controller <NUM> can make any one or more of the following determinations: (<NUM>) detect that the container <NUM> on which the sensor device <NUM> is mounted has started transit motion from a stationary position, and (<NUM>) detect that the door <NUM> of the container <NUM> has been opened or closed.

In response to detecting that the container <NUM> has started transit motion, or in response to detecting that the door <NUM> has been opened from a closed position, the controller <NUM> can activate one or more of the following device components to place the sensor device <NUM> in the operational state: the processor <NUM>, the other sensor(s) <NUM>, and the communication component <NUM>.

When activated from a lower power state to a higher power state, the processor <NUM> can perform various data processing tasks, such as by analyzing measurement data from the accelerometer <NUM>, the gyroscope <NUM>, and the other sensor(s) <NUM> to make certain estimates and/or predictions. The other sensor(s) <NUM> when activated from a lower power state to a higher power state can take a respective measurement(s), such as to measure a temperature in the container <NUM>, measure a humidity in the container <NUM>, measure a time of flight of a signal inside the container <NUM> (where a signal, such as a light signal, is emitted from an emitter, and a reflection of the signal is detected by a detector to measure a time of flight), and/or measure another parameter.

The sensor device <NUM> further includes a timer <NUM>, which can be activated to count a specified time duration. For example, the timer <NUM> can be used to trigger the time event to cause the transition from the transit state <NUM> to the update state <NUM> shown in <FIG>.

In some examples, the controller <NUM> is separate from the processor <NUM>. In alternative examples, the controller <NUM> and the processor <NUM> can be integrated into one electronic component, such as an integrated circuit chip or a circuit board.

To determine whether the container <NUM> has started transit motion based on the acceleration data from the accelerometer <NUM> and the rotation data from the gyroscope <NUM> (or other type of rotation data), the controller <NUM> can check whether the rotation data indicates rotational movement of the sensor device <NUM> in response to detecting based on the acceleration data that the sensor device <NUM> is in motion. If the rotation data indicates that the sensor device <NUM> is experiencing rotational movement (due to opening or closing of the door <NUM>), then that is an indication that motion indicated by the acceleration data measured by the accelerometer <NUM> is due to the door <NUM> moving. As a result, in scenarios where both the acceleration data and the rotation data indicate movement of the sensor device <NUM>, the controller <NUM> can make a determination that the door <NUM> is moving, but the container <NUM> is not in transit motion.

However, if just the acceleration data is indicating movement, but the rotation data is not indicating movement, then the controller <NUM> can make a determination that the container <NUM> is in transit motion.

<FIG> is a flow diagram of a process that can be performed by the controller <NUM> according to some examples. The controller <NUM> receives (at <NUM>) from a sensor (e.g., the sensor <NUM> of <FIG> or <FIG>, and/or the gyroscope <NUM> of <FIG>) that is part of a sensor device (e.g. <NUM> in <FIG> or <NUM> in <FIG>) mounted on a moveable platform (e.g., the container <NUM> of <FIG>), measurement data. The controller <NUM> detects (at <NUM>), based on the measurement data, a change in transit motion status of the moveable platform. The change in transit motion status can be a change from the moveable platform being stationary to the moveable platform being in transit motion, or vice versa.

The controller <NUM> triggers (at <NUM>), in response to detecting the change in transit motion status of the moveable platform, a transition of the sensor device from a first power state to a second, different power state.

<FIG> is a block diagram of the controller <NUM> according to some examples. As noted above, in some examples, the controller <NUM> can be implemented using a hardware processor circuit. In other examples, as shown in <FIG>, the controller <NUM> can include a combination of a hardware processing circuit <NUM> and machine-readable instructions executable on the hardware processing circuit <NUM>. The machine-readable instructions include power control instructions <NUM> stored in a non-transitory machine-readable or computer-readable storage medium <NUM>. The power control instructions <NUM> can be loaded and executed on the hardware processing circuit <NUM> to perform respective tasks, such as the tasks of the controller <NUM> described in the present disclosure.

The storage medium <NUM> can include one or multiple different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed or removable disks; or other types of storage devices. Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.

Claim 1:
A device having a sleep state and an operational state and for mounting on a platform (<NUM>), comprising:
an accelerometer (<NUM>) to output acceleration data; and
a controller (<NUM>) to:
determine, based on the acceleration data output by the accelerometer, a velocity of the device;
determine positions of the platform at different times based on the acceleration data by applying a double integration on the acceleration data over time,
in response to determining that the velocity has lasted more than a predefined time duration and if positions calculated at different times from the acceleration data indicate that the moveable platform has in fact moved between different locations, determine that the platform on which the device is mounted has started transit motion; and
in response to determining that the platform on which the device is mounted has started transit motion, trigger the device to transition from the sleep state (<NUM>) to the operational state (<NUM>);
wherein the controller is to further:
determine whether an entry barrier (<NUM>) of the platform to which the device is attached has been moved between an open position and a closed position, and
in response to determining that the entry barrier to which the device is attached has been moved between the open position and the closed position, trigger the device to transition from the sleep state (<NUM>) to the operational state (<NUM>).