Matlab Robotics ToolBox 实战 -- 斯坦福机械手运动学建模及分析
这同样是《机器人技术基础》课程实验中的一个,题目比较开放,只要求对任一坐标形式的机械臂进行研究即可。下面是详细介绍:
一、选定建模对象
选定球坐标机器人--斯坦福机械手臂(参考《机器人学导论》第73页例2,26(续))。
二、D-H法建模分析
建立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使用实战的最后一篇,也是工业机器人部分记录的最后一篇。在《机器人技术基础》这一课程中,工业机器人与移动机器人作为两大类分时分老师进行讲解,客观感觉工业机器人这一部分知识点比较系统化,也具有相当的难度,而移动机器人部分正如老师所说,由于尚处于发展阶段,因此并没有形成一个完整的知识系统,因此在课程上给人最大的感受就是云里雾里抓不住重点。之后会对 移动机器人 部分的相关实验进行记录,下次再见啦!