"Our rockets carry an instrument on them called an **IMU** (Inertial Measument Unit). An IMU typically measures both acceleration and rotation-rate of an object in all directions so with some clever math you can recreate the exact position, velocity, and orientation of the rocket over time. This is the only way to know where something is in space, and very important for rockets. IMUs have a problem though: they're not very precise.\n",

"\n",

"\n",

"Since our IMU is fixed to the rocket, {% marginnote %}![diagram of the rocket on it's side showing the layout of the internal components](img/L-12_overview.png) Overview of the rocket \"LV2.3\". The IMU is near the primary flight computer.{% endmarginnote %} which direction is \"up\" or \"left\", etc. relative to the Earth changes constantly as the rocket flies about. In order for the data to be useful we need to know which way we are pointed, which is why IMUs alway have some kind of gryoscope to account for rotation. Our particular IMU has rate-gyroscopes that can sense rotation rate, and so we integrate that once to get orientation. Since any integration will give an estimate that drifts from the true value over time, our IMU also includes a 3-axis _magnetometer_ as well.\n",

"Since our IMU is fixed to the rocket, {% marginnote %}![diagram of the rocket on it's side showing the layout of the internal components](img/L-12_overview.png) Overview of the rocket \"LV2.3\". The IMU is near the primary flight computer.{% endmarginnote %} which direction is \"up\" or \"left\", etc. relative to the Earth changes constantly as the rocket flies about. In order for the data to be useful we need to know which way we are pointed, which is why IMUs always have some kind of gryoscope to account for rotation. Our particular IMU has rate-gyroscopes that can sense rotation rate, and so we integrate that once to get orientation. Since any integration will give an estimate that drifts from the true value over time, our IMU also includes a 3-axis _magnetometer_ as well.\n",

"\n",

"## 9DOF IMU\n",

"\n",

@ -39,7 +39,7 @@

"\n",

"## Magnetometer Calibration\n",

"\n",

"What do we expect good magnetometer data to look like? The Earth's magnetic field shouldn't change much, so it should look like a single vector going through the IMU. If we rotate the rocket one way or another, the angel that the vector goes through will change, but it should stay the same strength. That means that the magnitude of the local magnetic filed should be constant, and it should measure it to be exactly the same as Earth's magnetic field.\n",

"What do we expect good magnetometer data to look like? The Earth's magnetic field shouldn't change much, so it should look like a single vector going through the IMU. If we rotate the rocket one way or another, the angle that the vector goes through will change, but it should stay the same strength. That means that the magnitude of the local magnetic field should be constant, and it should measure it to be exactly the same as Earth's magnetic field.\n",

"\n"

]

},

@ -312,7 +312,7 @@

"\n",

"After doing fitting we end up with both a correction matrix and an offset vector. This is both the soft iron and hard iron correction.\n",

"\n",

"To invert the stretch we multiply a vector representing each magnetometer reading (a 'sample', $\\vec s$) by the correction matrix (after subtracting the center offset offset).\n",

"To invert the stretch we multiply a vector representing each magnetometer reading (a 'sample', $\\vec s$) by the correction matrix (after subtracting the center offset).\n",

"\n",

"$$\n",

"\\vec s_\\textrm{corrected} = \\mathbf{A} \\cdot (\\vec s - \\vec b)\n",