DH参数法建立机器人的运动学正解

运用DH参数法时坐标系建立的两个约定:

(1)x_i与z_(i-1)垂直

(2)x_i与z_(i-1)相交

坐标系i与坐标系i-1的其次变换矩阵为:

a为两z轴的距离,d为两x轴的距离。

alpha与theta的正方向约定为:

下面举三个例子:

a、平面二自由度机器人

clear;
clc;
syms theta1 alpha1 a1 d1 theta2 alpha2 a2 d2 a b theta d;
A1=[cos(theta1),-sin(theta1)*cos(alpha1),sin(theta1)*sin(alpha1),a1*cos(theta1);...
    sin(theta1),cos(theta1)*cos(alpha1),-cos(theta1)*sin(alpha1),a1*sin(theta1);...
    0,sin(alpha1),cos(alpha1),d1;...
    0,0,0,1];
A2=[cos(theta2),-sin(theta2)*cos(alpha2),sin(theta2)*sin(alpha2),a2*cos(theta2);...
    sin(theta2),cos(theta2)*cos(alpha2),-cos(theta2)*sin(alpha2),a2*sin(theta2);...
    0,sin(alpha2),cos(alpha2),d2;...
    0,0,0,1];

L=sqrt(a^2+b^2);
beta=atan(b/a);

a1=L;
alpha1=sym(0);
d1=sym(0);
theta1=theta;

a2=d;
alpha2=sym(0);
d2=sym(0);
theta2=-beta;

T=eval_r(A1*A2)

求得运动学正解为:

b、平面三自由度机器人


clear;
clc;
syms theta1 alpha1 a1 d1 theta2 alpha2 a2 d2 theta3 alpha3 a3 d3 d;
A1=[cos(theta1),-sin(theta1)*cos(alpha1),sin(theta1)*sin(alpha1),a1*cos(theta1);...
    sin(theta1),cos(theta1)*cos(alpha1),-cos(theta1)*sin(alpha1),a1*sin(theta1);...
    0,sin(alpha1),cos(alpha1),d1;...
    0,0,0,1];
A2=[cos(theta2),-sin(theta2)*cos(alpha2),sin(theta2)*sin(alpha2),a2*cos(theta2);...
    sin(theta2),cos(theta2)*cos(alpha2),-cos(theta2)*sin(alpha2),a2*sin(theta2);...
    0,sin(alpha2),cos(alpha2),d2;...
    0,0,0,1];
A3=[cos(theta3),-sin(theta3)*cos(alpha3),sin(theta3)*sin(alpha3),a3*cos(theta3);...
    sin(theta3),cos(theta3)*cos(alpha3),-cos(theta3)*sin(alpha3),a3*sin(theta3);...
    0,sin(alpha3),cos(alpha3),d3;...
    0,0,0,1];

alpha1=sym(0);
d1=sym(0);

a2=d;
alpha2=sym(0);
d2=sym(0);
theta2=sym(0);

alpha3=sym(0);
d3=sym(0);
theta3=-theta3;

T=eval_r(A1*A2*A3)

求得运动学正解为:

c、六自由度机器人



clear;
clc;
syms theta1 alpha1 a1 d1 theta2 alpha2 a2 d2 theta3 alpha3 a3 d3 ...
    theta4 alpha4 a4 d4 theta5 alpha5 a5 d5 theta6 alpha6 a6 d6;
A1=[cos(theta1),-sin(theta1)*cos(alpha1),sin(theta1)*sin(alpha1),a1*cos(theta1);...
    sin(theta1),cos(theta1)*cos(alpha1),-cos(theta1)*sin(alpha1),a1*sin(theta1);...
    0,sin(alpha1),cos(alpha1),d1;...
    0,0,0,1];
A2=[cos(theta2),-sin(theta2)*cos(alpha2),sin(theta2)*sin(alpha2),a2*cos(theta2);...
    sin(theta2),cos(theta2)*cos(alpha2),-cos(theta2)*sin(alpha2),a2*sin(theta2);...
    0,sin(alpha2),cos(alpha2),d2;...
    0,0,0,1];
A3=[cos(theta3),-sin(theta3)*cos(alpha3),sin(theta3)*sin(alpha3),a3*cos(theta3);...
    sin(theta3),cos(theta3)*cos(alpha3),-cos(theta3)*sin(alpha3),a3*sin(theta3);...
    0,sin(alpha3),cos(alpha3),d3;...
    0,0,0,1];
A4=[cos(theta4),-sin(theta4)*cos(alpha4),sin(theta4)*sin(alpha4),a4*cos(theta4);...
    sin(theta4),cos(theta4)*cos(alpha4),-cos(theta4)*sin(alpha4),a4*sin(theta4);...
    0,sin(alpha4),cos(alpha4),d4;...
    0,0,0,1];
A5=[cos(theta5),-sin(theta5)*cos(alpha5),sin(theta5)*sin(alpha5),a5*cos(theta5);...
    sin(theta5),cos(theta5)*cos(alpha5),-cos(theta5)*sin(alpha5),a5*sin(theta5);...
    0,sin(alpha5),cos(alpha5),d5;...
    0,0,0,1];
A6=[cos(theta6),-sin(theta6)*cos(alpha6),sin(theta6)*sin(alpha6),a6*cos(theta6);...
    sin(theta6),cos(theta6)*cos(alpha6),-cos(theta6)*sin(alpha6),a6*sin(theta6);...
    0,sin(alpha6),cos(alpha6),d6;...
    0,0,0,1];

a1=sym(0);
alpha1=sym(-pi/2);

alpha2=sym(0);
d2=sym(0);

a3=sym(0);
alpha3=sym(-pi/2);
d3=sym(0);

a4=sym(0);
alpha4=sym(-pi/2);
d4=sym(0);

a5=sym(0);
alpha5=sym(pi/2);
d5=sym(0);

a6=sym(0);
alpha6=sym(0);

T=simplify(eval_r(A1*A2*A3*A4*A5*A6))


注:以上的eval_r为eval(不知道为什么,保存后“eval”就变成“eval_r”了)

from:http://blog.sina.com.cn/u/2707887295

DH参数法建立机器人的运动学正解相关推荐

  1. 【Matlab 六自由度机器人】运动学正解(附MATLAB机器人正解完整代码)

    [Matlab 六自由度机器人]求运动学正解 往期回顾 前言 正文 一.运动学正解 1. 齐次变换矩阵 2. 总变换 二.代码实现 1. 定义各连杆参数 2. 齐次变换矩阵及总变换 3. 代码运行结果 ...

  2. 六轴机器人运动学正解

    关于机器人运动学正解网上和机器人相关书籍上都是通过建立连杆坐标系和DH参数推导出来的,推导过程比较繁琐,本人不是从事机器人专业,我在推导机器人运动学正解的时候还不知道有DH参数一说,我的算法原理是运用 ...

  3. 机器人学D-H参数的建立(改进型与标准型)包括第0杆与第i杆的建立规则,以及针对同一个机械臂采用两种方法的区分

    -改进的dh参数法- 上图是当zi与zi-1垂直时,z,x坐标取向不同所得到的theta不同(始终是以xi-1为大拇指指向,四指由zi-1转向zi,也就是右手螺旋定则,来判断theta的正负) 标准型 ...

  4. 在D-H参数法里为什么只用四个参数就能完全定义一个具有6自由度的坐标系

    在一个三维空间里,我们知道要表征一个完全自由的坐标系共需要6个自由度: 三个用来表征姿态(orientation)roll-pitch-yaw 三个用来表征位置(position) x-y-z 如此来 ...

  5. 有关并联绳驱机器人运动学正解反解的学习(新手)

    有关并联绳驱机器人运动学正解反解的学习 Preface(complain) Perface(start) Advantages of parallel robot Disdvantages of pa ...

  6. Delta机器人:运动学正反解分析

    Delta机器人:运动学正反解分析 一.Delta机构简介 Delta机构是并联机构中的一种典型机构,起原始结构如图1所示.Delta机构由R.Clavel 博士在 1985年发明,是现在并联机器人中 ...

  7. 仿斯坦福四足机器人的运动学逆解

    1 引言   仿斯坦福四足机器人的软件流程如下图所示.其中运动学逆解直接输出给舵机,控制机器人的运动,因此运动学逆解很重要. 2 基本概念 2.1机械结构模型   对于8自由度机器人,其机械结构模型如 ...

  8. 六轴机器人matlab写运动学正解函数(DH模型)

    1.分两个程序①主函数②function函数 2.main clear; clc; %建立机器人模型 % theta d a alpha offset SL1=Link([0 0 0.180 -pi/ ...

  9. 六轴机器人matlab写运动学正解函数(改进DH模型)

    1.分两个程序①主函数②function函数 2.main clear; clc; %建立机器人模型 % theta d a alpha offset ML1=Link([0 0 0 0 0 ],'m ...

最新文章

  1. JavaScript语言基础6
  2. 02.v-cli快速搭建
  3. git revert 用法
  4. 最大信息熵增益_机器学习笔记(三)——搞懂决策树必备的信息增益
  5. python求不规则图形面积_python 微积分之---黎曼和
  6. Java黑皮书课后题第6章:*6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数…例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序
  7. VS2010 创建WindowsService服务
  8. C#中new和override的区别
  9. react学习(50)--解决异步执行顺序问题
  10. ZJOI2018 Round2 游记
  11. 知识库使用VIEW视图实现内部用户、组关联关系和flowable内置表打通
  12. 墨天轮“我的DBA之路”有奖征文开始啦
  13. Java hibernate假外键_JAVA基础:Hibernate外键关联与HQL语法
  14. iOS开发之SceneKit框架--实战地月系统围绕太阳旋转
  15. 下面的代码能确定参数是否为奇数吗?
  16. 自带flash的浏览器_受够了手机自带浏览器?来看看这些超实用的不常用浏览器...
  17. Packet Tracer 思科模拟器入门教程 实验报告1
  18. 【python基础】h5py库的基本使用
  19. 影子卫士 Shadow Defender 2011
  20. JSON for Modern C++

热门文章

  1. windows多线程系列001 火车站售票系统模拟程序
  2. 粤友钱配资讲解主力洗盘会遵循哪些方法?
  3. 《从0到1上线微信小游戏》第十一节 接入微信小游戏广告
  4. C#GDI+简单绘图
  5. 【老生谈算法】matlab实现图像滤波处理算法源码——图像滤波处理算法
  6. python小球在窗口弹来弹去_python小球弹弹
  7. vm15.5虚拟机安装mac15操作系统(支持Xcode)
  8. 少儿编程热愈演愈烈,近十年总披露融资金额近46亿
  9. Python多种方法生成菲波那切数列
  10. PHP 单引号与双引号的区别(总结)