我是靠谱客的博主 霸气小熊猫,最近开发中收集的这篇文章主要介绍MATLAB机器人工具箱实现6轴机械臂在球和平面画字母1 在平面上画字母C2 在球面上画字母E,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
关注微信公众号二进制人工智能并回复robot,获取MATLAB机器人工具箱
1 在平面上画字母C
mdl_puma560
aplha=pi/4:pi/40:2*pi-pi/4;
k=inf; % 斜面斜率k
r=1;
letterShrink=0.2; %缩放倍数
letterTranslX=0.4; % 沿X平移量
letterTranslY=0; % 沿Y平移量
letterTranslZ=0; % 沿Z平移量
if k==inf % 垂直平面
z=r*cos(aplha);
x= diag(zeros(length(z)));
y=r*sin(aplha);
path=[diag(zeros(length(y))),y',z'];
path=[path(1,:)+0.5*[-1,0,0];path;path(end,:)+0.5*[-1,0,0]]; % 垂直平面上的C
y=-0.5:0.1:0.5;
z=-0.5:0.1:0.5;
[Y, Z] = meshgrid(y, z);
X=ones(size(Y))*letterTranslX;
mesh(X,Y,Z)
hold on
initPoint=path(1,:)+0.5*[-1,0,0];
else
x=r*cos(aplha);
y=r*sin(aplha);
z=k*x;
path=[x',y',z'];
path=[path(1,:)+0.5*[-k,0,1];path;path(end,:)+0.5*[-k,0,1]]; % 斜率为k的斜面上的C
x=0:0.1:1;
y=-0.5:0.1:0.5;
[X,Y]=meshgrid(x,y);
z=k*(X-letterTranslX);
mesh(X,Y,z)
hold on
initPoint=path(1,:)+0.5*[-k,0,1];
end
plot3(letterShrink*path(:,1)+letterTranslX,letterShrink*path(:,2)...
+letterTranslY,letterShrink*path(:,3)++letterTranslZ,'color','k','LineWidth',1)
p=mstraj(path,[0.8,0.8,0.6],[],initPoint,0.4,0.1);
Tp=transl(letterShrink*p);
Tp=homtrans(transl(letterTranslX, letterTranslY, letterTranslZ),Tp);
p560.tool=transl([0,0,0.2])*trotx(pi);
q=p560.ikine6s(Tp);
p560.plot(q)
k=0
k=1
k=inf
2 在球面上画字母E
clc;
clear
close all
mdl_puma560
letterShrink=0.2; %缩放倍数
letterTranslX=0.4; % 沿X平移量
letterTranslY=0; % 沿Y平移量
letterTranslZ=-1; % 沿Z平移量
r=0.3;
[x y z]=sphere(50);
mesh(r*x+letterTranslX,r*y+letterTranslY,r*z+letterTranslZ);%绘制半径为2的球
hold on
path=[1,-1,1,;1,-1,0;1,-1,0;0,-1,0;0,1,0;1,1,0;1,1,1;0,0,1;0,0,0;1,0,0;1,0,1]*letterShrink;
initPoint=path(1,:);
path=mstraj(path,[0.5,0.5,0.3],[],initPoint,0.1,0.2);
[m,n]=size(path);
x1=path(:,1);
y1=path(:,2);
indexDraw=(path(:,3)==letterTranslZ);
indexNotDraw=(path(:,3)~=letterTranslZ);
path(indexDraw,3)=sqrt(r^2-(x1(indexDraw)).^2-(y1(indexDraw)).^2);
path(indexNotDraw,3)=path(indexNotDraw,3)+sqrt(r^2-(x1(indexNotDraw)).^2-(y1(indexNotDraw)).^2);
for i=1:m
path(i,:)= path(i,:)+[letterTranslX,letterTranslY,letterTranslZ];
end
plot3(path(:,1),path(:,2),path(:,3),'color','k','LineWidth',2)
rotate3d on
p560.tool=transl([0,0,0.5])*trotx(pi);
Tp=transl(path);
q=p560.ikine6s(Tp);
p560.plot(q)
最后
以上就是霸气小熊猫为你收集整理的MATLAB机器人工具箱实现6轴机械臂在球和平面画字母1 在平面上画字母C2 在球面上画字母E的全部内容,希望文章能够帮你解决MATLAB机器人工具箱实现6轴机械臂在球和平面画字母1 在平面上画字母C2 在球面上画字母E所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复