系列文章目录
文章目录
前言
网课:台大机器人运动学
书:机器人导论
一、运动学和的动力学概述
1.1.运动学(Kinematics)
讨论运动状态本身,不讨论产生运动的力。
- 位置、速度、加速度和时间之间的关系
- 移动/转动
- 位置/姿态
- 速度/角速度
- 加速度/角加速度
1.2. 动力学(Dynamics)
讨论力/力矩如何产生运动。
- N e w t o n ′ 2 n d L a w Newton'~2^{nd}~Law Newton′ 2nd Law
- Work&Energy
- Impulse&Momentum
1.3.机械手臂
多个杆件(link)相串联,具有复杂的几何外形
杆件间可相对移动(prismatic)或者转动(revolute),由制动器驱动来达成
对应关系
- 需求:手臂末端点状态(位置 W P ^WP WP、速度…)
- 达成方式:驱动各制动器:
W
P
=
f
(
θ
1
,
θ
2
…
θ
n
)
^WP = f(\theta_1,\theta_2…\theta_n)
WP=f(θ1,θ2…θn),知道各个关节的
θ
\theta
θ,最后算出末端执行器在world frame的位置。
描述手臂状态方法
- 找到杆件间的相对几何状态
- 在各杆件上建立frame,以frame状态来代表杆件状态。
二、手臂几何描述方式
2.1.joint
- 每个revolute(转动副)或prismatic(移动副)的joint具有1DOF
- 每个joint对某特动axis进行rotation或translation
2.2.link
- 连接joint的杆件,是刚体(运动过程不产生任何形变,所有的姿态的改变都joint上的自由度所造成的,与link无关)
- 编号方式
Link 0:地杆,不动的杆件
Link 1:和Link 0相连,第一可动的杆件
Link 2:第二可动的杆件
依次下去…
2.3.两杆之间
- 对空间中2个任意方向的axes,两个axes之间具有一个唯一解的公垂线段连接。
- 对空间中2个任意方向的axes,需要两个参数描述axes之间的关系,即公垂线段的长度Link length和两个axes在与公垂线段垂直的面上的投影的角度Link twist。Link length也就是杆件的实际长度。
2.4.多杆串连
当将多个杆件连接在一起,我们发现还是少了一些信息,从
L
i
n
k
i
−
1
Link_{i-1}
Linki−1的角度,我们知道
A
x
i
s
i
−
1
和
Axis_{i-1}和
Axisi−1和Axis_i$的关系,从
L
i
n
k
i
Link_i
Linki 的角度,我们可以看到
A
x
i
s
i
Axis_i
Axisi和
A
s
i
x
i
+
1
Asix_{i+1}
Asixi+1的关系,但是
a
i
−
1
a_{i-1}
ai−1和
a
i
a_i
ai在
A
x
i
s
i
Axis_i
Axisi上的相对关系和姿态我们无从得知。所以我们还需要另外两个参数。
所以在多杆连接时,需要两个参数(
d
i
,
θ
i
d_i,\theta_i
di,θi)来描述
a
i
−
1
a_{i-1}
ai−1和
a
i
a_i
ai的相对关系。
d
i
d_i
di为两个公垂线在
A
x
i
s
i
Axis_i
Axisi上的的投影的距离,即Link offset。
θ
i
\theta_i
θi即为两个公垂线之间的空间角,Joint angle。
综上,描述相邻两个杆件的所有姿态信息,需要四个参数:连杆扭矩角
α
i
\alpha_i
αi、连杆长度
a
i
a_i
ai、连杆偏距
d
i
d_i
di、关节角
θ
i
\theta_i
θi
- Revolute joint( α i , a i , d i , θ i \alpha_i,a_i,d_i,\theta_i αi,ai,di,θi),仅仅 θ i \theta_i θi变化
- Prismatic joint(
α
i
,
a
i
,
d
i
,
θ
i
\alpha_i,a_i,d_i,\theta_i
αi,ai,di,θi),仅仅
d
i
d_i
di变化
2.5.在杆件上建立Frames
Z
^
i
\widehat Z_i
Z
i:转动或移动axis的方向
X
^
i
\widehat X_i
X
i:沿着
a
i
a_i
ai的方向(这是
a
i
≠
0
的情况
a_i\neq0的情况
ai=0的情况,
i
f
a
i
=
0
if~a_i=0
if ai=0,
Z
^
i
\widehat Z_i
Z
i和
Z
^
i
+
1
\widehat Z_{i+1}
Z
i+1两者垂直)
Y
^
i
\widehat Y_i
Y
i:与
Z
^
i
\widehat Z_i
Z
i和
X
^
i
\widehat X_i
X
i两者垂直,依循右手定则。
2.6.地杆Link(0)和Last Link(n)
地杆
Frame{0} coincides with frame{1},
a
0
=
0
,
α
=
0
a_0 =0,\alpha = 0
a0=0,α=0
revolute joint:
θ
1
\theta_1
θ1arbitrary ,
d
1
=
0
d_1 =0
d1=0
prismatic joint:
d
1
d_1
d1arbitrary,
θ
n
=
0
\theta_n = 0
θn=0
最后杆
X
^
n
\widehat X_n
X
n和
X
^
n
−
1
\widehat X_{n-1}
X
n−1同方向,
a
n
=
0
,
α
n
=
0
a_n = 0,\alpha_n=0
an=0,αn=0
revolute joint:
θ
n
\theta_n
θnarbitrary ,
d
n
=
0
d_n =0
dn=0
prismatic joint:
d
n
d_n
dnarbitrary,
θ
n
=
0
\theta_n = 0
θn=0
三、Denavit-HartenBerg表达法(Craig version)
- α i − 1 \alpha_{i-1} αi−1:以 X ^ i − 1 \widehat X_{i-1} X i−1方向看,即为 Z ^ i − 1 \widehat Z_{i-1} Z i−1和 Z ^ i \widehat Z_{i} Z i之间的夹角
- a i − 1 a_{i-1} ai−1:沿着 X ^ i − 1 \widehat X_{i-1} X i−1方向,即为 Z ^ i − 1 \widehat Z_{i-1} Z i−1和 Z ^ i \widehat Z_{i} Z i之间的间距( a i > 0 a_i>0 ai>0)
- θ i \theta_i θi:以 Z ^ i \widehat Z_{i} Z i方向看,即为 X ^ i − 1 \widehat X_{i-1} X i−1和 X ^ i \widehat X_{i} X i之间的夹角
- d i d_i di:沿着 Z ^ i \widehat Z_{i} Z i方向,即为 X ^ i − 1 \widehat X_{i-1} X i−1和 X ^ i \widehat X_{i} X i之间的间距( a i > 0 a_i>0 ai>0)
d是z方向上的偏移量,a是x方向的偏移, α \alpha α是旋转轴之间的夹角, θ \theta θ是关节角
3.1.Link Transformation
现在将
A
x
i
s
i
−
1
Axis_{i-1}
Axisi−1上的frame{i-1}正方向旋转
α
i
−
1
\alpha_{i-1}
αi−1,得到{R},将{R}沿着
X
^
i
−
1
\widehat X_{i-1}
X
i−1的方向移动
a
i
−
1
a_{i-1}
ai−1得到{Q},再以
A
x
i
s
i
Axis_i
Axisi为轴反方向旋转
θ
i
\theta_i
θi,得到{P},最后{P}沿着
Z
^
i
\widehat Z_{i}
Z
i移动
d
i
d_{i}
di,得到{i}。(顺序类似之前学的mapping)
i
−
1
P
=
i
i
−
1
T
i
P
i
−
1
P
=
R
i
−
1
T
Q
R
T
P
Q
T
i
P
T
i
P
^{i-1}P = ~^{i-1}_iT^iP~~~~~~~~~~~~~~~~ \\~\\~^{i-1}P =~^{i-1}_RT^R_QT^Q_PT^P_iT^iP
i−1P= ii−1TiP i−1P= Ri−1TQRTPQTiPTiP
即:
i
i
−
1
T
=
R
i
−
1
T
Q
R
T
P
Q
T
i
P
T
=
T
X
^
i
−
1
(
α
i
−
1
)
T
X
^
R
(
a
i
−
1
)
T
Z
^
Q
(
θ
i
)
T
Z
^
P
(
d
i
)
^{i-1}_iT = ~^{i-1}_RT^R_QT^Q_PT^P_iT~~~~~ \\~\\ =~T_{\widehat X_{i-1}}(\alpha_{i-1})T_{\widehat X_{R}}(a_{i-1})T_{\widehat Z_{Q}}(\theta_i)T_{\widehat Z_{P}}(d_{i})
ii−1T= Ri−1TQRTPQTiPT = TX
i−1(αi−1)TX
R(ai−1)TZ
Q(θi)TZ
P(di)
得到:
3.2.连续Link transformations
n 0 T = 1 0 T 2 1 T 3 2 T … n − 1 n − 2 T n n − 1 T ^0_nT = ~^0_1T^1_2T^2_3T…^{n-2}_{n-1}T^{n-1}_{n}T n0T= 10T21T32T…n−1n−2Tnn−1T
3.3.总结
- frame{n}相对于Frame{0}的空间几何关系清楚且量化的定义
- 在frame{n}下表达的向量可转回frame{0}下来表达
四、example
4.1.RRR manipulator
DH table
在这个manipulator中,只有三个
θ
\theta
θ是驱动,其他九个参数都是固定的,所以最后的矩阵还蛮简洁的。
4.2.RPR manipulator
DH table
4.3.RRR manipulator
当
a
1
=
0
a_1 = 0
a1=0,
Z
^
1
\widehat Z_{1}
Z
1和
Z
^
1
\widehat Z_{1}
Z
1相交。
Z
^
2
\widehat Z_{2}
Z
2有两个选择,
X
^
1
\widehat X_{1}
X
1也要两个选择,所以一共就有四种建立frame的选择。
4.4.PRRR manipulator
4.5.RRRP manipulator(SCARA机器人)
五、Actuator、joint、and Cartesian Space
我们对关节的要求一般是低转速、高扭力,而一般的驱动器都是高转速、低扭力,所以需要设计传动系统来使Actuator space转到joint space
5.1.A leg-wheel transformable robot
六、DH表达法(standard)
- θ i \theta_i θi:以 Z ^ i − 1 \widehat Z_{i-1} Z i−1方向看,即为 X ^ i − 1 \widehat X_{i-1} X i−1和 X ^ i \widehat X_{i} X i之间的夹角
- d i d_i di:沿着 Z ^ i − 1 \widehat Z_{i-1} Z i−1方向,即为 X ^ i − 1 \widehat X_{i-1} X i−1和 X ^ i \widehat X_{i} X i之间的间距
- a i a_{i} ai:沿着 X ^ i \widehat X_{i} X i方向,即为 Z ^ i − 1 \widehat Z_{i-1} Z i−1和 Z ^ i \widehat Z_{i} Z i之间的间距( a i > 0 a_i>0 ai>0)
- α i \alpha_{i } αi:以 X ^ i \widehat X_{i} X i方向看,即为 Z ^ i − 1 \widehat Z_{i-1} Z i−1和 Z ^ i \widehat Z_{i} Z i之间的夹角
6.1.在杆件上建立Frames(区别)
Z
^
i
\widehat Z_i
Z
i:转动或移动axis的方向
X
^
i
\widehat X_i
X
i:沿着
a
i
−
1
a_{i-1}
ai−1的方向
Y
^
i
\widehat Y_i
Y
i:与
Z
^
i
\widehat Z_i
Z
i和
X
^
i
\widehat X_i
X
i两者垂直,依循右手定则
i
i
−
1
T
=
R
i
−
1
T
Q
R
T
P
Q
T
i
P
T
=
T
Z
^
i
−
1
(
θ
i
)
T
Z
^
R
(
d
i
)
T
X
^
Q
(
a
i
)
T
Z
^
P
(
α
i
)
^{i-1}_iT = ~^{i-1}_RT^R_QT^Q_PT^P_iT~~~~~ \\~\\ =~T_{\widehat Z_{i-1}}(\theta_{i})T_{\widehat Z_{R}}(d_{i})T_{\widehat X_{Q}}(a_i)T_{\widehat Z_{P}}(\alpha_{i})
ii−1T= Ri−1TQRTPQTiPT = TZ
i−1(θi)TZ
R(di)TX
Q(ai)TZ
P(αi)
6.2.Example
Graig DH
由于打字错误, t 就是 θ 由于打字错误,t就是\theta 由于打字错误,t就是θ
Standard DH
由于打字错误, t 就是 θ 由于打字错误,t就是\theta 由于打字错误,t就是θ
由于打字错误, t 就是 θ 由于打字错误,t就是\theta 由于打字错误,t就是θ
七 example:puma 560
前面三个转轴产生空间中的移动,后面三转轴产生我们想要的转动,以此是手臂可以达到空间中我们想要的任意位置。
后面三个转轴一般上我们会选择Z轴共轴相交,是为了我们能够比较轻易的找到逆运动学方程的解,如果不共轴的话,我们有时候很难找到逆运动学方程的解。