基于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。
这样的基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——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参数的解释如下图:


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


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


我举个例子,例如:
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片


我记的时候就是前一个Z,和后一个的X。如右边括号里的,而这里正是与后文的改进的DH不一样的地方。
【基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法】KUKA youBot机械臂的DH
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片


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


基于MATLAB机器人工具箱的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)

编好以后可以输入一些角度验证一下
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片


如上图中的这个姿态,第三关节转动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页

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


P54页建立坐标系的步骤:
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片


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


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


举个例子:
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片


通常都是下标有一半是i -1,类似这样
基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片


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


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


clc;
clear;
close all;
L(1) = Link([ 00.14700 ],‘modified’ );
L(2) = Link([ 000.033 pi/2],‘modified’);
L(3) = Link([ 0 0 0.1550],‘modified’);
L(4) = Link([ 00 0.135 0],‘modified’);
L(5) = Link([ 00.218 0 -pi/2],‘modified’) ;

youbot = SerialLink(L, ‘name’, ‘youbot’);
youbot.display()
youbot.plot([0 0 0 0 0]);
youbot.teach; 基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
文章图片




相关链接:

  • 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参数解释




    推荐阅读