首页 > 编程语言 >(slam工具)6 python四元数转化旋转矩阵

(slam工具)6 python四元数转化旋转矩阵

时间:2024-06-18 15:32:56浏览次数:23  
标签:WGS84 matrix python camera utm 四元 slam print rotation

 

 

 

import numpy as np
from scipy.spatial.transform import Rotation as R
import pyproj
from pyproj import Proj, transform

#0.016938035523210708 0.58455146147157355 -0.48870579156409283 0.64744060819180593 -129342.74756339534 3469822.8668770161 5343696.2087743161
# 四元数 (QW, QX, QY, QZ)
qw, qx, qy, qz = 0.016938035523210708, 0.58455146147157355, -0.48870579156409283, 0.64744060819180593   # 替换为实际值

# 平移向量 (TX, TY, TZ)
tx, ty, tz = -129342.74756339534, 3469822.8668770161, 5343696.2087743161

# 将四元数转换为旋转矩阵
rotation = R.from_quat([qx, qy, qz, qw])
rotation_matrix = rotation.as_matrix()

# 计算相机中心坐标(ECEF坐标系下)
camera_center = -np.dot(rotation_matrix.T, np.array([tx, ty, tz]))
print("投影中心坐标:(ecef坐标系下)", camera_center)

# 定义坐标转换
# 从ECEF转换到WGS84
ecef = Proj(proj='geocent', ellps='WGS84', datum='WGS84')
wgs84 = Proj(proj='latlong', ellps='WGS84', datum='WGS84')

# 执行转换
lon, lat, alt = transform(ecef, wgs84, camera_center[0],camera_center[1], camera_center[2], radians=False)

# 输出WGS84经纬度坐标
print("经度:", lon, "纬度:", lat, "高度:", alt)

# 从WGS84转换到UTM Zone 50N
utm_zone_50n = Proj(proj="utm", zone=50, ellps='WGS84', datum='WGS84', south=False)
utm_x, utm_y = transform(wgs84, utm_zone_50n, lon, lat)

# 输出UTM坐标
print("WGS84坐标系下:UTM Zone 50N X:", utm_x, "Y:", utm_y,"Z:",alt)

# 将四元数转换为旋转矩阵
rotation = R.from_quat([qx, qy, qz, qw])
rotation_matrix = rotation.as_matrix()

# 将旋转矩阵转换为欧拉角 (Omega, Phi, Kappa)
# 摄影测量中通常使用 ZYX 旋转顺序
omega, phi, kappa = rotation.as_euler('ZYX', degrees=True)
print("旋转矩阵:\n", rotation_matrix)

print("Omega:", omega, "Phi:", phi, "Kappa:", kappa)

  

标签:WGS84,matrix,python,camera,utm,四元,slam,print,rotation
From: https://www.cnblogs.com/gooutlook/p/18254456

相关文章

  • IPython 使用技巧整理
    IPython使用技巧整理IPython是一种强大的交互式Pythonshell,提供了许多增强功能,适合数据科学、机器学习和科学计算等多个领域。以下是一些常用的IPython使用技巧。目录基础功能魔法命令扩展和插件与JupyterNotebook的集成调试与错误处理性能优化基础功能1.自动......
  • 小于n的最大数 - 贪心算法及证明 - 附python实现
    一、问题描述?    给定一个整数n,并从1~9中给定若干个可以使用的数字,根据上述两个条件,得到每一位都为给定可使用数字的、最大的小于整数n的数。    例如,给定可以使用的数字为{2,3,8}三个数:    给定n=3589,输出3388;给定n=8234,输出8233;…… 二、解......
  • 目标检测——室内服务机器人LifelongSLAM数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。OpenLORIS-SceneDataset推动室内服务机器人定位技术的新里程碑随着科技......
  • Python - Meta Class
    Aspartofmetaprogramming,ametaclassisoneofthemostimportantconceptsinPython.AClassinPythondefinesthefunctionalityofitsobjectsusingattributesandmethods.Incontrast,ametaclassdefinesthefunctionalityoftheclasses,whereast......
  • python 开发工具IDE 之 thonny
    一、thonny简介    thonny是一款开源免费的pythonIDE(集成开发环境),其内置python解释器,无需安装python解释器和配置环境变量。下载thonny,安装即可使用,轻量简便,省去python环境安装及配置的烦恼。二、thonny优缺点   优点:简单轻便,免费开源,支持中文且功能不复杂,适......
  • 补充第一天的python学习笔记
    昨天晚上学习到10点左右太困了,没有完成既定目标,迁延一日。补充下昨天的学习内容,算是对第一天学习时的回顾。1.字符集编码(1)utf-8全球通用,一个字节等于8个二进制位,utf-8用于中文占3个字节(2)unicode全球通用,16位二进制以上(3)gbk专为中国人设计的编码,一个文字占2个字节......
  • Fatal error in launcher: Unable to create process using ‘“python.exe“ “\pyt
    1.设置环境变量将pip和python的路径加入环境变量中2.在cmd中,查看是否存在python,pip等3.把应用安装程序中的python.exe和python3.exe关闭4.正常使用详情请看微软的常见问题,链接如下:关于在Windows上使用Python的FAQ|MicrosoftLearn......
  • 每日一题——Python实现PAT甲级1132 Cut Integer(举一反三+思想解读+逐步优化)五千字好
    一个认为一切根源都是“自己不够强”的INTJ个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数Python-3.12.0文档解读目录 我的写法正确性和功能性时间复杂度空间复杂度其他点评总结我要更强优化后的时间复杂度和空间复杂度进一......
  • Python实现快速获取历史气象数据
    利用Python中pandas库的read_html功能从网站查历史天气(q-weather.info)获取历史气象数据,并使用tkinter库实现窗口可视化。代码如下:1.首先导入必要的库:importtkinterastkfromtkinterimportmessageboximportpandasaspd2.定义一个用法,使用户可以查看所有气象基准......
  • 深入解析:如何通过Python脚本将YOLO标注格式转换为COCO格式并进行验证
    深入解析:如何通过Python脚本将YOLO标注格式转换为COCO格式并进行验证随着深度学习和计算机视觉技术的飞速发展,物体检测成为了一个热门的研究领域。在物体检测任务中,YOLO(YouOnlyLookOnce)和COCO(CommonObjectsinContext)是两个非常重要的标注格式。YOLO因其高效的实时物......