As much as manufacturers would like to build a device that’s cheap and accurate, and can process data quickly with unlimited battery life, the perfect sensor only exists in the imagination of engineers. There’s no such thing as the ultimate sensor, but there is the best sensor for you. That’s because manufacturers will always make trade-offs when deciding on which sensor to use for their motion product. They might focus on optimizing cost, or battery life, or accuracy of data capture, but not all at once.
This is why there are so many different types of sensors, and why wearable manufacturers release different versions of their devices. We’ll discuss three critical criteria you should consider when choosing sensors, and how they’ll be affected by your motion algorithms. Namely, the processing time of your motion algorithms and how they affect the processing speed, battery life and memory of the sensor.
Let’s examine each in turn.
The processing time of the motion algorithm and the processing speed of the sensor are intimately linked. They must be synchronized. If the algorithm is processing data faster than data is being collected, that means the processor is waiting inefficiently, and there is spare capacity. Essentially you could have made do with a cheaper sensor that processed data slower.
A longer algorithm processing time means a higher processing speed for the sensor. If processing time and speed aren’t synchronized, motion data will be lost, and accuracy of the motion output will suffer. Of course, sensors with higher processing speeds are more expensive, and/or require more power.
Other reasons for the increase in processing time for the algorithm are the type of activities being tracked, the number of activities, and the features used to predict these activities.
Additional computational complexity is present when the algorithm is comparing two different but similar movements. When an algorithm is built to distinguish between two similar motions, that requires more features to be computed, and therefore more time to be processed.
A quick primer on feature analysis - when distinguishing between two different motions, say sitting and standing, the motion recognition algorithm is looking for unique characteristics of the data wave form. This might be as simple as peak counting, or finding the mean repetitions of a certain movement within a certain time period.
Features can be part of a neural network, and can include additional layers or nodes, or mathematical descriptors e.g. the arctangent between two axis.
The longer the motion algorithm takes to compute, the more power is consumed by the sensor, and the larger the battery capacity required. The reason for this is that the motion algorithms that take more time usually require more computations, and therefore more power.
In addition, some sensors have tools to conserve energy, and the number of these present in any sensor scales up with cost. For instance, when there is no activity for a certain period of time, or if the data collected is outside a certain threshold, the sensor goes to sleep mode. This reduces its sensitivity with the trade-off being lost data that you’ll need to compensate for.
Iterative processing of the motion data benefits power consumption. Because iterative processing computes each rep of motion data as it comes in, it processes the motion data much more frequently than batch processing. On the other hand, batch processing results in less frequent but larger spikes of processing paired with larger spikes in battery usage, leading to increased degradation of the battery over time.
The higher the algorithm processing time, the more memory required. This is due to the nature of motion recognition analysis. Movements and activity are analysed on a time-series basis, with the algorithm working on slices of time of one second or less.
If you’ve been able to design motion algorithms with a low processing time, then it likely means that it requires fewer computations per slice of time. As a result, less memory is required to hold the motion data as it's being processed.
If you’re computing fewer or less complex features, you’ll need less memory as less data needs to be stored, but the accuracy of the model may suffer. Finding the mean peak height is easier to find than the slope or square root of a graph, and so the data remains in memory for a shorter time. As a result, different motions like running and kicking, with simpler feature analysis, require less memory to analyze.
Choosing the right sensor can be hard, and we hope we've taken you one step closer to building the perfect motion product, and the right software for that product.