Orbit determination of spacecraft using only magnetometer measurements via the unscented Kalman filter (UKF) is presented. An algorithm was formulated by adopting the UKF and an adequate dynamic model developed for processing geomagnetic field measurements. The paper consists of the analysis of force and estimation models, the dependency of position accuracy on orbit type, and measurement errors, as well as a comparison of the UKF and the extended Kalman filter (EKF). Finally, the developed algorithm used actual magnetometer flight data from the Magnetic Field Satellite (MAGSAT). The results obtained from the MAGSAT data demonstrate that the achieved position error was approximately 2 km. The UKF performs similar to the EKF in position accuracy for a sampling interval of less than 20 s. In contrast, for a sampling interval of 40 s, the EKF yields lower position accuracy than the UKF. In particular, the decomposed position errors are not biased because the UKF is not affected by linearization of the measurement function. This improvement makes the magnetometer-based orbit determination method more robust and reliable as a real-time orbit determination system for small satellites that require moderate position accuracy, and also as a backup orbit determination system for large satellites.Nomenclature a drag = acceleration due to atmospheric drag, m=s 2 a geo = acceleration due to geopotential, m=s 2 a SRP = acceleration due to the solar radiation pressure, m=s 2 a sun=moon = acceleration due to the sun and moon's gravity, m=s 2 B r , B , B = the Earth magnetic field vector components, nT B= inverse of the ballistic coefficient, m 2 =kg e = eccentricity F = system function h = measurement function i = orbital inclination, deg K = Kalman gain matrix P = covariance matrix P a = augmented covariance matrix R = measurement covariance matrix r = radial distance from the Earth, m r = position vector in J2000, m t = time, s T orb = orbital period v = velocity vector in J2000, m=s w = system noise vector W m , W c = weight factors for the state (m) and covariance (c) x = state vector x a = augmented state vector, or x T ; w T T y = measurement, nT y = observed measurement , , , and = scaling parameters for the unscented Kalman filter = measurement of sigma point = measurement noise, nT = east longitude, rad = true anomaly, deg = uncertainty (1 standard deviation) in a parameter pos = estimated standard deviation of position error, or 2x 2 y 2 z q = colatitude from the North Pole, rad = sigma points x ; w = right ascension of ascending node, rad ! = argument of perigee, rad