基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法

原文地址: https://blog.csdn.net/yaked/article/details/73030668

以实验室的KUKA youBot五自由度机械臂为切入点,记得当时和实验室的同学在这上面花费了好长时间,最后也没搞定,而这又算是基础中的基础,不能忽视。

DH一般分为标准DH和改进的DH,以John J.Craig的《机器人学导论》来说,它的是Modified DH,另一本孙富春翻译的《机器人学导论——分析、控制及应用》则是用的标准DH。通过Peter Corke的那本《Robotics,Vision and Control》(已有中文版)我才知道有这两个。区别很明显DH参数表的下标如果都是一样的则是标准DH,如果有一半不一样则是Modified DH。

这样的

这条臂比较特别的地方在于关节0和关节1之间有个偏置,特别是在于改进DH中的坐标系0和坐标系1的设置很特殊。

1. 标准DH

        标准DH的介绍我是参考的孙富春翻译的《机器人学导论——分析、控制及应用》,后来接触到《Robot Modeling and Control》(已有中文版)也是标准DH。

一个刚体的自由度是6,而为什么标准DH只用四个参数呢?这里其实暗含了一个建立坐标系的原则:垂直和相交,刚好六个限制条件。这在《Robot Modeling and Control》这本书中有详细介绍。垂直相交的意思是说,建立坐标系的时候,后一个坐标系的X要与前一个坐标系的Z垂直且相交。如建立X1的时候需要与Z0垂直相交。

在孙的那本书的P62页,关于DH参数的解释如下图:




我举个例子,例如:


我记的时候就是前一个Z,和后一个的X。如右边括号里的,而这里正是与后文的改进的DH不一样的地方。

KUKA youBot机械臂的DH





   
   
   
   
  1. %kuka youBot
  2. clear;
  3. clc;
  4. close all;
  5. d1= 0.147;
  6. a1= 0.033;
  7. a2= 0.155;
  8. a3= 0.135;
  9. d5= 0.113;
  10. tool = 0.105;
  11. qlim1=[ -169, 169]*pi/ 180;
  12. qlim2=[ -65, 90]*pi/ 180;
  13. qlim3=[ -151, 146]*pi/ 180;
  14. qlim4=[ -102.5, 102.5]*pi/ 180;
  15. qlim5=[ -167.5, 167.5]*pi/ 180;
  16. L( 1) = Link( ‘d’, d1, ‘a’, a1, ‘alpha’, pi/ 2, ‘qlim’,qlim1);
  17. L( 2) = Link( ‘d’, 0, ‘a’, a2, ‘alpha’, 0, ‘qlim’, qlim2, ‘offset’, 1.57);
  18. % L( 2) = Link( ‘d’, 0, ‘a’, a2, ‘alpha’, 0, ‘qlim’, qlim2);
  19. L( 3) = Link( ‘d’, 0, ‘a’, a3, ‘alpha’, 0, ‘qlim’,qlim3);
  20. L( 4) = Link( ‘d’, 0, ‘a’, 0, ‘alpha’, -pi/ 2, ‘qlim’,qlim4, ‘offset’, -1.57);
  21. % L( 4) = Link( ‘d’, 0, ‘a’, 0, ‘alpha’, -pi/ 2, ‘qlim’,qlim4);
  22. L( 5) = Link( ‘d’, d5, ‘a’, 0, ‘alpha’, 0, ‘qlim’,qlim5);
  23. bot = SerialLink(L, ‘name’, ‘KUKA youBot’);
  24. bot.display();
  25. % bot.plot([ 0 0 0 0 0]);
  26. % bot.teach;
  27. %% forward kinematics.
  28. bot.tool= transl( 0, 0, tool);% EEF
  29. bot.fkine([ 0 0 0 0 0]*pi/ 180);
  30. bot.fkine([ 0 0 -90 0 0]*pi/ 180)
  31. bot.fkine([ 0 0 90 0 0]*pi/ 180)

编好以后可以输入一些角度验证一下


如上图中的这个姿态,第三关节转动90°,X为33 + (655 - 302)= 386mm,Z坐标为底座到第三关节长度为302mm与Figure2中显示的一致,说明DH建立没有问题。

2. Modified DH

        改进的DH那就是如John J.Craig的《机器人学导论》上的,它与标准DH的区别在于:标准DH的Link0(大地)和Link1之间为J0。而Modified DH则是Link0上有J0,Link1上有J1,基座为坐标系{0},一般让{0}和{1}重合。

Craig的书中文版P52页


P54页建立坐标系的步骤:




举个例子:


通常都是下标有一半是i -1,类似这样




clc;
clear;
close all;
L(1) = Link([ 0 0.147 0 0 ], ‘modified’ );
L(2) = Link([ 0 0 0.033 pi/2 ], ‘modified’);
L(3) = Link([ 0 0 0.155 0 ], ‘modified’);
L(4) = Link([ 0 0 0.135 0], ‘modified’);
L(5) = Link([ 0 0.218 0 -pi/2], ‘modified’) ;

youbot = SerialLink(L, ‘name’, ‘youbot’);
youbot.display()
youbot.plot([0 0 0 0 0]);

youbot.teach;


相关链接:

  • http://blog.csdn.net/pengjc2001/article/details/70156333 PUMA560机器人的DH建立过程
  • http://blog.sina.com.cn/s/blog_a16714bf0102vae4.html MATLAB计算机器人运动学正解
  • http://www.tekkotsu.org/Kinematics.html DH参数解释



你可能感兴趣的:(机器人学)