当前位置:   article > 正文

matlab的ctraj,Matlab 机器人工具箱 轨迹生成----jtraj ctraj

ctraj

% [q,qd,qdd] = jtraj(q0,qf,m); %利用五次多项式规划轨迹

% tc = ctraj(T0,T1,n);         %利用匀加速匀减速规划轨迹

%机器人建模

L1 = Link('d',0,'a',0,'alpha',pi/2);

L2 = Link('d',0,'a',0.5,'alpha',0,'offset',pi/2);

L3 = Link('d',0,'a',0,'alpha',pi/2,'offset',pi/4);

L4 = Link('d',1,'a',0,'alpha',-pi/2);

L5 = Link('d',0,'a',0,'alpha',pi/2);

L6 = Link('d',1,'a',0,'alpha',0);

%机器人搭建与命名

robot = SerialLink([L1,L2,L3,L4,L5,L6]);

robot.name = '球形腕关节的拟人臂';

robot.manuf = 'qiangbaa';

%******************%

%      jtraj       %

%******************%

%轨迹规划参数设置

init_ang = [0 0 0 0 0 0];

targ_ang = [pi/4, -pi/3, pi/5, pi/2, -pi/4, pi/6];

step = 50;

%轨迹规划方法

[q,qd,qdd] = jtraj(init_ang,targ_ang,step);                                %直接得到角度、角速度、角加速度的的序列

%动画显示

subplot(3,2,[1,3]); %subplot 对画面分区,【1.3】占用1 3的位置,3.2三行两列

robot.plot(q);

%显示位置、速度、加速度变化曲线

subplot(3, 2, 2);

i = 1:6;

plot(q(:,1));

title('位置');

grid on;

subplot(3, 2, 4);

i = 1:6;

plot(qd(:,1));

title('速度');

grid on;

subplot(3, 2, 6);

i = 1:6;

plot(qdd(:,1));

title('加速度');

grid on;

t = robot.fkine(q);%运动学正解

rpy=tr2rpy(t);     %t中提取位置(xyz)

subplot(3,2,5);

plot2(rpy);

fa3ef10533e71b614d57b0534b0b3e02.png

%******************%

%      ctraj       %

%******************%

%参数设置

T0 = robot.fkine(init_ang);%运动学正解

T1 = robot.fkine(targ_ang);%运动学正解

Tc = ctraj(T0,T1,step);                                                    %得到每一步的T阵

tt = transl(Tc);

plot2(tt,'r');

title('T0-T1直线轨迹');

grid on;

4794f1808b1499d08411119122f5365f.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/566902
推荐阅读
相关标签
  

闽ICP备14008679号