Euler Angle from BNO 080 in Motion

Hi!

I want built a small device that shows me the leaning angle from my bike.

The BNO080 Datatsheet says that it is capable to disstinguish between the gravity and the normal acceleration.

2.1 Motion Outputs
Motion outputs allow applications to understand the motion being applied to the device as measured by BNO08X.
2.1.1 Acceleration Outputs
The 3-axis accelerometer measures the acceleration of the device (note that the accelerometer will measure
gravity as acceleration). BNO08X calibrates the accelerometer output to improve the data reported. BNO08X will
report this acceleration aligned to the coordinate frame of the device. BNO08X can (after fusing data with the
gyroscope) separate gravity from this acceleration, thus providing the BNO08X with the following acceleration
outputs:
• Calibrated Acceleration (m/s2
). Acceleration of the device including gravity
• Linear acceleration (m/s2
). Acceleration of the device with gravity removed
• Gravity (m/s2
)
• Raw uncalibrated accelerometer data (ADC units). Used for testing
Note that for raw data to be transmitted the accelerometer must be enabled by a separate set feature request, i.e.
the raw sensor listens to an already configured sensor. The rate specified in the raw sensor set feature request
cannot be higher than the underlying sensor configuration. The raw data will either be delivered at the same rate
as the underlying sensor or at the rate requested (within the constraints of rate decimation).

With this information it should be possible to remove the non-gravtiy-acceleration from riding corners … so that i can calculate the leaningangle from the bike with the gravity in the different x,y,z axes.

But i am not sure that the Sensor is capable of that. I have found no real review for measuring Euler angles in Motion.

I only know that the preview one BNO 055 was terrible and promises the same.

I know that it is possible with a normal gyro and accelerometer but i have just startet working with Arduino and programming so that it is a bit to hard for me to use filters and combine all the data in the right way…

But i really want to succed sooo please help me!

Thanks

Mirco

mirco432: Hi!

I want built a small device that shows me the leaning angle from my bike.

The BNO080 Datatsheet says that it is capable to disstinguish between the gravity and the normal acceleration.

https://www.hillcrestlabs.com/downloads/bno080-datasheet

Well no, nothing can really distinquish gravity from acceleration, its the same thing in physics. What its doing is estimating the gravity component of the acceleration under various assumptions, such as that the local gravity is constant and doesn't change in direction in the global reference frame. Basically its measuring gravity vector when stationary and subtracting it out from the data when moving - the more violent and confused the motion the more likely it is to get this wrong over time. The movement of a bike is pretty tame, it will probably do a good job of taking out gravity and leaving the cornering accelerations.

One thing you may need to do is isolate it from vibration, since vibrations can dominate the signal which is likely to reduce accuracy.

As I pointed out in your other post on this exact topic, this is a difficult physics and math problem. It is not easily solved with consumer grade sensors.

You didn't answer the question: what is the tilt angle for this bike? |500x365

@MarkIt: Thanks! In the Datasheet they claim that is even good while forced with vibration. But because they cost about 30 EUR i am not sure to give it a try... What do you think?

@jremington: The leaningangle in this picture is nearly 90 degrees becaues i am interested in the angle to the horizont not to the street.

Because you said:"It is not easily solved with consumer grade sensors" i think you are familiar with this topic, right?

What do you think of this Lib with the MPU6050:

https://github.com/TKJElectronics/KalmanFilter/tree/master/examples/MPU6050

In another german forum they say it is nearly plug & play and should give me some good results. It is enough if my accuracy is nearly up to +-2°.

This:

https://github.com/TKJElectronics/KalmanFilter/tree/master/examples/MPU6050

is complete garbage. It is not even a Kalman filter.

The MPU6050 is already filtered, so just use the DMP output.

Good overview of sensor fusions here.

The leaningangle in this picture is nearly 90 degrees becaues i am interested in the angle to the horizont not to the street.

More like 15 degrees to the horizon.

A decent Kalman filter is never trivial, you have to measure the matrices of noise covariance for your set up as it
relies on this information for its full performance - with the DMP they can no doubt do a good job at this.

But Kalman filtering isn’t necessary for sensor-fusion at all, lower performing techniques are a lot simpler,
especially if measurement noise wasn’t an issue to start with.

Hello, I'm running into the same problem with my project to build an artificial -electronic- horizon (AH) for my plane. The AH is working perfectly on my hobby table, but as soon it is mounted inmy plane and the plane is taking off, the readout of roll and pitch stays at zero. Used already different IMU Sensors (MPU6050 / BNO050 / BNO080). I'm looking for someone who can explain why this is happening and how I can resolve it, if possible with an Arduino sketch. Regards, Marc

Best to start your own thread for your own problem, posting all the details we need...

One known issue with RC planes is vibration. If vibration of the IMU is excessive it mixes non-linearly with the real useful signal and everything will go wrong.