机器人运动学笔记2——林沛群
提示:本文上接 机器人运动学笔记1——林沛群文章目录前言一、正向运动学1.1 正向运动学1.2 手臂几何描述1.3 D-H表示法前言本文将涉及到机器人学的正、逆运动学和D-H表达法相关内容。这些内容均来自学习过程中记录的笔记。笔记摘自台大机器人学之运动学——林沛群一、正向运动学1.1 正向运动学运动学:讨论运动状态本身(位置姿态速度角速度加速度角加速度时间),不涉及力。找出杆件的相对几何状态,在各
提示:本文上接 机器人运动学笔记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} ai−1表示,Link twist 用 α i − 1 \alpha_{i-1} αi−1表示,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^n−1同方向 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 ii−1T
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 i−1P=ii−1T iP=TX^i−1(αi−1)TX^R(ai−1)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] ii−1T=TX^i−1(αi−1)TX^R(ai−1)TZ^Q(θi)TZ^P(di)=⎣⎢⎢⎡cθisθicαi−1−sθicθicαi−1sθisαi−10cθisαi−100−sαi−1ai−1−sαi−1dicαi−10cαi−1di1⎦⎥⎥⎤(属于欧拉角变换)
先沿着 X ^ i − 1 {\hat{X}}_{i-1} X^i−1转动 α i − 1 \alpha_{i-1} αi−1,使得两个转轴Z轴同向;再沿着 X ^ i − 1 {\hat{X}}_{i-1} X^i−1移动 a i − 1 a_{i-1} ai−1,使得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=10T21T⋯n−1n−2Tnn−1T
上式可以理解为两种含义:
-
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] ii−1T=TZ^i−1(θi)TZ^R(di)TX^Q(ai)TX^P(αi)=⎣⎢⎢⎡cθisθi−sθicαicθicαi00sαi0sθisαi−cθ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=30R−160R
利用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步骤如下
总结
以上就是所有的内容,本文包含正、逆运动学相关内容的笔记,接下来是轨迹规划部分内容的笔记。
更多推荐
所有评论(0)