How to extract roll, pitch, and yaw values from a Simulink transform sensor
38 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
Answers (1)
Umar
on 23 Jul 2024 at 3:59
Edited: Angelo Yeo
on 23 Jul 2024 at 7:27
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
See Also
Categories
Find more on String 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!