机器人学DH参数及利用matlab符号运算推导

这篇具有很好参考价值的文章主要介绍了机器人学DH参数及利用matlab符号运算推导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

重新复习了一下机器人学DH参数,并且利用matlab符号运算进行了推导,验证了公式。

1.DH参数原理

机器人学DH参数及利用matlab符号运算推导
图中的坐标系定义

  • 坐标系 i {i} i z z z z i z_i zi和关节轴线 i i i共线,指向任意规定。
  • 坐标系 i {i} i x x x x i x_i xi a i a_i ai重合,由关节 i i i指向关节 i + 1 i+1 i+1,当 a i = 0 a_i=0 ai=0,取 x i = ± z i + 1 × z i x_i=±z_{i+1}\times z_i xi=±zi+1×zi
  • 坐标系 i {i} i y y y y i y_i yi按右手法则规定。
  • 坐标系 i {i} i的原点 o i o_i oi取在 x i x_i xi z i z_i zi的交点上;当 z i z_i zi z i + z_{i+} zi+相交时,原点取再两轴交点上,当 z i z_i zi z i + z_{i+} zi+平行时,原点取在使 d i + 1 = 0 d_{i+1}=0 di+1=0的地方。

利用连杆坐标系定义相应的连杆参数

  • a i a_i ai=从 z i z_i zi z i + 1 z_{i+1} zi+1沿 x i x_i xi测量的距离(公垂线长度)
  • α i \alpha_i αi=从 z i z_i zi z i + 1 z_{i+1} zi+1沿 x i x_i xi旋转的角度
  • d i d_i di=从 x i − 1 x_{i-1} xi1 x i x_{i} xi沿 z i z_i zi测量的距离
  • θ i \theta_i θi=从 x i − 1 x_{i-1} xi1 x i x_{i} xi沿 z i z_i zi旋转的角度

坐标系 { i } \{i\} {i}相对坐标系 { i − 1 } \{i-1\} {i1}的变换矩阵 i − 1 T i {}^{i-1}T_{i} i1Ti可以看作四个子变换矩阵的乘积:

  1. x i − 1 x_{i-1} xi1轴转 α i − 1 \alpha_{i-1} αi1
    R o t x ( α i − 1 ) = [ 1 0 0 0 0 c o s α i − 1 − s i n α i − 1 0 0 s i n α i − 1 c o s α i − 1 0 0 0 0 1 ] R o t_{x}\left(\alpha_{i-1}\right)=\begin{bmatrix}1 &0&0&0\\ 0&cos\alpha_{i-1}&{-sin\alpha_{i-1}}&0\\0&{sin\alpha_{i-1}}&{cos\alpha_{i-1}}&{0}\\ {0}&{0}&{0}&{1}\end{bmatrix} Rotx(αi1)=10000cosαi1sinαi100sinαi1cosαi100001
  2. 沿 x i − 1 x_{i-1} xi1轴移动 a i − 1 a_{i-1} ai1
    T r a n s x ( a i − 1 ) = [ 1 0 0 a i − 1 0 1 0 0 0 0 1 0 0 0 0 1 ] T r a n s_{x}\left(a_{i-1}\right)=\begin{bmatrix}1 &0&0&a_{i-1}\\ 0&1&0&0\\0&0&1&{0}\\ {0}&{0}&{0}&{1}\end{bmatrix} Transx(ai1)=100001000010ai1001
  3. 沿 z i z_{i} zi轴移动 θ i \theta_{i} θi
    R o t z ( θ i ) = [ c o s θ i − s i n θ i 0 0 s i n θ i c o s θ i 0 0 0 0 1 0 0 0 0 1 ] R o t_{z}\left(\theta_{i}\right)=\begin{bmatrix}{cos\theta_{i}}&{-sin\theta_{i}}&0&0\\ {sin\theta_{i}}&{cos\theta_{i}}&0&0\\0&0&1&0\\ {0}&{0}&{0}&{1}\end{bmatrix} Rotz(θi)=cosθisinθi00sinθicosθi0000100001
  4. 沿 z i z_{i} zi轴移动 d i d_{i} di
    T r a n s z ( d i ) = [ 1 0 0 0 0 1 0 0 0 0 1 d i 0 0 0 1 ] T r a n s_{z}\left(d_{i}\right)=\begin{bmatrix}1 &0&0&0\\ 0&1&0&0\\0&0&1&d_i\\ {0}&{0}&{0}&{1}\end{bmatrix} Transz(di)=10000100001000di1

这些变换都是相对运动坐标系描述的,满足从左到右的原则,可以得到最终变换公式如下:

i i − 1 T = R o t x ( α i ) T r a n s x ( a i ) R o t z ( θ i ) T r a n s z ( d i ) _{i}^{i-1}T=R o t_{x}\left(\alpha_{i}\right)T r a n s_{x}\left(a_{i}\right)R o t_{z}\left(\theta_{i}\right)T r a n s_{z}\left(d_{i}\right) ii1T=Rotx(αi)Transx(ai)Rotz(θi)Transz(di)
通常规定 a i ≥ 0 a_i\ge0 ai0,因为它代表连杆长度,而 α i , d i , θ i \alpha_i, d_i, \theta_i αi,di,θi可正可负。

i i − 1 T = [ c o s θ i − s i n θ i 0 a i − 1 s i n θ i c o s α i − 1 c o s θ i c o s α i − 1 − s i n α i − 1 − d i s i n α i − 1 s i n θ i s i n α i − 1 c o s θ i s i n α i − 1 c o s α i − 1 d i c o s α i − 1 0 0 0 1 ] _{i}^{i-1}T=\begin{bmatrix}{cos\theta_{i}}&{-sin\theta_{i}}&0&{a _{i-1}}\\ {sin\theta_{i}cos\alpha_{i-1}}&{cos\theta_{i}cos\alpha_{i-1}}&{-sin\alpha_{i-1}}&{-d_isin\alpha_{i-1}}\\{sin\theta_{i}sin\alpha_{i-1}}&{cos\theta_{i}sin\alpha_{i-1}}&{cos\alpha_{i-1}}&{d_icos\alpha_{i-1}}\\ {0}&{0}&{0}&{1}\end{bmatrix} ii1T=cosθisinθicosαi1sinθisinαi10sinθicosθicosαi1cosθisinαi100sinαi1cosαi10ai1disinαi1dicosαi11

2.Matlab符号运算验证

利用Matlab的符号运算进行公式推导进行一下公式的验证

syms theta d alpha a
M=DH_Trans(theta,d,alpha,a)
function M=DH_Trans(theta,d,alpha,a)
    R_z_theta=[cos(theta),-sin(theta),0,0;...
        sin(theta),cos(theta),0,0;...
        0,0,1,0;...
        0,0,0,1];
    T_z_d=[1,0,0,0;...
        0,1,0,0;...
        0,0,1,d;...
        0,0,0,1];
    R_x_alpha=[1,0,0,0;...
        0,cos(alpha),-sin(alpha),0;...
        0,sin(alpha),cos(alpha),0;...
        0,0,0,1];
   T_x_a=[1,0,0,a;...
        0,1,0,0;...
        0,0,1,0;...
        0,0,0,1];
   M=R_x_alpha*T_x_a*R_z_theta*T_z_d;
end

结果是一致的
机器人学DH参数及利用matlab符号运算推导文章来源地址https://www.toymoban.com/news/detail-430463.html

到了这里,关于机器人学DH参数及利用matlab符号运算推导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人学基础(三):机器人运动学

    运动学问题是在不考虑引起运动的力和力矩的情况下,描述机械臂的运动。上一篇我们已经讨论了机器人运动方程的表示方法,这一篇将会讨论机器人的DH建模方法。 Denavit-Hartenberg(D-H)模型于1955年首次提出,用于描述机器人连杆和节点之间相互关系。后来逐步完善推导出了

    2024年02月09日
    浏览(36)
  • 【机器人学】逆运动学

    逆运动学 是一个非线性的求解问题,相对于正运动学较为复杂,主要是因为可解性探究、多重解以及多重解的选择等问题。例如,形如【机器人学】正运动学详解-6.4 一个简单例子中所用的六自由度机器人,其 逆运动学 可以描述为:假设我们已经知道其次变换矩阵 R T H ^RT

    2023年04月08日
    浏览(37)
  • 机器人学-正运动学

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 DH约定 正运动学 总结 本文介绍串联机械臂基础算法,并使用python和matlab进行算法设计、建模仿真。 标准DH配置  坐标系示意图  DH参数 代码如下(python):

    2024年02月15日
    浏览(27)
  • 【机器人学】一、从线性变换的角度理解机器人坐标变换

    实际应用: 为什么要标定旋转中心 在机器视觉实际应用过程中,有这样的案例:机械手要抓取物料,物料每次的角度不一样,机械手的末端工具中心与其自身的旋转中心不重合,如果想完成这个抓取的工作,有两种解决方案: 方案一:TCP标定(Tool Center Point) 一般机械手都

    2024年04月29日
    浏览(24)
  • 【现代机器人学】学习笔记十三:配套代码解析

    最近一直忙于工作,每天都在写一些业务代码。而目前工程中的技术栈并没有使用旋量这一套机器人理论系统,因此时间长了自己都忘记了。 于是决定把这本书配套的代码内容也过一遍,查漏补缺,把这本书的笔记内容完结一下。 代码来源于github:https://github.com/NxRLab/Moder

    2024年02月12日
    浏览(30)
  • 机器人学基础--运动学--2.3 变换矩阵

    2.3 变换矩阵 (1)齐次坐标系变换 2.1,2.1中讨论了坐标系及其平移,旋转两种变换。在实际应用中两个坐标系之间的关系往往既有平移又有旋转,因此这篇文章我们将讨论一下如何以一种更为紧凑的方式来表达两个坐标系之间的位置及姿态关系。 可以把这个问题分解开来看

    2024年02月11日
    浏览(24)
  • 【机器人学导论】惯性张量旋转和平移变换的推导

    最近遇到了一些涉及惯性张量的实际问题,比如: 对两个通过铰链连接在一起的杆,如何计算整体的惯性张量? 对于一个由多个简单部件组合成的系统,如何计算整体的惯性张量? 在网上查找计算方法的过程中,难以通过正确的找到简明的数学方法。因此我在多番查

    2024年02月08日
    浏览(30)
  • 【现代机器人学】学习笔记四:一阶运动学与静力学

    这节课的内容主要讲速度的正向运动学(也就是位置的一阶导数,所以叫一阶运动学)和静力学,这也是本书首次出现动力学相关的内容(刚体运动那节提到的力旋量算是一个概念的介绍)。 个人结合平时的工程项目看,觉得这节课的内容是一个内容和难度上的一个跨越,因

    2023年04月08日
    浏览(28)
  • 机器人学关于SE(3)、se(3)、SO(3)、so(3)的理解

    SE(3):特殊欧式群 se(3):特殊欧式群的李代数 SO(3): 三维特殊正交群 so(3): 三维特殊正交群的李代数 T(3):三维移动群 R : 旋转矩阵 李代数:李群单位元处的切空间; SO(3) 和T(3) 都是SE(3)的李子群 SO3——log——so3, 3×1 vector SE3——log——se3, 6×1 vector so3——exp——SO3, 3×3 matrix se3——

    2024年01月17日
    浏览(34)
  • 机器人学环境配置(VM-16 + Ubuntu-20.04 + ROS-noetic)

    目录 一、安装好 VMware Pro 16(基于win11) 1. 下载 2. 安装过程 二、成功配置Ubuntu20.04.6 1. 下载 2. 新建虚拟机进行配置 3. 安装操作系统镜像 4. 更改Ubuntu软件源  5. Windows与Ubuntu跨系统复制粘贴 三、成功配置与Ubuntu20.04对应的ROS 1. 按ctrl+alt+t打开终端并在其中依次输入以下代码 2

    2024年02月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包