06-30-2021 07:20 AM
Hi,
I have BNO055 with NDOF mode. I'm trying to use this sensors gyroscope values to move a mouse. Which I have been able to accomplished without any problem. Currently I'm using heading value translated to Cursor X value and Roll value translated to Cursor Y value. However when I increase/decrease Pitch around to 88 degrees, Roll and Pitch jumps to higher degree of values. I have tried changing axis conventions too.
I'm directly reading quaternions then do the math using the quaternions (to get the difference in rotation) and finally convert it to euler angles. So when ever I Pitch it to around 88 degrees other axis values jumps to higher values. What is the reason for this? How do I avoid this? Is there a way to only use the 2 axis I want?
I also tried quaternions->euler then euler pitch = 0 and the euler->quaternion do the math, but still same issue
My idea of using the sensor is to be able to rotate yaw 360 and roll to 180 degrees (forward 90 and backward 90) in total and pitch shouldn't affect, but it affect.
Regards
07-01-2021 02:13 AM
Hi,
Thanks for your inquiry.
You can use BNO055 Euler angles outputs directly in NDOF mode which means that you don't need to do the math for conversion between quaternions and Euler angles.
I quickly collected BNO055 outputs using APP2.0 base board + BNO055 shuttle board + DD2.0 GUI SW. I rotate the eval. board to get pitch angle around +/-88 degrees. From the plot I don't see roll/heading angles are jumping to higher values. I could reproduce the issue that you described.
Please see the attached screenshot and two Excel files. The "BNO055 pitch rotations raw log.xlsx" file is the data log captured by DD2.0 GUI SW. The "BNO055 pitch rotations with plot.xlsx" file is from the previous Excel file without the header words and with the first 300 rows of data log removed when I was doing figure-8 motions in 3D space to calibrate BNO055 mag sensor.
Thanks.
07-01-2021 04:39 AM - edited 07-01-2021 04:43 AM
Hi,
See the photos Here with the values on serial monitor please. I have loaded 'bunny' code example with in NDOF mode.
These are the details of my sensor,
Sensor: BNO055
Driver Ver: 1
Unique ID: 55
Max Value: 0.00 xxx
Min Value: 0.00 xxx
Resolution: 0.01 xxx
The same happens to me with pitch increase like above in pictures.
Is the sensor automatically switching the planes when I rotate like that? How do I turn off it?
Is there a workaround for this?
Regards.
07-06-2021 11:05 PM
Hi,
I don't see your attachments. Please get a BNO055 USB stick or APP2.0 base board + BNO055 shuttle board + DD2.0 GUI SW to do your evaluation.
Thanks.