How to extract roll, pitch, and yaw values from a Simulink transform sensor
21 views (last 30 days)
Show older comments
Hello,
I am currently developing a system to extract and provide feedback on the 6 degrees of freedom (Surge, Sway, Heave, Roll, Pitch, Yaw) motion of a follower coordinate system relative to a base coordinate system. While I can extract the feedback for Surge, Sway, and Heave motions from the options in the Transform sensor, there are no specific options for Roll, Pitch, and Yaw motions. Therefore, I have used the Coordinate Transformation Conversion block as shown in the image below. However, even with this block, it seems that I cannot extract Roll, Pitch, and Yaw motions separately for feedback. Is there a way to extract Roll, Pitch, and Yaw motions individually?
0 Comments
Accepted Answer
Umar
on 23 Jul 2024
Edited: Angelo Yeo
on 23 Jul 2024
Hi 석준 ,
Try using the rotation matrix obtained from the Coordinate Transformation Conversion block. By decomposing the rotation matrix, you can extract the Euler angles representing Roll, Pitch, and Yaw. Here is a simple code snippet to demonstrate this:
% Assuming R is the rotation matrix obtained from the Coordinate
Transformation Conversion block
roll = atan2(R(3,2), R(3,3));
pitch = asin(-R(3,1));
yaw = atan2(R(2,1), R(1,1));
% Convert angles from radians to degrees if needed
roll_deg = rad2deg(roll);
pitch_deg = rad2deg(pitch);
yaw_deg = rad2deg(yaw);
disp(['Roll: ', num2str(roll_deg), ' degrees']);
disp(['Pitch: ', num2str(pitch_deg), ' degrees']);
disp(['Yaw: ', num2str(yaw_deg), ' degrees']);
For more information on coordinate transformation conversion, please refer to,
https://www.mathworks.com/help/nav/ref/coordinatetransformationconversion.html#
If this Answer resolved your question, please Accept-click it.
2 Comments
More Answers (0)
See Also
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!