How to extract roll, pitch, and yaw values from a Simulink transform sensor
조회 수: 21 (최근 30일)
이전 댓글 표시
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
채택된 답변
Umar
2024년 7월 23일
편집: Angelo Yeo
2024년 7월 23일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 General Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!