ich würde erwarten dass in diesem Code out1 und out2 gleich sind. Statt dessen weichen sie ab, und out3 gibt etwas out1-ähnliches...
Mein Latein ist echt am Ende, ich hab da schon mindestens einen ganzen Tag reinversenkt.
my_v_out1 = rOut * quat2dcm(qObjectRotation) * v % ok
my_v_out2 = quat2dcm(quaternProd(rotm2quat(rOut), qObjectRotation)) * v % not the same, though i would expect that
my_v_out3 = quat2dcm(quaternProd(qObjectRotation, rotm2quat(rOut))) * v % inverted, and reversed in order...
update:
Ein Kollege hat mich darauf hingewiesen, dass ich Madgwicks functionen verwendet habe und nicht die Matlab-nativen. Hier nochmal ein code mit ausführlicheren Tests und Kommentaren was ich verstehe und was nicht:
% NED to ENU conversion
rOut = zeros(3,3);
rOut(1,2)= 1.0;
rOut(2,1)= 1.0;
rOut(3,3)= -1.0;
qOut = rotm2quat(rOut);
rIn = rOut;
qIn = quatconj( qOut );
rIn * rIn % unit matrix (eye3), as expected
rOut * rIn % unit matrix (eye3), as expected
rOut * rOut % unit matrix (eye3), as expected quatmultiply(qOut, qIn)% unit quaternion, as expected quatmultiply(qOut, qOut)% -(unit quaternion), unexpected
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.