旋转矩阵转换为四元数
{ "Array": [
-0.726405369155686,
0.6872664061155301,
0.000355930941022522,
6855.053677575546,
-0.6872643549187422,
-0.7264042997375078,
0.0021212687208797248,
-19706.759414176922,
0.0017164264961726733,
0.0012962823396915819,
0.9999976867634139,
13.437930198386312,
0.0,
0.0,
0.0,
1.0],
"Quaternion": [
{ "w": 0.3698607906598847,
"x": -0.0005576330351997091,
"y": -0.0009195997450303073,
"z": -0.9290865615830163,
"pose_x": 6855.053677575546,
"pose_y": -19706.759414176922,
"pose_z": 13.437930198386312 }] }
代码示例01
from scipy.spatial.transform import Rotation as R
import numpy as np
if __name__ == '__main__':
# "x","y" ,"z" ,"w"
Rquater= [-0.0005576330351997091, -0.0009195997450303073, -0.9290865615830163, 0.3698607906598847]
# 四元数到旋转矩阵
rotate_spat = R.from_quat(Rquater)
rotate_mat = rotate_spat.as_matrix()
print(rotate_mat)
rotate_matrix_list = [
[-0.726405369155686,0.6872664061155301, 0.000355930941022522],
[ -0.6872643549187422, -0.7264042997375078,0.0021212687208797248],
[ 0.0017164264961726733, 0.0012962823396915819,0.9999976867634139]]
rotate_matrix = np.array(rotate_matrix_list)
# 旋转矩阵到四元数
r3 = R.from_matrix(rotate_matrix)
qua = r3.as_quat()
print(qua)
代码示例02
from pyquaternion import Quaternion
import numpy as np
if __name__ == '__main__':
rotate_matrix_list = [-0.726405369155686,0.6872664061155301, 0.000355930941022522],
[ -0.6872643549187422, -0.7264042997375078,0.0021212687208797248],
[ 0.0017164264961726733, 0.0012962823396915819,0.9999976867634139]]
rotate_array = np.array(rotate_matrix_list)
quater = Quaternion(matrix=rotate_array)
print(quater)
print(f"x: {quater.x}, y: {quater.y}, z: {quater.z}, w: {quater.w}")
说明
函数np.allclose(a, b)比较具有给定精确度范围内的浮点数组
附录
https://blog.csdn.net/shyjhyp11/article/details/111701127
http://kieranwynn.github.io/pyquaternion/
https://github.com/KieranWynn/pyquaternion
原文地址:http://www.cnblogs.com/ytwang/p/16850304.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性