三维坐标系之间的转换关系详解与推导



前言

三维坐标系之间的转换关系:R(旋转矩阵) 、T(平移矩阵)

  在大地测量、工程测量、摄影测量等领域中,坐标系之间的转换是必不可少的。空间坐标转换的实质是用公共点的2套坐标和非公共点的1套坐标推估非公共点的另1套坐标。

  坐标转换过程通常分2步,先由公共点坐标解算转换参数,再由转换参数转换非公共点。转换参数通常分为旋转、平移和尺度参数,其中旋转参数的确定是坐标转换的核心。

  传统的三维坐标转换模型是用3个旋转角作为旋转参数,建立的模型是非线性的,常需要用泰勒级数展开的方法将模型线性化,计算比较繁杂。

  在小角度旋转情况下,可对旋转矩阵作近似处理,得到线性模型,如常用的布尔莎模型。

  针对大旋角的坐标转换问题,多采用罗德里格矩阵表示旋转矩阵的坐标转换方法,仅有3个旋转参数,计算过程无需线性化,且能适用大旋角转换。

50%

数学模型描述

布尔莎模型:前提是旋转角为微小旋转角

设矩阵 A 为 A 坐标系下公共点的三维坐标,矩阵B为B坐标系下公共点的三维坐标。由三维坐标转换模型可得,A、B 两坐标系的三维坐标转换方程如下所示:
[ x y z ] B = [ Δ x Δ y Δ z ] + ( 1 + k ) R [ x y z ] A (1) \left[\begin{array}{l}x \\ y \\ z\end{array}\right]_{B}=\left[\begin{array}{l}\Delta x \\ \Delta y \\ \Delta z\end{array}\right]+(1+k) \boldsymbol{R}\left[\begin{array}{l}x \\ y \\ z\end{array}\right]_{A}\tag{1} xyzB=ΔxΔyΔz+(1+k)RxyzA(1)
式中: Δ x 、 Δ y 、 Δ z Δx、Δy、Δz ΔxΔyΔz 表示坐标原点的平移量, k k k 为尺度因子, R R R 为 A 站位到 B 站位的旋转矩阵。为了对坐标转换精度进行分析,将三维坐标转换模型作如下简化:
[ x y z ] B = k [ x y z ] A + [ 0 − ε z ε y ε z 0 − ε x − ε y ε x 0 ] ⋅ [ x y z ] A + [ Δ x Δ y Δ z ] (2) \left[\begin{array}{c}x \\ y \\ z\end{array}\right]_{B}=k\left[\begin{array}{c}x \\ y \\ z\end{array}\right]_{A}+\left[\begin{array}{ccc}0 & -\varepsilon_{z} & \varepsilon_{y} \\ \varepsilon_{z} & 0 & -\varepsilon_{x} \\ -\varepsilon_{y} & \varepsilon_{x} & 0\end{array}\right] \cdot\left[\begin{array}{l}x \\ y \\ z\end{array}\right]_{A}+\left[\begin{array}{c}\Delta x \\ \Delta y \\ \Delta z\end{array}\right] \tag{2} xyzB=kxyzA+0εzεyεz0εxεyεx0xyzA+ΔxΔyΔz(2)
应注意到,式(2)中 ε x 、 ε y 、 ε z ε_x 、ε_y 、ε_z εxεyεz 均为微小角,则$sin{x} = x ,cos{x}=1 $因此,应在利用坐标转换模型前通过初步的坐标系转换得到一组转站参数的初值,使 A、B 两坐标系之间的转换满足微小角近似。式(2)可进一步写成:
[ x y z ] B = [ 1 0 0 0 z − y x 0 1 0 − z 0 x y 0 0 1 y − x 0 z ] A ⋅ [ Δ x Δ y Δ z ε x ε y ε z k ] (3) \left[\begin{array}{l}x \\ y \\ z\end{array}\right]_{B}=\left[\begin{array}{lllllll}1 & 0 & 0 & 0 & z & -y & x \\ 0 & 1 & 0 & -z & 0 & x & y \\ 0 & 0 & 1 & y & -x & 0 & z\end{array}\right]_{A} \cdot\left[\begin{array}{l}\Delta x \\ \Delta y \\ \Delta z \\ \varepsilon_{x} \\ \varepsilon_{y} \\ \varepsilon_{z} \\ k\end{array}\right] \tag{3} xyzB=1000100010zyz0xyx0xyzAΔxΔyΔzεxεyεzk(3)
根据式(3),可将 n 个公共点的坐标转换写为$ B=AX$ 的形式,其中:
A = ( 1 0 0 0 z 1 − y 1 x 1 0 1 0 − z 1 0 x 1 y 1 0 0 1 y 1 − x 1 0 z 1 1 0 0 0 z 2 − y 2 x 2 0 1 0 − z 2 0 x 2 y 2 0 0 1 y 2 − x 2 0 z 2 1 0 0 0 z n − y n x n 0 1 0 − z n 0 x n y n 0 0 1 y n − x n 0 z n ) A (4) \boldsymbol{A}=\left(\begin{array}{ccccccc}1 & 0 & 0 & 0 & z_{1} & -y_{1} & x_{1} \\ 0 & 1 & 0 & -z_{1} & 0 & x_{1} & y_{1} \\ 0 & 0 & 1 & y_{1} & -x_{1} & 0 & z_{1} \\ 1 & 0 & 0 & 0 & z_{2} & -y_{2} & x_{2} \\ 0 & 1 & 0 & -z_{2} & 0 & x_{2} & y_{2} \\ 0 & 0 & 1 & y_{2} & -x_{2} & 0 & z_{2} \\ 1 & 0 & 0 & 0 & z_{n} & -y_{n} & x_{n} \\ 0 & 1 & 0 & -z_{n} & 0 & x_{n} & y_{n} \\ 0 & 0 & 1 & y_{n} & -x_{n} & 0 & z_{n}\end{array}\right)_{A} \tag{4} A=1001001000100100100010010010z1y10z2y20znynz10x1z20x2zn0xny1x10y2x

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值