Path: EDN Asia >> Design Centre >> Consumer Electronics >> How to enable low-power sensor context in mobiles
Consumer Electronics Share print

How to enable low-power sensor context in mobiles

31 Jul 2013  | Debbie Meduna, Dev Rajnarayan, Jim Steele

Share this page with your friends

Context awareness among mobile platforms is a hot topic in today's information-rich world. Using the sensors available on these platforms, one can infer the context of the device, its user, and its environment. This can enable new useful applications that make smart devices smarter. It is common to utilise machine learning to determine the underlying meaning in the large amount of sensor data being generated all around us. However, traditional machine learning methods (such as neural networks, polynomial regression, and support vector machines) do not directly lend themselves to application in a power-conscious mobile environment. The necessary techniques for ensuring effective implementation of sensor context are discussed.

Figure 1: A general tiered architecture suitable for a mobile platform. The always-on sensing is done in an embedded core utilising low-power inertial sensors. The application processor is only awakened when something interesting happens, where it can utilise additional contextual information from non-inertial sensors such as GPS and calendar.

Current state of mobile context awareness
Context is the inference of user or environment from sensor measurements on mobile devices. Sensors are in all smart devices such as phones and tablets, as well as many wearable devices such as activity wrist bands [1], shoes [2], headphones [3], and even glasses [4]. Interpreting this sensor data is getting more sophisticated as well. For example: an accelerometer can detect that a user is biking [5]; a front-facing camera can detect whether a user is sceptical of what he is reading [6]; GPS and Wi-Fi positioning can detect which store a user entered [7]; audio can detect whether a user is in a meeting or a night club [8]; and blood pressure sensors can detect whether a person is relaxed or agitated [9].

Several major players have also begun using sensors for mobile context: Samsung's context awareness uses the camera to improve user experience such as eye-tracking to scroll the screen when reading; and Google introduced a new location API at Google I/O 2013 which in part provides an activity recognition result [10].

Tiered architecture to enable always-on
In the above examples, a common technique used to extract information out of sensor data is machine learning. Whether it is neural networks, polynomial regression, support vector machines, expert systems, or another technique, machine learning is typically comprised of resource-hungry algorithms. To make matters worse, context-aware systems are most effective when always-on, but continuous use of most hardware depletes the battery rapidly.

Take Google's activity recognition as an example. This functionality is available on any Android phone that has downloaded and installed the Google Play services SDK, but there are many complaints about this draining the battery [11]. Furthermore, the detection latency is often observed to be at least 30 seconds (and often much longer). In addition, Google does not specify the expected classification accuracy of their result. These deficiencies need to be rectified to encourage developer adoption of context-aware functionality.

We believe that it is possible to achieve low latency, high accuracy, and low power consumption in sensor-based context results. The key is to adopt a hierarchical approach: lower power systems trigger successively higher power systems when necessary to improve accuracy (figure 1). This requires a rigorous design approach to quantify the available accuracy of each sub-system, and empower developers to specify the desired level of accuracy required for their applications. The following sections describe the key components of the tiered architecture developed by Sensor Platforms.

Figure 2: Comparing the Sensor Platforms context change detector (blue) to a simple motion change (red) for a variety of typical activities. The context change detector is insensitive to latency, which shows it identifies the actual signal, whereas the simple motion detector merely wakes the CPU on any motion. Assumptions for this plot: 5000mWh battery, minimum CPU wake time of 1 second before lapsing back to sleep, and power during that 1-second of computation is 250mW [13]. Further optimisation can be achieved through a context engine as discussed in the next section.

Embedded change detector to minimise AP wakes
One of the lowest power sensors in a smart phone is the accelerometer, which can be sampled at 50Hz for less than 0.02 mWh of energy. This is a negligible fraction of a typical phone battery which generally has a capacity of more than 5000 mWh. Still, by keeping the main application processor awake just to sample this data uses around 250mWh, completely defeating the purpose of low-power sensing. Over the course of a day, this would significantly drain the device battery. There needs to be a smart always-on trigger system that can continuously analyse incoming sensor data using very low power and memory resources, and wake up a more powerful processor whenever something interesting happens. At Sensor Platforms, we have developed just such a system called a "context change detector" [12].

This architecture enables both low power and low latency. This can be shown by running the change detector at different latencies on various user activities (figure 2). By comparing to a simple motion detector (such as that available with the inertial wake functionality of an accelerometer), the severity of the trade-off between latency and power consumption is mitigated, if not eliminated, by using a smart trigger system. Note that the blue bars are relatively insensitive to latency, indicating that the change detector is responding to changes in the signals, whereas the red bars are inversely proportional to latency, indicating that the simple motion detector is triggering every single time.

Lean motion sensor context engine to ensure low power
A low-level trigger system, such as the context change detector, greatly reduces how often the sensor data is processed, enabling always-on systems. A further optimisation is to abstract out the relevant context information from the raw sensor data, allowing higher-level context algorithms to use these abstracted results rather than the sensor data directly for further inferences. This inertial sensor "context engine" reduces the amount of data that must be processed at higher levels. For example, raw inertial sensor data is typically sampled at 50-100Hz on Android systems, whereas motion context updates typically occur on the order of seconds. Consequently, this middle layer can be thought of as a second-level trigger system for higher level resource-intensive context algorithms.

1 • 2 Next Page Last Page

Want to more of this to be delivered to you for FREE?

Subscribe to EDN Asia alerts and receive the latest design ideas and product news in your inbox.

Got to make sure you're not a robot. Please enter the code displayed on the right.

Time to activate your subscription - it's easy!

We have sent an activate request to your registerd e-email. Simply click on the link to activate your subscription.

We're doing this to protect your privacy and ensure you successfully receive your e-mail alerts.

Add New Comment
Visitor (To avoid code verification, simply login or register with us. It is fast and free!)
*Verify code:
Tech Impact

Regional Roundup
Control this smart glass with the blink of an eye
K-Glass 2 detects users' eye movements to point the cursor to recognise computer icons or objects in the Internet, and uses winks for commands. The researchers call this interface the "i-Mouse."

GlobalFoundries extends grants to Singapore students
ARM, Tencent Games team up to improve mobile gaming

News | Products | Design Features | Regional Roundup | Tech Impact