On Sat, 20 Jul 2013 11:51:13 -0400, Randy Yates wrote:> SG <sgesemann@gmail.invalid> writes: > >> Am 18.07.2013 23:25, schrieb Randy Yates: >>> The straightfoward way to measure offset and gain errors in linear >>> acceleration sensors is via the so-called "six-point tumble test." >>> However, this test requires a very expensive fixture that can rotate >>> the DUT very precisely. >>> >>> Are there any tricks for doing such a calibration without requiring an >>> expensive fixture and/or precise knowledge of the positions? >> >> Instead of assuming that each axis points precisly upwards and >> downwards, you can just measue the points and fit an ellipoid through >> the surface points. That's what I did. This boils down to a linear >> equation system. Make sure that this system is well-conditioned. You >> might have to do some scaling in order to reduce the condition number. >> In my case I converted the raw 16bit measurements to (approximate) g >> forces. So the ellipsoid is expected to have radii around 1. After the >> ellipsoid fit, you can correct shift and scale for each axis. > > Hi SG, > > This sounds precisely like what Vlad was suggesting, with the exception > of the geometry - you say ellipsoid, Vlad said sphere. Sphere makes > sense to me - where do you come up with an ellipsoid? Is it because of > varying gains in the X, Y, and Z?You'll measure an ellipsoid. You want to fit it to a sphere. Being simple-minded, I'd still want to have some precision angular reference involved, like a rotary table or a precision cube. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
IMU Sensor Calibration Tricks?
Started by ●July 18, 2013
Reply by ●July 20, 20132013-07-20
Reply by ●July 20, 20132013-07-20
On Sat, 20 Jul 2013 15:29:19 -0500, Tim Wescott <tim@seemywebsite.really> wrote:>On Sat, 20 Jul 2013 11:51:13 -0400, Randy Yates wrote: > >> SG <sgesemann@gmail.invalid> writes: >> >>> Am 18.07.2013 23:25, schrieb Randy Yates: >>>> The straightfoward way to measure offset and gain errors in linear >>>> acceleration sensors is via the so-called "six-point tumble test." >>>> However, this test requires a very expensive fixture that can rotate >>>> the DUT very precisely. >>>> >>>> Are there any tricks for doing such a calibration without requiring an >>>> expensive fixture and/or precise knowledge of the positions? >>> >>> Instead of assuming that each axis points precisly upwards and >>> downwards, you can just measue the points and fit an ellipoid through >>> the surface points. That's what I did. This boils down to a linear >>> equation system. Make sure that this system is well-conditioned. You >>> might have to do some scaling in order to reduce the condition number. >>> In my case I converted the raw 16bit measurements to (approximate) g >>> forces. So the ellipsoid is expected to have radii around 1. After the >>> ellipsoid fit, you can correct shift and scale for each axis. >> >> Hi SG, >> >> This sounds precisely like what Vlad was suggesting, with the exception >> of the geometry - you say ellipsoid, Vlad said sphere. Sphere makes >> sense to me - where do you come up with an ellipsoid? Is it because of >> varying gains in the X, Y, and Z? > >You'll measure an ellipsoid. You want to fit it to a sphere. > >Being simple-minded, I'd still want to have some precision angular >reference involved, like a rotary table or a precision cube.The link I provided earlier is an easy way to get that with pretty decent precision. Those metal pieces (e.g., the extruded aluminum piece) is not expensive and is geometrically precise to a pretty good degree. The tile used in the referenced site for the platform is also pretty easy to obtain flat (or make it flat after the fact), and is easily levelled. I've used very similar techniques for other applications and it's not hard to get very good precision with reasonable effort. Naturally, increasing precision requires exponential effort/cost, but Randy hasn't indicated (that I've noticed) how much precision he needs.>-- > >Tim Wescott >Wescott Design Services >http://www.wescottdesign.com >Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Reply by ●July 20, 20132013-07-20
eric.jacobsen@ieee.org (Eric Jacobsen) writes:> [...] > Naturally, increasing precision requires exponential effort/cost, but > Randy hasn't indicated (that I've noticed) how much precision he > needs.That's cause Randy has no freakin' idea! Well, I can make a stab at offset: less than 0.0005 feet/sec^2. PS: We haven't even discussed gyro cal yet either.. -- Randy Yates Digital Signal Labs http://www.digitalsignallabs.com
Reply by ●July 20, 20132013-07-20
Randy Yates <yates@digitalsignallabs.com> writes:> eric.jacobsen@ieee.org (Eric Jacobsen) writes: >> [...] >> Naturally, increasing precision requires exponential effort/cost, but >> Randy hasn't indicated (that I've noticed) how much precision he >> needs. > > That's cause Randy has no freakin' idea! > > Well, I can make a stab at offset: less than 0.0005 feet/sec^2.PS: At least this would really be nice. There are no formal requirements. If this level of precision is unattainable or outrageously expensive, we would certainly loosen it up. -- Randy Yates Digital Signal Labs http://www.digitalsignallabs.com
Reply by ●July 20, 20132013-07-20
On Sat, 20 Jul 2013 19:16:07 -0400, Randy Yates <yates@digitalsignallabs.com> wrote:>Randy Yates <yates@digitalsignallabs.com> writes: > >> eric.jacobsen@ieee.org (Eric Jacobsen) writes: >>> [...] >>> Naturally, increasing precision requires exponential effort/cost, but >>> Randy hasn't indicated (that I've noticed) how much precision he >>> needs. >> >> That's cause Randy has no freakin' idea! >> >> Well, I can make a stab at offset: less than 0.0005 feet/sec^2. > >PS: At least this would really be nice. There are no formal >requirements. If this level of precision is unattainable or outrageously >expensive, we would certainly loosen it up.I think if it were me I'd start with putting some reasonable effort into a basic fixture with a decent cube (and the extruded dimensional materials are often quite good as a starting point), and see if you get what you need for your application. If the application doesn't suffer, why put more effort into it than needed? If it isn't adequate, then you at least have an idea of how much improvement you'll need and maybe what you'll need to do to get it.>-- >Randy Yates >Digital Signal Labs >http://www.digitalsignallabs.comEric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Reply by ●July 21, 20132013-07-21
Am 20.07.2013 17:51, schrieb Randy Yates:> SG <sgesemann@gmail.invalid> writes: > >> Am 18.07.2013 23:25, schrieb Randy Yates: >>> The straightfoward way to measure offset and gain errors in linear >>> acceleration sensors is via the so-called "six-point tumble test." >>> However, this test requires a very expensive fixture that can rotate the >>> DUT very precisely. >>> >>> Are there any tricks for doing such a calibration without requiring an >>> expensive fixture and/or precise knowledge of the positions? >> >> Instead of assuming that each axis points precisly upwards and >> downwards, you can just measue the points and fit an ellipoid through >> the surface points. That's what I did. This boils down to a linear >> equation system. Make sure that this system is well-conditioned. You >> might have to do some scaling in order to reduce the condition number. >> In my case I converted the raw 16bit measurements to (approximate) g >> forces. So the ellipsoid is expected to have radii around 1. After the >> ellipsoid fit, you can correct shift and scale for each axis. > > Hi SG, > > This sounds precisely like what Vlad was suggestingRight. Sorry, for not checking all the answers before replying.> with the exception > of the geometry - you say ellipsoid, Vlad said sphere. Sphere makes > sense to me - where do you come up with an ellipsoid? Is it because > of varying gains in the X, Y, and Z?Why do you want to calibrate your sensors? You want to calibrate them because you don't yet know the correct sensitivities and offsets. You just know an approximation of the sensitivities and offsets. And if you use the wrong sensitivies and offsets to compute the g forces, all the points that are supposed to lie on an origin-centered 1g-sphere will actually lie on an ellipsoid that does not necessarily have the origin as its center. So, one way of calibrating this would be to do an ellipsoid fit through the raw measurement points, estimate the center and radii of this ellipsiod and use this data to to compute the sensitivities and offsets. This seemed like a very straight forward way of solving the problem and it does not require any non-linear optimization. It's just a matter of solving a linear equation system. One alternative to this would be to tune the sensitivies and offsets so that all the measurement points (after conversion to g forces with those parameters) have an euclidean norm of 1g by minimizing a non-linear cost function with respect to the calibration parameters. But this will lead to to a non-linear optimization problem which is a bit harder to solve. Cheers! SG
Reply by ●July 21, 20132013-07-21
On Sun, 21 Jul 2013 18:29:04 +0200, SG <sgesemann@gmail.invalid> wrote:>Am 20.07.2013 17:51, schrieb Randy Yates: >> SG <sgesemann@gmail.invalid> writes: >> >>> Am 18.07.2013 23:25, schrieb Randy Yates: >>>> The straightfoward way to measure offset and gain errors in linear >>>> acceleration sensors is via the so-called "six-point tumble test." >>>> However, this test requires a very expensive fixture that can rotate the >>>> DUT very precisely. >>>> >>>> Are there any tricks for doing such a calibration without requiring an >>>> expensive fixture and/or precise knowledge of the positions? >>> >>> Instead of assuming that each axis points precisly upwards and >>> downwards, you can just measue the points and fit an ellipoid through >>> the surface points. That's what I did. This boils down to a linear >>> equation system. Make sure that this system is well-conditioned. You >>> might have to do some scaling in order to reduce the condition number. >>> In my case I converted the raw 16bit measurements to (approximate) g >>> forces. So the ellipsoid is expected to have radii around 1. After the >>> ellipsoid fit, you can correct shift and scale for each axis. >> >> Hi SG, >> >> This sounds precisely like what Vlad was suggesting > >Right. Sorry, for not checking all the answers before replying. > >> with the exception >> of the geometry - you say ellipsoid, Vlad said sphere. Sphere makes >> sense to me - where do you come up with an ellipsoid? Is it because >> of varying gains in the X, Y, and Z? > >Why do you want to calibrate your sensors? You want to calibrate them >because you don't yet know the correct sensitivities and offsets. You >just know an approximation of the sensitivities and offsets. And if you >use the wrong sensitivies and offsets to compute the g forces, all the >points that are supposed to lie on an origin-centered 1g-sphere will >actually lie on an ellipsoid that does not necessarily have the origin >as its center. So, one way of calibrating this would be to do an >ellipsoid fit through the raw measurement points, estimate the center >and radii of this ellipsiod and use this data to to compute the >sensitivities and offsets. This seemed like a very straight forward way >of solving the problem and it does not require any non-linear >optimization. It's just a matter of solving a linear equation system.That's an interesting way to do it, but does require a fair amount of data collection and processing. I could see that spending the effort to set this process up once to use multiple times for a number of devices could really be worthwhile, though.>One alternative to this would be to tune the sensitivies and offsets so >that all the measurement points (after conversion to g forces with those >parameters) have an euclidean norm of 1g by minimizing a non-linear cost >function with respect to the calibration parameters. But this will lead >to to a non-linear optimization problem which is a bit harder to solve. > >Cheers! >SG >Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com
Reply by ●July 21, 20132013-07-21
SG <sgesemann@gmail.invalid> wrote:> Am 20.07.2013 17:51, schrieb Randy Yates:(snip)>> This sounds precisely like what Vlad was suggesting> Right. Sorry, for not checking all the answers before replying.(snip)> Why do you want to calibrate your sensors?According to the data sheet, they are already calibrated, and the constants are written into NVRAM. It seems to suggest that you shouldn't change them. Now, no calibration is perfect, and maybe you are trying to get better resolution than designed. Then again, there may be some variability in the calibration.> You want to calibrate them > because you don't yet know the correct sensitivities and offsets. You > just know an approximation of the sensitivities and offsets. And if you > use the wrong sensitivies and offsets to compute the g forces, all the > points that are supposed to lie on an origin-centered 1g-sphere will > actually lie on an ellipsoid that does not necessarily have the origin > as its center. So, one way of calibrating this would be to do an > ellipsoid fit through the raw measurement points, estimate the center > and radii of this ellipsiod and use this data to to compute the > sensitivities and offsets. This seemed like a very straight forward way > of solving the problem and it does not require any non-linear > optimization. It's just a matter of solving a linear equation system.-- glen
Reply by ●July 21, 20132013-07-21
On 7/20/2013 6:09 PM, Randy Yates wrote:> eric.jacobsen@ieee.org (Eric Jacobsen) writes: >> [...] >> Naturally, increasing precision requires exponential effort/cost, but >> Randy hasn't indicated (that I've noticed) how much precision he >> needs. > > That's cause Randy has no freakin' idea! > > Well, I can make a stab at offset: less than 0.0005 feet/sec^2.Forget about that. With sensors of MEMS class, your very very very best bet would be about 1 cm/s^2.> PS: We haven't even discussed gyro cal yet either..Runaway at the order of ~degrees per minute is what you could expect in the best case. Vladimir Vassilevsky DSP and Mixed Signal Designs www.abvolt.com
Reply by ●July 21, 20132013-07-21
Vladimir Vassilevsky <nospam@nowhere.com> wrote:> On 7/20/2013 6:09 PM, Randy Yates wrote:(snip)>> Well, I can make a stab at offset: less than 0.0005 feet/sec^2.> Forget about that. With sensors of MEMS class, your very very very best > bet would be about 1 cm/s^2.Also, the data sheet mentions that calibration might change from the stress of soldering onto the board. -- glen






