BNO085 or BNO080 IMU

Hello,

Yes but, not all calibration enable. By example, in Rotation Vector, only accelerometer and Gyrometer acceleration are enable by default.
In RVC mode, a specific calibration for accelerometer is enable, call “planar calibration”.

I think CMPS doesn’t use this mode. In this mode, yaw value is not referenced to north (not a real heading). CMPS is a “compass”, so yaw should be referenced to north. They probably use Rotation Vector Data.

Math

I would agree. We will never know exactly how the CMPS works,

Hello,

Agree too. Most important is how it’s perform.

I’ve done some test: violent translation along Y and X axis of my “comparative board” on the planar surface of the desk and rotation arround Z. With the board non calibrated. I never obtain a roll variation arround +/-8° (whereas it’ should measure 0°). More something arround 1°.
Log06 - Planar Test 2 - plot all
Log06 - Planar Test 2 - plot of roll only

Finally, I succed to calibrate the BNO08x, do the same test again, quite the same result. So no influance of the calibration on the roll results:
Log07 - Planar Test 3 - plot all Log07 - Planar Test 3 - plot of roll only

But now, North of the IMU seems to be more correlated to magnetic north.

According to the BNO08x datasheet, we are in the accuracy of the BNO08x:
image

Also, Game Rotation Vector doesn’t seems to be usable for Yaw du to the drift (0,5°/min).

Math

Is that level any issue to us? I doubt it?

It is really simple to know which BNO080 mode and configuration CMPS14 uses. Just use an I2C sniffer to sniff data between the PIC microcontroller (which processing data from BNO080 in CMPS14) and BNO080. For example GitHub - kongr45gpen/i2c-sniffer: Debugging tool for I2C networks, built for STM32 microcontrollers. I can do this but unfortunately, CMPS14 is not available in Poland :frowning:

Hello,

Some field test with the BNO08x. So BNO08x in my steering box instead of MMA & BNO055.

I also put the comparative board in the tractor, to make some log with MMA, BNO055 and BNO08x and plot the results.
BNO08x of the comparative board was calibrated in my lab.
I was following a AB ligne on a flat trail with AOG, one round trip.
Here is the results:
Log08 - Tractor test 1 - plot all Log08 - Tractor test 1 - plot roll only Log09 - Tractor test 2 - plot all Log09 - Tractor test 2 - plot roll only
So clearly, the BNO08x is less noisy compare to MMA. And heading of BNO08x is clearly more stable.

After, went to a field: clearly an improvement compare to MMA, no more oscillation like here (Perfect straight line without MMA, slight oscillation with MMA).
Flat part of the field, guidance error was 1 to 2cm, as the tilt of the field is increasing, the guidance error is increasing: 9cm for 10° of tilt. Test condition was difficult: rain and slippery field.

But pass to pass on the same track (so one time tilt left, and after tilt right), the tractor was always driving on the same track (wheel exactly at the same place). Very repeatable behavior.

So, some people does observe the same behavior (error increasing with tilt) when driving on tilt ? It’s as if when the tilt is too important, AOG doesn’t compensates enough.

20201221_152810 20201221_153035

Also, during my test, I observe that sometime, there is some “jump” with BNO08x heading. Like in just one time (whereas I was autosteering on a straight line), BNO08x heading increasing of something like 10°. Generating an slight oscillation in AOG.
I catch this in video, I will try to share it.
It’s look like potential behaviour of BNO08x with magnetometer described in BNO08x datasheet.
image
During my test, I was using rotation vector with defaut background calibration enable (accelerometer and magnetometer). BNO08x was calibrated for accelerometer and gyroscope, but I never succed to calibrate magnetometer in the tractor.
So I will try this to solve this problem:

  • Disable all background calibration with Rotation Vector
  • Use Game Rotation Vector instead of Rotation Vector

Have someone noted same behavior with BNO08x ? And for those using CMPS ?
Was also very present when I was doing some tests of U-Turn.

Don’t know exactly. But somewhere in the datasheet it’s writen that Game Rotation Vector induce a long term drift. By long term drift, I wasn’t expected 0,5°/min.
What did it give with your tests ?
And also, how did you calibrate magnetometer when BNO08x wa installed in the tractor.

Math

1 Like

Make yourself a tractor sized compass rose on the ground. preferably away from buildings, cables etc.
Make a central point and record its GPS location, take a good quality hiking compass and mark out the points of the compass, (no ferrous material nearby to minimise deviations).
Mark numerous possible mounting locations on tractor for magnetmeter.
Sequentially park tractor on central location pointing at each compass point & record deviation from magnetmeter at each mounting location.
Position with least deviation for all points is best mount location, any remaining minor deviations can be filtered out.

The roll is a no brainier.
(Test 2). Yaw has definitely got slightly more drift on the bno055 but the 10 degree blip is visible simultaneously on both sensors so to me that points to outside interference. Doesn’t help with the bno055 running at virtually zero degrees. Hence the obvious 0 to 360 swings.

With regard to the magnetometer calibration. Lively driving around an undulating part of our yard! I got to medium for the mag.

Given we only need a relative reading and we are dealing with inexpensive sensors with known drift, that would be an almost futile operation surely?!!

Hello,

Yes. Just want to record datas to see influance on tractor integration compare to lab test or test in my car.

Sorry, wasn’t clear. Graph of test 1 and test 2 are just 2 records on straight line to compate all unit. Yes oscillation on begening of test 2 is normal: steering engage far away from the line, so little bit oscillation time AOG catch the line. After this 2 records, I remove the comparative board from the tractor, and just go to make some test in the field, with steering box equiped with BNO08x.

And it’s when I was driving making some test (and U-Turn test) I was facing this heading “jump”. Record it in video, you can see here:

Just autosteering on a AB line. BNO08x IMU heading is arround 157°. And suddently jump to arround 170°, causing AOG oscillation. Same phenomen repeated a few seconds latter, just before U-Turn.
BN008x configuration:

  • Accelerometer and gyroscope calibrated to hight, magnetometer not calibrated
  • Using Rotation Vector with defaut accelerometer and magnetometer enable.

Have you never see that with yours ?

Math

I have tried cmps14 for about one hour, never happened a jump in heading. Cmps14 is inside the autosteer box which is on the left window of my tractor, so not central or on the roof.

Does this jump happen every 13 seconds when continuing driving “straight” on the AB line

I can’t say I’ve seen that, unless I’ve not noticed? My test field is pretty rough and rutted though. I will test again today in an hour or two. I’ve got the BNO085 in my steer box with the tractor ecu’s. going to try remote mounting with the i2c extenders. I will try with some other settings too then. Will be interesting to see how stable we can get a true compass reading with cab roof mounting.

Hello,

Same installation, on the right window.

No, randomly.

I’ve test this morning, using Game Rotation Vector instead of Rotation Vector. “Jump” doesn’t happen. Driving 2 return trip on a 1km line (~30min of drive).
I would like to do more tests too, but definitely too rainy here, not sure I can. What I would like to test:

  • Rotation vector with background calibration disable
  • Succed to calibrate magnetometer and test with Rotation Vector with backgroud calibration enable and disable.
    Too check if this “jump” is du to a non calibrated magnetometer, background calibration or something else.

Math

I also did not experience any sort of “jump” really ever in the tractor - only once when it fell on the floor off the dash :slight_smile: . Although i did notice a slight jump, about a degree or 3, while just sitting on the floor in the living room. I will do a long term plot and see if i can catch it.

Using the CMPS

I’ve had a drive again tonight. I couldn’t replicate your heading jump. I was in game rotation vector mode though. The field is too rutted and wet to really get a grip on any overall accuracy improvements.

I have background calibration disabled.

I’ve found I can use much more aggressive steer settings with the 085 and the whole system still performs smoothly. I’m guessing better roll is mainly to thank for that.

Hello,

I hope you won’t see it: it would meaning that it’s only a calibration issue (magnetometer not calibrate or background calibration disable), not a algorithm issue.

It’s happen in Rotation Vector mode. Not see it in Game Rotation Mode.
I’m pretty sure it’s an issue with magnetometer (calibration or background calibration).

Math

Perhaps it would be better to take the quaternions and calculate RPH when using the 085?

In RotationVector it seems to be possible to cause heading jumps very occasionally, with the introduction of magnetic fields. Getting a video of that was difficult as it was hard to predict when it would jump.

However, in GameRotationVector it is completely oblivious to even very strong magnets, millimetres away from the BNO085. Driving using 1m fix to fix, and the slider across to IMU bias as much as it will go is stable at any speed. With the BNO055 and MMA is was very unstable at higher speed, set like this.

This is in GameRotationVector mode. The small ‘X’ on the project box is where the BNO085 is glued to the inside.

3 Likes

Toi find out more about how CMPS does the output, you could do the magnet test like Alan did.