欧拉角和四元数之间的python转换代码

1、欧拉角转换到四元数,转换顺序是ZYX

python 复制代码
def rpy2quaternion(roll, pitch, yaw):
    x=sin(roll/2)*cos(pitch/2)*cos(yaw/2)-cos(roll/2)*sin(pitch/2)*sin(yaw/2)
    y=cos(roll/2)*sin(pitch/2)*cos(yaw/2)+sin(roll/2)*cos(pitch/2)*sin(yaw/2)
    z=cos(roll/2)*cos(pitch/2)*sin(yaw/2)-sin(roll/2)*sin(pitch/2)*cos(yaw/2)
    w=cos(roll/2)*cos(pitch/2)*cos(yaw/2)+sin(roll/2)*sin(pitch/2)*sin(yaw/2)
    return np.array([w, x, y, z ])

2、四元数转换到欧拉角,转换顺序是ZYX

python 复制代码
def quart_to_rpy(w,x, y, z):
    roll = atan2(2 * (w * x + y * z), 1 - 2 * (x ** 2 + y ** 2))
    pitch = asin(2 * (w * y - z * x))
    yaw = atan2(2 * (w * z + x * y), 1 - 2 * (y ** 2 + z ** 2))

    return np.array([roll, pitch, yaw])

实验的时候发现,欧拉角转到四元数,再从四元数转回来,有些角度存在问题。

相关推荐
杜子不疼.几秒前
《Python学习之文件操作:从入门到精通》
数据库·python·学习
微小的xx6 分钟前
java + html 图片点击文字验证码
java·python·html
金色旭光16 分钟前
uv 现代化的虚拟环境管理工具
python·python进阶
CHANG_THE_WORLD16 分钟前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
赞哥哥s37 分钟前
Python脚本开发-统计Rte中未连接的Port
python·autosar·rte
Franklin39 分钟前
Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
开发语言·python·qt
waynaqua1 小时前
FastAPI开发AI应用三:添加深度思考功能
python·openai·deepseek
onejason1 小时前
《利用 Python 爬虫获取 Amazon 商品详情实战指南》
前端·后端·python
郝学胜-神的一滴1 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
苏婳6661 小时前
【最新版】怎么下载mysqlclient并成功安装?
数据库·python·mysql