旋转平移坐标系之间的四元数变换

问题描述

我有一个四元数表示传感器相对于其坐标系的方向。

在我的应用程序中,我执行了传感器坐标系的刚性配准,以便将其与相机坐标系对齐,该坐标系相对于第一个坐标系进行平移和旋转。我需要获得一个表示传感器相对于相机坐标系的方向的四元数。我知道从一个系统到另一个系统的旋转平移(转换)矩阵。我使用的库可以轻松地将四元数转换为任何其他方向约定(欧拉角、旋转矩阵、轴角等),但尽量避免转换以避免万向节锁定。

我是四元数的新手,但仍在为它们苦苦挣扎。 我的两个问题是:

  1. 一个坐标系转换到另一个坐标系时,转换是否重要?我可以将传感器的四元数乘以通过配准获得的旋转矩阵(在将其转换为四元数之后)还是我还需要考虑平移向量?
  2. 一般来说,从参考传感器坐标系的四元数开始,您将采取哪些步骤来获取表示传感器相对于相机的方向的四元数?

谢谢!

编辑:

我仔细观察了传感器输出,以及它实际上给了我什么,尽管在文档中它被称为“四元数”,但我相信它是方向的轴角表示。更具体地说,我获得了四个“q”值,其中:

-q0 是传感器尖端沿 x 轴的毫米距离

-q1 是传感器尖端沿 y 轴的毫米距离

-q2 是传感器尖端沿 z 轴的毫米距离

-q3 是介于 -180 度和 180 度之间的角度。

我可以对 [q0 q1 q2] 向量进行归一化以获得经典的归一化轴角表示,但问题仍然存在。如何将此表示(指传感器坐标系)转换为对应的表示相机坐标系?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...