[发明专利]一种大姿态四元数全角域转换欧拉角方法有效
申请号: | 202010832716.3 | 申请日: | 2020-08-18 |
公开(公告)号: | CN111966954B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 费庆;李佩璋;姚小兰;陈振;张浩;曹洪卿 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F17/10 | 分类号: | G06F17/10 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 姿态 四元数 全角 转换 欧拉角 方法 | ||
1.一种大姿态四元数全角域转换欧拉角的方法,其特征在于:包括如下步骤,
步骤一:根据俯仰角θ的不同区间将姿态划分为三部分:第一部分为四元数转换俯仰角时对应单值的区间(-90°+ε,+90°-ε);第二部分为四元数转换俯仰角时对应多值的区间(-180°,-90°-ε)和(90°+ε,+180°),第三部分为俯仰角在“死锁角”前后邻域内的死区区间(-90°-ε,-90°+ε)和(+90°-ε,+90°+ε),其中ε为正小值,ε根据运算精度而定;
步骤二:在第一部分区间对滚动角和偏航角的多值情况进行补偿运算,得到单值函数无法直接求解出的滚动角和偏航角,解决此部分区间内的四元数转换欧拉角的问题;
步骤二实现方法为,
在第一部分区间中,由于此区间内arcsin为单值函数,故根据Z-Y-X坐标系下的旋转矩阵C0直接求得当前时刻的俯仰角θ0:
θ0=-arsin(C13)
其中C13为矩阵C0第一行三列位置对应的元素;θ0,ψ0分别为滚动角、俯仰角和偏航角,q0,q1,q2,q3分别为四元数的一个实数单位和三个虚数单位;
旋转矩阵和四元数矩阵的关系提供了四元数与欧拉角转换的数学基础,其余步骤皆是通过旋转矩阵的信息将四元数转换为欧拉角,即根据矩阵中不同位置的元素,使用矩阵各位置中所对应的四元数来解算优化出正确的欧拉角;
由旋转矩阵C0,得到偏航角和滚动角ψ0的计算公式:
ψ0=arctan(C12/C11)
但是由于arctan函数的值域在之间,故此时根据四元数解算出的欧拉角会出现“漏解”情况,所以需要对角和ψ0角进行全角度的补偿运算;补偿计算时需考虑两点:
第一点为:根据C33、C11的正负性和cos(θ0)的正负性来确定所求角是否在区间内;
第二点为:根据C23和C12的正负确定进行+π补偿还是-π补偿;
对角和ψ0角进行全角度的补偿运算的计算公式为:
θ0=-arcsin(C13)
步骤三:在第二部分区间对俯仰角、滚动角和偏航角的多值情况进行补偿运算,得到单值函数无法直接求解出的俯仰角、滚动角和偏航角;
步骤三实现方法为,
在第二部分区间中,由于在此区间中arcsin非单值函数,故无法直接使用第一部分求取俯仰角θ0的公式计算俯仰角θ0,需要根据C13的符号进行修正计算俯仰角θ0;同时,滚动角角和偏航角ψ0角仍需采取和第一部分类似的全角度补偿运算,此时使用-π修正,具体修正公式如下:
θ0=-π*sign(C13)-arcsin(C13)
步骤四:在第三部分区间中使用交叉迭代法解决俯仰角在死锁区间时偏航角和滚动角奇异的问题;
步骤四实现方法为,
在第三部分区间中,此时由于俯仰角的余弦值cos(θ0)接近于0;因此在根据旋转矩阵C0进行计算时,(C23/C33)和(C12/C11)两项会出现分子分母同时趋向于0的情况,即数学中的“未定式”,会导致计算结果产生很大的跳变,所述现象为欧拉角表示姿态时所固有的“死锁环”现象;为了解决“死锁环”问题,通过交叉迭代法解决俯仰角在死锁区间内偏航角和滚动角计算值奇异的问题;交叉迭代法实现方法如下:
步骤4-a:由于不能使用(C23/C33)和(C12/C11)两组数直接进行计算,需要通过寻找旋转矩阵C0中的其他项进行代替运算;θ0在死区区间时,得到:
此时使用(1+sinθ0)和(sinθ0-1)避免使用cos(θ0)计算偏航角和滚动角时导致的计算值奇异的问题;由于死锁角有两处分别为+90°和-90°,在该两处使用不同的计算公式来确定ψ0和的关系式;
步骤4-b:若在(+90°-ε,+90°+ε)区间时,得到
步骤4-c:若在(-90°-ε,-90°+ε)区间时:得到
步骤4-d:步骤4-b和4-c仅得到ψ0和的关系式,无法单独结算出滚动角和偏航角ψ0,故设定“死区”范围±90°-ε~±90°+ε,通过获取进入“死区”范围前一时刻t0的ψ0角和角以更新当前时刻t1的欧拉角,即利用t0时刻的ψ0角计算t1时刻的角,即利用t0时刻的角计算t1时刻的ψ1角,不断进行交叉迭代,直至俯仰角θ角离开“死区”;交叉迭代法是基于姿态不会大范围跳变的原理,使用旋转矩阵的内部信息对姿态进行预估的一种方法,使用交叉迭代法能够显著提高四元数转换欧拉角在死锁区间内的转换精度;
步骤五:当俯仰角θ在死区区间外,此时采用“绝对值平方和法”对转换后的偏航角和滚动角的多值结果进行适当的取舍优选,当俯仰角θ在死区区间内,采用“正弦符号法”对俯仰角θ进行取舍解决俯仰角θ在跨越±90°时的多值问题,使得姿态具有连贯性,在极小的时间间隔内不会发生大范围跳变。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010832716.3/1.html,转载请声明来源钻瓜专利网。