如何获得所需的四元数表示从一个旋转矩阵?

20视图(30天)
(一些上下文,我使用一个定算法称为三和弦和软件称为STK,我试图让他们的结果一致。)
假设有这样的旋转矩阵:
BN = (0.7505 0.1707 -0.6384
0.1574 0.8921 0.4236
0.6418 -0.4184 0.6427);
(可以是验证它的行列式为1)。
如果我把它转换成四元数的第一个组件是标量,
皮疹= rotm2quat (BN)
结果是(0.9063 - 0.2323 0.3532 - 0.0037)。
然而,我想要表示(STK输出)是(-0.9063 - -0.2323 -0.3532 - -0.0037)。
它可以验证这两个产生同样的欧拉角表示使用“quat2eul”功能。
我能做些什么来实现所需的四元数表示?这个问题不是简单地添加一个负号,因为旋转矩阵,
rotm = (0.8138 0.4698 -0.3420
-0.4410 0.8826 0.1632
0.3785 0.0180 0.9254);
转换后的四元数表示一模一样所需的四元数表示。
提前谢谢!
这里有一个潜在的有用的参考STK:

接受的答案

詹姆斯Tursa
詹姆斯Tursa 2021年6月28日
正如你已经知道,问和q表示相同的旋转。这标志选择完全取决于底层的算法。所以准确匹配STK在所有情况下的唯一方法就是知道如何STK在所有情况下都选择这些迹象。除非你有访问他们的底层算法,你希望怎么做呢?STK对你发表这个算法使用了吗?短,你可能会运行一些构造测试用例,试图找出答案。你必须匹配STK的原因是什么?
标志的选择可以影响下游的计算,所以它是重要的是一致的。例如,如果这是传递了一个控制系统可以确保四元数标量元素非负这样的物理旋转控制系统的命令是“短”的方式,而不是“长”。或者你从一系列旋转生成一系列的四元数矩阵的选择可能会以确保最大的四元数级元素不会改变信号从一个问下一个问。等。
底线是你需要找出什么类型的一致性为您的应用程序有意义和工作。
3评论
大卫李
大卫李 2023年4月14日
目前已经有一段时间我太忙了,看一遍,但我很高兴帮助你当我得到一个机会。你迫切的问题是如何?

登录置评。

更多的答案(0)

类别

找到更多的在天气和大气科学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!