There you are, merrily testing your autonomous combine harvester in a 5-acre field. Everything is going smoothly, until you notice that the inertial measurement unit (IMU) and the GNSS in your harvester don’t agree on the distance you’ve travelled – and therefore on your location. Perhaps you only notice as your harvester ignores a small strip at the end of the field – or as it tries to chew up the hedgerow and harvest the road beyond. What’s going on?
In this article, we’re talking about a vital piece of work that needs to take place in order to make best use of the data from your IMU and GNSS receivers – namely, how to convert, or scale, movement measured by your IMU into movement measured by your GNSS.
What do I need to consider?
The key takeaways here are:
- Your IMU and GNSS systems measure distance in different reference frames and ways.
- To properly scale between the two, you are going to have to get familiar with some big equations.
- You will also need to know which ellipsoid model of the earth you’re using, and its properties.
Let’s start by outlining the difference between how your IMU and your GNSS measure distance.
IMU distance vs GNSS distance
Your IMU is using gyros and accelerometers to measure changes in velocity, acceleration, and angular rates. From those, it can estimate speed and heading, and estimate your position relative to where the IMU was when it was turned on. Crucially, your IMU is measuring these things in a local frame of reference (OxTS INS devices measure things using the North, East, Down frame).
Your GNSS, on the other hand, is tracking your position through satellite signals (in a variety of different ways), but essentially GNSS is giving you position updates based on where a satellite says your receivers are on the earth. This is typically expressed in geodetic coordinates (latitude, longitude, and altitude), and the processor in the GNSS receiver uses it to calculate the distance you’ve travelled. And, crucially, GNSS systems work in a global frame of reference.
The challenge of making the two readings match is twofold:
- Distance travelled in the IMU’s local reference frame does not always equate to the same movement in the GNSS’ global reference frame.
- The GNSS’ global reference frame is not uniform across the earth, meaning that the variation between your IMU and your GNSS will change depending where on the earth you are.
Confusing? Let’s break it down with some handy diagrams:
IMU distance vs GNSS distance – in diagram form
In the diagram above, we have our ellipsoid which represents the earth. On it, we’ve travelled a specific distance as measured by our IMU and shown by the orange bar, x metres. The blue lines show how that movement translated into degrees of latitude and longitude – y degrees.
As you can see, if you extend those blue lines up to a higher elevation, the change in latitude and longitude is still y degrees – but the distance travelled in metres is now quite a lot further, z metres (We’ve obviously not drawn things to scale for the purposes of making our point). Now, consider the next diagram:
Here, we’ve gone nearer to the south pole and travelled the same number of metres as shown by the new orange bar. But, here, the change in latitude is has now changed to w degrees. This is because we’ve shifted our position on the globe. The nearer the poles you get, the closer the lines of latitude get to each other (converging, of course, on the poles), meaning that our latitude change is greater than it was in our first position.
So, what do you do about it?
What’s a reference frame?
“Reference frame” is a term that has LOTS of different meanings that are all sort of similar. Broadly, it’s a set of criteria or values upon which you can make observations or measurements. In inertial navigation, physics, and geodetics, you might hear about:
- Cartesian or geodetic reference frames. Cartesian frames use x,y,z coordinates, while geodetic reference frames use degrees of latitude and longitude
- Inertial and non-inertial frames of reference (see this article for a more detailed description of these)
- Local and global frames of reference, as we have just used. Local frames of reference use a spot on the surface of the earth as a reference point, while a global frame uses the centre of the earth as its reference point.
- If you’ve experimented with our generic aiding device SDK, you’ll have seen that different aiding data types have different frames of reference too.
It’s important to know which frames of reference you are working in for the job you’re doing. Sometimes you’ll need to convert between frames to make your data make sense.
Scaling between IMU and GNSS distance
Are you ready? Here’s how you do it, taken straight from Strapdown Inertial Navigation Technology (2nd Edition), by David Titterton and John Weston (2004):
If those look scary, don’t worry – we’ll summarise what they are here:
This equation gives you the eccentricity of the earth. You need this because earth is NOT a sphere – it’s an ellipsoid, and that means it has two radii – a polar radius (rpol) and an equatorial radius (req). The numbers you put in here will depend on which ellipsoid you’re basing your calculations on (see this article for more discussion about ellipsoids).
Equations 2 and 3
These two equations help you work out the curvature of your movement in northern and eastern directions, which you use in equations 2 and 3. You’ll need the sine of your latitude in addition to everything else we’ve discussed (note that in these equations e represents your eccentricity rather than your eastern movement).
Equations 4 and 5
These two equations give you the difference (Δ) in latitude (λ) and longitude (φ) between your IMU measurements and your GNSS measurements. They rely on you knowing your height (h), and the curvature (ρ) of your movement in both east (e) and north (n) directions. Note that the e here is not the same as the eccentricity we used in equation 1! You will also need the cosine of your latitude – though that’s simple enough to do with your scientific calculator and memories of secondary school trigonometry classes.
How OxTS does it
At OxTS, we’ve been perfecting how you solve this challenge almost since the company began (and certainly since we started using GNSS to aid the performance of inertial navigation systems).
There are no two ways about it – we just had to sit down and do the maths to properly scale between the two sets of measurements. We’ve built our INS devices to take the raw acceleration and angular rates from the IMU, integrate those into velocity and orientation angles, and then to again integrate those into position – using the scaling equations we’ve discussed here. That means that the movement data the INS gets from the IMU should always match the GNSS movement data – though of course both are fed into the Kalman filter in the INS to weed out any erroneous errors.
Over time, we’ve done our best to make sure we’re using the most accurate measurements of our reference ellipsoid, to ensure that our movement is measured as accurately as possible. Our equations are calculated using the WGS84 ellipsoid as the reference ellipsoid.
Hopefully this article has helped you get your head around the concept of scaling between IMU and GNSS distances so that they match. If you’ve got more questions, are having trouble with your own setup, or anything else, you can drop us an email at email@example.com and we’ll do our best to help you.
Strapdown Inertial Navigation Technology (2nd Edition), Titterton and Weston (2004)