对于双欧拉角(正反欧拉角)的一些理解和思考

news2024/11/24 6:28:33

文章目录

    • 一、正反欧拉角定义
    • 二、相关文献阐述
    • 三、对正反欧拉角的思考
    • 四、参考代码
    • 五、参考文献

最近看到有人讨论“双欧拉角”或者“正反欧拉角”的问题,因为自己之前没听说过这个概念,为了避免无知,因此找了一些文献进行学习和理解。不过基于我目前的理解,个人认为用处不是很大。感兴趣的话,简单了解即可。

一、正反欧拉角定义

假设导航系为“东北天ENU”,载体坐标系为“右前上xyz”。参考严恭敏老师的文章双欧拉角用于飞控问题,可知正反欧拉角定义如下:

常规飞机姿态角即为正欧拉角:航向角是机头y轴与北向夹角、俯仰角是机头y轴与水平面夹角、横滚是z轴与y轴所在铅垂面的夹角。

反欧拉角的含义为:航向角是机右翼x轴与东向夹角、俯仰角是机右翼x轴与水平面夹角、横滚是z轴与x轴所在铅垂面的夹角。(对我来说,这样的姿态角定义非常陌生…)

对于常用的正欧拉角(姿态角),计算旋转矩阵时,旋转顺序为航向、俯仰、横滚。
在这里插入图片描述
因此当在俯仰接近±90°时,会出现奇异。此时航向和横滚无法分开,在解算时算式的分母为0,无法计算。当然在实际中由于误差的存在,分母并不完全为0,会计算出来一些跳点。因此在俯仰接近或等于90度时,横滚和航向值无法进行表示。

二、相关文献阐述

由文献2可知,正欧拉角的旋转顺序为“航向-俯仰-横滚”,当俯仰为±90°时出现奇异值;反欧拉角的旋转顺序为“航向-横滚-俯仰”,当横滚为±90°时出现奇异值。但是由于两个坐标系之间的旋转矩阵是唯一的,因此矩阵中的对应项相等。
在这里插入图片描述

作者的正反欧拉角切换思路为:
在这里插入图片描述

在这里插入图片描述

三、对正反欧拉角的思考

参考文献[2]认为双欧拉角的导航精度相对于四元数方法更高,这个我不太理解。作者采用欧拉角微分方程进行更新,四元数法采用的是四元数微分方程更新。四元数法本身并不存在奇异值的问题,内部的所有计算并没有用到姿态角。将四元数折算成欧拉角,不过是给外部展示而已。我不太明白为什么双欧拉角法精度会更高。

此外,对于外部姿态角的展示,四元数法计算得到四元数,完全可以根据需求折算为正欧拉角或者反欧拉角,甚至其他欧拉角。

在严恭敏老师PSINS工具箱有根据旋转矩阵计算正反欧拉角的函数m2att。我尝试一下用PSINS中的函数计算正反欧拉角,显然当正、反欧拉角切换时,由同一个旋转矩阵计算出来的正反欧拉角的值是不同的。因此如下图所示,显示的姿态角会不连续,产生跳变。

由以上分析,对于使用正、反欧拉角,如果是出于精度目的,我并不觉得四元数方法精度较差;如果出于显示目的,我觉得姿态角切换会跳变,而且反欧拉角定义对常人来说比较难理解,对使用者来说也会有很大困难;如果是出于飞控目的,可以直接使用四元数做飞控,而不是姿态角。 虽然目前我并没有感受到它有用的地方,不过这种思维方式还是比较有趣且值得学习的。

在这里插入图片描述

四、参考代码

严恭敏老师PSINS工具箱,根据旋转矩阵计算正反欧拉角的函数m2att:

function [att, attr] = m2att(Cnb)
% Convert direction cosine matrix(DCM) to Euler attitude angles.
%
% Prototype: [att, attr] = m2att(Cnb)
% Input: Cnb - DCM from navigation-frame(n) to body-frame(b)
% Outputs: att - att=[pitch; roll; yaw] in radians, in yaw->pitch->roll
%                (3-1-2) rotation sequence
%          attr - in yaw->roll->pitch (3-2-1) rotation sequence
% Test:
%   att0=randn(3,1)/10; [Cnb,Cnbr]=a2mat(att0); att=m2att(Cnb); [~,attr]=m2att(Cnbr); [att0, att, attr]
%
% See also  a2mat, a2qua, m2qua, q2att, q2mat, attsyn, m2rv, incline.

% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 21/02/2008
    att = [ asin(Cnb(3,2));
            atan2(-Cnb(3,1),Cnb(3,3)); 
            atan2(-Cnb(1,2),Cnb(2,2)) ];
    if nargout==2  % dual Euler angles
        attr = [ atan2(Cnb(3,2),Cnb(3,3)); 
                 asin(-Cnb(3,1)); 
                 atan2(Cnb(2,1),Cnb(1,1)) ];
    end

五、参考文献

[1] 赵仁杰,胡柏青,吕旭,田佳玉.基于双欧拉角的UKF组合导航滤波算法[J].系统工程与电子技术,2021,43(07):1912-1920
[2] 吕维维, 程向红, 邱伟. 基于弹载捷联惯性导航系统精确导航的双欧拉全姿态方法[J]. 上海航天, 2019, 36(1):9.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql优化,SELECT语句创建理想索引

思考索引的问题: 1.为什么主键索引比非主键索引快? 2.为什么sql使用like关键字 “%XXX%”无法走索引,而“XXX%”可以? 3.为什么有索引的字段,数据量大了后,增删改会很慢? 一. 了解数据库索引的必…

ADI Blackfin DSP处理器-BF533的开发详解45:图像处理专题-ThresholdData (图像阈值分割处理)(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像阈值分割处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的…

Hive中数据类型介绍

文章目录数据库表分区表桶表数据库 当于关系数据库中的命名空间( namespace ),它的作用是将用户和数据库的应用,隔离到不同的数据库或者模式中 Hive中创建数据库等语法 表 Hive 的表在逻辑上由存储的数据和描述表格数据形式的相关元数据组成 元数据&a…

腾讯电竞广泛布局,难逃城市同质化怪圈?

文 | 螳螂观察 作者 | 张左文 2018年的那个夏天,那年的《英雄联盟》S赛,中国战队IG以3:0的绝对领先击败欧洲老牌冠军战队FNC,为LPL赛区拿下首个S赛冠军奖杯。 那是中国电竞史上浓墨重彩的一笔,也是腾讯电竞8年蛰伏后腾飞的开始…

​实验8 IP协议实验分析

注:原实验是在虚拟机中对主机使用ping命令,本文对www.bilibili.com使用ping命令来代替 IP分片 实验内容 wireshak开始捕获分组后,在cmd中输入ping www.bilibili.com -l 3000并执行 打开wireshak,在显示过滤器中输入icmp。得到…

展锐闪光灯 flash echo test测试

flash echo test测试 1.使用adb命令进入对应路径操作: adb root adb remount adb shell cd /sys/devices/virtual/misc/sprd_flash/ 输入对应命令 如上图示例:echo 0x0000(0000 0000 0000 0000) > test flash_idx: 表示…

Nacos配置管理之多环境共享

多环境配置共享 微服务启动时会从nacos读取多个配置文件: 1、[spring.application.name]-[spring.profiles.active].yaml 例如:userservice-dev.yaml 【服务名】-【环境】.yaml 2、 [spring.application.name].yaml 【服务名】.yaml 例如&#xff1a…

kube-proxy模式详解

kubernetes里kube-proxy支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引入了ipvs模式,并且在v1.11中正式使用,其中iptables和ipvs都是内核态也就是基于netfilter,只有use…

仿写BitMap源码

bitmap的作用: 用来校验海量数字中某一个数字有没有出现过,海量数据中某一个数据有没有出现过 做一个长的比特数组,比特数组就会出现索引(0n),所有0n之间的数,比如123,就把所有比特数…

R语言画ROC曲线总结

在本文中,我描述了如何在CRAN中搜索用于绘制ROC曲线的包,并重点介绍了六个有用的包。 我使用pkgsearch来搜索CRAN并查看其中的内容。该package_search()函数将文本字符串作为输入,并使用基本的文本挖掘技术来搜索所有CRAN。 经过一番尝试和…

【Clickhouse】Clickhouse 精确去重计数性能测试

1.概述 4亿多的数据集上,去重计算出6千万整形数值, 非精确去重函数: uniq、 uniqHLL12、 uniqCombined 精确去重函数: uniqExact、 groupBitmap 结论: 整形值精确去重场景, groupBitmap 比 uniqExact至少快 2x+groupBitmap仅支持整形值去重, uniqExact支持任意类型去重…

中英文说明书丨艾美捷CD8α体内抗体介绍

艾美捷CD8α体内抗体英文说明: ICH1045 is up to 30% cheaper for academia & non-profits and up to 55% cheaper for industry than the equivalent product from Bio X Cell (BE0061). ICH1045UL is up to 31% cheaper for academia and up to 56% cheaper …

javaweb-Servlet的使用

xml设置 创建项目需要勾选下图的创建xml(适用于3.0以下版本,3.0以上的可以跳过使用下面的注解开发) 创建完项目后,找到web—WEB-INF—web.xml配置以下代码 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/…

隔离系列 宽电压输入 正负高电压稳压输出 高压稳压电源模块

特点 效率高达 80%以上1*2英寸标准封装电源正负双输出稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上应用 HRA 1~40W系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36VDC标准&…

使用SAS,Stata,HLM,R,SPSS和Mplus的多层线性模型HLM

简介 最近我们被客户要求撰写关于多层线性模型的研究报告&#xff0c;包括一些图形和统计输出。本文档用于比较六个不同统计软件程序&#xff08;SAS&#xff0c;Stata&#xff0c;HLM&#xff0c;R&#xff0c;SPSS和Mplus&#xff09;的两级多层&#xff08;也称分层或层次&…

8年软件测试开发薪水被应届生倒挂,32岁的我裸辞了...

今年 32 岁&#xff0c;我从公司离职了&#xff0c;是裸辞。 前段时间&#xff0c;我有一件事情一直憋在心里很难受&#xff0c;想了很久也没找到合适的人倾诉&#xff0c;就借着今天写出来。 我一个十几年测试经验&#xff0c;八年 软件测试 经验的职场老人&#xff0c;我慢…

Docker运行MySQL容器

目录 一、宿主机与容器之间的文件拷贝 1.利用MySQL镜像安装MySQL服务 2.容器中怎么上传项目&#xff08;文件&#xff09; 3.从容器中拷贝文件到宿主机 4.从宿主机拷贝文件到容器 二、数据卷 三、数据卷容器 四、Dockerfile 本次目标&#xff1a; 数据卷Dockerfile …

C++初阶作业 Stackqueue 作业题一

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;实现几道Stack和queue的作业题 Stack queue作业题最小栈问题栈的压入弹出序列逆波兰表达式问题总结最小栈问题 它问题的题目描述是这…

Kafka极客 - 13 Kafka 中的高水位和 Leader Epoch 机制

文章目录1. 什么是高水位&#xff1f;2. 高水位的作用3. 高水位更新机制1. Leader 副本高水位更新机制2. Follower 副本高水位更新机制4. 副本同步机制解析5. Leader Epoch你可能听说过高水位&#xff08;High Watermark&#xff09;&#xff0c;但不一定耳闻过 Leader Epoch。…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【03】前端开发基础知识:ES6_Vue

持续学习&持续更新中… 学习态度&#xff1a;守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【03】前端技术栈类比ES6简介什么是ECMAScriptES6新特性let、const解构表达式字符串扩展字符串模板函数优化对象优化map、reducePromise&#xff08;异步编排&#xff…