资源描述:
《机器人学matlab绘制机械臂》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab绘制三个自由度的机械臂代码clc;t=0:0.1:2*pi;x=cos(t);%圆的X坐标y=sin(t);%圆的Y坐标r=0.05;%圆半径set(gcf,'doublebuffer','on');%gcf返回当前Figure对象的句柄值;打开双缓冲holdon;%这样就可以在一个图上画多条线fill(r*x,r*y,'c');%画中心点axis([-2,5,-2,5]);q=0;w=pi/3;Z=1.0*exp(i*q);cd=abs(4-Z);ad=1.5;ab=1.5;bc=2;ac=sqrt(ab^2+bc^2-2*ab*bc*cos(w)
2、);jbac=acos((ab^2+ac^2-bc^2)/(2*ab*ac));jd=acos((ad^2+cd^2-ab^2-bc^2+2*ab*bc*cos(w))/(2*ad*cd));A=Z+ad*exp((jd+angle(4-Z))*i);B=A+ab*exp((jbac+angle(4-A))*i);h1=plot(real([Z,A]),imag([Z,A]),'y','linewidth',3,'linestyle','--');%real是实部,imag是虚部画出黄色的连杆h2=plot(real([A,B]),imag([A,B]),'b'
3、,'linewidth',3,'linestyle',':');%画出蓝色的连杆h3=plot(real([B,4]),imag([B,4]),'c','linewidth',3,'linestyle',':');gridon;ga=plot(real([Z,Z]),imag([Z,Z]));set(ga,'color','r');zga=Z;T=title(['time=',num2str(q)]);%num2str是把数值转换成字符串,转换后可以使用fprintf或disp函数进行输出k=1;whilekpause(0.1);q=q+0.1;ifw4、w+1/15;elsek=0;endZ=1.0*exp(i*q);cd=abs(4-Z);ac=sqrt(ab^2+bc^2-2*ab*bc*cos(w));jbac=acos((ab^2+ac^2-bc^2)/(2*ab*ac));jd=acos((ad^2+cd^2-ab^2-bc^2+2*ab*bc*cos(w))/(2*ad*cd));A=Z+ad*exp((jd+angle(4-Z))*i);B=A+ab*exp((jbac+angle(4-A))*i);set(h1,'xdata',real([Z,A]),'ydata',imag([Z,A]));s
5、et(h2,'xdata',real([A,B]),'ydata',imag([A,B]));set(h3,'xdata',real([B,4]),'ydata',imag([B,4]));zga=[zga,Z];set(ga,'xdata',real(zga),'ydata',imag(zga));set(T,'string',['time=',num2str(q)]);end