赞
踩
如下图所示,最简单的MATLAB机器人仿真时候的样子。光杆杆的总感觉缺那么点意思,所以,plot3d的必要性还是有的。而plot3d的重点不仅是在MATLAB中,还有重要前提就是模型的前处理(1、在装配体草图中建立各个坐标系;2、固定命名导出各轴的STL文件)
1、常见的一般仿真图
(是不是有点看厌了,哈哈哈哈)
2、真实模型图
确实比只有杆杆好看多了
MATLAB代码:
close all; clear; clc; %% DH参数建立(重点) L(1)=Link('revolute','d',0.04197,'a',0.0414,'alpha',pi/2,'offset',0); L(2)=Link('revolute','d',0,'a',0.13608,'alpha',0,'offset',1.24773); L(3)=Link('revolute','d',0,'a',0,'alpha',pi/2,'offset',0.32106);1.24773 L(4)=Link('revolute','d',0.12010,'a',0,'alpha',-pi/2,'offset',0); MaRob = SerialLink(L,'name','MaRob四轴机械臂'); MaRob.base = transl(0,0,0); q0 = [0,0,0,0,0]; v = [165 20]; w = [-0.1 0.2 -0.2 0.2 0 0.2]; MaRob.plot3d(q0,'tilesize',0.1,'workspace',w,'path','D:\桌面文件\6轴机械臂设计零件\机械臂STL','nowrist','view',v); light('Position',[1 1 1],'color','w'); theta1 = [30 45 20 0]*pi/180; p_1=MaRob.fkine(theta1); disp(p_1); q1 = [0,0,0,0]; q2 = [pi/4,pi/3,pi/5 0];%随便建立两个运动点 qt2 = jtraj(q1,q2,20); % for i=1:size(qt2,1) % % T=MaRob.fkine(qt2(i,:)); % P=transl(T); % %plot_sphere(P,0.038,'r') % %patch('Vertices',vertice,'Faces',face,'FaceColor',[0.82 0.71 0.55]); % MaRob.plot3d(qt2(i,:),'view',v,'nowrist','delay',0,'fps',30,'trail',{'r','LineWidth',3},'tilesize',0.1); % pause(0) % end figure; MaRob.plot3d([qt2],'view',v,'nowrist','delay',0,'fps',30,'trail',{'r','LineWidth',3},'tilesize',0.1)
**(见B站UP主:https://space.bilibili.com/261126593,日期为20220115作品,点赞!!!也是突然看到去年好像没解决的,今天重新弄了一下好了)**但有些注意事项里面没讲,容易出问题(我是这样的,太菜了)。
1、记住是在装配体模式下建立草图,建立WorldFrame、link0、link1……
2、注意建立坐标系的时候要和你的DH(正确建立很重要)一样的,如果你发现你的做出来是旋转了一般就是调一下坐标系再输出【做这个就是卡在这一点,后面看着看着发现的,所以当你发现不对,翻转了 ,就可以想象一下坐标怎么转一下就可以;如果发现偏移了就是d和a的值需要修改一下】
输出时勾选①不要转换STL…和②在单一文件中…
学习机器人,DH建模确实应该反复多看,多动手推导(可以参考:https://blog.csdn.net/qq_40969179/article/details/116235554;或者学习其他博主写的文章)
(今天突然看到的,心血来潮,解决了年前没解决的问题。好久没弄MATLAB相关仿真的东西了,记录自用)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。