找回密码
 注册
关于网站域名变更的通知
查看: 724|回复: 3
打印 上一主题 下一主题

MATLAB机器人工具箱实现6轴机械臂在球和平面画字母

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-7-19 10:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1 在平面上画字母C
. g* u  P+ Q) E0 n9 W; [6 x& a
  • 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)
    % Y5 S) a$ H2 {& M; B3 ]- }  I
- H9 j8 k( v5 d  F0 ^3 z

, e1 w  {% I6 p; v# O' \$ Z0 C% }k=0
6 Z8 k: X7 e' x2 D
$ [+ H9 `% {8 f! B, X4 S% S! J1 d% ?$ H . x3 V) q' v, K: q. h' N1 m
6 F0 d2 L  z( y6 Q: N3 z& B

+ q8 J) R- I9 V. f' x/ Xk=1
8 q- I* M, c  X3 c2 h4 u, ?/ Q/ l* Y  P& q( _; Q" y! g/ z% |
( o. ^6 T* Z) }5 ?2 B
: W, z/ H: w8 v8 o" c" y' N: o
( ?) x, s5 y$ ?* j) `
k=inf0 y0 ]% _0 E+ n- f. t7 R+ s
& R0 b! F+ r  c5 Y
3 o9 l0 Z- ?3 u) k

/ D9 x2 V  z3 ?& \: r$ o" J! {- J2 K; E1 G
2 在球面上画字母E* m6 p" y  ^& a  i; t# r

* J& @. e2 p& k) f6 G$ `& P+ {* S
  • 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); r  q3 o: E) V- I5 c- u
+ H9 j7 K: X$ o+ H
# }& M6 T+ O" Z+ R5 M5 V0 C  c* P
( ~& ]. d$ C0 N: B4 i0 J
+ r9 Z; R( e% a

该用户从未签到

2#
发表于 2021-7-19 11:20 | 只看该作者
MATLAB机器人工具箱实现6轴机械臂在球和平面画字母

该用户从未签到

3#
发表于 2021-7-19 11:20 | 只看该作者
MATLAB机器人工具箱实现6轴机械臂在球和平面画字母
  • TA的每日心情
    擦汗
    2019-11-19 15:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-7-19 11:20 | 只看该作者
    MATLAB机器人工具箱实现6轴机械臂在球和平面画字母
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-29 02:04 , Processed in 0.171875 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表