UWBIns/lib/rotation/uv2q.m

18 lines
337 B
Matlab
Raw Permalink Normal View History

2025-04-16 20:15:33 +08:00
%%
%Cartographer SLAM <20><>̬<EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>
%<25><><EFBFBD>˻<EFBFBD>
%<25><><EFBFBD><EFBFBD>:xiphix@126.com
<><CEA2>:xiphix
function [q] = uv2q(v1, v2)
%Finding quaternion representing the rotation from one vector to another
nv1 = v1/norm(v1);
nv2 = v2/norm(v2);
if norm(nv1+nv2)==0
q = [1 0 0 0]';
else
half = (nv1 + nv2)/norm(nv1 + nv2);
q = [nv1'*half; cross(nv1, half)];
end
end