I saw it in the BNO08X Datasheet : The rotation vector provides an orientation output that is expressed as a quaternion referenced to magnetic north and gravity.

The first question: If the IMU rotation vector is converted into a Rotation Matrix (R), is this Rotation Matrix the attitude of the IMU accelerometer coordinate system in the magnetic North Pole and the gravitational coordinate system?

In the second question: Before using this IMU to output the rotation vector, is it necessary to calibrate the IMU?

The third question: I hope to obtain the gravitational direction of the drone when working in the sewer. Can I directly obtain the gravitational vector from the IMU?

The fourth question: What is the Accuracy (rad) output by running the demo program?

~/depthai-python/examples$ python3 imu_rotation_vector.py
Rotation vector timestamp: 0.000 ms
Quaternion: i: 0.089355 j: 0.355103 k: 0.034058 real: 0.929932
Accuracy (rad): 3.141602
Rotation vector timestamp: 3.601 ms
Quaternion: i: 0.088928 j: 0.354004 k: 0.036560 real: 0.930298
Accuracy (rad): 3.141602
Rotation vector timestamp: 6.231 ms
Quaternion: i: 0.094604 j: 0.344543 k: 0.040955 real: 0.933105
Accuracy (rad): 3.141602

thanks

  • jakaskerl replied to this.
  • zenglu

    zenglu The first question: If the IMU rotation vector is converted into a Rotation Matrix (R), is this Rotation Matrix the attitude of the IMU accelerometer coordinate system in the magnetic North Pole and the gravitational coordinate system?

    It should be the transform between reference and current orientation - so yes.

    zenglu In the second question: Before using this IMU to output the rotation vector, is it necessary to calibrate the IMU?

    The IMU does some internal calibration in it's own FW. When the IMU is moving, the rotation vector is relatively accurate (like moving it in an 8 pattern). When still, the IMU uncertainty will begin to increase due to drift.

    zenglu The third question: I hope to obtain the gravitational direction of the drone when working in the sewer. Can I directly obtain the gravitational vector from the IMU?

    Yes. You should be able to tell by normalizing the XYZ components of the accelerometer to get the norm which will point downwards (or upwards not sure). Keep in mind this only works if the device is still or moving at constant speed.

    zenglu The fourth question: What is the Accuracy (rad) output by running the demo program?

    The uncertainty of the measurements. 3.14 means it's useless as the heading is off by 180deg. The uncertainty does decrease when device moves for some time.

    Thanks,
    Jaka

    zenglu

    zenglu The first question: If the IMU rotation vector is converted into a Rotation Matrix (R), is this Rotation Matrix the attitude of the IMU accelerometer coordinate system in the magnetic North Pole and the gravitational coordinate system?

    It should be the transform between reference and current orientation - so yes.

    zenglu In the second question: Before using this IMU to output the rotation vector, is it necessary to calibrate the IMU?

    The IMU does some internal calibration in it's own FW. When the IMU is moving, the rotation vector is relatively accurate (like moving it in an 8 pattern). When still, the IMU uncertainty will begin to increase due to drift.

    zenglu The third question: I hope to obtain the gravitational direction of the drone when working in the sewer. Can I directly obtain the gravitational vector from the IMU?

    Yes. You should be able to tell by normalizing the XYZ components of the accelerometer to get the norm which will point downwards (or upwards not sure). Keep in mind this only works if the device is still or moving at constant speed.

    zenglu The fourth question: What is the Accuracy (rad) output by running the demo program?

    The uncertainty of the measurements. 3.14 means it's useless as the heading is off by 180deg. The uncertainty does decrease when device moves for some time.

    Thanks,
    Jaka