相机与激光雷达联合标定(一):坐标变换理论

一. 二维坐标系

1. 旋转矩阵

图1

在 图1 中,点P在X_{A}OY_{A}坐标系下的位置坐标为(OA,OE),在X_{B}OY_{B}坐标系下的位置坐标为(OC,OG)

并且∠BOA=θ

OC=OB+BC   (式1)

OG=OF-FG   (式2)

在 式1 中:

OB=OA∙cosθ

BC=AD

AD=AP∙sinθ

AP=OE

AD=OE∙sinθ

                                                   ∴OC=OA∙cosθ + OE∙sinθ   (式3)

在 式2 中:

OF=OE∙cosθ

FG=EH

EH=EP∙sinθ

EP=OA

EH=OA∙sinθ

FG=OA∙sinθ

                                                   ∴OG=OE∙cosθ - OA∙sinθ   (式4)

联立 式3、式4 得:

\left\{\begin{matrix} OC = OA\cdot \cos \theta +OE\cdot \sin \theta \\ OG = OE\cdot \cos \theta -OA\cdot \sin \theta \end{matrix}\right.   (式5)

因为:

OA=X_{a}

OE=Y_{a}

OC=X_{b}

OG=Y_{b}

所以 式5 将变成:

\left\{\begin{matrix} X_{b}=X_{a}\cdot \cos \theta +Y_{a}\cdot \sin \theta\\ Y_{b}= -X_{a}\cdot \sin \theta+Y_{a}\cdot \cos \theta\end{matrix}\right.  (式6)

将 式6 转化为矩阵:

\binom{X_{b}}{Y_{b}}=\bigl(\begin{smallmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{smallmatrix}\bigr)\cdot \binom{X_{a}}{Y_{a}}

其中:

\bigl(\begin{smallmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{smallmatrix}\bigr)

被称为旋转(Rotation)矩阵,记为R

2. 平移矩阵

图2

假设 点F 在 图2 中XOY坐标系下的位置坐标假设是已知的\left ( X_{0},Y_{0} \right ) 。将XOY坐标系沿着向量\vec{t}=\left ( a,b \right )平移之后得到UOV坐标系,假设点F在图 2‑1中UOV坐标系下为\left ( U_{0},V_{0} \right )

那么\left ( X_{0},Y_{0} \right )\left ( U_{0},V_{0} \right )的关系为:

\left\{\begin{matrix} U_{0}=X_{0}+a\\ V_{0}=Y_{0}+b \end{matrix}\right.   (式7)

将 式7 转化为矩阵:

\binom{U_{0}}{V_{0}}=\binom{X_{0}}{Y_{0}} +t^{T}

其中:

t^{T}=\binom{a}{b}

被称为平移(Translation)矩阵,记为t

3. 旋转平移矩阵

 图3

假设 点F 在 图2 中XOY坐标系下的位置坐标假设是已知的\left ( X_{0},Y_{0} \right ) 。将XOY坐标系沿着向量\vec{t}=\left ( a,b \right )平移并逆时针旋转α角度之后得到UOV坐标系,假设点F在图 2‑1中UOV坐标系下为\left ( U_{0},V_{0} \right ) 

上述变换过程可以理解为:

①. 先将XOY坐标系逆时针旋转α角度,得到X_{1}OY_{1}坐标系,此时点F在X_{1}OY_{1}坐标系下的坐标为\left ( {X_{0}}^{1},{Y_{0}}^{1} \right )

那么\left ( X_{0},Y_{0} \right )\left ( {X_{0}}^{1},{Y_{0}}^{1} \right ) 之间的关系为:

\left\{\begin{matrix} {X_{0}}^{1}=X_{0}\cdot \cos \alpha +Y_{0}\cdot \sin \alpha\\{Y_{0}}^1=Y_{0} \cdot \cos \alpha - X_{0} \cdot \sin \alpha \end{matrix}\right.   (式8)

②. 再将X_{1}OY_{1}坐标系沿着向量\vec{t} 移动,得到UOV坐标系,此时点F在UOV坐标系下的坐标为\left ( U_{0},V_{0} \right )

那么\left ( {X_{0}}^{1},{Y_{0}}^{1} \right )\left ( U_{0},V_{0} \right )之间的关系为:

\left\{\begin{matrix} U_{0}={X_{0}}^1+a\\ V_{0}={Y_{0}}^1+b \end{matrix}\right.   (式9)

将 式8 带入 式9 中得:

\left\{\begin{matrix} {X_{0}}^{1}=X_{0}\cdot \cos \alpha +Y_{0}\cdot \sin \alpha + a \\ {Y_{0}}^1= - X_{0} \cdot \sin \alpha + Y_{0} \cdot \cos \alpha + b \end{matrix}\right.   (式10)

将 式10 转化为矩阵:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ 1\end{matrix} \right ) = \left ( \begin{matrix} \cos \alpha &\sin \alpha &a \\ -\sin \alpha &\cos \alpha &b \\ 0 &0 &1 \end{matrix} \right )\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ 1\end{matrix} \right )   (式11)

其中:

\bigl(\begin{smallmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{smallmatrix}\bigr)为旋转(Rotation)矩阵,记为R

\binom{a}{b}为平移(Translation)矩阵,记为t

则 式12 可以将写为:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ 1\end{matrix} \right ) = \left ( \begin{matrix} R &t \\0 &1 \end{matrix} \right )\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ 1\end{matrix} \right )

其中:

\left ( \begin{matrix} R &t \\0 &1 \end{matrix} \right )

被称为变换(Transformation)矩阵,记为T

二. 三维坐标系

1. 旋转矩阵

三维坐标系的旋转可以借助二维坐标系旋转来理解,我们可以将三维坐标系的旋转分解为绕X、Y、Z轴的旋转。所以说,一个三维坐标系都可以由另一个三维坐标系通过绕X轴旋转、绕Y轴旋转、绕Z轴旋转、平移及其任何组合来实现。

(一). 绕Z轴旋转

图4

假设空间中存在XYZ坐标系和UVW坐标系,两者满足以下条件:

  • XYZ坐标系的原点和UVW坐标系的原点重合;
  • 并且Z轴和W轴重合并指向相同方向。

(可以认为UVW坐标系是由XYZ坐标系绕Z轴(或W轴)逆时针旋转θ角度得到;也可以认为UVW坐标系是独立于XYZ坐标系单独存在的,并且Y轴与V轴夹角为θ度,X轴与U轴夹角为θ度。)

假设点B在 图4 中XYZ坐标系下的位置坐标为\left ( X_{0},Y_{0},Z_{0} \right ),在UVW坐标系下的位置坐标为\left ( U_{0},V_{0},W_{0} \right )

为方便理解,我们可以将视角沿着Z轴(或W轴)进行俯视观察,发现与二维坐标系旋转一模一样,所以:

\left ( X_{0},Y_{0},Z_{0} \right )\left ( U_{0},V_{0},W_{0} \right ) 的关系为:

\left\{\begin{matrix} U_{0} = X_{0}\cdot \cos \theta +Y_{0}\cdot \sin \theta \\ V_{0} = -X_{0}\cdot \sin \theta+ Y_{0}\cdot \cos \theta \\ W_{0}=Z_{0} \end{matrix}\right.   (式12)

将 式12 转化为矩阵:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ W_{0} \end{matrix} \right ) = \left ( \begin{matrix} \cos \theta &\sin \theta &0 \\ -\sin \theta&\cos \theta &0 \\ 0 &0 &1 \end{matrix} \right )\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ Z_{0} \end{matrix} \right )

(二). 绕X轴旋转

图5

假设空间中存在XYZ坐标系和UVW坐标系,两者满足以下条件:

  • XYZ坐标系的原点和UVW坐标系的原点重合;
  • 并且X轴和U轴重合并指向相同方向。

(可以认为UVW坐标系是由XYZ坐标系绕X轴(或U轴)逆时针旋转α角度得到;也可以认为UVW坐标系是独立于XYZ坐标系单独存在的,并且Z轴与W轴夹角为α度,Y轴与V轴夹角为α度。)

假设点B在 图5 中XYZ坐标系下的位置坐标假设为\left ( X_{0},Y_{0},Z_{0} \right ) ,在UVW坐标系下的位置坐标为\left ( U_{0},V_{0},W_{0} \right )

为方便理解,我们将视角沿着X轴(或U轴)进行俯视观察,我们发现:图4中的X轴变成了图5中的Y轴;图4中的Y轴变成了图5中的Z轴。所以我们将 式12 中的X0改成Y0、Y0改成Z0;将U0改成V0、V0改成W0。最后得出:

\left ( X_{0},Y_{0},Z_{0} \right )\left ( U_{0},V_{0},W_{0} \right ) 的关系为:

\left\{\begin{matrix} U_{0} = X_{0} \\ V_{0} = Y_{0}\cdot \cos \alpha + Z_{0}\cdot \sin \alpha \\ W_{0}=-Y_{0}\cdot \sin \alpha +Z_{0}\cdot \cos \alpha \end{matrix}\right.   (式13)

将 式13 转化为矩阵:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ W_{0} \end{matrix} \right ) = \left ( \begin{matrix} 1 &0 &0 \\0&\cos \theta & \sin \theta \\ 0 & -\sin \theta &\cos \theta \end{matrix} \right )\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ Z_{0} \end{matrix} \right )

(三). 绕Y轴旋转

图6

假设空间中存在XYZ坐标系和UVW坐标系,两者满足以下条件:

  • XYZ坐标系的原点和UVW坐标系的原点重合;
  • 并且X轴和U轴重合并指向相同方向。

(可以认为UVW坐标系是由XYZ坐标系绕Y轴(或V轴)逆时针旋转β角度得到;也可以认为UVW坐标系是独立于XYZ坐标系单独存在的,并且X轴与U轴夹角为β度,Z轴与W轴夹角为β度。)

假设点B在图6中XYZ坐标系下的位置坐标为\left ( X_{0},Y_{0},Z_{0} \right ) ,在UVW坐标系下的位置坐标为\left ( U_{0},V_{0},W_{0} \right )

为方便理解,我们将视角沿着Y轴(或V轴)进行俯视观察,我们发现:图4中的X轴变成了图6中的Z轴;图4中的Y轴变成了图6中的X轴。所以我们将 式12 中的X0改成Z0、Y0改成X0;将U0改成W0、Y0改成U0。最后得出:

\left ( X_{0},Y_{0},Z_{0} \right )\left ( U_{0},V_{0},W_{0} \right )的关系为:

\left\{\begin{matrix} U_{0} = X_{0}\cdot \cos \beta -Z_{0}\cdot \sin \beta \\ V_{0} = Y_{0} \\ W_{0}=X_{0}\cdot \sin \beta +Z_{0}\cdot \cos \beta \end{matrix}\right.   (式14)

将式14转化为矩阵:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ W_{0} \end{matrix} \right ) = \left ( \begin{matrix} \cos \beta &0 &-\sin \beta \\0 &1 &0 \\ \sin \beta &0 &\cos \beta \end{matrix} \right )\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ Z_{0} \end{matrix} \right )

(四). 总结

1.1. 绕X轴旋转时,某点在新坐标系下的位置\left ( U_{0},V_{0},W_{0} \right ) 与原坐标系下的位置\left ( X_{0},Y_{0},Z_{0} \right )的对应关系:

\left\{\begin{matrix} U_{0} = X_{0} \\ V_{0} = Y_{0}\cdot \cos \alpha + Z_{0}\cdot \sin \alpha \\ W_{0}=-Y_{0}\cdot \sin \alpha +Z_{0}\cdot \cos \alpha \end{matrix}\right.

1.2. 绕Y轴旋转时,某点在新坐标系下的位置\left ( U_{0},V_{0},W_{0} \right ) 与原坐标系下的位置\left ( X_{0},Y_{0},Z_{0} \right )的对应关系:

\left\{\begin{matrix} U_{0} = X_{0}\cdot \cos \beta -Z_{0}\cdot \sin \beta \\ V_{0} = Y_{0} \\ W_{0}=X_{0}\cdot \sin \beta +Z_{0}\cdot \cos \beta \end{matrix}\right.

1.3. 绕Z轴旋转时,某点在新坐标系下的位置\left ( U_{0},V_{0},W_{0} \right ) 与原坐标系下的位置\left ( X_{0},Y_{0},Z_{0} \right )的对应关系:

\left\{\begin{matrix} U_{0} = X_{0}\cdot \cos \theta +Y_{0}\cdot \sin \theta \\ V_{0} = -X_{0}\cdot \sin \theta+ Y_{0}\cdot \cos \theta \\ W_{0}=Z_{0} \end{matrix}\right.

2.1. 绕X轴旋转时,新坐标系与原坐标系之间的旋转矩阵R_{x}(\alpha ) 为:

R_{x}(\alpha )=\left ( \begin{matrix} 1 &0 &0 \\0&\cos \theta & \sin \theta \\ 0 & -\sin \theta &\cos \theta \end{matrix} \right )

2.2. 绕Y轴旋转时,新坐标系与原坐标系之间的旋转矩阵R_{y}(\beta ) 为:

R_{y}(\beta )=\left ( \begin{matrix} \cos \beta &0 &-\sin \beta \\0 &1 &0 \\ \sin \beta &0 &\cos \beta \end{matrix} \right )

2.3. 绕Z轴旋转时,新坐标系与原坐标系之间的旋转矩阵R_{z}(\theta )为:

R_{z}(\theta )= \left ( \begin{matrix} \cos \theta &\sin \theta &0 \\ -\sin \theta&\cos \theta &0 \\ 0 &0 &1 \end{matrix} \right )

(五). 综合旋转

如果你想要一个坐标系UVW先绕着X轴旋转α,再绕着Y轴旋转β,最后绕着Z轴旋转θ角,这正情况被称为“左乘”(默认)

则得到的旋转矩阵R为:

R = R_{x}(\alpha )\cdot R_{y}(\beta )\cdot R_{z}(\theta )

令某一点在XYZ坐标系下的坐标为\left ( X_{0},Y_{0},Z_{0} \right ) ,在UVW坐标系下的坐标为\left ( U_{0},V_{0},W_{0} \right ),那么\left ( X_{0},Y_{0},Z_{0} \right )\left ( U_{0},V_{0},W_{0} \right )的关系为:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ W_{0} \end{matrix} \right ) =R\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ Z_{0} \end{matrix} \right )

U0V0W0=R∙X0Y0Z0

即:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ W_{0} \end{matrix} \right ) =R_{x}(\alpha )\cdot R_{y}(\beta )\cdot R_{z}(\theta )\cdot \left ( \begin{matrix} X_{0}\\ Y_{0}\\ Z_{0} \end{matrix} \right )    (式15)

2. 平移矩阵

图7

假设在XOY坐标系下坐标为\left ( X_{0},Y_{0},Z_{0} \right )

存在另一个坐标系UVW,(可以认为UVW坐标系是由XYZ坐标系沿向量\vec{t} = (a,b,c)平移得到的;也可以认为UVW坐标系是独立于XYZ坐标系单独存在的,并且X轴与U轴方向相同,Y轴与V轴方向相同,Z轴与W轴方向相同,UVW坐标系的原点在XYZ坐标系下的位置为\left ( a,b,c \right ) 。)

点B在UVW坐标系下的坐标设为\left ( U_{0}, V_{0}, W_{0} \right )

那么\left ( X_{0},Y_{0},Z_{0} \right )\left ( U_{0}, V_{0}, W_{0} \right )的关系为:

\left\{\begin{matrix} U_{0}=X_{0}+a\\ V_{0}=Y_{0}+b\\W_{0}=Z_{0}+c \end{matrix}\right.   (式16)

将 式16 转化为矩阵:

\left ( \begin{matrix} U_{0}\\ V_{0}\\ W_{0} \end{matrix} \right )=\left ( \begin{matrix} X_{0}\\ Y_{0}\\ Z_{0} \end{matrix} \right ) +t^{T}

其中:

t^{T}=\left ( \begin{matrix} a\\ b\\ c \end{matrix} \right )

被称为平移(Translation)矩阵,记为t

3. 旋转平移矩阵

对于三维坐标系,我们可以将两个坐标系的变换过程视为先旋转、再平移的过程。

①先将一个坐标系先绕着X轴旋转α,再绕着Y轴旋转β,最后绕着轴旋转θ得到坐标系X_{1}Y_{1}Z_{1},那么令旋转矩阵R为:

R=R_{x}(\alpha )\cdot R_{y}(\beta )\cdot R_{z}(\theta )

②再将坐标系X_{1}Y_{1}Z_{1}沿着向量\vec{t}方向移动,最终得到坐标系UVW

我们令某点在XYZ坐标系下的坐标为\left ( X_0,Y_0,Z_0 \right ) ,在UVW坐标系下的坐标为\left ( U_0, V_0, W_0 \right ) ,那么\left ( X_0,Y_0,Z_0 \right ) 与\left ( U_0, V_0, W_0 \right ) 之间的关系为:

\left ( \begin{matrix} U_0\\ V_0\\ W_0\\ 1\end{matrix} \right )=\left ( \begin{matrix} R &t \\ 0 &1 \end{matrix} \right )\cdot \left ( \begin{matrix} X_0\\ Y_0\\ Z_0\\ 1\end{matrix} \right )

其中:

T=\left ( \begin{matrix} R &t \\ 0 &1 \end{matrix} \right )

被称为变换(Transformation)矩阵,记为T

  • 28
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从小就看凹凸曼^o^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值