机器人技术数学基础
Mathematic Preparation for Robotics
2.1 位置和姿态的表示
2.2 坐标变换
2.3 齐次坐标变换
2.4 物体的变换及逆变换
2.5 通用旋转变换
Robotics 数学基础
2.1 位置和姿态的表示
1.位置描述
在直角坐标系 A中,空间任意一点 p的位置
(Position)可用 3x1列向量 (位置矢量 )表示,
2.方位描述
空间物体 B的方位 (Orientation)
可由某个固接于此物体的坐标系 {B}
的三个单位主矢量 [xB,yB,zB]相对于
参考坐标系 A的方向余弦组成的 3x3
矩阵描述,
T
zyx
A pppP ][?
Robotics 数学基础
2.1 位置和姿态的表示
上述矩阵称为旋转矩阵,它是正交的,即
若坐标系 B可由坐标系 A,通过绕 A的某一坐标轴获
得,则绕 x,y,z三轴的旋转矩阵分别为
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
100
0
0
),(
0
010
0
),(
0
0
001
),( ??
??
?
??
??
?
??
??? cs
sc
z
cs
sc
y
cs
scx RRR
11 ??? BBR ABTABAB
?
?
?
?
?
?
?
?
?
?
?
333231
232221
131211
rrr
rrr
rrr
A
B R
Robotics 数学基础
2.1 位置和姿态的表示
这些旋转变换可以通过右图推导
这是绕 Z轴的旋转, 其它两轴只要把坐标次序调换可得
上页结果,
p
B
p
A
p
B
p
B
p
A
p
B
p
B
p
A
zz
yxy
yxx
?
??
??
??
??
c o ss in
s inc o s
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
p
B
p
B
p
B
p
A
p
A
p
A
z
y
x
z
y
x
100
0co ss in
0s inco s
??
??
Robotics 数学基础
2.1 位置和姿态的表示
旋转矩阵的几何意义,
1) 可以表示固定于刚体上的坐标系 {B}对参考坐标
系的姿态矩阵,
2) 可作为坐标变换矩阵,它使得坐标系 {B}中的点的
坐标 变换成 {A}中点的坐标,
3) 可作为算子,将 {B}中的矢量或物体变换到 {A}中,
RAB
RAB
pB pA
RAB
Robotics 数学基础
2.1 位置和姿态的表示
3.位姿描述
刚体位姿 (即位置和姿态 ),用刚体的方位矩阵和
方位参考坐标的原点位置矢量表示,即
? ? ? ?0BAAB pRB ?
Robotics 数学基础
2.2 坐标变换
1,平移坐标变换
坐标系 {A}和 {B}
具有相同的方位,但
原点不重合,则点 P在
两个坐标系中的位置
矢 量 满 足 下 式,
0B
ABA PPP ??
Robotics 数学基础
2.2 坐标变换
2.旋转变换
坐标系 {A}和 {B}有
相同的原点但方位不同,
则点 P的在两个坐标系
中的位置矢量有如下关
系,
PRP BABA ??
TABABBA RRR ?? ? 1
Robotics 数学基础
2.2 坐标变换
3.复合变换
一般情况原点既
不重和,方位也不同,
这时有,
(2-13)
0BABABA PPRP ???
Robotics 数学基础
2.2 坐标变换
例 2.1 已知坐标系 {B}的初始位姿与 {A}重合,首先 {B}
相对于 {A}的 ZA轴转 30°,再沿 {A}的 XA轴移动 12单位,
并沿 {A}的 YA轴移动 6单位,求位置矢量 APB0和旋转矩阵
BAR.设点 p在 {B}坐标系中的位置为 BP=[3,7,0],求它在
坐标系 {A}中的位置,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
??
0
6
12;
100
0866.05.0
05.0866.0
)30,( 00 BAAB zR pR
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
???
0
5 6 2.13
9 0 8.11
0
6
12
0
5 6 2.7
9 0 2.0
0B
ABA
B
A ppRp
Robotics 数学基础
2.3 齐次坐标变换
1.齐次变换
(2-13)式可以写为,
(2-14)
P点在 {A}和 {B}中的位置矢量分别增广为,
而齐次变换公式和变换矩阵变为,
(2-15,16)
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
1101
0 PPRP
B
B
AA
B
A
? ? ? ?TBBBBTAAAA zyxzyx 1,1 ?? PP
?
?
?
?
?
?
??
10
,0B
AA
BA
B
BA
B
A PRTPTP
Robotics 数学基础
2.3 齐次坐标变换
2.平移齐次坐标变换
{A}分别沿 {B}的 X,Y,Z坐标轴平移 a,b,c距离
的平移齐次变换矩阵写为:
用非零常数乘以变换矩阵的每个元素,不改变特性。
例 2-3:求矢量 2i+3j+2k被矢量 4i-3j+7k平移得到的新
矢量,
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
100
010
001
),,(
c
b
a
cbaT r a n s
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
9
0
6
1
2
3
2
1000
7100
3010
4001
Robotics 数学基础
2.3 齐次坐标变换
3.旋转齐次坐标变换
将上式增广为齐次式:
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
100
0
0
),(
0
010
0
),(
0
0
001
),( ??
??
?
??
??
?
??
??? cs
sc
z
cs
sc
y
cs
scx RRR
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0100
00
00
),(
1000
00
0010
00
),(
1000
00
00
0001
),(
??
??
?
??
??
?
??
??
?
cs
sc
z
cs
sc
y
cs
sc
x RRR
Robotics 数学基础
2.3 齐次坐标变换
引入齐次变换后,
连续的变换可以变成
矩阵的连乘形式。计
算简化。
例 2-4, U=7i+3j+2k,绕
Z轴转 90度后,再绕 Y
轴转 90度。
例 2-5:在上述基础上再
平移( 4,-3,7)。
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1
2
7
3;;;
1
2
3
7;;;
1000
0100
0001
0010
)90,( zR
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
3
7
2;;;
1
2
7
3;;;
1000
0101
0010
0100
)90,( yR;;;
1000
7100
3010
4001
)7,3,4(
?
?
?
?
?
?
?
?
?
?
?
?
?
??T r a n s
Robotics 数学基础
2.3 齐次坐标变换
由矩阵乘法没有交
换性,可知变换次序对
结果影响很大。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
7010
3001
4100
)90,()90,()7,3,4( zR o tyR o tT r a n s
Robotics 数学基础
2.4 物体的变换及
逆变换
1.物体位置描述
物体 可以由固定于
其自身坐标系上的若干
特征点描述。 物体的变
换 也可通过这些特征点
的变换获得。
Robotics 数学基础
2.4 物体的变换及逆变换
1.物体位置描述
?
?
?
?
?
?
?
?
?
?
?
?
???
?
?
?
?
?
?
?
?
?
?
?
?
? ???
?
?
?
?
?
?
?
?
?
?
?
?
111111
440000
111111
446644
111111
002200
440000
111111
1000
0010
0001
4100
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0010
0001
4100
)90,()90,()0,0,4( zR o tyR o tT r a n sT
Robotics 数学基础
2.4 物体的变换及逆变换
2.齐次坐标的复合变换
{B}相对于 {A},ABT;
{C}相对于 {B},BCT;
则 {C}相对于 {A}:
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
10
1010
00
00
B
A
C
BA
B
B
C
A
B
C
BB
CB
AA
B
B
C
A
B
A
C
ppRRR
pRpT
TTT
Robotics 数学基础
2.4 物体的变换及逆变换
3.齐次坐标的逆变换
{B}相对于 {A},ABT;
{A}相对于 {B},BAT;
两者互为 逆矩阵,求逆的办法,
1.直接求 ABT-1
2.简化方法
0ppRp
T
pRRpR
T
???
??
?
?
?
?
? ?
??
?
?
?
?
?
?
?
000
100
)(
1010
A
B
B
AB
AB
AB
A
B
B
ATA
B
TA
BA
BB
AB
A
Robotics 数学基础
2.4 物体的变换及逆变换
3.齐次坐标的逆变换
一般,若

?
?
?
?
?
?
?
?
?
?
?
?
?
1000
zzzz
yyyy
xxxx
paon
paon
paon
T
?
?
?
?
?
?
?
?
?
?
?
?
??
??
??
?
?
1000
1
ap
op
np
T
zyx
zyx
zyx
aaa
ooo
nnn
? ? ? ? ? ? ? ?TzyxTzyxTzyxTzyx aaaooonnnppp ???? aonp,,,
Robotics 数学基础
2.4 物体的变换
及逆变换
3.变换方程初步
{B}:基坐标系
{T}:工具坐标系
{S}:工作台坐标系
{G}:目标坐标系
或工件坐标系
满足方程
TTTT GTSGBSBT ?
Robotics 数学基础
习题,
P43,题 2.3
P44,题 2.9
Robotics 数学基础
2.5 通用旋转变换
1.通用旋转变换公式
求,绕从原点出发的 f旋转 θ 角
时的旋转矩阵,
{S}:物体上固接的坐标系
{T}:参考坐标系
{C}:Z轴与 f重合的辅助坐标系
xT
YT
ZT
T
C
S
zS
f,Zc
O
),( ?fR ot
Robotics 数学基础
2.5 通用旋转变换
在 {S}上取一点 p,其坐标为向量 {P},它绕 {T}中直线 f旋
转 θ 角。
1)将 {S}上 p点坐标变换到 {T}中,其坐标为
2)直接计算绕 f旋转的坐标为,
目前上式在 {T}无法直接求。采取如下步骤:
3)建立辅助坐标系 {C},使其 Z轴与 f重合。这样问题
变为绕 ZC旋转。将 {S}中的点 p变换到 {C}中,变换
为:
4)在 {C}中绕 Z轴旋转有:
5)将 {C}中坐标变换回 {T}中有,
}{pTST
}{),( pfR o t TS T?
}{ pTSCT TT
}{),( pzR TSCT TT?
}{),( pzTR TSCTTC TT?
Robotics 数学基础
2.5 通用旋转变换
步骤 2)和 5)中的结果应该相同,
即:
由于 {C}的 Z轴与 f重合,所以
}{),(}{),( pfR o tpzTR T ST SCTTC TTT ?? ?
1),(),(),( ??? TT TCTCCTTC zTRzTRfR o t ???
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0
0
0
1000
0100
00
00
1000
0
0
0
zyx
zyx
zyx
zzz
yyy
xxx
aaa
ooo
nnn
cs
sc
aon
aon
aon
??
??
zzyyxx fafafa ???
Robotics 数学基础
2.5 通用旋转变换
根据坐标轴的正交性,,有
令,则
ona ??
1
222
???
???
???
???
zyx
zyxyxz
yxzxzy
xzyzyx
aaa
fnoona
fnoona
fnoona
?? c o s1)( ??v e r s
?
?
?
?
?
?
?
?
?
?
?
?
???
???
???
?
1000
0
0
0
),(
??????
??????
??????
?
cv er sffsfv er sffsfv er sff
sfv er sffcv er sffsfv er sff
sfv er sffsfv er sffcv er sff
fR o t
zzxzyyzx
xyzyyzyx
yxzzxyxx
Robotics 数学基础
2.5 通用旋转变换
2.等效转角与转轴
给出任一旋转变换,能够由上式求得进行 等效旋转 θ 角
的 转轴,已知旋转变换 R,令 R=Rot(f,θ ),即有
将上式对角线元素相加,并简化得
?
?
?
?
?
?
?
?
?
?
?
?
???
???
???
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0
0
0
1000
0
0
0
??????
??????
??????
cv e r sffsfv e r sffsfv e r sff
sfv e r sffcv e r sffsfv e r sff
sfv e r sffsfv e r sffcv e r sff
aon
aon
aon
zzxzyyzx
xyzyyzyx
yxzzxyxx
zzz
yyy
xxx
??? ccv e r sfffaon zyxzyx 213)( 222 ????????
)1(21 ???? xyx aonc ?
Robotics 数学基础
2.5 通用旋转变换
非对角元素成对相减,有
平方后有

,
?
?
?
sfon
sfna
sfao
zxy
yzx
xyz
2
2
2
??
??
??
222
21 )()()( xyzxyz onnaaos ????????
o1800 ?? ?
1
)()()(
t an
222
???
?????
?
zyx
xyzxyz
aon
onnaao
?
?
?
?
sonf
snaf
saof
xyz
zxy
yzx
2/)(
2/)(
2/)(
??
??
??
Robotics 数学基础
2.5 通用旋转变换
例 2-7 一坐标系 {B}与参考系重合,现将其绕通过原点
的轴 转 30°,求转动后的 {B}.
以,代入算式,有
? ?Tf 0707.0707.0?
ozyx fff 0.300.0707.0 ???? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
08 6 6.03 5 4.03 5 4.0
03 5 4.09 3 3.00 6 7.0
03 5 4.00 6 7.09 3 3.0
)30,(
o
kR o t
Robotics 数学基础
2.5 通用旋转变换
一般情况,若 f不通过原点,而过 q点 (qx,qy,qz),则齐次
变换矩阵为,
其中,
?
?
?
?
?
?
?
?
?
?
?
?
???
???
???
?
1000
),(
Ccv er sffsfv er sffsfv er sff
Bsfv er sffcv er sffsfv er sff
Asfv er sffsfv er sffcv er sff
fR o t
zzxzyyzx
xyzyyzyx
yxzzxyxx
??????
??????
??????
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
???
???
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
z
y
x
zzxzyyzx
xyzyyzyx
yxzzxyxx
z
y
x
q
q
q
cver sffsfver sffsfver sff
sfver sffcver sffsfver sff
sfver sffsfver sffcver sff
q
q
q
C
B
A
??????
??????
??????
Robotics 数学基础
2.5 通用旋转变换
例 2-8 一坐标系 {B}与参考系重合,现将其绕通过
q=[1,2,3]T的轴 转 30°,求转动
后的 {B}.
以,代入算式,有
? ?Tf 0707.0707.0?
321
0.300.0707.0
???
????
zyx
o
zyx
qqq
fff ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
04.0866.0354.0354.0
13.1354.0933.0067.0
13.1354.0067.0933.0
)30,(
o
kR o t
Robotics 数学基础
Matlab使用与矩阵计算
Matlab是美国 Mathworks公司推出的数值
计算软件,在数值计算及科学研究中,是其
它语言无法相比的,其主要特点有,
1.语言简洁紧凑,使用方便灵活,库含数极其丰富,
2.具有非常多的矩阵函数,矩阵计算异常方便,
3.具有多种功能的工具包,
4.具有与 FORTRAN,C等同样多的运算符和结构控制指令的同
时,语法限制却不严格,使程序设计很自由,
5.图形功能强大,数据可视化好,
6.原程序和库函数代码公开,
但,程序执行效率较低,
本节主要介绍其矩阵计算在机器人分析中的应用,
Robotics 数学基础
Matlab使用与矩阵计算
矩阵的输入,
1)矩阵的直接输入,(操作 )
以 [ ]作为首尾,行分隔用, ;”,元素分隔用,,”或
空格,
2)矩阵编辑器,(操作 )
先在工作区定义矩阵,用编辑器修改矩阵,
3)用函数创建矩阵,如,(操作 )
zeros(m,n):零矩阵
ones(m,n):全部元素都为 1的矩阵
eye(m,n):单位阵
randn(m,n):正态分布的随机矩阵
vander(A):由矩阵 A产生的 Vandermonde矩阵
Robotics 数学基础
Matlab使用与矩阵计算
矩阵的计算,(操作 )
1)加减
2)转置
3)乘法
4)除法与线性方程组
5)逆
6)幂和指数
Robotics 数学基础
Matlab使用与矩阵计算
例,
计算,
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
0100
00
00
)60,(
1000
00
0010
00
)45,(
1000
00
00
0001
)45,(
2
1
2
3
2
3
2
1
0
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
zR o t
yR o t
xR o t
o
o
)45,()45,()60,(
)60,()45,()45,(
ooo
ooo
xRyRzR
zRyRxR
?
?
Robotics 数学基础
习题,2.3
坐标系 {B}初始与 {A}重合,让 {B}绕 ZB旋转 θ 角 ;然后再
绕 XB转 φ 角,求把 BP变为 AP的旋转矩阵,
?
?
?
?
?
?
?
?
?
?
?
?
??
?????
?????
cs
csccs
ssscc
0
Robotics 数学基础
习题,2.3变化
坐标系 {B}初始与 {A}重合,让 {B}绕 ZB旋转 θ 角 ;然后再
绕 XA转 φ 角,求把 BP变为 AP的旋转矩阵,
?
?
?
?
?
?
?
?
?
?
?
?
?????
?????
??
cscss
scccs
sc 0
Robotics 数学基础
习题,2.3变化
坐标系 {B}初始与 {A}重合,让 {B}绕 ZB旋转 θ 角 ;然后再
绕 XA转 φ 角,求把 BP变为 AP的旋转矩阵,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
??
?????
?????
??
??
??
??
??
??
cscss
scccs
sc
cs
sc
cs
sc
zR o txR o t
0
100
0
0
0
0
001
),(),(
Robotics 数学基础
习题,2.9将图 (a)变换到 (b).
Robotics 数学基础
习题,2.9 解一
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0010
0100
0001
)90,( oxR o t
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1000
0100
0001
0010
)90,( ozR o t
Robotics 数学基础
习题,2.9 解一
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
0100
10010
0001
)0,10,0(1T r a n s
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
0100
9010
0001
)0,9,0(2T r a n s
Robotics 数学基础
习题,2.9 解一
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
0010
0100
0001
)90,( oxR o t
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1000
0100
0001
0010
)90,( ozR o t
Robotics 数学基础
习题,2.9 解一
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0100
0010
2001
)0,0,2(2T r a n s
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0100
10010
0001
)0,10,0(1T r a n s
Robotics 数学基础
习题,2.9 解一
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0010
0001
0100
)90,()90,()0,10,0()0,10,0( oo xR o tzR o tT r a n sT r a n s
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
11
40
11
00
11
00
40
11
1000
0010
0001
0100
Robotics 数学基础
习题,2.9 解一
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
9010
0001
2100
)0,9,0()90,()90,()0,0,2( T r a n sxR o tzR o tT r a n s oo
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
111
004
111
222
111
000
995
111
1000
9010
0001
2100
Robotics 数学基础
习题,2.9 解二
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
0010
0100
0001
)90,( oxR o t
Robotics 数学基础
习题,2.9 解二
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1000
0100
0001
0010
)90,( ozR o t
Robotics 数学基础
习题,2.9 解二
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
9100
0010
2001
)9,0,2(T r a n s
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
9010
0001
2100
)90,()90,()9,0,2(
00
xR o tzR o tT r a n s
Robotics 数学基础
习题,2.9 解三
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0
0
001
),(
1
1
1
1 Ccs
Bsc
A
fR o t
??
??
?
001 ??? zyx fff
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
9010
9100
0001
)90,( 01fR o t
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
9
9
0
0
9
0
010
100
001
0
9
0
1
1
1
C
B
A
Robotics 数学基础
习题,2.9 解三
100 ??? zyx fff
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1000
100
0
0
),(
2
2
2
2 C
Bcs
Asc
fR o t
??
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0
9
9
0
9
0
100
001
010
0
9
0
2
2
2
C
B
A
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1000
0100
9001
9010
)90,( 02fR o t
Robotics 数学基础
习题,2.9 解三
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
0100
9010
2001
)0,9,2(T r a n s
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1000
9010
0001
2100
1000
9010
9100
0001
1000
0100
9001
9010
1000
0100
9010
2001
)90,()90,()0,9,2(
12
oo
fR o tfR o tT r a n s