Converting IMU Data to Eulerian Angles (RPY) - a case study of POEM4 platform
Converting raw sensor readings from Inertial Measurement Unit (IMU) data into meaningful orientation values such as Roll, Pitch, and Yaw (RPY) is a crucial step in Attitude Determination. This article details one way to perform Sensor Fusion, leveraging gyroscopic acceleration for roll and using standard trigonometric formulas for pitch and yaw.
Nethra Naveen

The challenge of accurately determining the orientation of a satellite is addressed using an Inertial Measurement Unit (IMU) that typically consists of three primary sensors: an accelerometer, a magnetometer, and a gyroscope (collectively referred to as AMG sensors). Each of these sensors contributes uniquely to estimating an object's roll, pitch, and yaw (RPY), which define its orientation in three-dimensional space.
The methodology used to compute RPY angles from AMG data collected by the MOI-TD satellite, particularly during Orbit 19 is explored. By fusing sensor data and implementing drift-correction techniques, we achieved an accurate representation of the satellite’s motion. Furthermore, we utilized this orientation data to simulate the movement of ISRO’s PSLV Orbital Experimental Module-4 (POEM-4) through space, providing insights into its trajectory behavior.
Understanding the Input Data
AMG sensors provide acceleration, magnetometer, and gyroscope readings. Each of these plays a role in determining orientation:
Accelerometer: Measures linear acceleration along three axes (X, Y, Z).
Gyroscope: Measures angular velocity around three axes.
Magnetometer: Provides directional data based on the Earth's magnetic field.
By combining these data sources, we can compute an accurate estimation of an object's orientation.
Preprocessing the IMU Data
To remove Sensor Bias and Noise, the IMU Data is preprocessed. Soft-iron correction to mitigate distortions in the magnetometer data is applied. Then, a Kalman filter, modeling the system state with a 9-dimensional state vector representing all three sensors is applied. The filter recursively predicts and updates the system state, refining sensor measurements by balancing process and measurement noise.
Computing Roll, Pitch, and Yaw
Roll represents the object's tilt around the X-axis. Since the gyroscope directly measures angular velocity, it provides the most reliable estimate of roll. Given that the gyroscope readings are in degrees per second (dps), roll can be computed as:
While the gyroscope offers high responsiveness, it is prone to sensor bias and drift. To ensure accurate roll estimation, we first calibrate the gyroscope by removing offsets.
Gyroscope Offset Calibration
Gyroscope readings inherently contain a small bias, meaning they report slight movement even when the satellite is stationary. To correct this, we calculate the average gyroscope reading over a stationary period and subtract this offset from all subsequent measurements. This ensures the data accurately reflects real rotational motion.
This is done by averaging the Gyroscope values when the satellite is static and subtracting that offset from all Gyro values.
Roll Estimation via Dead Reckoning
The gyroscope provides angular velocity data in dps, which can be integrated over time to estimate the Roll. However, this method suffers from drift, where small errors accumulate over time, making the estimate unreliable in the long run.
While the gyroscope can track changes in orientation, an absolute reference is needed to counteract drift.
The magnetometer provides this reference by measuring the Earth's magnetic field. A Kalman filter is used to fuse magnetometer and Gyro data, tracking orientation while correcting for drift.
Pitch Calculation (Using Accelerometer Data)
Pitch represents the rotation around the Y-axis and can be computed from the accelerometer using the standard formula:
This formula leverages the gravity vector, assuming the accelerometer provides stable readings without external acceleration:
The trigonometric approach is particularly suitable for pitch calculation as it accounts for gravitational influences and ensures stability in measurement.
Yaw Calculation (Using Magnetometer Data)
Yaw represents the rotation around the Z-axis. The inclusion of magnetometer data mitigates long-term drift, ensuring accurate orientation tracking over extended periods.
This formula provides a reliable estimate of yaw by aligning the sensor’s heading with the Earth's magnetic field, providing a more reliable and drift-free yaw estimation.:
With the PYR coordinates in hand, we can now calculate drift rates
Results
This method was applied to the AMG data from our satellite, MOI-TD, specifically during Orbit 19. By processing this data to obtain the corresponding Roll, Pitch, and Yaw (RPY) angles, we were able to accurately simulate the motion of ISRO’s PSLV Orbital Experimental Module-4 as it traveled through space, providing valuable insights into its orientation dynamics and trajectory behavior.
