点和向量,坐标系
首先说说向量是什么,它是线性空间的一个元素,可以想象从原点指向某处的一个箭头,不要把向量和坐标混淆。谈论向量
a
⃗
\vec a
a在一个线性基(
e
⃗
1
,
e
⃗
2
,
e
⃗
3
\vec e_1,\vec e_2,\vec e_3
e1,e2,e3)的坐标
a
⃗
=
[
e
⃗
1
e
⃗
2
e
⃗
3
]
[
a
1
a
2
a
3
]
(1)
\vec a = \left[ \begin{matrix} \vec e_1 & \vec e_2 &\vec e_3 \\ \end{matrix} \right] \left[ \begin{matrix} a_1 \\ a_2 \\ a_3 \\ \tag{1}\end{matrix} \right]
a=[e1e2e3]⎣⎡a1a2a3⎦⎤(1)
向量的点乘(内积)可以描述成向量间的投影关系,对于
a
⃗
,
b
⃗
∈
R
⃗
3
\vec a,\vec b \in \vec R^3
a,b∈R3,
a
⃗
⋅
b
⃗
=
∑
i
=
1
3
a
i
b
i
=
∣
a
⃗
∣
∣
b
⃗
∣
c
o
s
<
a
⃗
,
b
⃗
>
(2)
\vec a \cdot \vec b = \sum_{i=1}^3{a_i b_i} = |\vec a||\vec b|cos< \vec a , \vec b> \tag{2}
a⋅b=i=1∑3aibi=∣a∣∣b∣cos<a,b>(2)
向量的叉乘(外积)
a
⃗
×
b
⃗
=
[
i
⃗
j
⃗
k
⃗
a
1
a
2
a
3
b
1
b
2
b
3
]
=
[
a
2
b
3
−
a
3
b
2
a
3
b
1
−
a
1
b
3
a
1
b
2
−
a
2
b
1
]
=
[
0
−
a
3
a
2
a
3
0
−
a
1
−
a
2
a
1
0
]
b
⃗
=
a
⃗
v
⋅
b
⃗
(3)
\vec a \times \vec b = \left[ \begin{matrix} \vec i & \vec j &\vec k \\ a_1 & a_2 &a_3 \\ b_1 & b_2 &b_3 \\ \end{matrix} \right] =\left[ \begin{matrix} a_2b_3-a_3b_2 \\ a_3b_1-a_1b_3 \\ a_1b_2-a_2b_1 \\ \end{matrix} \right] = \left[ \begin{matrix} 0 & -a_3 &a_2 \\ a_3 & 0 &-a_1 \\ -a_2 & a_1 &0 \\ \end{matrix} \right] \vec b =\vec a^v \cdot \vec b\tag{3}
a×b=⎣⎡ia1b1ja2b2ka3b3⎦⎤=⎣⎡a2b3−a3b2a3b1−a1b3a1b2−a2b1⎦⎤=⎣⎡0a3−a2−a30a1a2−a10⎦⎤b=av⋅b(3)
|
a
⃗
×
b
⃗
\vec a× \vec b
a×b|在数值上等于由
a
⃗
\vec a
a和
b
⃗
\vec b
b构成的平行四边形的面积
∣
a
⃗
∣
∣
b
⃗
∣
s
i
n
<
a
⃗
,
b
⃗
>
|\vec a||\vec b|sin< \vec a , \vec b>
∣a∣∣b∣sin<a,b>,方向垂直于这两个向量。
(3)式中最后的等号是近似的,我们把
a
⃗
v
\vec a^v
av当成
a
⃗
\vec a
a生成的一个反对称矩阵,这样就把向量的叉乘变成矩阵与向量的乘积,把运算变成了线性运算
坐标系的欧式变化
在欧式变化中,除了旋转还有平移。考虑到世界坐标系中的向量
a
⃗
\vec a
a,经过一次选择(R)和一次平移
t
⃗
\vec t
t,得到了
a
⃗
′
\vec a'
a′,有:
a
⃗
′
=
R
a
⃗
+
t
⃗
\vec a' = R \vec a + \vec t
a′=Ra+t
我们定义两个坐标系:世界坐标系和相机坐标系,在该定义下,设某个点再世界坐标系中的坐标为
p
⃗
w
\vec p_w
pw,在相机坐标系下为
p
⃗
c
\vec p_c
pc,那么:
p
⃗
c
=
T
c
w
p
⃗
w
\vec p_c= T_{cw} \vec p_w
pc=Tcwpw
这里
T
c
w
T_{cw}
Tcw表示世界坐标系到相机坐标系的变换。或者反过来的
T
w
c
T_{wc}
Twc:
p
⃗
w
=
T
w
c
p
⃗
c
=
T
c
w
−
1
p
⃗
c
\vec p_w= T_{wc} \vec p_c = T_{cw}^{-1} \vec p_c
pw=Twcpc=Tcw−1pc
如果把
p
⃗
c
\vec p_c
pc取成零向量,也就是相机坐标系的原点,那么
p
⃗
w
\vec p_w
pw就是相机原点在世界坐标系下的坐标:
p
⃗
w
=
T
w
c
0
⃗
=
t
⃗
w
c
\vec p_w= T_{wc} \vec 0 = \vec t_{wc}
pw=Twc0=twc
我们发现这就是
T
w
c
T_{wc}
Twc的平移部分。
note:
T
w
c
T_{wc}
Twc表示相机坐标系到世界坐标系的变换。旋转部分遵循相机到世界的旋转,平移部分则是相机在世界坐标系下的坐标
四元数
假设某个旋转是绕单位向量
n
⃗
=
[
n
x
,
n
y
,
n
z
]
T
\vec n=[n_x,n_y,n_z]^T
n=[nx,ny,nz]T进行角度
θ
\theta
θ的旋转,那么这个旋转的四元数形式就是
q
⃗
=
[
c
o
s
θ
2
,
n
x
s
i
n
θ
2
,
n
y
s
i
n
θ
2
,
n
z
s
i
n
θ
2
]
T
\vec q = [cos\frac{\theta}{2},n_xsin\frac{\theta}{2},n_ysin\frac{\theta}{2},n_zsin\frac{\theta}{2}]^T
q=[cos2θ,nxsin2θ,nysin2θ,nzsin2θ]T