Embodiments of the present disclosure relate to resource control. Some relate to resource control in a network of devices comprising one or more sensors.
A network of devices can be used for monitoring purposes. For example, a network of devices can be used for human monitoring or sensing purposes.
In some circumstances it may be desirable to improve resource control amongst a plurality of devices.
According to various, but not necessarily all, embodiments there is provided examples as claimed in the appended claims.
According to various, but not necessarily all, embodiments there is provided an apparatus comprising means for:
In examples, the device resource usage rate comprises an energy usage rate and the available device resources comprises an amount of energy available to the devices of the one or more device configurations.
In examples, receiving one or more monitoring requests comprises receiving a plurality of monitoring requests.
In examples, determining one or more device actions comprises determining one or more sensing actions and/or determining one or more processing actions to be performed.
In examples, determining one or more device configurations comprises determining one or more available sensors configured for use in fulfilling the one or more monitoring requests.
In examples, determining a schedule of device configuration usage comprises at least one of:
In examples, the means are configured to control one or more device of a device configuration to fulfill a received monitoring request at a scheduled time, based, at least in part, on the determined schedule of device configuration usage.
In examples, the means are configured to:
In examples, the change in the plurality of available devices comprises addition of at least one available sensor and/or removal of at least one available sensor.
In examples, the means are configured to:
In examples, the change in the available device resources comprises at least one of the available devices being charged.
In examples, the schedule of device configuration usage comprises a scheduled change from a first device configuration for a monitoring request to a second, different device configuration for the monitoring request.
In examples, the means are configured to:
In examples, determining a schedule of device configuration usage comprises determining a degree of competition for available devices and/or sensors of the available devices for the determined device configurations; and
In examples, determining a degree of competition for available devices and/or sensors of available devices comprises determining the number of device configurations that involve the available devices and/or the sensors of available devices, and determining the amount of energy available to the available devices and/or sensors of available devices.
In examples, at least some of the plurality of available devices are interrelated and/or interdependent.
In examples, the means comprises
According to various, but not necessarily all, embodiments there is provided an apparatus comprising:
According to various, but not necessarily all, embodiments there is provided a method comprising:
In examples, the device resource usage rate comprises an energy usage rate and the available device resources comprises an amount of energy available to the devices of the one or more device configurations.
In examples, receiving one or more monitoring requests comprises receiving a plurality of monitoring requests.
In examples, determining one or more device actions comprises determining one or more sensing actions and/or determining one or more processing actions to be performed.
In examples, determining one or more device configurations comprises determining one or more available sensors configured for use in fulfilling the one or more monitoring requests.
In examples, determining a schedule of device configuration usage comprises at least one of:
In examples, the method comprises controlling one or more device of a device configuration to fulfill a received monitoring request at a scheduled time, based, at least in part, on the determined schedule of device configuration usage.
In examples, the method comprises:
In examples, the change in the plurality of available devices comprises addition of at least one available sensor and/or removal of at least one available sensor.
In examples, the method comprises:
In examples, the change in the available device resources comprises at least one of the available devices being charged.
In examples, the schedule of device configuration usage comprises a scheduled change from a first device configuration for a monitoring request to a second, different device configuration for the monitoring request.
In examples, the method comprises:
In examples, determining a schedule of device configuration usage comprises determining a degree of competition for available devices and/or sensors of the available devices for the determined device configurations; and
In examples, determining a degree of competition for available devices and/or sensors of available devices comprises determining the number of device configurations that involve the available devices and/or the sensors of available devices, and determining the amount of energy available to the available devices and/or sensors of available devices.
In examples, at least some of the plurality of available devices are interrelated and/or interdependent.
According to various, but not necessarily all, embodiments there is provided an apparatus comprising means for performing and/or for causing performance of at least a part of a method as described herein.
According to various, but not necessarily all, embodiments there is provided a computer program comprising instructions for causing an apparatus to perform at least the following:
In an example an apparatus comprising means for:
According to various, but not necessarily all, embodiments there is provided a computer program comprising instructions for causing an apparatus to perform at least a part of a method as described herein.
The description of a function and/or action should additionally be considered to also disclose any means suitable for performing that function and/or action.
Some examples will now be described with reference to the accompanying drawings in which:
In examples, the method 100 can be performed by any suitable apparatus 10. For example, any suitable apparatus 10 comprising means for performing the method 100 and/or means configured to perform the method 100.
In examples, the method 100 can be performed by an apparatus 10 as described in relation to, at least,
In some examples, the method 100 can be performed by an apparatus 10 as described in relation to, at least,
In examples, the method 100 can be considered a method of resource control and/or resource management and/or resource balancing in a plurality of devices.
One or more of the features discussed in relation to
At block 102, the method 100 comprises receiving one or more monitoring requests 12.
In examples, any suitable method for receiving one or more monitoring requests 12 can be used.
For example, receiving one or monitoring requests 12 can comprise receiving one or more signals comprising information including and/or configured to indicate the one or more monitoring requests 12.
In examples, a monitoring request 12 can be considered a request received from one or more applications for use of one or more device resources to perform one or more tasks or actions, such as one or more monitoring and/or sensing tasks or actions.
In examples, a monitoring request 12 can be considered a context monitoring request received from a context monitoring application. In examples, context refers to high level information determined and/or inferred from sensor data from any suitable sensor or sensors such as one or more accelerometers, one or more Sp02 sensors, one or more gyros, one or more temperature sensors, one or more humidity sensors, one or more proximity sensors, one or more motion sensors, one or more microphones, one or more cameras and so on.
In examples, the one or more monitoring requests 12 can be received from any suitable application or applications. For example, a heartrate monitor, a fall detector, a location-based reminder, a calorie monitor, a sleep pattern detector, temperature monitoring-based heating control, air quality monitoring-based window control, humidity monitoring-based water control, motion-based light control physical activity monitoring and so on.
In examples, the one or more monitoring requests 12 can be received via one or more application program interfaces (APIs) which, in some examples, can be considered context monitoring APIs.
In examples, an application interface can be used to interact with the one or more context monitoring applications. See, for example,
The one or more monitoring requests 12 can have any suitable form and/or format. For example, the one or more monitoring requests 12 can be formatted for and/or configured for use with one or more APIs.
In examples, receiving one or more monitoring requests 12 comprises receiving a plurality of monitoring requests 12. For example, receiving one or more monitoring requests 12 can comprise receiving a plurality of monitoring requests 12 from a plurality of applications.
In examples, a device may have a plurality of applications which control usage rates and/or communications therebetween.
In examples, a monitoring request 12 can be considered one or more monitoring messages.
In some examples, monitoring requests 12 can be received from any suitable source. For example, one or more monitoring requests 12 can be received from a device/devices performing method 100 and/or one or more external devices.
At block 104, the method 100 comprises determining one or more device actions 14 to be performed to fulfill the received one or more monitoring requests 12.
Any suitable method for determining one or more device actions to be performed to fulfill the one or more monitoring requests 12 can be used.
As used herein, the term “determining” (and grammatical variants thereof) can include, not least: calculating, computing, processing, deriving, investigating, looking up (for example, looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (for example, receiving information), accessing (for example, accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing, and the like.
Accordingly, in examples, determining one or more device actions 14 to be performed to fulfill the received one or more monitoring requests 12 can comprise retrieving information from a memory 34 and/or analyzing the one or more monitoring requests 12 to determine one or more device actions 14 to be performed to fulfill the one or more monitoring requests 12.
In examples, one or more device actions 14 to be performed to fulfill a monitoring request 12 can be considered a set of device actions 14 and/or a processing alternative and/or an inference pipeline and so on for the monitoring request, such as, for example, for fall detection or heartrate monitoring.
In examples, the one or more device actions 14 can be considered one or more actions to be performed at one or more devices to fulfill a monitoring request 12.
In examples, one or more of the one or more device actions 14 can be configured to be performed in parallel and/or in series.
In some examples, determining one or more device actions 14 comprises determining one or more sensing actions 26 and/or determining one or more processing actions 28 to be performed.
Accordingly, in examples, determining one or more device actions 14 to be performed can comprise determining information to be obtained and/or determining processing of information to be carried out to fulfill one or more received monitoring requests 12.
In examples, a monitoring request 12 can have multiple sets of device actions (and/or processing alternatives and/or inference pipelines) suitable for and/or configured to fulfill the monitoring request 12. In examples, these can be considered alternative and/or substitutable sets of device actions and/or processing alternatives and/or inference pipelines for a monitoring request 12.
For example, a context of determining that a user is running can, in examples, be determined with frequency-domain features from acceleration data and a decision tree classifier.
Alternatively, a running context can be determined with time-domain statistical features and a Naïve Bayes classifier.
Similarly, contexts such as fall determination and heartrate monitor can have alternative device action sets and/or processing alternatives and/or inference pipelines. See, for example,
At block 106 the method 100 comprises determining one or more device configurations 16 for the one or more monitoring requests 12, wherein determining one or more device configurations 16 comprises assigning the one or more determined device actions 14 to one or more devices 18 from a plurality of available devices 18.
Any suitable method for determining one or more device configurations 16 can be used.
In examples, determining one or more device configurations 16 can be considered assigning the determined sets of device actions and/or processing alternatives and/or inference pipelines for the received monitoring request(s) 12 to one or more available devices 18.
In examples, different device actions 14 in a set of one or more device actions/processing alternatives/inference pipelines can be assigned to a device 18 or a plurality of different devices 18.
In examples, a set of one or more device actions and/or inference pipeline and/or processing alternative can have one or more associated device configurations 16. In examples, a device action set/inference pipeline/processing alternative can have a plurality of associated device configurations 16.
A device configuration 16 can, in some examples, be considered an energy use unit (EU). In examples, a monitoring request 12 can have multiple alternative EUs.
Accordingly, in examples, a set of one or more device actions 14 and/or an inference pipeline and/or a processing alternative can be considered to represent a series of tasks for inferring “context” from “raw” sensor data and a device configuration 16 and/or EU can be considered to represent a configuration of the tasks of a monitoring request 12 across one or more available devices.
See, for example,
In examples, any suitable device 18 or devices 18 can be used. In some examples, one or more of the plurality of available devices 18 are wearable devices.
In some examples, at least some of the plurality of available devices 18 are configured in a network. Any suitable short, medium or long range network or network environment can be used. For example, spatially distributed devices in a 5G network can be used and/or an internet of things environment IoT can be used and so on.
In some examples, at least some of the plurality of available devices 18 form a personal area network of a user.
In examples, the network can comprise and/or be any suitable network using any suitable network protocol such as ZigBee, WiFi, Bluetooth, 5G and so on.
In examples, at least some of the plurality of devices 18 can be proximate to a user. For example, at least some of the plurality of devices 18 can be attached to and/or carried by and/or worn by the user.
In some examples, at least some of the devices can be spatially distributed across a wider area using, for example, 5G network.
In examples, a device 18 can be considered available if it is available for use in fulfilling one or more monitoring requests 12. For example, a device 18 can be considered available if information can be transferred between the apparatus 10 and the device 18.
In examples, determining one or more device configurations 16 comprises determining one or more available sensors 30 configured for use in fulfilling the one or more monitoring requests 12. In examples devices 18 and/or sensors 30 can be considered sensor nodes.
Accordingly, in examples, determining one or more device configurations 16 can comprise determining sensors 30 that are available amongst the plurality of available devices 18.
In examples, at least some of the plurality of available devices 18 and/or sensors 30 are or can be considered to be interrelated and/or interdependent.
In examples, a plurality of devices 18 and/or sensors can be considered interdependent in a scenario where an availability of a monitoring application is determined by a set of devices 18/sensors 30 which, in turn, determine another monitoring application's availability.
In examples, a plurality of devices 18 can be considered interrelated if use of one device 18 affects, in some way, use of another device 18.
At block 108, the method 100 comprises determining a device resource usage rate 20 for the determined one or more device configurations 16.
Any suitable method for determining a device resource usage rate 20 for the determined one or more device configurations 16 can be used.
In examples, device resource usage rate 20 can be determined in any suitable form, for example as an amount per time unit, such as per second, and/or as a proportion of an overall capacity of a system, such as a system of available devices 18.
In examples, a device resource usage rate 20 for a device configuration 16 can comprise a mixture of rate(s) as a function of time and as a proportion of system capacity.
In some examples, determining a device resource usage rate 20 can comprise determining a resource usage rate for the device action(s) 14 in a device action set/inference pipeline/processing alternative on the respective device(s) 18 and summing the total usage rate across the device configuration 16.
In examples, the device resource usage rate 20 comprises an energy usage rate and determining a device resource usage rate 20 for a device configuration 16 comprises determining an energy usage rate for the device actions 14 of the assigned devices 18.
For example, the energy usage rate can be in the form of the amount of energy used per second, such as millijoules per second.
In examples, the device may send a request to an entity, which can be another device or computer, for example.
In examples the device may receive a response from an entity which can be another device or computer, for example.
In examples the response may comprise at least one determined schedule of the device configuration usage based, at least in part, on the determined device resource usage rate or rates and the available device resources.
In the examples device may perform the determined one or more device actions according to at least one determined schedule of the device configuration usage based, at least in part, on the determined device resource usage rate or rates and the available device resources.
An example of determining of a plurality of device configurations 16 with associated device resource usage rate 20 can be as follows:
At block 110, the method 100 comprises determining a schedule of device configuration usage 22, based, at least in part, on the determined device resource usage rate or rates 20 and available device resourced 24.
Any suitable method for determining a schedule of device configuration usage 22 can be used.
For example, a schedule of device configuration usage 22 can be determined given any suitable goal or goals and/or target or targets and/or limit or limits and/or aim or aims and/or restriction or restrictions and so on.
For example, a schedule of device configuration usage 22 can be determined to balance resources of the available devices 18 and/or to balance running times of one or more context monitoring applications and/or to ensure that device resource usage remains lower than a capacity of a system and/or to optimize device resource usage in a system.
In examples, the device resource usage rate 20 comprises an energy usage rate and the available device resources 24 comprises an amount of energy available to the devices 18 of the one or more device configurations 16.
Accordingly, in such examples, determining a device resource usage rate 20 for the determined one or more device configurations 16 comprises determining an energy usage rate for the determined one or more device configurations 16.
Similarly, in such examples, determining a schedule of device configuration usage 22 based, at least in part, on the determined device resource usage rate or rates 20 and available device resources 24 comprises determining a schedule of device configuration usage 22 based, at least in part, on the determined energy resource usage rate or rates and available energy resources.
In examples, determining a schedule of device configuration usage 22 comprises at least one of:
For example, a schedule of device configuration usage 22 can be determined to allow some or all of the received monitoring requests 12 to run for as long as possible.
Alternatively, a schedule of device configuration usage 22 can be determined that allows a monitoring request 12, such as a fall detector, to run for as long as possible.
In some examples, the schedule of device configuration usage 22 comprises a scheduled change from a first device configuration 16 for a monitoring request 12 to a second, different device configuration 16 for the monitoring request 12.
That is, in examples, a monitoring request 12 can be fulfilled, for a period of time, by a first device configuration 16 and, after the first period of time, continue to be fulfilled by a second, different device configuration 16. See, for example,
However, in general, any suitable schedule of device configuration usage 22 can be used.
In examples, determining a schedule of device configuration usage comprises determining a degree of competition for available devices 18 and/or sensors 30 of the available devices 18 for the determined device configuration 16; and
For example, monitoring requests 12 with diverse device configuration options and/or abundant energy resources can be scheduled to yield competitive resources to other monitoring requests with fewer device configuration options and/or scarce energy resources.
In some examples, determining a degree of competition for available devices 18 and/or sensors 30 of available devices 18 comprises determining the number of device configurations 16 that involve the available devices 18 and/or the sensors 30 of available devices 18, and determining the amount of energy available to the available devices 18 and/or sensors 30 of available devices 18.
See, for example,
Consequently,
In some examples, the method 100 can comprise determining available device resources 24.
In examples, the following can apply to the method 100 and/or method(s) described herein, such as the method 200 of
Then, the set of device configurations 16 or EUs, EUSet, can be defined as follows:
Given Qset and Sset as inputs, a schedule of device configuration usage (EUS) 22 can be determined to meet one or more goals under resource constraints, such as energy constraints, of the system.
In examples, EUS={EUSeq1|EUSeq1 is a sequence of (EUi,m, ti,m) pairs over a timeline representing the execution sequence of EUi,m's for a query qi}
In examples, the pair (EUi,m, ti,m) represents the allocation of EUi,m for the time duration ti,m for qi.
In some examples, for the received one or more monitoring requests 12, a sequence of EUs is assigned until the battery of the associated device(s) 18 is depleted.
A simple example is, if a query, q1, has two EUs (EU1,1, EU1,2), which use a smartphone and smartwatch, respectively, we can assign the sequence for q1, either (EU1,1→EU1,2) or (EU1,2→EU1,1).
Here, the energy constraint refers to the situation that, for a sensor 30, the energy consumed by a sequence of associated EUs for all queries should be less than the remaining energy of the sensor 30; the energy cost is calculated by multiplying the energy consuming rate and the duration.
In some examples, an optimization goal is set to equally balance the running time of all received monitoring requests 12, under the assumption that every context monitoring request should be continuously supported and is equally important.
In examples, such an optimization goal can be considered to be to minimize the standard deviation of the running times of all monitoring requests 12 in QSet, which can be defined as follows:
Minimize std(RT), where RT={rti|rti=Σjti,j, which denotes the running time of qi}.
Running time can, in examples, be considered to be the minimum battery life among the devices 18 or sensors 30 involved in the request, where the battery life of a device 18 or sensor 30 can be computed by dividing its battery capacity by its expected energy cost.
At block 120, the method comprises determining if a change has occurred.
In examples, the method 100 comprises determining if a change has occurred in relation to any of the preceding blocks 102, 104, 106, 108 and/or 110.
Accordingly, in examples, the method 100 can comprise determining if a change has occurred in the one or more monitoring requests 12, and/or in the one or more available devices 18 and/or sensors 30, and/or in the device resources 24.
In examples, on-line and/or real-time usage data can be received and/or obtained and a determination made whether or not to update the schedule 22 based, at least in part, on the data.
For example, if no substantial change is determined, for example within an acceptable threshold then no update is performed.
In examples, the method 100 can comprise determining whether or not to transmit or cause transmission of an update, for example updated device configuration(s), to one or more devices 18 and/or one or more applications.
In examples, the method 100 comprises determining a change in the plurality of available devices 18; and updating the schedule of device configuration usage 22 based, at least in part, on the determined change in the plurality of available devices 18.
In examples, the change in the plurality of available devices 18 comprises addition of at least one available sensor 30 and/or removal of at least one available sensor 30.
In some examples, the change in the plurality of available devices 18 comprises addition of at least one device 18 and/or removal of at least one device 18.
In the example of
Accordingly, in such examples, the method 100 returning to blocks 106, 108 and 110 can be considered to update the respective actions.
In examples, the method 100 comprises determining a change in the available device resources 24; and
In some examples, the change in the available device resources comprises determining a change in the amount of energy available at one or more of the available devices 18.
In some examples, the change in the available device resources comprises at least one of the available devices 18 being charged.
In such examples, the method 100 can return from block 120 to block 110 as indicated by the arrow located between blocks 108 and 110, and the method 100 updated based, at least in part, on the determined change.
Accordingly, in such examples, the method 100 returning to block 110 can be considered to update the respective action.
In some examples, the method 100 comprises determining that at least one of the monitoring requests 12 is removed; and updating the schedule of device configuration usage 22 based, at least in part, on the remaining monitoring request 12 or requests 12.
For example, a plurality of monitoring requests 12 can be received and a schedule of device configuration usage 22 determined according to the method 100. Subsequently, one or more of the monitoring requests 12 can be removed and the schedule of device configuration usage 110 updated accordingly.
In the example of
Accordingly, in such examples, the method 100 returning to blocks 106, 108 and 110 can be considered to update the respective actions.
In some examples, one or more new monitoring requests 12 can be received. That is, in examples, the determined change can be the addition of a monitoring request 12.
In such examples, the method 100 can return, from block 120, to block 104 as indicated by the arrow between blocks 102 and 104, and the method 100 updated based, at least in part, on the determined change.
In such examples the method 100 returning to blocks 104, 106, 108 and 110 can be considered to update the respective actions.
Accordingly, in examples, the method 100 is adaptive to changes in monitoring request(s) 12, device(s), and/or device resources 24.
In examples, determining a change at block 120 can be performed in any suitable way. For example, checking for a change can be performed according to a schedule.
In examples, determining a change can be considered an update event. For example, receiving one or more new monitoring requests 12 and/or removal of one or more monitoring requests 12 can be considered an update event.
Additionally, or alternatively, addition and/or removal of one or more devices 18 and/or sensors 30 can be considered an update event.
Additionally, or alternatively, a change in device resources 24, for example an unexpected loss of energy at a device 18 and/or sensor 30 and/or charging of one or more devices 18 and/or sensors 30 can be considered an update event.
In examples, the method 100 can be considered to comprise evaluating an update event and determining if an update is to be made based, at least in part, on the update event. In examples, an update can comprise at least one of the following: Discard and/or cancel update event, if it is determined that changes caused, at least in part by the update event, are insignificant, for example do not exceed a change threshold.
Update the schedule of device configuration usage 22 and update device control and/or sensor control accordingly.
Update the schedule of device configuration usage 22 without updating device control and/or sensor control when changes to schedule are insignificant. For example, when changes in the schedule of device configuration usage 22 is less than a predetermined time value.
In examples any suitable predetermined time value can be used, for example less than 10 minute, less than 7 minutes, less than 5 minutes, less than 3 minutes, less than 1 minute and so on.
In examples, changes to the schedule of device configuration usage 22 can be considered insignificant when activity of one or more devices 18 and/or sensors 30 is to be terminated within a predetermined time value, according to the previous schedule of device configuration usage 22.
Any suitable predetermined time value can be used, for example within 10 minutes, within 7 minutes, within 5 minutes, within 3 minutes, within 1 minute and so on.
Immediate change of the schedule of device configuration usage 22 and consequential update to device 18 and/or sensor 30 control. For example, if it is determined that one or more devices 18 and/or sensors 30 have failed, an alternative, working device configuration 16 can be implemented.
In examples, evaluating an update event comprises checking one or more predefined thresholds associated with the update event. For example, a predefined threshold for energy loss in relation to an device resource update event.
At block 122, the method 100 comprises controlling one or more device 18 of a device configuration 16 to fulfill a received monitoring request 12 at a scheduled time, based, at least in part, on the determined schedule of device configuration usage 22.
Any suitable method for controlling one or more device 18 of a device configuration 16 to fulfill a received monitoring request 12 can be used.
For example, controlling one or more device 18 can comprise causing transmission and/or transmitting one or more signals comprising information.
In some examples, one or more control messages can be transmitted/caused to be transmitted to one or more of the devices 18 of a device configuration 16.
Examples of the disclosure are advantageous. For example, examples of the disclosure provide for appropriate control and/or management of resources, such as energy resources, of a plurality of devices to, for example, balance running times of context monitoring applications.
Additionally, or alternatively, examples of the disclosure provide for separate applications to simply register one or more requests without concerning themselves about resource management and/or control.
This, for example, allows application developers to be freed from low level resource, such as energy, management issues such as energy availability monitoring and demand profiling.
Examples of the disclosure prepare and utilize multiple alternative methods for a high level context, exploiting different sensor combinations, sensing modalities, sample rate and network interfaces.
Examples of the disclosure can prevent injudicious use of energy leading to irrevocable energy drains preventing certain desired user functionality.
In examples, the method 200 can be considered an alternative representation of the method 100.
In examples, the method 200 can be performed by any suitable apparatus 10. For example, any suitable apparatus 10 comprising means for performing the method 200 and/or means configured to perform the method 200.
In examples, the method 200 can be performed by an apparatus 10 as described in relation to, at least,
In some examples, the method 200 can be performed by an apparatus 10 as described in relation to, at least,
At block 202 of
Accordingly, in examples, block 202 can be as described in relation to block 102 of
At block 212 the method 200 comprises generating energy use units (EUs).
In examples, generating energy use units (EUs) can be considered similar to or equivalent to determining one or more device configurations 16 for the one or more monitoring requests 12. Accordingly, in examples, block 212 of method 200 can be as described in relation to blocks 104 and 106 of method 100.
At block 214 the method 200 comprises estimating energy demand of energy use units.
In examples, estimating energy demand of energy use units 214 can be considered similar to or equivalent to determining a device resource usage rate 20 for the determined one or more device configurations 16.
Accordingly, in examples, block 214 of
At block 216, the method 200 comprises updating energy use units and resource status.
In examples, block 216 can be considered similar to or equivalent to block 120 of
In the example of
At block 206, the method 200 comprises estimating remaining energy of devices 18.
Accordingly, in method 200, if at block 206 the estimated remaining energy of devices 18 changes the energy use units will be updated at block 216.
Similarly, at block 208, the method 200 comprises deregistering a context to monitor which will also update energy use units and resource status at block 216.
Block 210 comprises removal of a sensor 30 which will also cause update of energy use units and resource status at block 216.
Block 204 of method 200 comprises adding a new sensor 30.
As can be seen in the example of
Accordingly,
In examples, one or more monitoring requests 12 can comprise different types of request. In some examples, a monitoring request 12 can comprise data of current monitoring rate(s) of the one or more devices 18 and/or applications.
In examples, the data of the latest monitoring rate(s) can be used to update a current state of configurations to match and/or accommodate current device resource usage rate(s).
At block 218, the method 200 comprises selecting an energy use unit for all running contexts.
In examples, selecting an energy use unit for all running contexts can be considered similar to or equivalent to determining a schedule of device configuration usage 22.
Accordingly, block 218 can be as described in relation to block 110 of
At block 220, the method 200 comprises executing the energy use unit schedule.
In examples, executing the energy use unit schedule can be considered similar to or equivalent to controlling one or more device of a device configuration 16.
Accordingly, in examples, block 220 can be as described in relation to block 122 of
In examples, functionality of method 200 can be considered, at least partially, equivalent to the functionality of method 100.
In examples, the system architecture 38 of the example of
In examples, the architecture 38 can be implemented by any suitable apparatus 10. For example, any suitable apparatus 10 comprising means for implementing the architecture 38 and/or means configured to implement the architecture 38.
In examples, the architecture 38 can be implemented by an apparatus 10 as described in relation to, at least,
In examples, the architecture 38 can be considered a collaborative architecture 38 between a service gateway (for example, a personal device such as a smartphone) and multiple devices 18 comprising one or more sensors 30, which can be considered sensor devices 18.
In examples, a service gateway supports multiple concurrent applications, including one or more context monitoring applications.
A service gateway can also function as a sensor manager, which makes decisions for device resource control, which can, in some examples, include energy use control and/or balancing and/or equalization.
In some examples, sensor devices 18 execute a set of tasks for context monitoring as planned by, and in examples controlled by, the service gateway and provide resource information, such as energy information, for control in real time.
Discussed below are roles of system components and connections in perspective of energy use control.
In the illustrated example, the architecture comprises an energy planner 40, an energy information manager 42, a context processor 46, a sensor broker 48 and an application broker 50.
In examples, the energy planner 40 can be considered to provide at least part of means for performing the method 100 of
In examples, the energy planner 40 in the service gateway makes decisions on energy use equalization and enforces the decisions.
In the illustrated example, the energy planner 40 includes three components that will be discussed further: an energy use unit (EU) generator, an energy use scheduler, and an EU trigger.
Once an energy use scheduling, which can be considered, in examples, a schedule of device configuration usage 22, is generated from a set of EUs, the EU trigger initiates execution of a proper EU at a designated time by sending one or more control messages to the context processors 46 in the service gateway and the corresponding sensor devices 18 via the sensor broker 48.
In examples, the energy use scheduler adjusts the energy use scheduling adaptively, reflecting changing situations such as dynamic sensor 30 join/leave and unexpected changes in energy availability reported from the sensor broker 48.
In some examples, such dynamic discovery of available devices 18 can be done with one or more wireless interfaces, for example, BLE, WiFi, and 5G. The discovery interval can be set by the system, for example, 10 seconds.
Also, the energy use scheduler adapts to a registration/deregistration event of an application reported from the application broker 50, for example, when there is a newly registered (or deregistered) application.
In examples, one or more energy estimators in the sensor device(s) 18 provide information of energy availability and the energy information manager in the service gateway provides information of energy demands to execute a set of tasks to the energy planner 40.
In the example of
In examples, first, the energy estimator of a sensor device 18 estimates its remaining energy, and second, the energy use estimator of the energy information manager 42 provides energy demands to execute a set of tasks on a sensor node based, for example, on energy use profiles.
In examples, to execute an energy use unit as planned in the schedule 22, the architecture 38 employs the context processors both in the service gateway and sensor devices 18.
In examples, the context processors cooperatively process the tasks for context monitoring as specified in the schedule 22.
In examples, the context processor in a sensor device performs sensing tasks and feature extraction tasks.
In examples, the context processor 46 in the service gateway further processes the data from sensors 30, for example, complex feature extraction and context recognition tasks, and complete context monitoring.
If supported by the sensor hardware, a sensor can adopt the context recognition part also.
In examples, the application broker 50 interacts with applications through a set of APIs 44.
In some examples, API registerCMQ( ) can be used. In examples, registerCMQ( ) can allow applications to easily specify a context of interest as a form of query statement, which can be considered making a monitoring request 12.
For example, assume that a heartbeat monitor wants to know if the heart rate of a user is above 80 with 95% of accuracy. The query or monitoring request 12 can be specified as follows.
In examples, the application is notified of the query result in any suitable way. In some examples, the application is notified of the query result through the specified callback function, callback_for_result.
In some examples, applications can be notified of query status, for example, estimated running time, or no applicable energy use units, for example, through another callback function for status.
In examples the architecture 38 can comprise one or more additional elements not illustrated and/or have one or more elements arranged differently.
Additionally, or alternatively, one or more elements of the architecture 38 can be omitted or combined.
In examples, the example of
In the example of
The example of
In the example of
As a base, diverse energy use units are prepared for to support registered context monitoring queries, which can be considered received monitoring requests 12.
In some examples, also, the energy availability of sensors and the potential energy demands of energy use units for the generation of energy use schedule are identified.
Utilizing the primitives, the scheduling method 400 creates, in examples, a well balanced energy use scheduling 22 for received application requests.
In addition, in the illustrated example, newly joined or leaving sensors or applications are continuously detected, and the energy use schedule 22 adjusted to adapt to the new environment.
As specified in the schedule 22, a proper energy use unit is triggered at a designated time. Once an energy use unit is triggered, relevant sensor nodes 18 and one or more devices, such as one or more mobile devices, start to cooperatively execute a set of designated tasks for context monitoring, such as sensing, feature extraction, and context recognition.
In examples, the monitoring results are proactively forwarded to applications through callback functions.
One or more monitoring requests 12 can be received from any suitable, sensor or sensors, application or applications like fall detector, heartbeat monitor, place reminder, for example, depicted by 52.
In the example of
For example, in relation to accelerometer and gyroscope, in the example of
In relation to Blood Volume Pulse (BVP) and electrocardiography (ECG) sensors, in the example of FIG. 5, ‘window 6000’ is intended to indicate that 60-second long BVP/ECG sensor streams are taken as input.
In the illustrated example, ‘Trans.’ is intended to indicate transmission.
In part (a) of
In part (b) of
In part (a) of the example of
The device configurations 16 illustrated in the example of
In the illustrated example, a device configuration 16/EU illustrates a plurality of device actions 14 or sets of tasks (TSet) to be executed.
In the illustrated example, the device actions 14 comprise sensing actions 26 and processing actions 28.
In part (a) of the example of
Device configuration 16/EU0,1 comprises device actions 14 on a smart-watch 18.
Device configuration 16/EU0,2 comprises device actions 14 on smart-trousers and a smart-shirt.
Accordingly, part (a) of
Similarly, in part (b) of
In part (b) of
Accordingly,
In examples, the energy requirements for the various device configurations 16 of
The example of
The example of
In the left portion of
In
In the example on the left portion of
It can be seen in the example in the left portion of
In the example of the left portion of
Accordingly, given the device resource usage rate 20 of the watch, the heart monitor and fall detector can run for approximately 5.2 hours before the energy of the watch is depleted.
However, after the energy of the watch is depleted, the ECG sensor on the shirt can be used to perform heart monitoring.
Accordingly, as the shirt has 800 joules remaining and the ECG sensor of the shirt consumes 120 joules per hour the heart monitor can run for a further 6.7 hours (11.9 hours in total) before the energy resource of the shirt is also depleted.
Accordingly, it can be seen that without the inventive method described herein the fall detector becomes inoperative after 5.2 hours, whereas the heart monitor continues for 11.9 hours.
This could be dangerous for a user who, for example, may fall after the fall detector functionality has failed.
However, the same device set-up is illustrated in the right portion of
In the right portion of the example of
Given the device resource usage rate 20 and device resources 24 of the shirt and watch the heart monitor and fall detector can run with these device configurations 16 for 6.7 hours before the resources of the shirt are depleted.
At this point, the watch has 785 joules remaining and therefore the BVP sensor 30 of the watch can be used to fulfill the heart monitor request 12 and the three axis accelerometer of the watch can be used to fulfill the fall detector request 12.
Accordingly, both requests can continue to be fulfilled for a further 3.4 hours before the resources of the watch are depleted.
Therefore, in the example to the right of
This simple example shows the clear technical benefits of the inventive method described herein.
In examples, any suitable method can be used to determine a schedule of device configuration usage 22. For example, a full analysis of all available arrangements of all available device configurations 16 can be performed to determine a schedule of device configuration usage 22 given one or more goals and/or limitations.
However, in such examples, determining a schedule of device configuration usage 22 can be processing intensive.
In examples, it can be beneficial to use a less processing intense method to determine a schedule of device configuration usage 22.
In some examples, this can be achieved by determining a schedule of device configuration usage 22 based, at least in part, on a degree of competition for available devices 18 and/or sensors 30 of the available devices 18.
For example, any suitable method that forces a query/request 12 with diverse device configuration 16/EU options and abundant energy resource to yield competitive resources to other queries/requests 12 with fewer device configuration 16/EU options and scarce energy resources can be used.
In examples, by making and/or allowing the queries/requests 12 with scarce resources to occupy the competitive energy resources, the running time gap, for example, among the queries/requests 12 can be significantly narrowed.
In examples, a query/request 12 is allowed to use competitive resources only after it exhausts less competitive resources.
If a query/request 12 has alternatives with less competition, it would be allowed, in examples, to use competitive resources after a predetermined time period or may not be allowed at all.
Meanwhile, a query/request 12 with scarce and few options can use the competitive resources.
In examples, such scheduling can have an effect to balance the lifetime of device 18 and/or sensor nodes by avoiding concentrated use of a certain device 18 and/or sensor node.
In examples, such scheduling can be considered altruistic scheduling.
As can be seen in part (c) of
In the example, query/request q1 has two alternative EUs and can use the resource of device 18/sensor node s2 or s3.
In the example, queries/requests q0 and q1 are scheduled to use the resource of s2 only after alternative EUs cannot be run using less competitive resources. By using most of the energy resource of s2, query/request q2 can maximize its running time even though it has a single energy use option.
Accordingly, the running time of all three queries can be well balanced.
As a comparison,
In this example, query/request q2 shares the energy of s2 with q0 and q1, and consequently, the running time of request q2 is significantly reduced. In this example, the running time of q2 becomes 2.8 times shorter than that of q0, which indicates the significant unbalance in running times.
In examples, an altruistic method of determining a schedule of device configuration usage 22 builds an schedule of device configuration usage 22 (EUS) through three steps: calculating degree of competition (DoC) for the device configurations 16/EU, sequencing available EUs in an altruistic way based on DoC, and calculating an execution time for the EUs.
In examples, DoC can be defined as a function of multiple SC values that the EU is associated with. The maximum of the SC values can be used to define DoC.
The SC of a sensor node can be defined in any suitable way.
A simple definition of SC is the number of queries/requests 12 that uses the sensor node 30. It is intuitive that, as more queries want to use a node, the competition of the node increases.
However, this definition can have, in examples, a limitation that it does not consider the heterogeneity in available energy of the one or more nodes 30 and energy demand of the one or more queries/requests 12.
In examples, the SC of a sensor node 30 can be defined as the expected energy demand divided by the remaining energy. In some examples, if a sensor node 30 is used is not used by any queries/requests 12 or is used by only a single query/request 12, that is |Qk| is 0 or 1, it is considered that there is no competition.
where sk is a kth sensor node, dki,j is the energy demand from for a set of tasks executed on sk for EUi,jv, and riv is the remaining energy of sk.
Altruistic EU sequencing. In examples, a sequence of EUs is made for the query(ies)/request(s) 12 in an altruistic way. It can be done, for example, by sorting EUs in an increasing order of computed DoC values. In examples, the EUi,js for q1 are arranged in EUSeq1 in increasing order of the DoC value of EUi,js.
Computation of EU execution time. In examples, the execution time, ti,j for every EUi,j is determined to determine EUS.
The basic principle can be considered to be that an EU begins to be executed when all the alternative EUs with a smaller DoC cannot be run anymore. Also, an initiated EU ends only when the energy of any relevant nodes is exhausted.
The computation is incrementally conducted starting from the first EU in a EUSeq by estimating the energy drain of relevant sensor nodes.
In examples, let EUi,j be jth EU for query/request qi in increasing order of DoC.
In examples, first, a set of the first EUs for the registered queries, {EUi,0}, is retrieved and identified. Then, in examples, the time, tmin, when any sensor node 30 exhausts its battery for the first time is computed.
In examples, the time, tmin, is computed with the remaining energy of a sensor node 30 and the energy demand of the executed EUs.
Then, in examples, the remaining energy of a node and the execution time of the EUs after the time, tmin is updated.
Also, in examples, the EUs that have been utilizing the shutdown sensor node are switched to the next one, for example, from EUi,j to EUi,j+1.
In examples, the process is iterated until there are no available sensor nodes anymore.
According to analysis, the time complexity of the altruistic scheduling method is O(Ns*(Ns+Nq)), where Ns is the number of sensors and Nq is the number of queries.
Although the example of
In examples, the constraint of for example CPU, memory, bandwidth can be considered as 100%. Then, in examples, the scheduling decision can be made in a way that the sum of usages on a sensor node 30, for example, should be less than 100%.
For example, if there are 3 tasks and each task consumes 40% of CPU usage, we can avoid to assign three tasks on a single node (as the node cannot support 120% of CPU usage.)
In examples, CPU and memory usage rates, for example amount and/or time used, of one or more sensor applications can influence energy resource usage.
In examples resource demand profiling and monitoring methods can be utilized.
In examples, the constraint check is performed after the scheduling process, for example altruistic scheduling process. If a generated EUS cannot be executed due to resource constraint, the EUS is adjusted.
In examples, a victim with the longest expected running time is sacrificed. However, an altruistic scheduling method has an effect to avoid such resource contention by nature, since it avoids concentrated and competitive sensor utilization.
An example of pseudo code for altruistic scheduling is as follows:
In this example, line 1 shows the process of obtaining the remaining energy of sensor nodes where SSet is a set of available sensors and GetEnergyAvailability(Sk) is a function that returns the remaining energy of Sk.
At line 4, QSet is a set of registered queries and, at lines 8-9, GetEnergyDemand(S, EUSetc, t) is a function that returns the estimated amount of energy consumed on a sensor sk for time t to execute a set of EUs.
Examples of the disclosure are advantageous. For example, enhanced control and/or management of resources, such as energy resources, are provided.
Additionally, or alternatively, in examples separate applications can simply register one or more requests without having to consider resource management and/or control.
Accordingly, application developers can be freed from low level resource, such as energy, management issues such as energy availability monitoring and demand profiling.
In examples, multiple alternative methods for a high level context can be used, exploiting, for example, different sensor combinations, sensing modalities, sample rate and network interfaces.
Additionally, or alternatively, examples of the disclosure can prevent irrevocable energy drains on one or more devices 18 and/or sensors 30 preventing certain desired user functionality.
Implementation of apparatus 10 may be as controller circuitry. The apparatus 10 may be implemented in hardware alone, have certain aspects in software including firmware alone or can be a combination of hardware and software (including firmware).
As illustrated in
The processor 32 is configured to read from and write to the memory 34. The processor 32 may also comprise an output interface via which data and/or commands are output by the processor 32 and an input interface via which data and/or commands are input to the processor 32.
The memory 34 stores a computer program 36 comprising computer program instructions (computer program code) that controls the operation of the apparatus 10 when loaded into the processor 32. The computer program instructions, of the computer program 36, provide the logic and routines that enables the apparatus to perform the methods illustrated in
In examples, the apparatus 10 therefore comprises:
As illustrated in
Computer program instructions for causing an apparatus to perform at least the following or for performing at least the following:
The computer program instructions may be comprised in a computer program, a non-transitory computer readable medium, a computer program product, a machine readable medium. In some but not necessarily all examples, the computer program instructions may be distributed over more than one computer program.
Although the memory 34 is illustrated as a single component/circuitry it may be implemented as one or more separate components/circuitry some or all of which may be integrated/removable and/or may provide permanent/semi-permanent/dynamic/cached storage.
In examples the memory 34 comprises a random access memory 56 and a read only memory 58. In examples the computer program 36 can be stored in the read only memory 58. See, for example,
In some examples the memory 34 can be split into random access memory 56 and read only memory 58.
Although the processor 32 is illustrated as a single component/circuitry it may be implemented as one or more separate components/circuitry some or all of which may be integrated/removable. The processor 32 may be a single core or multi-core processor.
References to ‘computer-readable storage medium’, ‘computer program product’, ‘tangibly embodied computer program’ etc. or a ‘controller’, ‘computer’, ‘processor’ etc. should be understood to encompass not only computers having different architectures such as single/multi-processor architectures and sequential (Von Neumann)/parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other processing circuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device whether instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device etc.
As used in this application, the term ‘circuitry’ may refer to one or more or all of the following:
This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit for a mobile device or a similar integrated circuit in a server, a cellular network device, or other computing or network device.
The blocks illustrated in the
Where a structural feature has been described, it may be replaced by means for performing one or more of the functions of the structural feature whether that function or those functions are explicitly or implicitly described.
Thus, the apparatus 10 can, in examples, comprise means for:
In examples, an apparatus 10 can comprise means for performing a method, or at least part of a method, as disclosed herein.
In some but not necessarily all examples, the apparatus 10 is configured to communicate data from the apparatus 10 with or without local storage of the data in a memory 34 at the apparatus 10 and with or without local processing of the data by circuitry or processors at the apparatus 10.
The data may be stored in processed or unprocessed format remotely at one or more devices. The data may be stored in the Cloud.
The data may be processed remotely at one or more devices. The data may be partially processed locally and partially processed remotely at one or more devices.
The data may be communicated to the remote devices wirelessly via short range radio communications such as Wi-Fi or Bluetooth, for example, or over long range cellular radio links. The apparatus may comprise a communications interface such as, for example, a radio transceiver for communication of data.
The apparatus 10 may be part of the Internet of Things forming part of a larger, distributed network.
The processing of the data, whether local or remote, may be for the purpose of health monitoring, data aggregation, patient monitoring, vital signs monitoring or other purposes.
The processing of the data, whether local or remote, may involve artificial intelligence or machine learning algorithms. The data may, for example, be used as learning input to train a machine learning network or may be used as a query input to a machine learning network, which provides a response. The machine learning network may for example use linear regression, logistic regression, vector support machines or an acyclic machine learning network such as a single or multi hidden layer neural network.
The processing of the data, whether local or remote, may produce an output. The output may be communicated to the apparatus 10 where it may produce an output sensible to the subject such as an audio output, visual output or haptic output.
The above described examples find application as enabling components of: automotive systems; telecommunication systems; electronic systems including consumer electronic products; distributed computing systems; media systems for generating or rendering media content including audio, visual and audio visual content and mixed, mediated, virtual and/or augmented reality; personal systems including personal health systems or personal fitness systems; navigation systems; user interfaces also known as human machine interfaces; networks including cellular, non-cellular, and optical networks; ad-hoc networks; the internet; the internet of things; virtualized networks; and related software and services.
The term ‘comprise’ is used in this document with an inclusive not an exclusive meaning. That is any reference to X comprising Y indicates that X may comprise only one Y or may comprise more than one Y. If it is intended to use ‘comprise’ with an exclusive meaning then it will be made clear in the context by referring to “comprising only one.” or by using “consisting”.
In this description, reference has been made to various examples. The description of features or functions in relation to an example indicates that those features or functions are present in that example. The use of the term ‘example’ or ‘for example’ or ‘can’ or ‘may’ in the text denotes, whether explicitly stated or not, that such features or functions are present in at least the described example, whether described as an example or not, and that they can be, but are not necessarily, present in some of or all other examples. Thus ‘example’, ‘for example’, ‘can’ or ‘may’ refers to a particular instance in a class of examples. A property of the instance can be a property of only that instance or a property of the class or a property of a sub-class of the class that includes some but not all of the instances in the class. It is therefore implicitly disclosed that a feature described with reference to one example but not with reference to another example, can where possible be used in that other example as part of a working combination but does not necessarily have to be used in that other example.
Although examples have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the claims.
Features described in the preceding description may be used in combinations other than the combinations explicitly described above.
Although functions have been described with reference to certain features, those functions may be performable by other features whether described or not.
Although features have been described with reference to certain examples, those features may also be present in other examples whether described or not.
The term ‘a’ or ‘the’ is used in this document with an inclusive not an exclusive meaning. That is any reference to X comprising a/the Y indicates that X may comprise only one Y or may comprise more than one Y unless the context clearly indicates the contrary. If it is intended to use ‘a’ or ‘the’ with an exclusive meaning then it will be made clear in the context.
In some circumstances the use of ‘at least one’ or ‘one or more’ may be used to emphasis an inclusive meaning but the absence of these terms should not be taken to infer any exclusive meaning.
The presence of a feature (or combination of features) in a claim is a reference to that feature or (combination of features) itself and also to features that achieve substantially the same technical effect (equivalent features). The equivalent features include, for example, features that are variants and achieve substantially the same result in substantially the same way. The equivalent features include, for example, features that perform substantially the same function, in substantially the same way to achieve substantially the same result.
In this description, reference has been made to various examples using adjectives or adjectival phrases to describe characteristics of the examples. Such a description of a characteristic in relation to an example indicates that the characteristic is present in some examples exactly as described and is present in other examples substantially as described.
Whilst endeavoring, in the foregoing specification, to draw attention to those features believed to be of importance it should be understood that the Applicant may seek protection via the claims in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not emphasis has been placed thereon.
Number | Date | Country | Kind |
---|---|---|---|
2011855.0 | Jul 2020 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FI2021/050536 | 7/20/2021 | WO |