I use dcm2quat function in a function block in simulink but it doesnt work.

5 views (last 30 days)
I am working on an object tracking project and I am using MPU9250 with Arduino 2560. I have prepared my system on Simulink. I want to transform my dcm matrix to quartionen with dcmtoquat (function) and simulate with HelpOrientationViewer in a function block by simulink but it doenst work.
could you help me pls?
function dcm = fnc(roll,pitch,yaw)
x =[1 0 0; 0 cos(roll) -sin(roll); 0 sin(roll) cos(roll)];
y =[ cos(pitch) 0 -sin(pitch);0 1 0 ; -sin(pitch) 0 cos(pitch)];
z =[ cos(yaw) -sin(yaw) 0; sin(yaw) cos(yaw) 0 ; 1 0 0];
%zy = bsxfun(@times,z,y);
%dcm = bsxfun(@times,zy,x);
dcm = z*y*x;
Q =dcm2quat(dcm);
viewer = HelpOrientationViewer;
viewer(Q)
pause(.1)

Answers (2)

Githin John
Githin John on 28 Jan 2020
Since it is not clear from your question as to what the problem is, I am assuming that the issue is that MATLAB can't find the HelperOrientationViewer (note: typo in your code). To use this class, you need the MATLAB Support Package for Arduino Hardware Installed through the Add-Ons explorer.

Stacey Gage
Stacey Gage on 26 Mar 2020
Have you tried using the Direction Cosine Matrix to Quaternions block in Aerospace Blockset?

Categories

Find more on Get Started with Aerospace Blockset in Help Center and File Exchange

Tags

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!