This paper presents a 3D pedestrian position estimation algorithm using a waist-mounted inertial measurement unit (IMU) sensor. When using the IMU for position estimation, the measurement accuracy is degraded by the influence of the gyroscope’s drift error. This study proposes reducing the accumulated drift error by using the quaternion method to obtain an accurate Euler angle and combining this with step estimation to achieve 2D location estimation. For an indoor pedestrian positioning system, a pedestrian’s height accuracy is related to the reliability of the entire positioning system. In order to enhance 3D location estimation, an estimation algorithm for realizing the indoor height of pedestrians is proposed. This algorithm, which is based on the acceleration value of the accelerometer without using any external equipment, is combined with an algorithm which is additionally proposed herein. Moreover, to obtain corresponding decision points to distinguish between the behaviors of upstairs and downstairs movement, and to solve the problem of different decision points in different experiments, a linear regression algorithm is adopted, which improves the generalization ability of the algorithm for distinguishing between upstairs and downstairs movement. The effectiveness and validity of the proposed algorithm in 2D and 3D space is demonstrated by practical experiments.