BNO055 Calibration & stops responding in forward motion

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

I have a BNO055 and so far I am very impressed. I an using a 4dsystems screen and as such have no ability to use the libraries mentioned so have had to create my own function's etc. I have written a calibration routine that loads the 22 registers about 2 seconds after power up, after setting the BNO in config mode. All is well until I move the unit about 15 degrees in a positive pitch angle and Accelermoter calibration changes from 3 to 0 and does not recover. I have included an option that after 30 seconds of out of calibration, I can recalibrate. I recalibrate the accelerometer until it's status reads 3, save the data which is loaded again at next boot and the unit stays in calibration until it's next power on when the same thing happens again. I have confirmed the data that is saved matches the register's on saving and confirmed the saved data is the same that is loaded at boot. Is there any way of preventing this from happening. The registers I save are 0x55 to 0x6A.

As the device statically performs well, i.e in my hand moving it around, getting full pitch and roll readings and a reliable heading. I mounted it on the dashboard of my car and instantly got a correct heading and pitch due to the slope on the drive. As soon as I got any speed up in the car which is a 4x4 with plenty of roll the roll stopped functioning until I came to a standstill. When the roll stops functioning it tends to drift with a positive angle. It seems the BNO can't produce a roll whilst it has a forward acceleration. As the device works perfectly well in my hand (apart from the accelerometer calibration) I can rule out any software issues. I intended to use this device in a Quad project and would be grateful for any suggestions.



Any help would be appreciated.

User avatar
Franklin97355
 
Posts: 23912
Joined: Mon Apr 21, 2008 2:33 pm

Re: BNO055 Calibration & stops responding in forward motion

Post by Franklin97355 »

Have you tried this with the Adafruit libraries attached to a different monitor (laptop maybe)?

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

No, I haven't tried that yet, but what I have tried is the same setup and changed the fusion mode from NDOF to M4G. That works perfectly with less accuracy. I can live with the calibration quirk but would really like a reliable way of using NDOF. In M4G mode (magnemometer for gyroscope) I get a fast acting pitch and roll in forward motion, the drawbacks are that the compass reading suffers i.e it waits 4/5 degrees before changing and it does not rest back at 0 degrees after a pitch or roll movement. The fact that M4G works shows that my setup is correct. Using a magnemometer as a gyroscope is not ideal, has anyone else had this experience when placed in a vehicle. I cannot fault the BNO055 in any other way, the tilt compensated heading is brilliant and the NDOF pitch and roll is very accurate when stationary.

Thanks for the suggestion and I will try and rig something up, I could use an arduino and add a Bluetooth module and make a simple app for my phone as a display.

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

I tried as suggested via an aduino nano and your libraries and via serial monitor and the results were the same. I have a working pitch in both scenarios, it is just the roll that suffers. The BNO055 is in it's default orientation. If the vehicle is stationary with engine running and held in my hand I get full precise readings, it is only when travelling over 10 mph that the roll stops responding.

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: BNO055 Calibration & stops responding in forward motion

Post by adafruit_support_mike »

It sounds like you may be hitting a rollover limit of some kind.

Check the variable types you're using. An 8-bit integer will behave perfectly until you hit an output level of 256.

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

Hi thanks,

The variables are fine and are 16bit signed integers as sent out by the sensor. 8bits LSB and 8bits MSB. I get a positive roll and a negative roll when moving the sensor in my hand.

User avatar
stefdas
 
Posts: 14
Joined: Sun Apr 03, 2016 2:27 am

Re: BNO055 Calibration & stops responding in forward motion

Post by stefdas »

hello pauleilio

i just found your post today. Quite interesting!

i'm trying to use the bno055 to measure a tractor cab roll (for a gps application).
i also have this kind of problem with the roll. when trying it at the office in my hand all seems ok. when trying it in the cab when driving give some instability.

I use the following config:
GPwrMode = NormalG;
Gscale = GFS_250DPS;
Gbw = GBW_23Hz;
Ascale = AFS_2G; // Accel full scale
APwrMode = NormalA; // Accel power mode
Abw = ABW_31_25Hz; // Accel bandwidth, accel sample rate divided by ABW_divx
//uint8_t Mscale = MFS_4Gauss; // Select magnetometer full-scale resolution
MOpMode = Regular; // Select magnetometer BANNED mode
MPwrMode = Normal; // Select magnetometer power mode
Modr = MODR_10Hz; // Select magnetometer ODR when in BNO055 bypass mode

PWRMode = Normalpwr; // Select BNO055 power mode
OPRMode = IMU; // specify operation mode for sensors

Using IMU operation mode is better in my case than NDOF.
I had a call with bosh team who advised me to disable mag because cab tractor could interferer with mag sensor.

Actually using IMU mode gives a roll measure almost correct during several minutes, but a 'drift' of 15-20 degrees can occur during several minutes also!
So in my case, i cannot use it like this, indeed a usual cab roll range is between -5 to +5 degree.

do you get some newer informations since last year?

best regards

stef

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

Hi Stef,

Thank's for sharing your experiences with me. I did not overcome the problem and have found that the magnemometer will lose calibration very quickly. From what a can gather, all mems gyroscopes will drift but the magnemometer can provide a reference to the gyro using all it's three axis.

I am trying an invensense mpu-9250 at the moment and have yet to prove it in a moving platform. it has been on for over a week now in a static position and the gyro has drifted by 0.5 of a degree.

The yaw angle doesn't seem to return to the same angle if picked up and put back down in the same direction but pitch and roll always return to the same angle so if I get a stable pitch and roll I would use a seperate mag for heading.

The BNO055 on paper is a nice piece of kit but is let down by the magnemometer calibration. I still have it in a vehicle at the moment purely as a compass. When I first used it and calibrated it, the mag quite happily showed 113 degrees, which was the direction my car was parked. Over time it now shows 85 degrees. It is not easy to recalibrate when using it in a fixed platform.

I will try to test the invensense in a vehicle over the next couple of day's and let you know how i get on.

Is your task to measure roll of tractor cab as a safety device. I have witnessed a fatal accident where a tractor was used on a slope and it rolled into a river so would wish you success with your task as a very necessary piece of equipment for all tractors.

User avatar
stefdas
 
Posts: 14
Joined: Sun Apr 03, 2016 2:27 am

Re: BNO055 Calibration & stops responding in forward motion

Post by stefdas »

before bno055, i tried the mpu-6050 but was also unstable.

gps antenna are generaly placed on the cab roof in order to have a clear sky view.
as the vehcle can ride on unlevelled and/or rought ground the roll angle moves typically from -5 to 5 degree, as the cab roof is at 3meter from the ground, you can have a position shift from around 40cm. to drill or other farm works, you need a precision of 2-20cm... so roll correction is imperative.
i post some info regarding my project on http://thefarmingforum.co.uk/index.php? ... nos.98936/

oh, yes i'll be interested to know about your new test with the 9250.

i'm wondering if high-end sensor is not the only solution... but which one to choose??

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

Awesome project stef. I fully understand what you mean now and hence the reason for a stable device.

From what I have read the 9250 has nine axis accel, Gyro and Mag. I believe the Mag having all 3 axis should be able to obtain a reference to base the gyro from, thus reducing gyro drift as the BNO055 is supposed to do. Invensense motion processing claims to be very good.

I tried the BNO055 in mag for gyro mode and had a more stable result but slower in response, until it lost calibration again.

My project is a low cost emergency flight instrument for microlighters etc, and the BNO really upset the development for a while. There are AHRS units available but are very expensive and bulky. This instrument was intended to be pocket sized, of low power and easy to use.

User avatar
stefdas
 
Posts: 14
Joined: Sun Apr 03, 2016 2:27 am

Re: BNO055 Calibration & stops responding in forward motion

Post by stefdas »

hi pualeilio,

I did some other tests today with the bno055.

I noticed that roll is prety good while driving slow (less than 5 km/h), as forward speed increased until 30 km/h (farm tractor!) I noticed that roll drift is higher (can reach 10-15°). If i stop the vehicle, I can see that the roll measure is coming back to a real figures in 2-5 seconds.
It sounds like forward acceleration/integration can induce wrong Roll calculation?!?

Which library do you use, the one from adafruit?

regards,

stef

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

Hi stef,

That is exactly the same result as mine. As soon as any forward speed is obtained the gyro would drift and not respond until I stopped again. I had to write my own routine as I was using a 4d systems screen. It did have a calibration load and save and also a user recal and worked perfectly in my hand.

The reason I chose the BNO055 was because of its onboard arm processor so the code size on my side was small. When using any of the libraries 20k is taken staright away out of my 32k limit.

I am still to do a test with the 9250, but so far I have noticed an instant recovery from violent shaking which I always had a problem with the BNO055 going out of calibration.

Fingers crossed for the 9250. I have redesigned my co-processor board that fits on the back of the screen to use an atmega 1284p at 20mhz which gives me 128k of flash and more ram to play with and found a reliable but unsupported library.

Paul

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

Hi Stef,

Did your invensense sensor work despite it being a bit unstable.

User avatar
stefdas
 
Posts: 14
Joined: Sun Apr 03, 2016 2:27 am

Re: BNO055 Calibration & stops responding in forward motion

Post by stefdas »

yes mpu6050 was working.

I did another test this afternoon using the bno055 in COMPASS mode (acc & mag); as expected roll & tilt are directly inluenced by speed acceleration/deceleration, turning right/left. The goal was just to see if working as "expected".

I wondering why using IMU or NDOF modes we have so much drift.
I have no idea about the sensor's config values; I already posted these values some days ago (see above); i just picked values found in a library without any consideration...
I guess that these config values should have a impact on imu results. do you know how (why) to choose them?

stef

User avatar
pauleilio
 
Posts: 29
Joined: Tue Aug 11, 2015 7:18 am

Re: BNO055 Calibration & stops responding in forward motion

Post by pauleilio »

I never set the config because I was using NDOF and I thought they were set because of NDOF. I might have set power mode but overall everything was at default. What I did was calibrate the sensor, then save that data in my realtime clocks battery backed memory and loaded it everytime I powered the device before switching to NDOF.

I am encouraged that your 6050 was working and hold a lot of hope that the 9250 works whilst in forward motion.

I also contacted BOSCH about the problem and did not get a satisfactory answer. One of the advertised applications was navigation and I take that to mean in a moving vehicle of some kind.

I am also of the thinking that it should work but have tried almost everything to achieve it.

I did blame my own routine until I put the device on an arduino with a library and put it in my car just to get exactly the same result.

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”