我的问题是我是否可以计算两个传感器之间的转换矩阵。
每个传感器提供一个记录的每个时间步长的矩阵。传感器正在移动并且数据中有一些噪音。我想用给定的数据计算两个传感器之间的最佳拟合变换矩阵,因为我无法测量传感器彼此的位置。
目前我正在尝试使用本文中的算法获取转换矩阵。我想问这是否是一个解决方案,或者我错过了什么。
我的问题是我是否可以计算两个传感器之间的转换矩阵。
每个传感器提供一个记录的每个时间步长的矩阵。传感器正在移动并且数据中有一些噪音。我想用给定的数据计算两个传感器之间的最佳拟合变换矩阵,因为我无法测量传感器彼此的位置。
目前我正在尝试使用本文中的算法获取转换矩阵。我想问这是否是一个解决方案,或者我错过了什么。
您链接到的论文描述了一种类似于我所看到的 Kabsch 算法的算法。它用于查找两组点之间的最小二乘旋转。对于您的情况,您完全需要其他东西。
假设传感器 1 有矩阵在时间 t 和传感器 2 有矩阵在时间 t。这意味着一个向量,其在传感器 1 的局部坐标系中的坐标是, 在传感器 2 的局部坐标系中,坐标等于 所以这两个传感器之间的转换矩阵是. 如果您采用该矩阵的旋转部分(基本上是 3x3 部分),它将为您提供传感器 2 和传感器 1 之间的旋转矩阵。如果您想要它们的相对位置,请采用并从中减去翻译部分. 这将是“世界”坐标系中传感器 1 相对于传感器 2 的位置。
如果您的传感器彼此相对移动并且您的数据嘈杂,那么简单的平均值是不够的。我建议你使用卡尔曼滤波器。卡尔曼滤波器包含一个模型(例如恒定加速度模型),以及对模型准确度的连续评估,并根据输入调整模型参数。
但是,如果相对旋转在每个时间点都是相同的,并且您试图找到一个“平均”旋转来对输入进行去噪,我找到了一篇关于该主题的整篇论文:http://users.cecs.anu。 edu.au/~hongdong/rotationaveraging.pdf 我还发现了关于平均四元数的讨论,这似乎提出了一个简单的解决方案: https ://stackoverflow.com/questions/12374087/average-of-multiple-quaternions