I have bought an STM iNEMO evaluation board in order to monitor the inclination of a separate magnetic sensor array as it moves in a linear scan outside of a (non-magnetic) stainless steel pipe. I want to measure the inclination of the sensor along the scan and ensure that it does not change. The problem I have found is that the measured magnetic field from the integrated magnetometer varies greatly with position along the pipe, and in turn, causes a large, position dependent error in one axis of the inclination reported by the iNEMO IMU. In fig. 1 below I show the set up of the test, I measured the inclination from the IMU while moving it along the length of the pipe and back again. The board did not change inclination throughout the measurement. In Fig 2 I show the magnetometer and inclination measurements recorded by the "iNEMO application" showing the large error in one of the inclinations.

My question is whether you know if there is any way of correcting for the magnetic field variation so that I can still accurately determine the inclination in all three directions? My data suggests to me that the magnetic field variation measured from the magnetometer is much greater than the geomagnetic field, so the inclination measurement will always be inaccurate. A follow up question I then have is: Is there a way to measure 3 axis orientation WITHOUT using a magnetometer?

Fig. 1: Movement of IMU along length of pipe

iNemo magnetometer and inclination data when scanning from left to right of the pipe

  • $\begingroup$ One way could be to calibrate the gyros over temperature, that would already give much less drift on the yaw. $\endgroup$ – charles Jan 28 '16 at 10:32
  • $\begingroup$ Okay, the iNEMO board does include a thermocouple and pressure sensor too, I believe these are used in the data fusion algorithms that report the inclination. As you can see from the graphs though, the drift seems to be very position dependent. I moved the sensor between the left and right edge of the pipe multiple times and I received the same result for the yaw, so Im not sure temperature compensation would help here. $\endgroup$ – phujeb Jan 28 '16 at 12:00

Calibration procedures for magnetometers exist, to compensate for soft iron (nearby ferromagnetic objects) and hard iron (nearby magnetic fields) offsets, which skew the measurements. However, these procedures usually map a static disturbance correction and apply it to all new measurements. On the contrary, your environment changes from one end of the tube to the other.

If your magnetic sensor is allowed to move (relatively) slowly over the pipe under inspection, then you could use a 6-DOF IMU (Accelerometer + gyroscope) or even a 3-DOF accelerometer to find the orientation of the sensor but only in the pitch and roll axes. If the magnetic sensor is expected to be under sustained accelerations, then a 6-DOF IMU won't be adequate.

Are roll and pitch values adequate for your application?

  • $\begingroup$ Thanks for your reply. I suppose it depends on how slowly is slowly... The potential application is to determine the orientation of a separate sensor array that measures the magnetic field surrounding the pipe that is induced by an electric current flowing axially along the pipe. The induced field will be all in the azimuthal direction and I want to ensure that the magnetic sensors are oriented along the cylindrical co-ordinate system of the pipe. I believe the array would move at a maximum constant speed of ~1m/s and I don't foresee there being sudden accelerations. I'll try the 6-DOF calc. $\endgroup$ – phujeb Jan 29 '16 at 9:36
  • $\begingroup$ If you are interested in measuring all 3 components of the magnetic field around the pipe and not just its magnitude, then the inability to calibrate the yaw axis may degrade your readings. Perhaps you could mechanically lock your yaw rotation to avoid that. On the other side, if you are interested only in the magnetic field magnitude, then the rotation of your sensor won't affect that result and no calibration is needed. $\endgroup$ – George ZP Jan 29 '16 at 10:19
  • $\begingroup$ Indeed, I think mechanically locking the yaw is going to be the only option. Do you know any other way of measuring yaw that doesn't rely on magnetic measurements? $\endgroup$ – phujeb Jan 29 '16 at 11:33
  • $\begingroup$ Perhaps an optical AHRS system would perform (in the form of a machine camera and a vision algorithm), but the cost will increase dramatically, for any level of usable precision, methinks. $\endgroup$ – George ZP Jan 29 '16 at 11:38
  • 1
    $\begingroup$ Yes, I think so too. It wouldn't be feasible in my application either. Back to the drawing board! $\endgroup$ – phujeb Jan 29 '16 at 11:40

You can incorporate an Inertial Measurement Unit. Often they are a combination of a 3-axis accelerometer and a 2- or 3-axis gyroscope. Here is a link to a description of one family of such devices: https://www.sparkfun.com/pages/accel_gyro_guide


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.