Hi,
I have an omnidirectional camera system with 4 cameras in it. There is almost a 90 degree rotation between each camera pair.
In case we set CAM 0 (Left camera) as the reference, then CAM 1 (Front camera) and CAM 3 (Back camera) have 90 and -90 rotations around the Y axis according to CAM 0.
The strange thing is that the Cayley transform, maps these two rotations to same values ! This results the orientation of Camera 3 and Camera 1 to be the same in SLAM map-viewer which is wrong !
Then converting 90 and -90 degree rotations around Y (expressed with quaternions) to Cayley parameters:
from scipy.spatial.transform import Rotation as R
import numpy as np
r=R.from_quat([0.0,0.707,0.0,0.707])
print(hom2cayley_r(r.as_matrix()))
r=R.from_quat([0.0,-0.707,0.0,0.707])
print(hom2cayley_r(r.as_matrix()))
Result in :
array([[-0. ],
[-0.5],
[ 0. ]])
array([[ 0. ],
[-0.5],
[ 0. ]])
Could anyone suggest what am I doing wrong or is this a property of the Cayley transform ?
Hi, I have an omnidirectional camera system with 4 cameras in it. There is almost a 90 degree rotation between each camera pair. In case we set CAM 0 (Left camera) as the reference, then CAM 1 (Front camera) and CAM 3 (Back camera) have 90 and -90 rotations around the Y axis according to CAM 0. The strange thing is that the Cayley transform, maps these two rotations to same values ! This results the orientation of Camera 3 and Camera 1 to be the same in SLAM map-viewer which is wrong !
Map viewer with these 3 cameras in it: https://drive.google.com/file/d/1jFVdt5FLhZR9UPOMFgLGRfUZZU6qmJmP/view?usp=sharing
In the link above Camera 3 (blue frame to the left) should face the opposite direction (180 degree around Y).
This is the code I use to convert the transformation matrix to Cayley in python:
Then converting 90 and -90 degree rotations around Y (expressed with quaternions) to Cayley parameters:
Result in : array([[-0. ], [-0.5], [ 0. ]])
array([[ 0. ], [-0.5], [ 0. ]])
Could anyone suggest what am I doing wrong or is this a property of the Cayley transform ?