Post written by: Intern Muhammad Sarmad
Function: Develop a cost-effective system that can keep track of how a wheelchair is being used, by showing the path and distance travelled. This quantitative data is valuable to show progress that is being made when learning to use a power wheelchair. This has other uses outside of industry as well.
For the first, few sessions, we researched and brainstormed over a number of ideas. We considered installing beacons for location tracking, along with RFID chips installed in doorways. Together, when coupled with a floor plan, we could accomplish both features; however, we wanted to make little to no modifications to the environment. This, particular solution would rely heavily on environmental modification. To solve the problem, we also considered using various sensors, available on the user's mobile phone, such as: an accelerometer, a magnetometer, and a compass. The drawback is that these sensors are prone to calibration errors as time passes. At the very least, this positioning feature could throw off our estimates by quite a bit, over time. We figured that modifying the chair itself was our best bet, and we decided that mounting magnets on the wheels, with a couple of Hall effect sensors to detect them, would do the trick.
The Hall Effect
We connected a Hall effect sensor to an Arduino Uno, and with some basic code, had it detecting a magnet and giving us corresponding output. Then, we took a wheel and glued a magnet at the end of each spoke. We set up the Hall sensor so that it was over a point which the magnets would pass through, during rotation. As a result, we started getting multiple ticks.
Following this, we counted “ticks”, for each time a magnet passed through the sensor’s range. This data was translated into distance-travelled, on the ground. After this, came the tricky part.
As mentioned earlier, we wanted to use the previously collected data, to provide an estimated position for the wheelchair in a given space. For this, we exploited that, along a turn, each wheel travels a different distance on the ground.
So, we counted the number of ticks on each wheel, in a given timeframe, and, if we saw a different number of ticks, we used that difference in ticks to estimate the difference in distance travelled by each wheel.
From there, we were able to program our code to do some simple math, which allowed us to find the angle through which the chair had turned.
Limitations Of My Research
However, the precision of the output depends on the following three factors: the separation between the wheels, the number of magnets used, and the size of the wheels. One issue with the current code, is that it can only account for an angle-turned, when both wheels are turning. All wheelchairs are able to move while one wheel holds still, or even when the two wheels rotate in opposite directions! With further research and testing, it may be possible to account for that, as well.
The proposed solution would have a software component, where a user or clinician can view the data, where it is overlaid by an obstacle course/floorplan.