As a Father’s Day present, my wonderful wife sent me to the Defcon hacker convention in Las Vegas. I have been to several hacker conventions including Hackers On Planet Earth (HOPE) in New York, the Chaos Communications Congress in Berlin, and CarolinaCon, but I had always imaged Defcon to be something special, and it most certainly was. The convention was at the Rio hotel, but the rooms there were way overpriced. So I stayed at the Tropicana for a very reasonable rate, maybe booked through PriceLine, I forget. Except for it being a smoking room and me not realizing I could open the windows for ventilation until the after the first night, it was great. The choice of a different hotel gave me an excuse to exercise and people watch along the Strip on my way to and from the convention in the mornings and evenings. After I queued up A Dream in the Evening by DJ Saryon & Sory on VLC, I opened up OsmAnd and asked for pedestrian routing to the Rio. Much to my dismay, the sidewalks, stairs, elevators, escalators, shopping mall and casino hallways and bridges that are essential to pedestrian navigation along the Las Vegas Strip were rather incomplete.
In part because I didn’t want to risk my laptop getting pwned, and in part because I wanted to force myself to make greater use of the very capable computing device in my pocket, I only had my Nexus 5 with me (with wifi, NFC, and bluetooth turned off). So, I downloaded Vespucci from F-Droid and started getting familiar with it. I was really impressed. Its developers have made a lot of progress in the last several years. It is now a quite capable mobile map editing tool. My only complaint is integration with other tools. I regularly use Keypad Mapper 3 so I recorded GPX traces in it but then couldn’t find a way to import these into Vespucci. Next time I’ll probably make the traces directly in Vespucci and won’t have the problem, but I think in general it would be nice to be able to move data easily between applications that may be better or different at the different tasks of collecting, editing, uploading, viewing, searching, and routing.
One thing that would have been awesome for Defcon would have been indoor maps. They distributed maps as part of the digital and dead tree materials given to attendees. A little extra effort and these could probably have been overlaid on OpenStreetMap data in OsmAnd or perhaps uploaded to OpenStreetMap proper. If recall hearing about transient exhibits on the Mall in Washington, District of Columbia having been added to OpenStreetMap. A viewable map by itself would have been excellent, but routing would have made it even better. Here is where I must ask the question. Why on Earth isn’t indoor positioning deployed yet? Especially at a hacker convention, where I’m sure some of the attendees would have a great deal of fun messing with the system and others could be inspired to create effective countermeasures. Maybe it should even be made part of one of the many contests they hold.
What technology is there for indoor positioning? I remember at Virginia Tech, the wireless access points included the room they were in in their metadata. While crude, setting this on the access points and interpreting it on devices would be an excellent starting point. Dead reckoning is another, perhaps supplementary approach. For my senior design project I wrote sensor software running on a PIC microcontroller to detect whether someone with the device had run, jumped or turned around, based on magnetometer and accelerometer input. My understanding is that accelerometer data can be very noisy, but my hope would be that with accurate map data and the right algorithms, it could be transformed into something useful.
Lastly, I’d just like to drop the names of related libre projects that I have encountered in the past. The first is Redpin. It uses wireless signal fingerprints, looked up from a database, to provide room-level indoor positioning. It also crowdsources the collection of these fingerprints. It shouldn’t be that difficult, but I’ve simply never set up a server to be able to test it out myself. Moving briefly away from wifi, there is the OpenCellID project, illustrated to the left. As small cells become more ubiquitous and more likely to be indoors, I expect base station position data will be increasingly useful for indoor positioning. A question that comes to mind though, is why not use OpenStreetMap for this? I think there may be a tradeoff to be made. The OpenCellID database and its clients appear to be architected to deal with automated data collection. OpenStreetMap on the other hand generally isn’t–if you were to tag a raw GPX as path=footway and upload it, somebody would probably come along and smooth it out, correct for canyon effect errors, match it to the aerial imagery, etc. Where it’s possible to put fixed location radio transmitters into OpenStreetMap via survey, existing libre data, or other means, that seems like a good idea to me, although the radio transmitter/transponder tags don’t seem very well developed or highly used. Lastly I’d like to mention the GNOME project’s GeoClue library. It seems like another interesting libre project on the topic, although I worry that the permissions infrastructure in GNOME is years behind Android’s.
Anyhow, I’ve gone on long enough for now on how I think libre data and libre software can come together to do interesting things. In this case, I think it’s great that our devices can tell us what time it is, and our digital and dead tree schedules can tell us when and where things are in space-time, but once our devices can tell us not just when but also where, even when we’re indoors, much fun and efficiency will be had.