您好!欢迎光临工博士智能制造网!平台热线:021-80392549
工博士机器人网
kuka库卡机器人服务商
产品:43  浏览:41834
4
您当前的位置:首页 » 新闻中心 » 库卡机器人-利用Matlab实现KUKA机器人正运动学
产品分类
新闻中心
库卡机器人-利用Matlab实现KUKA机器人正运动学
发布时间:2022-01-04        浏览次数:37        返回列表

clc;

clear;

close all;

%% KR 21O R2700 extra DH Table:

alpha=[-90,0,-90,90,-90,0];

a=[350,1150,-41,0,0,0];

d=[675,0,0,1200,0,215];

B=[0,-90,90,0,0,0];

A(1)=-B(1);

A(2)=B(2);

A(3)=B(3)-90;

A(4)=-B(4);

A(5)=B(5);

A(6)=-B(6)+180;


B1=[10,-100,100,20,30,40];

B2=[20,-110,110,30,40,50];

B3=[35,-125,115,45,55,65];

%% SDH

K01=SDH(alpha(1),a(1),A(1),d(1));

K12=SDH(alpha(2),a(2),A(2),d(2));

K23=SDH(alpha(3),a(3),A(3),d(3));

K34=SDH(alpha(4),a(4),A(4),d(4));

K45=SDH(alpha(5),a(5),A(5),d(5));

K56=SDH(alpha(6),a(6),A(6),d(6));

K=K01*K12*K23*K34*K45*K56;

%%正运动学

Pos1=KUKA_FK(B);

Pos2=KUKA_FK(B1);

Pos3=KUKA_FK(B2);

Pos4=KUKA_FK(B3);


%% Function for DH tranformation

function T=MDH(alpha,a,theta,d)

% alpha : rotate along X  in deg

% a: linear move in X

% theta: rotae along Z in deg

% d:linear move Z

T=trotx(alpha)*transl(a,0,0)*trotz(theta)*transl(0,0,d);

end

function T=SDH(alpha,a,theta,d)

% alpha : rotate along X  in deg

% a: linear move in X

% theta: rotae along Z in deg

% d:linear move Z

T=trotz(theta)*transl(0,0,d)*transl(a,0,0)*trotx(alpha);

end

function POS=KUKA_FK(Axis)

%% DH 参数

alpha=[-90,0,-90,90,-90,0];

a=[350,1150,-41,0,0,0];

d=[675,0,0,1200,0,215];

A(1)=-Axis(1);

A(2)=Axis(2);

A(3)=Axis(3)-90;

A(4)=-Axis(4);

A(5)=Axis(5);

A(6)=-Axis(6)+180;

%% 计算各frame

T01=SDH(alpha(1),a(1),A(1),d(1));

T12=SDH(alpha(2),a(2),A(2),d(2));

T23=SDH(alpha(3),a(3),A(3),d(3));

T34=SDH(alpha(4),a(4),A(4),d(4));

T45=SDH(alpha(5),a(5),A(5),d(5));

T56=SDH(alpha(6),a(6),A(6),d(6));

T=T01*T12*T23*T34*T45*T56;

%% 转换机器人格式数据

T15=T12*T23*T34*T45;

XYZ=transl(T);

ABC=rad2deg(rotm2eul(T(1:3,1:3)));

Bit0=(T15(1,4)<0);

Bit1=Axis(3)>rad2deg(atan2(T45(2,4),T45(1,4)));

Bit2=(Axis(5)>=-180 &Axis(5)<=0)|(Axis(5)>=180);

Status=Bit0*1+Bit1*2+Bit2*4;

for i=1:6

   turn(i)=Axis(i)<=0;

end

Turn=turn(1)*1+turn(2)*2+turn(3)*4+turn(4)*8+turn(5)*16+turn(6)*32

POS=transpose([transpose(XYZ)  ABC Status Turn]);

end


咨询详情:KUKA库卡机器人


 

联系热线:18684910472(微信同号) 联系人:刘爱芝 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六 8:00-22:00 kuka库卡机器人服务商