MATLAB机器人工具箱3-及轨迹规划

轨迹规划

机器人轨迹规划分为关节空间轨迹规划和笛卡尔空间轨迹规划

关节空间轨迹规划

关节空间轨迹规划是以关节角的函数来描述轨迹(在时间和空间)的轨迹生成方法。

clc;
clear;

%%轨迹规划的第一步是建立机器人模型,这里建立一个6R机器人
%定义机器人的D-H参数
%  a--连杆长度;alpha--连杆扭角;d--连杆偏距;theta--关节转角
a2=0.4318; a3=0.02032;
d2=0.14909; d4=0.43307;
%            thetai     di      ai-1     alphai-1
L1 = Link([pi/2        0        0           0], 'modified');
L2 = Link([0           d2       0      -pi/2], 'modified');
L3 = Link([-pi/2       0       a2          0], 'modified');
L4 = Link([0           d4      a3     -pi/2], 'modified');
L5 = Link([0            0        0       pi/2], 'modified');
L6 = Link([0            0        0      -pi/2], 'modified');
%连接连杆,为机器人命名
robot=SerialLink([L1 L2 L3 L4 L5 L6], 'name', 'Tuesday');     %另一种命名方式robot.name = 'Tuesday'
%robot.display();
%robot.plot([-pi/2 -pi/2 0 0 0 0]);
%robot.teach();

%%关节空间轨迹规划
%[Q,QD,QDD] = jtraj(Q0, QF,M), 其中Q为关节空间轨迹,QD为关节速度,QDD为加速度;
% Q0为初始关节角度,QF为目标关节角度,时间t假设在M步内从0到1,采用五次多项式
initial_theta = [0 0 0 0 0 0];
target_theta = [0 pi/2 0 pi/3 pi/4 pi/5];
step=50;
[q,qd,qdd] = jtraj(initial_theta, target_theta, step);
robot.plot(q);

figure;
subplot(2,2,1);
i=1:6;
plot(q(:, i));
title('关节位置');

subplot(2,2,2);
i=1:6;
plot(qd(:, i));
title('关节速度');

subplot(2,2,3);
i=1:6;
plot(qdd(:, i));
title('关节加速度');

 

 

笛卡尔空间轨迹规划

%%笛卡尔空间轨迹规划
%TC = ctraj(T0, T1, N),其实T0为初始关节位姿,T1为目标关节位姿。有N个点沿着路径遵循梯形速度剖面
T0 = robot.fkine(initial_theta);
T1 = robot.fkine(target_theta);
TC = ctraj(T0, T1, step);
Tjtraj = transl(TC);
subplot(2,2,4);
plot2(Tjtraj, 'g');
title('T0到T1笛卡尔空间直线轨迹');
grid on;

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值