机器人运动学笔记2——林沛群

提示:本文上接 机器人运动学笔记1——林沛群


前言

本文将涉及到机器人学的正、逆运动学和D-H表达法相关内容。这些内容均来自学习过程中记录的笔记。笔记摘自台大机器人学之运动学——林沛群


一、正向运动学

1.1 正向运动学

运动学:讨论运动状态本身(位置姿态速度角速度加速度角加速度时间),不涉及力。
找出杆件的相对几何状态,在各杆件上建立参考系

1.2 手臂几何描述

  • Joint:

     每个转动副会对应一个特定旋转轴和一个DOF。
    
  • Link:

     连接两个转动副的杆件,为刚体。
    
  • 杆件的编号:

     Link 0:地杆,固定不动的杆件
     Link 1:和link 0相连的杆件
     Link 2:依此类推
    
  • 每两个杆件之间需要四个参数表达:

     两个转轴之间的距离link length
     两个转轴之间关于中间垂线相差多少角度link twist
     两杆件转轴偏差link offset 
     转轴转角joint angle		
    

Link length用 a i − 1 a_{i-1} ai1表示,Link twist 用 α i − 1 \alpha_{i-1} αi1表示,Link offset 用 d i d_i di表示,Joint angle用 θ i \theta_i θi表示。对于转动副 θ i \theta_i θi为变量,对于移动副 d i d_i di为变量。
在这里插入图片描述

1.3 D-H表示法

  • 建立两动杆刚体坐标系:
    Z ^ i {\hat{Z}}_i Z^i转动副或者移动副axis方向
    X ^ i {\hat{X}}_i X^i沿着 a i a_i ai方向(if a i ≠ 0 a_i\neq0 ai=0),当 a i = 0 a_i=0 ai=0时, X ^ i {\hat{X}}_i X^i的方向是 Z ^ i {\hat{Z}}_i Z^i Z ^ i + 1 {\hat{Z}}_{i+1} Z^i+1两者垂直
    Y ^ i {\hat{Y}}_i Y^i X ^ i {\hat{X}}_i X^i Z ^ i {\hat{Z}}_i Z^i两者垂直,遵守右手定则
    在这里插入图片描述
    在这里插入图片描述

  • 建立地杆link 0刚体坐标系:
    一般选取地杆和第一杆件坐标系重合 a 0 = 0 a_0=0 a0=0 α 0 = 0 \alpha_0=0 α0=0
    转动副时,坐标系建立在 θ 1 \theta_1 θ1为变量, d 1 = 0 d_1=0 d1=0时的位置, θ 1 = 0 \theta_1=0 θ1=0为初始位置
    移动副时,坐标系建立在 d 1 d_1 d1为变量, θ 1 = 0 \theta_1=0 θ1=0时的位置, d 1 = 0 d_1=0 d1=0为初始位置
    在这里插入图片描述

  • 建立最后一个杆件link n刚体坐标系:
    X ^ n {\hat{X}}_n X^n X ^ n − 1 {\hat{X}}_{n-1} X^n1同方向 a n = 0 a_n=0 an=0 α n = 0 \alpha_n=0 αn=0
    转动副时,坐标系建立在 θ 1 \theta_1 θ1为变量, d n = 0 d_n=0 dn=0时的位置, θ n = 0 \theta_n=0 θn=0为初始位置
    移动副时,坐标系建立在 d 1 d_1 d1为变量, θ n = 0 \theta_n=0 θn=0时的位置, d n = 0 d_n=0 dn=0为初始位置
    在这里插入图片描述

  • 总结(craig version):
    在这里插入图片描述

1.4 Link trans

根据四个参数获取旋转矩阵 i i − 1 T {_i^{i-1}}T ii1T
  i − 1 P = i i − 1 T   i P = T X ^ i − 1 ( α i − 1 ) T X ^ R ( a i − 1 ) T Z ^ Q ( θ i ) T Z ^ P ( d i )   i P {_\ ^{i-1}}P={_i^{i-1}}T{_\ ^i}P=T_{{\hat{X}}_{i-1}}\left(\alpha_{i-1}\right)T_{{\hat{X}}_R}\left(a_{i-1}\right)T_{{\hat{Z}}_Q}\left(\theta_i\right)T_{{\hat{Z}}_P}\left(d_i\right){_\ ^i}P  i1P=ii1T iP=TX^i1(αi1)TX^R(ai1)TZ^Q(θi)TZ^P(di) iP
i i − 1 T = T X ^ i − 1 ( α i − 1 ) T X ^ R ( a i − 1 ) T Z ^ Q ( θ i ) T Z ^ P ( d i ) = [ c θ i − s θ i s θ i c α i − 1 c θ i c α i − 1 0 a i − 1 − s α i − 1 − s α i − 1 d i s θ i s α i − 1 c θ i s α i − 1 0 0 c α i − 1 c α i − 1 d i 0 1 ] {_i^{i-1}}T=T_{{\hat{X}}_{i-1}}\left(\alpha_{i-1}\right)T_{{\hat{X}}_R}\left(a_{i-1}\right)T_{{\hat{Z}}_Q}\left(\theta_i\right)T_{{\hat{Z}}_P}\left(d_i\right)=\left[\begin{matrix}\begin{matrix}c\theta_i&-s\theta_i\\s\theta_ic\alpha_{i-1}&c\theta_ic\alpha_{i-1}\\\end{matrix}&\begin{matrix}0&a_{i-1}\\-s\alpha_{i-1}&-s\alpha_{i-1}d_i\\\end{matrix}\\\begin{matrix}s\theta_is\alpha_{i-1}&c\theta_is\alpha_{i-1}\\0&0\\\end{matrix}&\begin{matrix}c\alpha_{i-1}&c\alpha_{i-1}d_i\\0&1\\\end{matrix}\\\end{matrix}\right] ii1T=TX^i1(αi1)TX^R(ai1)TZ^Q(θi)TZ^P(di)=cθisθicαi1sθicθicαi1sθisαi10cθisαi100sαi1ai1sαi1dicαi10cαi1di1(属于欧拉角变换)
先沿着 X ^ i − 1 {\hat{X}}_{i-1} X^i1转动 α i − 1 \alpha_{i-1} αi1,使得两个转轴Z轴同向;再沿着 X ^ i − 1 {\hat{X}}_{i-1} X^i1移动 a i − 1 a_{i-1} ai1,使得Z轴共线;再沿着 Z ^ i {\hat{Z}}_i Z^i转动 θ i \theta_i θi,使得两个转轴X轴同向;再沿着 Z ^ i {\hat{Z}}_i Z^i移动 d i d_i di,使得坐标系重合。
在这里插入图片描述
连续link transformations: n 0 T = 1 0 T 2 1 T ⋯ n − 1 n − 2 T n n − 1 T {_n^0}T={_1^0}T{_2^1}T\cdots{_{n-1}^{n-2}}T{_n^{n-1}}T n0T=10T21Tn1n2Tnn1T
上式可以理解为两种含义:

  • Frame{n}相对于Frame{0}在空间中的位置和姿态

  • Frame{n}中的向量转换到Frame{0}下表达

Example:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

1.5 Actuator,Joint,Cartesian Space

正向运动学是轴空间到笛卡尔空间,逆向向运动学是笛卡尔空间到轴空间。
驱动器转动多少角度,轴将转动多少角度。如马达转多少,joint转多少,一般之间会有减速器,有个比例关系。减速器的作用是提供低转速高扭力。
在这里插入图片描述
驱动器空间到joint空间的例子(移动+转动的驱动):
在这里插入图片描述

1.6 D-H表达法小结

之前介绍的是D-H表达法(craig version)
D-H表达法(Standard version):在一些定义上与craig version存在差异,craig version获取得到最后一个关节的坐标系最终需要乘上一个向量P来获得最终抓取位置,而standard version直接获取到抓取位置的坐标系。在这里插入图片描述
此时的齐次矩阵是先旋转 θ i \theta_i θi,再移动 d i d_i di,再移动 a i a_i ai,最后转动 α i \alpha_i αi i i − 1 T = T Z ^ i − 1 ( θ i ) T Z ^ R ( d i ) T X ^ Q ( a i ) T X ^ P ( α i ) = [ c θ i − s θ i c α i s θ i c θ i c α i s θ i s α i a i c θ i − c θ i s α i a i s θ i 0 s α i 0 0 c α i d i 0 1 ] {_i^{i-1}}T=T_{{\hat{Z}}_{i-1}}\left(\theta_i\right)T_{{\hat{Z}}_R}\left(d_i\right)T_{{\hat{X}}_Q}\left(a_i\right)T_{{\hat{X}}_P}\left(\alpha_i\right)=\left[\begin{matrix}\begin{matrix}c\theta_i&-s\theta_ic\alpha_i\\s\theta_i&c\theta_ic\alpha_i\\\end{matrix}&\begin{matrix}s\theta_is\alpha_i&a_ic\theta_i\\-c\theta_is\alpha_i&a_is\theta_i\\\end{matrix}\\\begin{matrix}0&s\alpha_i\\0&0\\\end{matrix}&\begin{matrix}c\alpha_i&d_i\\0&1\\\end{matrix}\\\end{matrix}\right] ii1T=TZ^i1(θi)TZ^R(di)TX^Q(ai)TX^P(αi)=cθisθisθicαicθicαi00sαi0sθisαicθisαiaicθiaisθicαi0di1
示例1的standard version(左)和示例2 Craig version(右):
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
实际过程中一定要像上图一样化简为最终代数式,减少矩阵中一些0元素的乘除给CPU带来开销,提高程序效率

二、逆向运动学

2.1 逆向运动学引言(inverse kinematic)

已知最终机械臂位姿,反算各关节角度。
在这里插入图片描述
假设手臂有6个自由度,就有6个未知角度。需要 H W T {_H^W}T HWT从中提取 6 0 T = [ 6 0 R 3 × 3   0 P 6   o r g 3 × 1 0 0 0 1 ] {_6^0}T=\left[\begin{matrix}{_6^0}R_{3\times3}&{_\ ^0}P_{6\ {org}_{3\times1}}\\\begin{matrix}0&0&0\\\end{matrix}&1\\\end{matrix}\right] 60T=[60R3×3000 0P6 org3×11],需要求解

  • 12个nonlinear transcendental equation(超越方程)
  • 6个未知数,6个限制条件

Reachable workspace:能有一种以上的姿态到达空间中一个位置。
Dexterous workspace:能用任意姿态到达的位置。是Reachable workspace的子集。
在这里插入图片描述
灰色区域为Reachable workspace
红色的点为Dexterous workspace
Subspace:手臂在定义头尾的T所能到达的变动范围。

2.2 多重解

解的数目:

  • 由于是非线性超越方程,6未知数6方程不代表有唯一解。
  • 是由joint数目和link参数所决定的。

在这里插入图片描述
例如PUMA的多重解:
在这里插入图片描述
解析法:
  用代数或者几何的方法求解
数值法:
  数值分析的方法求解

大多数机械手臂采用解析解,因为解析解相较于数值解去逼近,计算速率更快。
一般后相邻三轴交于同一点会存在解析解(Pieper‘s solution)。

2.2 平面求逆解示例

几何法:将空间几何切割成平面几何。
在这里插入图片描述
代数法:
在这里插入图片描述在这里插入图片描述
利用笛卡尔坐标系转到极坐标系来化简
在这里插入图片描述
三角函数方程式求解:
例如如何求 a c o s θ + b s i n θ = c acos\theta+bsin\theta=c acosθ+bsinθ=c θ \theta θ
在这里插入图片描述

3.3 Pieper’s solution空间求逆解示例

6-DOF具有连续三轴交于同一点(一般为产生旋转的后三轴),则手臂有解析解
在这里插入图片描述在这里插入图片描述
  0 P 6   o r g =   0 P 4   o r g {{_\ ^0}P}_{6\ org}={{_\ ^0}P}_{4\ org}  0P6 org= 0P4 org
接下来是机械臂移动部分的参数求解 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1θ2θ3
从左到右从上到下为求解步骤1,2,3,4.
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
至此,机械臂移动部分的 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1θ2θ3都求解获得。

接下来是转动部分的求解 θ 4 , θ 5 , θ 6 \theta_4,\theta_5,\theta_6 θ4θ5θ6
公式: 6 3 R = 3 0 R − 1 6 0 R {_6^3}R={_3^0}R^{-1}{_6^0}R 63R=30R160R
利用Z-Y-Z Euler angle 求解 θ 4 , θ 5 , θ 6 \theta_4,\theta_5,\theta_6 θ4θ5θ6

DH定义下的解和Z-Y-Z Euler angle的解是相近的,下图解释原由。
DH的旋转是定义在以这个关节的旋转轴为轴线进行旋转。
Euler angle则是一路上都是沿着同一个坐标系坐标轴做旋转。
在这里插入图片描述在这里插入图片描述
具体怎么求解 θ 4 , θ 5 , θ 6 \theta_4,\theta_5,\theta_6 θ4θ5θ6视频内暂无该部分内容!!!

2.4 物体取放(手臂与目标)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
求解出 θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 \theta_1,\theta_2,\theta_3,\theta_4,\theta_5,\theta_6 θ1θ2θ3θ4θ5θ6步骤如下
在这里插入图片描述在这里插入图片描述在这里插入图片描述


总结

以上就是所有的内容,本文包含正、逆运动学相关内容的笔记,接下来是轨迹规划部分内容的笔记。

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值