01-31-2022 09:12 PM
We run the the IMU in the NDOF-Mode.
Several measurment cycles are done with the IMU placed at the same initial position on an even surface (every time in the same enviroment) with the z-axis up in the air.
However the initial quaternions show different values in each cycle, even though the initial position is always exactly the same. In a measurment cycle the IMU is moved and rotated.
E.g.
Cycle 1: q=(16381, -143, -278, 0)
Cycle 2: q=(-15826, 89, 292, -4227)
Cylce 3: q=(-16343, 217, 377, -1080)
...
What are we doing wrong?
Thanks in Advance!
02-01-2022 06:40 PM
Hi M08,
I note that the BNO055 works in a different way than the BHI260, the one that I'm familiarized with. In the BHI you can enable different virtual sensor services, which is something that Android uses as a "standard".
I guess it'll be better to wait for the moderator's reply then.
BR
02-03-2022 01:51 AM
Ok, thank you anyway
02-07-2022 09:02 AM
Hello M08,
Befor your measurement, what is the calibration status?
After several measurment cycles are done with the IMU placed at the same initial position, what is the Euler angle like?
@btruden_henway, thanks for your kindly support.
02-08-2022 07:08 PM
Hello BSTRobin,
thank you for your reply!
The device is calibrated as described in the data sheet, the calibration values are stored and loaded after the device is powered on.
Our outputs are quaternions, but we can convert them to Euler angles in Matlab with the function quat2eul(Convert quaternion to Euler angles - MATLAB quat2eul - MathWorks Deutschland)
It is important to mention that we use the default axis orientation
(BST_BNO055_DS000_12 (adafruit.com))
During a so called measurment cycle the device is rapidely moved and then placed again at the inital position. The values provided below are all taken before each cycle, when the device is static in the inital position. Furthermore the measurment enviroment is always the same.
We also have different inital positons:
e.g. Inital Position: Device lays flat on surfsce with z-axis pointing upwards in the air:
1st Cycle: eul=[0.0170 -1.9444 -1.0006] °
2nd Cycle: eul=[ 29.9262 -1.8125 -1.1289] °
3rd Cycle:eul=[ 7.5989 -2.5308 -1.6895]°
...
e.g. Inital Position: Device stands straight on the surface with y-axis pointing upwards in the air:
1st Cycle: eul=[ 1.5531 0.6228 90.0282] °
2nd Cycle: eul=[ -9.8885 0.9895 89.5024] °
...
e.g. Inital Position: Device lays sidwards on the surface with x-axis pointing downwards to the ground:
1st Cycle: eul=[-170.9194 80.3253 -171.5348] °
2nd Cycle: eul=[ -104.1167 83.7994 -167.6938] °
...
The angles are presented in degrees
The issue seems to be with the yaw angle.
02-08-2022 08:39 PM
Hello BSTRobin,
thank you for your reply!
The device is calibrated as described in the data sheet, the calibration values are stored and loaded after the device is powered on.
Our outputs are quaternions, but we can convert them to Euler angles in Matlab with the function quat2eul
It is important to mention that we use the default axis orientation
During a so called measurment cycle the device is rapidely moved and then placed again at the inital position. The values provided below are all taken before each cycle, when the device is static in the inital position. Furthermore the measurment enviroment is always the same.
We also have different inital positons:
e.g. Inital Position: Device lays flat on surfsce with z-axis pointing upwards in the air:
1st Cycle: eul=[0.0170 -1.9444 -1.0006] °
2nd Cycle: eul=[ 29.9262 -1.8125 -1.1289] °
3rd Cycle:eul=[ 7.5989 -2.5308 -1.6895]°
...
e.g. Inital Position: Device stands straight on the surface with y-axis pointing upwards in the air:
1st Cycle: eul=[ 1.5531 0.6228 90.0282] °
2nd Cycle: eul=[ -9.8885 0.9895 89.5024] °
...
e.g. Inital Position: Device lays sidwards on the surface with x-axis pointing downwards to the ground:
1st Cycle: eul=[-170.9194 80.3253 -171.5348] °
2nd Cycle: eul=[ -104.1167 83.7994 -167.6938] °
...
The angles are presented in degrees
The issue seems to be with the yaw angle.