我是靠谱客的博主 友好酸奶,最近开发中收集的这篇文章主要介绍matlab画姿态图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

clear;
close all;
clc;
data = importdata('data.csv'); %读取csv数据文件
[row, col] = size(data);
PoseMat = [];
% 算出姿态矩阵
for index = 1 : row
    PoseMat = [PoseMat; rotz(data(index, 6))* roty(data(index, 5)) * rotx(data(index, 4))];
end
% 开始进行画图的操作
for drawIndex = 1 : row
    startpoint = data(drawIndex, 1 : 3); % 提取出xyz值
    xEndPoint = data(drawIndex, 1 : 3) + PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 1)' * 10;
    yEndPoint = data(drawIndex, 1 : 3) + PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 2)' * 10;
    zEndPoint = data(drawIndex, 1 : 3) + PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 3)' * 10;
    dot(PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 2), PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 1))
    dot(PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 3), PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 1))
    dot(PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 3), PoseMat(3 * drawIndex - 2 : 3 * drawIndex, 2))
    willDrawX = [startpoint; xEndPoint];
    willDrawY = [startpoint; yEndPoint];
    willDrawZ = [startpoint; zEndPoint];
%     subplot(121);
    plot3(willDrawX(:,1),willDrawX(:,2),willDrawX(:,3),'-b*','LineWidth',3);hold on;
    plot3(willDrawY(:,1),willDrawY(:,2),willDrawY(:,3),'-r*','LineWidth',3);hold on;
    plot3(willDrawZ(:,1),willDrawZ(:,2),willDrawZ(:,3),'-k*','LineWidth',3);hold on;
    title('三维位姿图分析');
end
% for i = 1 : row
%     if i < row
%         subplot(121);
%         plot3([data(i, 1); data(i+1, 1)],[data(i, 2); data(i+1, 2)],[data(i, 3); data(i+1, 3)],'-cs','LineWidth',1);hold on;
%     else
%         subplot(121);
%         plot3([data(1, 1); data(i, 1)],[data(1, 2); data(i, 2)],[data(1, 3); data(i, 3)],'-cs','LineWidth',1);hold on;
%     end
% end
% legend('X 坐标','Y 坐标','Z 坐标');
% xlabel('X(mm)');
% ylabel('Y(mm)');
% zlabel('Z(mm)')
% % 绘制二维角度折线图操作
% xRange = 1 : row;
% thetaA = data(:, 4);
% thetaB = data(:, 5);
% thetaC = data(:, 6);
% subplot(122);
% plot(xRange, thetaA, '-b*','LineWidth', 1);hold on;
% plot(xRange, thetaB, '-r+','LineWidth', 1);hold on;
% plot(xRange, thetaC, '-ko','LineWidth', 1);hold on;
% xlabel('第几个点');  % 添加x轴信息
% ylabel('角度(度数)')
% title('欧拉角分析');  % 添加标题
% legend('欧拉角A','欧拉角B','欧拉角C');  % 添加线段标签
% % plot(xRange, thetaA)

最后

以上就是友好酸奶为你收集整理的matlab画姿态图的全部内容,希望文章能够帮你解决matlab画姿态图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部