During a lunch chat with some friends we come up with interesting idea for small mobile app. Here it the gist:
Why: While taking a train (specifically underground) in unfamiliar city it is quite an effort to keep track of station names not to miss your station. This is not always easy. Some trains have electronic displays showing next/current station name; some don't. For example in Japan JR trains there are such displays but they circle station names in 3 languages and you need to wait to catch the English name.
What: It would be nice to use mobile phone to keep track of my position along the route and warn me just before my destination. I can safely dose off or read a book and wait for my phone's vibration or sound signal to disembark.
How: Obviously one could not use GPS underground. Another solution would be to use some wireless fingerprinting to determine your position: name of mobile cells or SSIDs of WiFi networks. Given the limited wireless coverage this might not always work. So the idea is to use accelerometer. Sampling accelerometer and integrating estimated acceleration would give us a speed estimate. Since the train moves along a fixed route we can then estimate our position along the route over time. Of course it is not very accurate, but could be good enough for practical use. When train stops at an intermediate station we can snap our position to the nearby station. The distances between the stations could be learned via simple training. Pilot users would ride the train marking each station by pressing a button on the phone to collect training data. Additional improvement might be to use a magnetometer data in addition to accelerometer. On a curvy route our orientation could help you to identify your position more accurately.
Should be a find side project and a useful mobile app. Unfortunately I do not have time right now to work on it myself right now :( Hopefully I would, on some rainy weekend ....