This paper introduces a hierarchical Markov model that can learn and
infer a user's daily movements through an urban community. The model
uses multiple levels of abstraction in order to bridge the gap between
raw GPS sensor measurements and high level information such as a
user's destination and mode of transportation. To achieve efficient
inference, we apply Rao-Blackwellized particle filters at multiple
levels of the model hierarchy. Locations such as bus stops and
parking lots, where the user frequently changes mode of
transportation, are learned from GPS data logs without manual labeling
of training data. We experimentally demonstrate how to accurately
detect novel behavior or user errors (\eg\ taking a wrong bus) by
explicitly modeling activities in the context of the user's historical
data. Finally, we discuss an application called ``Opportunity
Knocks'' that employs our techniques to help cognitively-impaired
people use public transportation safely.