七参数坐标转换的几种解法

七参数坐标转换的几种解法

  • 1.简介
  • 2.七参数模型
  • 3.最小二乘的多种解法
    • 3.1参数平差
    • 3.2 布尔沙解法
    • 3.3 符有限制条件的间接平差
    • 3.4 罗德里格矩阵
    • 3.5四元数

1.简介

坐标转换是测量领域中数据处理的基础性工作。目前,广为接收的三维坐标转换模型是七参数模型,即1个缩放参数、3个旋转角度参数和3个平移参数。理论上9参数模型更加完善,但使用场景很少。

2.七参数模型

七参数的数学模型为:

[ X Y Z ] s = k ∗ [ 1 0 0 0 c o s a − s i n a 0 s i n a c o s a ] [ c o s b 0 s i n b 0 1 0 − s i n b 0 c o s b ] [ c o s c − s i n c 0 s i n c c o s c 0 0 0 1 ] [ X Y Z ] o + [ T x T y T z ] (1) \begin{bmatrix}X \\Y \\ Z\end{bmatrix} _s=k*\begin{bmatrix}1&0 &0 \\0&cosa&-sina \\ 0&sina&cosa\end{bmatrix}\begin{bmatrix}cosb&0 &sinb\\0&1&0 \\ -sinb&0&cosb\end{bmatrix}\begin{bmatrix}cosc& -sinc&0 \\sinc&cosc&0 \\ 0&0&1\end{bmatrix}\begin{bmatrix}X \\ Y \\Z \end{bmatrix}_o+\begin{bmatrix} Tx \\ Ty \\Tz \end{bmatrix}\tag{1} XYZs=k1000cosasina0sinacosacosb0sinb010sinb0cosbcoscsinc0sinccosc0001XYZo+TxTyTz(1)
式(1)中具体可概括为:
[ X Y Z ] s = k ∗ [ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ] [ X Y Z ] o + [ T x T y T z ] (2) \begin{bmatrix}X \\Y \\ Z\end{bmatrix} _s=k*\begin{bmatrix}a1& a2 &a3 \\b1&b2&b3 \\ c1&c2&c3\end{bmatrix}\begin{bmatrix} X \\ Y \\Z \end{bmatrix}_o+\begin{bmatrix} Tx \\ Ty \\Tz \end{bmatrix}\tag{2} XYZs=ka1b1c1a2b2c2a3b3c3XYZo+TxTyTz(2)
根据公共点的两套坐标,对式(2)的求解具体可概括为两类:最小二乘与整体最小二乘。本文主要简述最小二乘的几种解法。

3.最小二乘的多种解法

直接来看,对式(1)的求解很难。所以根据式(1)中旋转矩阵的转化与求解,目前的解法主要有以下几种:

3.1参数平差

式(1)不易求解,但不是不能求解。硬刚这7个参数有点难,但通过矩阵的合并,泰勒一阶展开,也可以写出来。将式(1)对7个参数进行泰勒一阶展开,然后罗列参数方程求解。

3.2 布尔沙解法

布尔沙模型是针对3个旋转角都是小角度的坐标转换模型,使用场景单一。小角度是多小呢,目前我的认知是不超过5度,这个关键是看我们的转换精度的预期控制。

3.3 符有限制条件的间接平差

硬刚这7个参数有点难,将式(1)化为式(2),对13个参数进行泰勒一阶展开,罗列参数方程。因为参数(2)旋转的参数见有约束,所以还要罗列6个条件方程。

3.4 罗德里格矩阵

比较巧妙的将式(1)中的旋转矩阵进行转换,最后仍然是一共有7个参数,所以还可以归结为间接平差的一种,只不过相比3.2法,求解简单一点。

3.5四元数

同样是将旋转矩阵进行了转换,但是感觉很复杂,比硬刚还硬刚,所以之后不写这个东西了。

这是第一篇,之后会详细阐述这几种解法的过程,包括代码和数据,敬请期待与点赞。

你可能感兴趣的:(坐标转换,笔记)