This work describes the development and testing of a personal navigation system (PNS) for use during normal walking on level ground surfaces. A shoe-worn miniature inertial/magnetic measurement unit (IMMU), which is comprised of accelerometers, magnetometers, and angular rate sensors, provides the measurement data for the PNS algorithm. The well-known strapdown navigation algorithm is adapted for use in the PNS, which further incorporates the error correction technique commonly referred to as zero-velocity updates. A gait-phase detection algorithm estimates instances of foot stance and swing and establishes the appropriate times to apply the velocity error correction technique within the PNS algorithm. A main contribution of the work described herein pertains to the design and analysis of a quaternion-based complementary filter for estimation of three-dimensional attitude of the IMMU. This complementary filter algorithm builds on an earlier threedimensional attitude estimator known as the Factored Quaternion Algorithm (FQA). The complementary filter is further tailored for the PNS application through the use of an adaptive gain switching strategy based on knowledge of the gait phase. A novel and incidental effort described here pertains to the design and implementation of a locomotion interface for a virtual environment using the shoe-worn IMMU. In this application, one IMMU is worn on each foot. A set of foot gestures was conceived and a custom software program was developed to decode the user's foot motions. This unique interface gives the user freedom to navigate through a virtual environment in any direction he/she chooses for those applications utilizing large-screen displays.