基于MATLAB的关节型六轴机械臂轨迹规划仿真
1 实验目的
基于机器人学理论知识,利用标准D-H参数法建立关节型机器人的数学模型,使用Matlab的Robotics Toolbox工具包搭建模型。
tip:实验工具:Matlab R2021a (有很多玄学问题是因为软件版本)
以及注意先安装Robotics Toolbox工具包!!
2 实验内容
2.1标准D-H参数法
标准D-H参数法常用于建立关节型机器人的数学模型,D-H参数法是一种对连杆的坐标描述,而关节机器人本质上就是一系列连杆通过关节连接起来而组成的空间开式运动链。
对于连杆本身,其功能在于保持其两端的关节轴线具有固定的几何关系,连杆的特性由轴线决定,通常用四个连杆参数来描述,连杆长度,连杆扭转角,连杆偏移量和关节角。
本实验给定的参数表:
序号 | Theta: 关节转角 | D:关节距离 | A:连杆长度 | Alpha:连杆扭角 | Offset:偏移 |
---|---|---|---|---|---|
1 | 0 | 0.4 | 0.25 | pi/2 | 0 |
2 | pi/2 | 0 | 0.56 | 0 | 0 |
3 | 0 | 0 | 0.035 | pi/2 | 0 |
4 | 0 | 0.515 | 0 | pi/2 | 0 |
5 | pi | 0 | 0 | pi/2 | 0 |
6 | 0 | 0.08 | 0 | 0 | 0 |
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]; %指定的关节角
p=robot.fkine(theta) %fkine正解函数,根据关节角theta,求解出末端位姿p
ikine逆解函数
用于求解出关节角q。
q=ikine(robot,p) %ikine逆解函数,根据末端位姿p,求解出关节角q
轨迹规划
(1)jtraj
已知初始和终止的关节角度,利用五次多项式来规划轨迹;
T1=transl(0.5,0,0); %根据给定起始点,得到起始点位姿
T2=transl(0,0.5,0); %根据给定终止点,得到终止点位姿
init_ang=robot2.ikine(T1);%根据起始点位姿,得到起始点关节角
targ_ang=robot2.ikine(T2);%根据终止点位姿,得到终止点关节角
step = 20;
[q ,qd, qdd]=jtraj(init_ang,targ_ang,step); %五次多项式轨迹,得到关节角度,角速度,角加速度,50为采样点个数
(2)ctraj
已知初始和终止的末端关节位姿,利用匀加速、匀减速运动来规划轨迹。
T0 = robot2.fkine(init_ang);%运动学正解
T1 = robot2.fkine(targ_ang);%运动学正解
Tc = ctraj(T0,T1,step); %得到每一步的T阵
tt = transl(Tc);
3实验结果