% generate minimal representation for 3D homogeneous line Ls = sugr_minimal_3D_Line(L,CLL) * L 6x1 uncertain homogeneous 3D line * CLL covariance matrix * Ls = * .h spherically normalized * .Crr, reduced CovM * .Jr Jacobian Lr -> Ls Wolfgang Förstner 7/2012 wfoerstn@uni-bonn.de See also sugr_Line_3D, sugr_construct_join_Line_3D, sugr_constrain_3D_Line
0001 %% generate minimal representation for 3D homogeneous line 0002 % 0003 % Ls = sugr_minimal_3D_Line(L,CLL) 0004 % 0005 % * L 6x1 uncertain homogeneous 3D line 0006 % * CLL covariance matrix 0007 % 0008 % * Ls = 0009 % * .h spherically normalized 0010 % * .Crr, reduced CovM 0011 % * .Jr Jacobian Lr -> Ls 0012 % 0013 % Wolfgang Förstner 7/2012 0014 % wfoerstn@uni-bonn.de 0015 % 0016 % See also sugr_Line_3D, sugr_construct_join_Line_3D, sugr_constrain_3D_Line 0017 0018 function Ls = sugr_minimal_3D_Line(L,CLL) 0019 0020 % impose Plücker constraint, no change of length 0021 L = sugr_constrain_3D_Line(L); 0022 0023 % generate 3D line structure, normalized spherically 0024 Ls = sugr_minimal_vector(L,CLL); 0025 0026 % add Plücker constraint to CovM 0027 h = calc_Dual*Ls.h; 0028 P = (eye(6) - h*h')/norm(L); % scale to length 1 0029 CLL = P * CLL * P; 0030 0031 % reduce covariance matrix 0032 J6 = null([Ls.h h]'); 0033 Ls.Crr = J6' * CLL * J6; 0034 Ls.Jr = J6; 0035