机械臂笔记——齐次变换矩阵
背景
homogeneous transformation matrix
齐次变换矩阵是计算机图形学、机器人学、物理学和其他工程领域中常用的一种数学工具,用于描述和计算在三维空间中的几何变换,包括平移、旋转、缩放等。它通过将变换矩阵扩展到四维空间(包括三个空间维度和一个额外的维度),允许我们将所有的变换统一到一个矩阵操作中。
齐次坐标
在介绍齐次变换矩阵之前,需要先了解齐次坐标的概念。一个点的齐次坐标是它的普通三维坐标加上一个额外的坐标分量,通常设为 1。例如,一个在三维空间中的点 P = (x, y, z) 的齐次坐标表示为 P_h = (x, y, z, 1) 。
齐次变换矩阵的形式
齐次变换矩阵是一个 4x4 的矩阵,它可以表示为:
T
=
[
R
t
0
1
]
其中:
T = \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} 其中:
T=[R0t1]其中:
- ( R ) 是一个 3x3 的旋转矩阵,用于描述旋转变换。
- ( t ) 是一个 3x1 的平移向量,用于描述平移变换。
- ( 0 ) 是一个 1x3 的零向量。
- ( 1 ) 是一个标量,用于保持齐次坐标的第四个分量为 1。
齐次变换矩阵的作用
齐次变换矩阵可以用来执行以下操作:
- 平移:通过修改 ( t ) 向量,可以沿 x、y、z 轴平移一个点。
- 旋转:通过修改 ( R ) 矩阵,可以绕 x、y、z 轴旋转一个点。
- 缩放:虽然缩放通常需要单独的缩放矩阵,但可以通过在 ( R ) 中加入缩放因子来实现。
应用齐次变换矩阵
要应用齐次变换矩阵 T 到一个点 P_h ,我们只需将 T 与 P_h 的齐次坐标进行矩阵乘法:
P
h
′
=
T
⋅
P
h
P'_h = T \cdot P_h
Ph′=T⋅Ph
其中 P’_h 是变换后的点的齐次坐标。
示例
假设我们有一个点 P = (1, 2, 3) 和一个变换矩阵 T ,其中 R 是单位矩阵(即没有旋转),t = (1, 1, 1) :
T
=
[
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
]
T = \begin{bmatrix} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 \end{bmatrix}
T=
1000010000101111
点 P 的齐次坐标是 P_h = (1, 2, 3, 1) 。应用变换矩阵 T 后:
P
h
′
=
T
⋅
P
h
=
[
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
]
⋅
[
1
2
3
1
]
=
[
2
3
4
1
]
P'_h = T \cdot P_h = \begin{bmatrix} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 \\ 2 \\ 3 \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 3 \\ 4 \\ 1 \end{bmatrix}
Ph′=T⋅Ph=
1000010000101111
⋅
1231
=
2341
因此,变换后的点 P’ 的三维坐标是 (2, 3, 4) 。
齐次变换矩阵是处理三维变换的一个强大工具,因为它允许我们将多种变换组合到一个矩阵中,从而简化了计算过程。
Mapping(映射)
在变换矩阵的语境中,“mapping” 通常指的是一个数学函数,它将一组输入坐标(或向量)映射到一组输出坐标(或向量)。变换矩阵本身就是一个映射,它描述了如何从一个坐标系转换到另一个坐标系。
具体来说,变换矩阵的 “mapping” 涉及以下方面:
- 定义域和值域:变换矩阵的输入通常是原始坐标或向量,定义域是所有可能的输入值的集合。输出是变换后的坐标或向量,值域是所有可能的输出值的集合。
- 操作:通过矩阵乘法,原始坐标或向量与变换矩阵相乘,得到变换后的坐标或向量。
- 关系:变换矩阵定义了输入和输出之间的具体关系,即如何通过线性组合将原始坐标映射到新的坐标。
Operator(算子)
在变换矩阵的语境中,“operator” 通常指的是一个数学对象,它对某些空间中的元素(如向量)进行操作,并得到该空间中的另一个元素。变换矩阵就是一个算子,它对向量空间中的向量进行线性变换。
具体来说,变换矩阵的 “operator” 涉及以下方面:
- 操作:变换矩阵通过矩阵乘法对向量进行操作。
- 线性:变换矩阵是线性的,这意味着它满足线性算子的性质。
- 效果:变换矩阵的效果可以是旋转、缩放、剪切或平移等几何变换。
总结
- Mapping:描述了变换矩阵如何将原始坐标映射到新的坐标,强调的是输入和输出之间的对应关系。
- Operator:描述了变换矩阵作为一个算子的作用,强调的是对向量进行的操作及其线性特性。
基本操作
Mapping方式
对坐标系变换映射点的坐标。
Operator方式
对向量点作运动计算。
对坐标系作运动换化(运动的相对性:点对坐标系的变化,相当于坐标系对点作逆变换)。
总结
运算法则
连续运算
反矩阵