这同样是《机器人技术基础》课程实验中的一个,题目比较开放,只要求对任一坐标形式的机械臂进行研究即可。下面是详细介绍:
一、选定建模对象
选定球坐标机器人--斯坦福机械手臂(参考《机器人学导论》第73页例2,26(续))。
二、D-H法建模分析
建立D-H坐标系如下图:三、Matlab Robotics ToolBox建模分析
3.1、物理建模
%关节定义
% th d a alpha sigma
L(1) = Link([ 0 5 0 -pi/2 0]);
L(2) = Link([ 0 5 0 pi/2 0]);
L(3) = Link([ 0 0 0 0 1]); % PRISMATIC link,
L(4) = Link([ 0 0 0 -pi/2 0]);
L(5) = Link([ 0 0 0 pi/2 0]);
L(6) = Link([ 0 5 0 0 0]);
%关节参数范围限定
L(1).qlim = [-170 170]*pi/180;
L(2).qlim = [-170 170]*pi/180;
L(3).qlim = [5 15];
L(4).qlim = [-170 170]*pi/180;
L(5).qlim = [-90 90]*pi/180;
L(6).qlim = [-170 170]*pi/180;
robot = SerialLink(L, 'name', 'Stanford');%创建机器人
init = [0 0 0 0 0 0];%初始关节参数
%工作区定义
w=[-20,20,-20,20,-20,20];
figure
robot.plot(init,'workspace',w);%画出图像
title('初始状态');
建模结果:
3.2、设定机械手的目标运动位姿,求解运动指标
t = 0:0.5:8;%采样时间
%期望关节参数 第一组
aid0 = [0 -pi/4 10 0 -pi/2 0];
%运动轨迹求解,第一组
[q0,qd0,qdd0]=jtraj(init,aid0,t);%运动指标求解,q为位移,qd为速度,qdd为加速度
aid1 = [-pi/2 pi/4 15 0 pi/2 0];
%运动轨迹求解,第二组
[q1,qd1,qdd1]=jtraj(init,aid1,t);%q为位移,qd为速度,qdd为加速度
由上述语句可以得到机械手在 8s 时间内共 17 组时间点的位移指标(空间规划指标)、速度指标和加速度指标,这里只观察最终的位移指标:
%第一组
Theta0 = q0(17,:)/pi*180;
Theta0(3)= Theta0(3)/180*pi;
Theta0
%第二组
Theta1 = q1(17,:)/pi*180;
Theta1(3)= Theta1(3)/180*pi;
Theta1
运行结果:3.3、正逆运动学分析
%正运动学分析 第一组
T0=robot.fkine(aid0);
T0
%逆运动学分析 第一组
theta0 =robot.ikine(T0);
theta0 = theta0/pi*180;%转换为角度
theta0(3) = theta0(3)/180*pi;%由于第三关节是移动副,所以这里将错乘的转换回来
theta0
%正运动学分析 第二组
T1=robot.fkine(aid1);
T1
%逆运动学分析 第二组
theta1 =robot.ikine(T1);
theta1 = theta1/pi*180;
theta1(3) = theta1(3)/180*pi;
theta1
利用fkine进行正运动学分析得到正运动总变换T:
利用ikine进行逆运动学分析得到各关节未知的参数( θ 或者 d ):
3.4、运动轨迹绘制
录制动图如下:
四、总结
本篇是关于Matlab Robotics ToolBox使用实战的最后一篇,也是工业机器人部分记录的最后一篇。在《机器人技术基础》这一课程中,工业机器人与移动机器人作为两大类分时分老师进行讲解,客观感觉工业机器人这一部分知识点比较系统化,也具有相当的难度,而移动机器人部分正如老师所说,由于尚处于发展阶段,因此并没有形成一个完整的知识系统,因此在课程上给人最大的感受就是云里雾里抓不住重点。之后会对 移动机器人 部分的相关实验进行记录,下次再见啦!