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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1 在平面上画字母C$ i8 Z5 W% Y# c/ j1 m+ C# @5 }
  • 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). W( K$ j6 y2 {* h1 @% C

* R& {4 p" t, K7 z
3 S/ i) A/ Q  Z7 ]/ Fk=0
  O1 Y1 H3 v( o% |& a* o
  Z1 }' e( Y2 I+ V+ [" l $ Y: {' B; w8 B

' k  }3 }4 o. U0 T' G# c: f$ A6 b5 m+ {9 `* k; K; ^( p
k=1
5 C+ p) A3 B- r+ H* W
' z: D. B( U( X4 Y) X# k
* v# W  u1 f1 \/ ]- |: y
5 e; _5 V6 r6 z' k1 j7 Z  B
" o0 C" L# p+ A2 N- B& Y7 e3 g5 uk=inf/ h. @# W3 n5 z5 ^- A7 b
7 Z& C! B% z+ ?8 ^4 ]! H3 @
2 `0 B5 q3 R! ~: L) E3 t

7 {) z3 H) c; W- y
, I5 V" N4 i! A6 }/ u4 Y1 j2 在球面上画字母E
" z5 a- j( B! b2 a" i; I! n5 `! T" W4 r9 C
  • 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& K" F7 q7 S! N
& A$ }8 p, C! e3 b5 q) ]7 i: H5 Y1 k: P
; @+ }- i; v) u, c! _, ~. i

8 {  K/ G0 ]" I - c" t8 ^0 M* P3 J5 m7 c( T! X* ~  [

该用户从未签到

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-11-24 01:27 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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