旋转矩阵转换为四元数

 {  "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. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性