齐次变换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hu,且v
z c E 0 a x z 图2.1 点向量的描述 u 0 v b y H y p
x
≠ u。一个点向量可表示为
v = ai + bj + ck 通常用一个(n + 1)维列矩阵表示,即除 x、y、 z 三个方向上的分量外,再加一个比例因子 w ,即 v=[x y z w ]T 其中 a = x/w, b = y/w, c = z/w。 3i + 4j + 5k 可表示为 v = [ 3 4 5 1 ]T = [ 6 8 10 2 ]T = [ -3 -4 -5 -1]T 在向量中增加一个比例因子 w 是为了方便坐标变换中的矩阵运算。
-3 z
7
1 ]T,则平
v = H u =
0 4 0 ―3 1 7 0 1
2 3 2 1
=
6 0 9 1
9 q v p
点向量的平移过程如图2.3所示。 对平面的平移则用 换原理有 1 0 0 -4 0 1 0 3 0 0 1 -7 0 0 0 1 H-1 进行变换,如对平面
P 2 0 2 6 图2.3 点向量的平移 u 3 y
w = Rot ( y, 90°) Rot ( z, 90°) u =
=
如果按着逆序旋转,首先绕y轴旋转90°,然后再绕z轴旋转90°,其结果为 0 -1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0 0 1 0 1 0 0 0 0 0 0 0 1 7 3 2 1 -3 2 -7 1
2.11 等价旋转角与旋转轴 2.13 透视变换 2.15 小结
2.1
引言 (Introduction)
机器人操作涉及到各物体之间的关系和各物体与机械手之间的
关系。这一章将给出描述这些关系必须的表达方法。类似这种表示 方法在计算机图形学中已经解决。在计算机图形学和计算机视觉中, 物体之间的关系是用齐次坐标变换来描述的。在本课程我们将采用 齐次坐标变换来描述机械手各关节坐标之间、各物体之间以及各物 体与机械手之间的关系。 本章首先介绍向量和平面的表示方法,然后引出向量和平面的 坐标变换,这些变换基本上是由平移和旋转组成,因此可以用坐标 系来描述各种物体和机械手的空间位置和姿态。稍后还要介绍逆变 换,逆变换是运动学求解的基础。
改变比例因子 w,则分量 a、b、c 的数值相应改变,但描述的还是同一个点向量。如 v =
已知两个向量 a = ax i + ay j + az k b = bx i + by j + bz k 向量的点积是标量。用“ ”来定义向量点积,即 a b = ax bx + ay by + az bz (2.2 ) (2.1)
平移变换(Translation transformation) 2.4 平移变换
用向量 h = a i + b j + c k 进行平移,其相应的H变换矩阵是 1 0 0 1 0 0 0 0 0 a 0 b 1 c 0 1
H = Trans ( a b c ) =
(2.10)
因此对向量 u = [ x y z w ]T,经H变换为向量v可表示为 x + aw y + bw z + cw w x/w+a y/w+b z/w+c 1
第二章
2.1 引言 2.3 变换 2.5 旋转变换 2.7 相对变换 2.9 逆变换
齐次坐标变换
2.2 2.4 2.6 2.8 点向量和平面的描述 平移变换 坐标系 物体的描述
ChapterⅡ Homogeneous Transformation
2.10 一般性旋转变换 2.12 扩展与缩小 2.14 变换方程
v=
=
(2.11)
可见,平移实际上是对已知向量 u = [ x y z w ]T 与平移向量 h = [ a b c 1 ]T 相加。
【例2.1】对点向量 u = [ 2 移后的向量为 v = [ 6 1 0 0 0 0 1 0 0 0
3 9
2
1 ]T 进行平移,平移向量为 h = [ 4 1 ]T,或
z
v
2
v = Rot ( z, 90°) =
=
0
y
起始点u和终点v如图2.5所示。如将v点再绕y轴 旋转90°得到w。用式(2.13)变换得到 0 0 -1 0 0 1 0 0 1 0 0 0 0 0 0 1 -3 7 2 1
图2.5 Rot ( z, 90°) z w 0 v
7
w = Rot ( y, 90°) =
2.3
变换(Transformation) 变换
H空间的变换是由4×4矩阵来完成的,它可以表示平移、旋转、扩展和透视
等各种变换。如已知点u(在平面p上),它的变换v(在平面q上)用矩阵积表示为 v=Hu (2.7)
其中H为4×4 变换矩阵,u和v为4×1的点列向量,相应的平面p到q的变换是 q = p H-1 其中H-1为H的逆阵,p和q为1×4 的平面行向量。 经变换后的平面向量q与点向量v的点乘为 q v = p H-1 H u = p u 与变换前平面p与点u的点乘相等,证明了变换的等效性。 ( 2.9) (2.8)
T的 z y 0 z x Trans ( 4, -3, 7 )
Байду номын сангаас
H 变换是 [ 4 -3 7 1 ] T,相当于将原点按平移 向量的各个分量进行平移的结果( 如图 2.9 所 示)。如果对 x、y、z 轴的单位向量进行 H变 换,分别得到 [ 4 -2 7 1 ] T 、[ 4 -3 8 1 ] T 和 [ 5 -3 7 1 ] T。这四个向量在图2.9中标出,并 形成了一个新坐标系。
w = Rot ( z, 90°) Rot ( y, 90°) u =
=
逆序旋转的结果如图2.7所示。显然,变换的顺序不同,其结果也不同 。这从 变换的顺序不同, 变换的顺序不同 矩阵相乘是不可交换的(AB≠BA)也可以得到证明。
如对经过两次旋转变换得到的点向量w再进行一次平移(平移向量为 h = [ 4 -3 7 1]T ), 则可得到如图2.8所示的点向量n。变换过程如下 1 0 0 4 0 1 0 -3 n = Trans (4, -3, 7) w = 0 0 1 7 0 0 0 1
点向量和平面的描述 和平面的描述(Notation of point vectors and planes) 2.2 点向量和平面的描述
点向量( vectors) 2.2.1 点向量(Point vectors)
点向量描述空间的一个点在某个坐标系的空间位 置。同一个点在不同坐标系的描述及位置向量的值也 不同。如图2.1中,点p在E坐标系上表示为 Ev,在H坐 标系上表示为
x
图2.4 旋转变换
(2.13)
注意:θ角旋转的正方向遵 循右手螺旋法则(如图2.4 所示)
Rot ( z, θ) =
(2.14)
【例2.2】点 u = 7i + 3j + 2k,它绕z轴旋转90°为v, 经式(2.14)变换得到( sinθ=1,cosθ=0) 0 -1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 7 3 2 1 -3 7 2 1 x u 2 7 3 1
Rot ( y, 90°) 0 Rot ( z, 90°) x y
图2.9 坐标原点与单位向量的H 变换
这个新坐标系的 x、y、z 轴的方向分别是 [ 0,1,0,0 ] T、[ 0,0,1,0 ]
T
和 [ 1,0,0,0 ] T,它是由单位向量的H变换减去这个坐标原点的向量得到的。 这些方向向量相应于变换矩阵的前三列(见式(2.15))。可见,H变换矩阵描述 了一个坐标系绕原参考坐标系旋转和对参考坐标系平移的三个轴的方向和原点的 位置(见图2.9)。如图2.10所示,当对一个向量 n 进行式(2.15)给出的 H 变换 时,原向量 n 可以被认为是在新坐标系描述的那个向量 u ,即被变换了的向量 u 就是相对于参考坐标系描述的同一个向量 n 。
z n 0
2 2
2 7 3 1
=
6 4 10 1
z
v w
y w v
u x
-7
0
7
y
x
u
图2.7 Rot ( z, 90°) Rot ( y, 90°)
图2.8 Trans(4, -3, 7)Rot(y, 90°) Rot(z, 90°)
2.6 坐标系 (Coordinate frames)
齐次变换矩阵H由四个列向量组成,它的前三个列向量称为方向向量,由式 (2.12)到式(2.14)的旋转变换(分别绕 x、y、z 轴旋转θ角)确定,第四个列向 量称为平移向量,它的平移分量(沿 x、y、z 轴的平移量)由式(2.10)第四列的前 三个元素确定。如 0 0 1 4 1 0 0 -3 H=Trans ( 4, -3, 7 ) Rot ( y, 90°) Rot ( z, 90°) = 0 1 0 7 (2.15) 0 0 0 1 坐标系的原点,即零向量 [ 0 0 0 1 ]
2
y
u 图2.6 Rot ( y, 90°) Rot ( z, 90°)
为此,先将点u绕z轴旋转90°,然后再绕y轴旋转90°,我们得到 0 0 1 0 0 1 0 0 -1 0 0 0 0 0 0 1 0 -1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 7 3 2 1 2 7 3 1
=
结果如图2.6所示。如果将上述两次旋转结合起来, 写成一个表达式得到 w = Rot ( y, 90°) v = Rot ( y, 90°) Rot ( z, 90°) u 用两个变换矩阵 Rot ( y, 90°) 、 Rot ( z, 90°) 和起始 点u代入上式计算的结果与前面分两次计算的结果相同。 x
a 2 + b2 + c 2 = 1
平面p上任一点v为 v = [ x y 1 1 ]T,它与平面p的点乘为零,即 p v = 0 平面p上方任一点v,如 v = [ 0 0 2 1 ]T,它与平面p的点乘为一个正数,即 p v = 1 平面p下方任一点v,如 v = [ 0 0 0 1 ]T,它与平面p的点乘为一个负数,即 p v = -1 注意: 无定义。 注意:平面 [ 0 0 0 0 ] 无定义。
向量的叉积是一个垂直于由叉积的两个向量构成的平面的向量。用 “×”表示叉积,即 a × b = ( ay bz az by ) i + ( az bx ax bz ) j + ( ax by ay by ) k 可用行列式表示为 a×b = i j k ax ay az bx by bz (2.4) ( 2.3)
p = [ 1 0 0 -2 ] 进行 H 变换为平面q,则根据变
q = p H-1 =[ 1 0 0 -2 ] =[ 1 0 0 -6 ]
x
平面 p = [ 1 0 0 -2 ] 是 y-z 平面沿 x 正方向移动2个单位形成的平面(图2.3),点u = [ 2 3 2 1 ]T 是平面 p上的一个点,它们的点乘 p u = 0。经 H 变换后的平面 q=[ 1 0 0 -6 ]是 y -z 平面沿 x 正方向移动6个单位形成的平面,点v = [6 0 9 1]T 是平面 q上一个点,平面 q 与 点 v 的点乘也应是零,即 q v =0,说明变换前后的结果不变,证明 H 变换是正确的。
2.5
旋转变换(Rotation transformation) 旋转变换
如图2.4所示,绕 x, y, z 轴旋转一个θ角 的相应变换是 1 0 0 0 0 cosθ - sinθ 0 0 sinθ cosθ 0 0 0 0 1
z
θ
Rot ( x, θ) =
(2.12)
θ
0
θ
y
cosθ 0 sinθ 0 0 1 0 0 Rot ( y, θ) = - sinθ 0 cosθ 0 0 0 0 1 cosθ - sinθ 0 0 sinθ cosθ 0 0 0 0 1 0 0 0 0 1
平面(Planes) 2.2.2 平面(Planes)
平面可用一个行矩阵表示,即 p=[abcd] (2.5)
z
1
p v
它表示了平面p的法线方向,且距坐标原点的 距离为-d / m,其中 m=
a2 + b2 + c2
(2.6)
0 x x 图2.2 平面的描述
y y
如图2.2所示,如果将 x-y 平面沿z 轴正 方向平移一个单位距离,构成平面 p,则 p = [ 0 0 1 -1] 即 a = 0, b = 0, c = 1, d = -1, m =
z c E 0 a x z 图2.1 点向量的描述 u 0 v b y H y p
x
≠ u。一个点向量可表示为
v = ai + bj + ck 通常用一个(n + 1)维列矩阵表示,即除 x、y、 z 三个方向上的分量外,再加一个比例因子 w ,即 v=[x y z w ]T 其中 a = x/w, b = y/w, c = z/w。 3i + 4j + 5k 可表示为 v = [ 3 4 5 1 ]T = [ 6 8 10 2 ]T = [ -3 -4 -5 -1]T 在向量中增加一个比例因子 w 是为了方便坐标变换中的矩阵运算。
-3 z
7
1 ]T,则平
v = H u =
0 4 0 ―3 1 7 0 1
2 3 2 1
=
6 0 9 1
9 q v p
点向量的平移过程如图2.3所示。 对平面的平移则用 换原理有 1 0 0 -4 0 1 0 3 0 0 1 -7 0 0 0 1 H-1 进行变换,如对平面
P 2 0 2 6 图2.3 点向量的平移 u 3 y
w = Rot ( y, 90°) Rot ( z, 90°) u =
=
如果按着逆序旋转,首先绕y轴旋转90°,然后再绕z轴旋转90°,其结果为 0 -1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0 0 1 0 1 0 0 0 0 0 0 0 1 7 3 2 1 -3 2 -7 1
2.11 等价旋转角与旋转轴 2.13 透视变换 2.15 小结
2.1
引言 (Introduction)
机器人操作涉及到各物体之间的关系和各物体与机械手之间的
关系。这一章将给出描述这些关系必须的表达方法。类似这种表示 方法在计算机图形学中已经解决。在计算机图形学和计算机视觉中, 物体之间的关系是用齐次坐标变换来描述的。在本课程我们将采用 齐次坐标变换来描述机械手各关节坐标之间、各物体之间以及各物 体与机械手之间的关系。 本章首先介绍向量和平面的表示方法,然后引出向量和平面的 坐标变换,这些变换基本上是由平移和旋转组成,因此可以用坐标 系来描述各种物体和机械手的空间位置和姿态。稍后还要介绍逆变 换,逆变换是运动学求解的基础。
改变比例因子 w,则分量 a、b、c 的数值相应改变,但描述的还是同一个点向量。如 v =
已知两个向量 a = ax i + ay j + az k b = bx i + by j + bz k 向量的点积是标量。用“ ”来定义向量点积,即 a b = ax bx + ay by + az bz (2.2 ) (2.1)
平移变换(Translation transformation) 2.4 平移变换
用向量 h = a i + b j + c k 进行平移,其相应的H变换矩阵是 1 0 0 1 0 0 0 0 0 a 0 b 1 c 0 1
H = Trans ( a b c ) =
(2.10)
因此对向量 u = [ x y z w ]T,经H变换为向量v可表示为 x + aw y + bw z + cw w x/w+a y/w+b z/w+c 1
第二章
2.1 引言 2.3 变换 2.5 旋转变换 2.7 相对变换 2.9 逆变换
齐次坐标变换
2.2 2.4 2.6 2.8 点向量和平面的描述 平移变换 坐标系 物体的描述
ChapterⅡ Homogeneous Transformation
2.10 一般性旋转变换 2.12 扩展与缩小 2.14 变换方程
v=
=
(2.11)
可见,平移实际上是对已知向量 u = [ x y z w ]T 与平移向量 h = [ a b c 1 ]T 相加。
【例2.1】对点向量 u = [ 2 移后的向量为 v = [ 6 1 0 0 0 0 1 0 0 0
3 9
2
1 ]T 进行平移,平移向量为 h = [ 4 1 ]T,或
z
v
2
v = Rot ( z, 90°) =
=
0
y
起始点u和终点v如图2.5所示。如将v点再绕y轴 旋转90°得到w。用式(2.13)变换得到 0 0 -1 0 0 1 0 0 1 0 0 0 0 0 0 1 -3 7 2 1
图2.5 Rot ( z, 90°) z w 0 v
7
w = Rot ( y, 90°) =
2.3
变换(Transformation) 变换
H空间的变换是由4×4矩阵来完成的,它可以表示平移、旋转、扩展和透视
等各种变换。如已知点u(在平面p上),它的变换v(在平面q上)用矩阵积表示为 v=Hu (2.7)
其中H为4×4 变换矩阵,u和v为4×1的点列向量,相应的平面p到q的变换是 q = p H-1 其中H-1为H的逆阵,p和q为1×4 的平面行向量。 经变换后的平面向量q与点向量v的点乘为 q v = p H-1 H u = p u 与变换前平面p与点u的点乘相等,证明了变换的等效性。 ( 2.9) (2.8)
T的 z y 0 z x Trans ( 4, -3, 7 )
Байду номын сангаас
H 变换是 [ 4 -3 7 1 ] T,相当于将原点按平移 向量的各个分量进行平移的结果( 如图 2.9 所 示)。如果对 x、y、z 轴的单位向量进行 H变 换,分别得到 [ 4 -2 7 1 ] T 、[ 4 -3 8 1 ] T 和 [ 5 -3 7 1 ] T。这四个向量在图2.9中标出,并 形成了一个新坐标系。
w = Rot ( z, 90°) Rot ( y, 90°) u =
=
逆序旋转的结果如图2.7所示。显然,变换的顺序不同,其结果也不同 。这从 变换的顺序不同, 变换的顺序不同 矩阵相乘是不可交换的(AB≠BA)也可以得到证明。
如对经过两次旋转变换得到的点向量w再进行一次平移(平移向量为 h = [ 4 -3 7 1]T ), 则可得到如图2.8所示的点向量n。变换过程如下 1 0 0 4 0 1 0 -3 n = Trans (4, -3, 7) w = 0 0 1 7 0 0 0 1
点向量和平面的描述 和平面的描述(Notation of point vectors and planes) 2.2 点向量和平面的描述
点向量( vectors) 2.2.1 点向量(Point vectors)
点向量描述空间的一个点在某个坐标系的空间位 置。同一个点在不同坐标系的描述及位置向量的值也 不同。如图2.1中,点p在E坐标系上表示为 Ev,在H坐 标系上表示为
x
图2.4 旋转变换
(2.13)
注意:θ角旋转的正方向遵 循右手螺旋法则(如图2.4 所示)
Rot ( z, θ) =
(2.14)
【例2.2】点 u = 7i + 3j + 2k,它绕z轴旋转90°为v, 经式(2.14)变换得到( sinθ=1,cosθ=0) 0 -1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 7 3 2 1 -3 7 2 1 x u 2 7 3 1
Rot ( y, 90°) 0 Rot ( z, 90°) x y
图2.9 坐标原点与单位向量的H 变换
这个新坐标系的 x、y、z 轴的方向分别是 [ 0,1,0,0 ] T、[ 0,0,1,0 ]
T
和 [ 1,0,0,0 ] T,它是由单位向量的H变换减去这个坐标原点的向量得到的。 这些方向向量相应于变换矩阵的前三列(见式(2.15))。可见,H变换矩阵描述 了一个坐标系绕原参考坐标系旋转和对参考坐标系平移的三个轴的方向和原点的 位置(见图2.9)。如图2.10所示,当对一个向量 n 进行式(2.15)给出的 H 变换 时,原向量 n 可以被认为是在新坐标系描述的那个向量 u ,即被变换了的向量 u 就是相对于参考坐标系描述的同一个向量 n 。
z n 0
2 2
2 7 3 1
=
6 4 10 1
z
v w
y w v
u x
-7
0
7
y
x
u
图2.7 Rot ( z, 90°) Rot ( y, 90°)
图2.8 Trans(4, -3, 7)Rot(y, 90°) Rot(z, 90°)
2.6 坐标系 (Coordinate frames)
齐次变换矩阵H由四个列向量组成,它的前三个列向量称为方向向量,由式 (2.12)到式(2.14)的旋转变换(分别绕 x、y、z 轴旋转θ角)确定,第四个列向 量称为平移向量,它的平移分量(沿 x、y、z 轴的平移量)由式(2.10)第四列的前 三个元素确定。如 0 0 1 4 1 0 0 -3 H=Trans ( 4, -3, 7 ) Rot ( y, 90°) Rot ( z, 90°) = 0 1 0 7 (2.15) 0 0 0 1 坐标系的原点,即零向量 [ 0 0 0 1 ]
2
y
u 图2.6 Rot ( y, 90°) Rot ( z, 90°)
为此,先将点u绕z轴旋转90°,然后再绕y轴旋转90°,我们得到 0 0 1 0 0 1 0 0 -1 0 0 0 0 0 0 1 0 -1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 7 3 2 1 2 7 3 1
=
结果如图2.6所示。如果将上述两次旋转结合起来, 写成一个表达式得到 w = Rot ( y, 90°) v = Rot ( y, 90°) Rot ( z, 90°) u 用两个变换矩阵 Rot ( y, 90°) 、 Rot ( z, 90°) 和起始 点u代入上式计算的结果与前面分两次计算的结果相同。 x
a 2 + b2 + c 2 = 1
平面p上任一点v为 v = [ x y 1 1 ]T,它与平面p的点乘为零,即 p v = 0 平面p上方任一点v,如 v = [ 0 0 2 1 ]T,它与平面p的点乘为一个正数,即 p v = 1 平面p下方任一点v,如 v = [ 0 0 0 1 ]T,它与平面p的点乘为一个负数,即 p v = -1 注意: 无定义。 注意:平面 [ 0 0 0 0 ] 无定义。
向量的叉积是一个垂直于由叉积的两个向量构成的平面的向量。用 “×”表示叉积,即 a × b = ( ay bz az by ) i + ( az bx ax bz ) j + ( ax by ay by ) k 可用行列式表示为 a×b = i j k ax ay az bx by bz (2.4) ( 2.3)
p = [ 1 0 0 -2 ] 进行 H 变换为平面q,则根据变
q = p H-1 =[ 1 0 0 -2 ] =[ 1 0 0 -6 ]
x
平面 p = [ 1 0 0 -2 ] 是 y-z 平面沿 x 正方向移动2个单位形成的平面(图2.3),点u = [ 2 3 2 1 ]T 是平面 p上的一个点,它们的点乘 p u = 0。经 H 变换后的平面 q=[ 1 0 0 -6 ]是 y -z 平面沿 x 正方向移动6个单位形成的平面,点v = [6 0 9 1]T 是平面 q上一个点,平面 q 与 点 v 的点乘也应是零,即 q v =0,说明变换前后的结果不变,证明 H 变换是正确的。
2.5
旋转变换(Rotation transformation) 旋转变换
如图2.4所示,绕 x, y, z 轴旋转一个θ角 的相应变换是 1 0 0 0 0 cosθ - sinθ 0 0 sinθ cosθ 0 0 0 0 1
z
θ
Rot ( x, θ) =
(2.12)
θ
0
θ
y
cosθ 0 sinθ 0 0 1 0 0 Rot ( y, θ) = - sinθ 0 cosθ 0 0 0 0 1 cosθ - sinθ 0 0 sinθ cosθ 0 0 0 0 1 0 0 0 0 1
平面(Planes) 2.2.2 平面(Planes)
平面可用一个行矩阵表示,即 p=[abcd] (2.5)
z
1
p v
它表示了平面p的法线方向,且距坐标原点的 距离为-d / m,其中 m=
a2 + b2 + c2
(2.6)
0 x x 图2.2 平面的描述
y y
如图2.2所示,如果将 x-y 平面沿z 轴正 方向平移一个单位距离,构成平面 p,则 p = [ 0 0 1 -1] 即 a = 0, b = 0, c = 1, d = -1, m =