基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
来源:互联网 发布:p图软件大全 编辑:程序博客网 时间:2024/05/02 00:36
以实验室的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
%kuka youBot clear;clc;close all;d1=0.147;a1=0.033;a2=0.155;a3=0.135;d5=0.113;tool = 0.105;qlim1=[-169,169]*pi/180;qlim2=[-65,90]*pi/180;qlim3=[-151,146]*pi/180;qlim4=[-102.5,102.5]*pi/180;qlim5=[-167.5,167.5]*pi/180; L(1) = Link('d', d1, 'a', a1, 'alpha', pi/2, 'qlim',qlim1); L(2) = Link('d', 0, 'a', a2, 'alpha', 0, 'qlim', qlim2, 'offset', 1.57);% L(2) = Link('d', 0, 'a', a2, 'alpha', 0, 'qlim', qlim2); L(3) = Link('d', 0, 'a', a3, 'alpha', 0,'qlim',qlim3); L(4) = Link('d', 0, 'a', 0, 'alpha', -pi/2,'qlim',qlim4, 'offset', -1.57);% L(4) = Link('d', 0, 'a', 0, 'alpha', -pi/2,'qlim',qlim4); L(5) = Link('d', d5, 'a', 0, 'alpha', 0,'qlim',qlim5); bot = SerialLink(L,'name','KUKA youBot'); bot.display(); % bot.plot([0 0 0 0 0]);% bot.teach; %% forward kinematics. bot.tool= transl(0, 0, tool);% EEF bot.fkine([0 0 0 0 0]*pi/180);bot.fkine([0 0 -90 0 0]*pi/180)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计算机器人运动学正解
- 基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
- Actionlib 与KUKA youbot机械臂
- Matlab——KUKA机器人
- 用ROS控制KUKA youbot 的5自由度机械臂和夹子
- 给KUKA youbot机械臂添加dynamic reconfig
- KUKA youbot机械臂与Moveit工具包(1)
- KUKA youbot机械臂与Moveit工具包(2)
- KUKA youbot机械臂与Moveit工具包(3)
- ros下如何单独操作kuka-youbot机械臂
- DH参数法建立机器人的运动学正解
- (学习笔记)matlab机器人工具箱攻略——矩阵变换,运动学
- 利用rqt_plot与matlab分析KUKA youbot 的joint_states信息
- 在qt下编写基于KUKA youbot API的程序
- 机械臂(1)——机器人工具箱的获取安装
- 1、matlab机器人运动学计算
- MatLab建模学习笔记3——MatLab工具箱
- KUKA youBot在ROS下的驱动问题
- 基于Mathematica的机器人仿真环境(机械臂篇)
- CN200 1.8下片冲孔卡上模维修事例
- 一元二次方程求根公式推导过程
- 数值算法
- 对adult数据集建立朴素贝叶斯模型评估并可视化(awk+hive+java+mysql+echarts)
- 526. Beautiful Arrangement
- 基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
- PHP操作mysql数据库分表的方法
- 数组遍历
- 来简单地数个数 思路+代码
- R语言使用层次聚类处理数据
- 实现在窗体内移动鼠标时,能够实时显示鼠标指针的位置
- Dagger2与AndroidInjector
- oracle导出的数据DMP,导入到其他机器上的oracle数据库里
- 来简单地数个数(斐波那契额数列)