IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 机器人学DH参数及利用matlab符号运算推导 -> 正文阅读

[Python知识库]机器人学DH参数及利用matlab符号运算推导

引言

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

1.DH参数原理

在这里插入图片描述
图中的坐标系定义

  • 坐标系 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} xi?1? x i x_{i} xi?沿 z i z_i zi?测量的距离
  • θ i \theta_i θi?=从 x i ? 1 x_{i-1} xi?1? x i x_{i} xi?沿 z i z_i zi?旋转的角度

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

  1. x i ? 1 x_{i-1} xi?1?轴转 α i ? 1 \alpha_{i-1} αi?1?
    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?(αi?1?)=?????1000?0cosαi?1?sinαi?1?0?0?sinαi?1?cosαi?1?0?0001??????
  2. 沿 x i ? 1 x_{i-1} xi?1?轴移动 a i ? 1 a_{i-1} ai?1?
    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?(ai?1?)=?????1000?0100?0010?ai?1?001??????
  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θi?sinθi?00??sinθi?cosθi?00?0010?0001??????
  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?)=?????1000?0100?0010?00di?1??????

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

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) ii?1?T=Rotx?(αi?)Transx?(ai?)Rotz?(θi?)Transz?(di?)
通常规定 a i ≥ 0 a_i\ge0 ai?0,因为它代表连杆长度,而 α 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} ii?1?T=?????cosθi?sinθi?cosαi?1?sinθi?sinαi?1?0??sinθi?cosθi?cosαi?1?cosθi?sinαi?1?0?0?sinαi?1?cosαi?1?0?ai?1??di?sinαi?1?di?cosαi?1?1??????

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

结果是一致的
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章           查看所有文章
加:2022-07-03 10:44:49  更:2022-07-03 10:48:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:38:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码