An inertial measurement system for a spinning projectile comprising: a first, roll gyro to be oriented substantially parallel to the spin axis of the spinning projectile; a second gyro and a third gyro with axes arranged with respect to the roll gyro such that they define a three dimensional coordinate system; at least a first linear accelerometer; a Kalman filter; and a controller, arranged to: compute a current projectile attitude from outputs (210, 211, 212) of the first, second and third gyros, the computed attitude comprising a roll angle, a pitch angle and a yaw angle; and compute a current projectile velocity vector (V N, V E, V D) from outputs (213, 214, 215) of at least the first linear accelerometer; characterised in that the controller is further arranged to: combine a magnitude of said velocity vector (V N, V E, V D) with an expected direction for said vector to form a current projectile pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D), wherein the expected direction for the velocity vector (V N, V E, V D) as a function of flight time corresponds to the direction expected from planar ballistic flight; or wherein the expected direction for the velocity vector (V N, V E, V D) as a function of flight time is taken from a pre-computed flight trajectory which may be non-planar; provide the velocity vector (V N, V E, V D) and the pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D) to the Kalman filter that outputs a roll gyro scale factor error calculated as a function of the difference between the velocity vector (V N, V E, V D) and the pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D); and apply the roll gyro scale factor error from the Kalman filter as a correction to the output of the roll gyro. a first, roll gyro to be oriented substantially parallel to the spin axis of the spinning projectile; a second gyro and a third gyro with axes arranged with respect to the roll gyro such that they define a three dimensional coordinate system; at least a first linear accelerometer; a Kalman filter; and a controller, arranged to: compute a current projectile attitude from outputs (210, 211, 212) of the first, second and third gyros, the computed attitude comprising a roll angle, a pitch angle and a yaw angle; and compute a current projectile velocity vector (V N, V E, V D) from outputs (213, 214, 215) of at least the first linear accelerometer; compute a current projectile attitude from outputs (210, 211, 212) of the first, second and third gyros, the computed attitude comprising a roll angle, a pitch angle and a yaw angle; and compute a current projectile velocity vector (V N, V E, V D) from outputs (213, 214, 215) of at least the first linear accelerometer; characterised in that the controller is further arranged to: combine a magnitude of said velocity vector (V N, V E, V D) with an expected direction for said vector to form a current projectile pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D), wherein the expected direction for the velocity vector (V N, V E, V D) as a function of flight time corresponds to the direction expected from planar ballistic flight; or wherein the expected direction for the velocity vector (V N, V E, V D) as a function of flight time is taken from a pre-computed flight trajectory which may be non-planar; provide the velocity vector (V N, V E, V D) and the pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D) to the Kalman filter that outputs a roll gyro scale factor error calculated as a function of the difference between the velocity vector (V N, V E, V D) and the pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D); and apply the roll gyro scale factor error from the Kalman filter as a correction to the output of the roll gyro. combine a magnitude of said velocity vector (V N, V E, V D) with an expected direction for said vector to form a current projectile pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D), wherein the expected direction for the velocity vector (V N, V E, V D) as a function of flight time corresponds to the direction expected from planar ballistic flight; or wherein the expected direction for the velocity vector (V N, V E, V D) as a function of flight time is taken from a pre-computed flight trajectory which may be non-planar; provide the velocity vector (V N, V E, V D) and the pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D) to the Kalman filter that outputs a roll gyro scale factor error calculated as a function of the difference between the velocity vector (V N, V E, V D) and the pseudo-velocity vector (Ṽ N, Ṽ E, Ṽ D); and apply the roll gyro scale factor error from the Kalman filter as a correction to the output of the roll gyro.