《机器人学matlab绘制机械臂.doc》由会员分享,可在线阅读,更多相关《机器人学matlab绘制机械臂.doc(4页珍藏版)》请在三一文库上搜索。
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对象的句柄值;打开双缓冲 hold on; %这样就可以在一个图上画多条线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(ab2+bc2-2*ab*bc*cos(w);jbac=acos(
2、ab2+ac2-bc2)/(2*ab*ac);jd=acos(ad2+cd2-ab2-bc2+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,linewidth,3,linestyle,:); %画出蓝色的连杆h3 = plot(real(B,4),ima
3、g(B,4),c,linewidth,3,linestyle,:);grid on;ga = plot(real(Z,Z),imag(Z,Z); set(ga,color,r);zga = Z;T = title(time=,num2str(q); %num2str是把数值转换成字符串,转换后可以使用fprintf或disp函数进行输出k = 1;while kpause(0.1);q = q+ 0.1;if wpiw = w +1/15;else k=0;endZ = 1.0*exp(i*q);cd = abs(4-Z);ac=sqrt(ab2+bc2-2*ab*bc*cos(w);jbac
4、=acos(ab2+ac2-bc2)/(2*ab*ac);jd=acos(ad2+cd2-ab2-bc2+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);set(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