-
Notifications
You must be signed in to change notification settings - Fork 0
/
T_to_q.m
24 lines (18 loc) · 1.02 KB
/
T_to_q.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
%% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %%
% Title: T_to_q %
% Description: Receive a 3x3 rotation matrix and convert it to a 4x1 %
% quaternion. %
% %
% Input: 3x3 Rotation matrix %
% Output: 4x1 quaternion defined by [3x1 vector, 1x1 scalar] %
% %
% Developed by: ASEL Lab, WVU %
% %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
function [ q ] = T_to_q( T)
Qs = .5*(sqrt(T(1,1)+T(2,2)+T(3,3)+1));
Qv1 = (T(3,2) - T(2,3))/(-4*Qs);
Qv2 = (T(1,3) - T(3,1))/(-4*Qs);
Qv3 = (T(2,1) - T(1,2))/(-4*Qs);
q = [Qv1 ; Qv2 ; Qv3 ; Qs];
end