Open EmpireOfTheTsun opened 4 years ago
initOrientation = np.array([[0.707,.707,0], #Initial orientation. Arbitrary, as model should converge to true orientation quickly.
[-.707,0.707,0],
[0,0,1]])
inputData = {'rate':50,
'acc':accData,
'omega':gyroData}
sensor = manual.MyOwnSensor(in_data=inputData, R_init=initOrientation)
Gives a visualisation of:
UPDATE: Using the initOrientation above (which I believe should be a 45 degree rotation around the z axis) results in an initial quaternion of [ 1.00000000e+00 -6.93889390e-18 1.73472348e-18 8.67361738e-19] Instead of the usual [1,0,0,0]. So it appears that R_init is having an effect, but a much milder one than anticipated.
Furthermore, rotation matrices such as the ones used here do not produce any deviation from the default orientation, when it should produce a 180 degree rotation around the Z axis.
N.B. I have tested this using a manual sensor with data gathered previously, both with and without magnetometer values (using Madgwick and Analytical, respectively).
EDIT: Based on further review, I believe that R_init is not ignored entirely, but valid rotation matricies don't produce the desired effect (see below). I have therefore removed some previous analysis in this post.
I am new to IMUs and kinematics in general, so if I have made some error, I deeply apologise. Thank you for your time.