大型门户网站建设需要哪些技术,企业名录2021版,网站建设最新,wordpress自定义文章参数笛卡尔空间下的轨迹规划#xff0c;分为直线轨迹规划和圆弧轨迹规划#xff0c;本文为笛卡尔空间下圆弧插值法的matlab仿真分析 目录
1 实验目的
2 实验内容
2.1标准D-H参数法
2.2实验中使用的Matlab函数
3 全部代码
4 仿真结果 1 实验目的
基于机器人学理论知识分为直线轨迹规划和圆弧轨迹规划本文为笛卡尔空间下圆弧插值法的matlab仿真分析 目录
1 实验目的
2 实验内容
2.1标准D-H参数法
2.2实验中使用的Matlab函数
3 全部代码
4 仿真结果 1 实验目的
基于机器人学理论知识利用标准D-H参数法建立关节型机器人的数学模型使用Matlab的Robotics Toolbox工具包搭建模型。
2 实验内容
2.1标准D-H参数法
标准D-H参数法常用于建立关节型机器人的数学模型D-H参数法是一种对连杆的坐标描述而关节机器人本质上就是一系列连杆通过关节连接起来而组成的空间开式运动链。
对于连杆本身其功能在于保持其两端的关节轴线具有固定的几何关系连杆的特性由轴线决定通常用四个连杆参数来描述连杆长度连杆扭转角连杆偏移量和关节角。 2.2实验中使用的Matlab函数
Link函数
用于定义六轴机器人的一个轴。 包含了机器人的运动学参数、动力学参数、刚体惯性矩参数、电机和传动参数 可采用DH法建立模型,其中包含参数关节转角关节距离连杆长度连杆转角关节类型0转动1移动。
% 定义六轴机器人的一个轴
L(1) Link([theta1, D1, A1, alpha1, offset1], standard)
SerialLink函数
用于构建机械臂。 它的类函数比较多包括显示机器人、动力学、逆动力学、雅可比等
% six为机械臂名称
robot SerialLink(L,name,six);
fkine正解函数
用于求解出末端位姿p。
theta [0.1,0,0,0,0,0]; %指定的关节角
probot.fkine(theta) %fkine正解函数根据关节角theta求解出末端位姿p
ikine逆解函数
用于求解出关节角q。
qikine(robot,p) %ikine逆解函数根据末端位姿p求解出关节角q
轨迹规划
1jtraj 已知初始和终止的关节角度利用五次多项式来规划轨迹
T1transl(0.5,0,0); %根据给定起始点得到起始点位姿
T2transl(0,0.5,0); %根据给定终止点得到终止点位姿
init_angrobot2.ikine(T1);%根据起始点位姿得到起始点关节角
targ_angrobot2.ikine(T2);%根据终止点位姿得到终止点关节角
step 20;
[q ,qd, qdd]jtraj(init_ang,targ_ang,step); %五次多项式轨迹得到关节角度角速度角加速度50为采样点个数
2ctraj 已知初始和终止的末端关节位姿利用匀加速、匀减速运动来规划轨迹。
T0 robot2.fkine(init_ang);%运动学正解
T1 robot2.fkine(targ_ang);%运动学正解
Tc ctraj(T0,T1,step); %得到每一步的T阵
tt transl(Tc);
3 全部代码
%% MATLAB素质三连https://www.guyuehome.com/34853
clear;
close all;
clc;
%% 实验一 基于MATLAB的关节型六轴机械臂仿真%% 参数定义
%机械臂为六自由度机械臂
clear L;%角度转换
anglepi/180; %度%D-H参数表
theta1 -pi/2; D1 89.2; A1 0; alpha1 -pi/2; offset1 0;
theta2 0; D2 0; A2 425; alpha2 0; offset2 0;
theta3 0; D3 0; A3 392; alpha3 0; offset3 0;
theta4 pi/2; D4 109.3; A4 0; alpha4 pi/2; offset4 0;
theta5 -pi/2; D5 94.75; A5 0; alpha5 -pi/2; offset5 0;
theta6 0; D6 82.5; A6 0; alpha6 0; offset6 0;%% DH法建立模型,关节转角关节距离连杆长度连杆转角关节类型0转动1移动L(1) Link([theta1, D1, A1, alpha1, offset1], standard)
L(2) Link([theta2, D2, A2, alpha2, offset2], standard)
L(3) Link([theta3, D3, A3, alpha3, offset3], standard)
L(4) Link([theta4, D4, A4, alpha4, offset4], standard)
L(5) Link([theta5, D5, A5, alpha5, offset5], standard)
L(6) Link([theta6, D6, A6, alpha6, offset6], standard)% 定义关节范围
L(1).qlim [-180*angle, 180*angle];
L(2).qlim [-180*angle, 180*angle];
L(3).qlim [-180*angle, 180*angle];
L(4).qlim [-180*angle, 180*angle];
L(5).qlim [-180*angle, 180*angle];
L(6).qlim [-180*angle, 180*angle];%% 显示机械臂
robot0 SerialLink(L,name,ur5);
f 1 %画在第1张图上
theta [0 pi/2 0 0 pi 0]; %初始关节角度
figure(f)
robot0.plot(theta);
title(六轴机械臂模型);
%% 加入teach指令则可调整各个关节角度
robot1 SerialLink(L,name,ur5);
f 2
figure(f)
robot1.plot(theta);
robot1.teach
title(六轴机械臂模型可调节);
%% 实验二 基于MATLAB的六轴机械臂轨迹规划仿真%% 2.2求解运动学正解
robot2 SerialLink(L,name,ur5);
theta2 [0.1,0,0,0,0,0]; %实验二指定的关节角
probot2.fkine(theta2) %fkine正解函数根据关节角theta求解出末端位姿p
qikine(robot2,p) %ikine逆解函数根据末端位姿p求解出关节角q
robot2.plot(q,movie,circleCHAZHI.gif);%保存
%% 2.3 jtraj 已知初始和终止的关节角度利用五次多项式来规划轨迹
% T1transl(0.5,0,0); %根据给定起始点得到起始点位姿
% T2transl(0,0.5,0); %根据给定终止点得到终止点位姿
T1transl(400,-500,0); %根据给定起始点得到起始点位姿
T2transl(0,400,600); %根据给定终止点得到终止点位姿
init_angrobot2.ikine(T1); %根据起始点位姿得到起始点关节角
targ_angrobot2.ikine(T2); %根据终止点位姿得到终止点关节角
step 20;
f 3%轨迹规划方法
figure(f)
[q ,qd, qdd]jtraj(init_ang,targ_ang,step); %五次多项式轨迹得到关节角度角速度角加速度50为采样点个数
grid on
Trobot2.fkine(q); %根据插值得到末端执行器位姿
nTT.T;
plot3(squeeze(nT(1,4,:)),squeeze(nT(2,4,:)),squeeze(nT(3,4,:)),LineWidth,2);%输出末端轨迹
title(输出末端轨迹);
robot2.plot(q); %动画演示 %% 求解位置、速度、加速度变化曲线
f 4
figure(f)
subplot(3,2,[1,3]); %subplot 对画面分区 三行两列 占用1到3的位置
plot3(squeeze(nT(1,4,:)),squeeze(nT(2,4,:)),squeeze(nT(3,4,:)));%输出末端轨迹
robot2.plot(q); %动画演示figure(f)
subplot(3, 2, 2);
i 1:6;
plot(q(:,1));
title(位置);
grid on;figure(f)
subplot(3, 2, 4);
i 1:6;
plot(qd(:,1));
title(速度);
grid on;figure(f)
subplot(3, 2, 6);
i 1:6;
plot(qdd(:,1));
title(加速度);
grid on;t robot2.fkine(q); %运动学正解
rpytr2rpy(t); %t中提取位置xyz
figure(f)
subplot(3,2,5);
plot2(rpy);%% ctraj规划轨迹 考虑末端执行器在两个笛卡尔位姿之间移动
f 5
T0 robot2.fkine(init_ang); %运动学正解
T1 robot2.fkine(targ_ang); %运动学正解Tc ctraj(T0,T1,step); %得到每一步的T阵tt transl(Tc);
figure(f)
plot2(tt,r);
title(直线轨迹);4 仿真结果 转载于基于MATLAB的关节型六轴机械臂轨迹规划仿真2021实测完整代码 - 古月居基于MATLAB的关节型六轴机械臂轨迹规划仿真2021实测完整代码https://www.guyuehome.com/34853