yaw公式_坐标系和yaw, pitch, roll等基础概念
坐标系
右手坐标系:把右手拇指食指中指伸直并正交,拇指X,食指Y,中指Z。一般无特殊说明,都是右手坐标系。
右手坐标系的旋转正方向:从轴的正方向看向原点,逆时针方向即是旋转正向。或者,伸出右手,拇指指向旋转轴正向,四指弯曲,四指指向的旋转方向就是正向。
世界坐标系之NED坐标:X轴向北,Y轴向东,Z轴向下
世界坐标系之ENU坐标:X轴向东,Y轴向北,Z轴向上
世界坐标系之NWU坐标:X轴向北,Y轴向西,Z轴向上(这个坐标系最符合人类想象)
自身坐标系之FRD坐标:X轴向前,Y轴向右,Z轴向下。
自身坐标系之FLU坐标:X轴向前,Y轴向左,Z轴向上。(这个坐标系最符合人类想象)
FRD和NED配合:当自身面北平放的时候,FRD坐标系和NED坐标系重合。
FLU和ENU配合:当自身面东平放的时候,FLU坐标系和ENU坐标系重合。
FLU和NWU配合:当自身面北平放的时候,FLU坐标系和NWU坐标系重合。(最佳配合)
建议:当做一个系统的时候,要先统一系统内部的坐标系,优先统一到FLU+NWU。输入的坐标,在输入的时候,就要转为内部坐标系;输出的坐标,在输出的时候,根据用户的要求转为相应的外部坐标系。
yaw, pitch, roll
yaw:偏航角。是沿世界坐标系的Z轴旋转的角度。0表示面向世界坐标系的X轴正向。
在NED坐标下,0度是面向正北。在ENU做坐标下,0度是面向正东。
面向正北,在NED下,是0度,在ENU下,则是PI/2弧度。
面向正北偏东1度(0.01745弧度),在NED坐标系下,yaw=0.01745,在ENU坐标系中,yaw=PI/2-0.01745
所以,可以推算出来,yaw从END坐标系转到ENU坐标系的转换公式为:yaw_ENU = PI/2 - yaw_END
pitch:俯仰角。就是抬头或低头,和大地水平面的夹角。换句话说,是沿自身坐标系(X轴向前的坐标系)的Y轴旋转的角度。
抬头1度,在FRD坐标系下,pitch=0.01745,在FLU坐标系中,pitch=-0.01745。
所以,可以推算出来,pitch从FRD坐标系转到FLU坐标系的转换公式为:pitch_FLU = - pitch_FRD
roll:翻滚角。就是左倾或右倾,和大地水平面的夹角。换句话说,是沿自身坐标系(X轴向前的坐标系)的X轴旋转的角度。
右倾1度,在FRD坐标系下,roll=0.01745,在FLU坐标系中,roll=0.01745。
所以,可以推算出来,roll从FRD坐标系转到FLU坐标系的转换公式为:roll_FLU = - roll_FRD
注意,不同的惯导设备,采用的坐标系是不同的,有的用FRD,有的用FLU。例如ROS就缺省使用FLU,如果需要将某个FRD设备的数据发布到ROS,就需要做一个转换。
欧拉角
用3次连续转角来描述2个坐标系之间的旋转关系。
设xyz 为全局坐标,保持不动
设XYZ 为局部坐标,随着物体一起运动
那么zXZ的欧拉角为:
1) 物体绕全局的 z 轴旋转 alpha 角
2) 继续绕自己的 X 轴旋转 beta 角
3) 最后绕自己的 Z 轴旋转 gamma 角
Z-Y-X欧拉角
参考 Introduction to Robotics Machanics and Control.pdf P43
ZYX欧拉角是yaw-pitch-roll次序。
1) 先沿着Z轴旋转一个yaw角
2) 再沿着自己的Y轴旋转一个pitch角
3) 再沿着自己的X轴旋转一个roll角
设R为3*3的旋转矩阵,则R = R_yaw * R_pitch * R_roll
R_yaw是旋转后z不变的阵,R_pitch是旋转后y不变的阵,R_roll是旋转后x不变的阵。
求一个点在另一个坐标系中的坐标
参考 Introduction to Robotics Machanics and Control.pdf P27 Mappings involving general frames 公式2.19
设有2个坐标系 A 和 B,现在有一个点P,它在B坐标系中的坐标是P_b,那么求它在A坐标系中的坐标P_a。
已知B的原点在A坐标系中的坐标是O_ba,已知B相对于A的旋转矩阵是R_ab。
那么,我们可以先保持B的原点不动,把B旋转为B1,和A同向。此时该点P的坐标在B1里面是P_b1。而P_a = P_b1 + O_ba。
所以有 P_a = R_ab P_b + O_ba(2.17)
以上的公式,可以写成更酷的一个公式:
[P_a, 1]T = T_ab [P_b, 1] (2.19)
其中,T_ab为1个4*4的矩阵,左上角是R_ab,右上角是O_ba,左下角是 0 0 0,右下角是1。
四元数用于旋转
四元数有x,y,z,w这4个分量。错误的理解是:x,y,z表示旋转轴,w表示旋转角度。但实际上,如果ax,ay,az是旋转轴向量,theta是旋转角度的话,四元数实际是:
w = cos(theta/2)
x = ax * sin(theta/2)
y = ay * sin(theta/2)
z = az * sin(theta/2)
这样定义很不直观,但好处是可以可以插值。
给定两个四元数p和q,分别代表旋转P和Q,则乘积pq表示两个旋转的合成(即旋转了Q之后再旋转P)
举个例子,我们要把一个enu的航向角yaw,转成nwu的yaw,就可以直接用一个表示旋转的四元数乘它既可:
tf::Quanterion enu2nwu;
enu2nwu.setRPY(0, 0, -M_PI_2); // 以目标坐标nwu为基准,看源坐标enu在目标坐标中,是沿z轴正方向旋转了-PI/2。
yaw_nwu = enu2nwu * yaw_enu; // yaw本身表示一个旋转,左边乘以enu2nwu,表示先旋转坐标系得到新的坐标系,然后再旋转本身。
yaw公式_坐标系和yaw, pitch, roll等基础概念相关推荐
- grad在python什么模块_深度学习(Deep Learning)基础概念1:神经网络基础介绍及一层神经网络的python实现...
此专栏文章随时更新编辑,如果你看到的文章还没写完,那么多半是作者正在更新或者上一次没有更新完,请耐心等待,正常的频率是每天更新一篇文章. 该文章是"深度学习(Deep Learning)&q ...
- pyqt5程序发生错误不中断_关于Windows页面错误的一些基础概念
很少被开发者关注的页面错误 今天我们会说说关于虚拟内存处理中最为常见的一个问题:页面错误(Page Fault). 什么情况下会发生一个页面错误呢? 当应用程序请求的页面地址不在当前的内存驻留页面(M ...
- python核心理念_《三天搞定Python基础概念之第一天》中文版
前言: 首先,非常感谢Jiang老师将其分享出来!本课件非常经典! 经过笔者亲测,竟然确实只要三天,便可管中窥豹洞见Python及主要库的应用.实属难得诚意之作! 其次,只是鉴于Jiang老师提供的原 ...
- ce查找人物基址_关于CE找基址的一些基础概念
本文纯粹是和想学习这方面知识的新手做简单的技术讨论(咱也算和软件逆向工程沾边了). 作为一个文科生,"基址"到底是个什么东西,这个概念我就折腾了很久,做培训的老师们不会详细讲,网上 ...
- 商城项目01 _电商系统基本模式、分布式基础概念、微服务架构图、微服务划分图
文章目录 ①. 电商系统基本模式 ②. 分布式基础概念 ③. 微服务架构图详解 ④. 微服务划分图 ①. 电商系统基本模式 ①. B2C模式 就是我们经常看到的供应商直接把商品卖给用户,即" ...
- learnpythonthehardway中文版_《三天搞定Python基础概念之第一天》中文版
前言: 首先,非常感谢Jiang老师将其分享出来!本课件非常经典! 经过笔者亲测,竟然确实只要三天,便可管中窥豹洞见Python及主要库的应用.实属难得诚意之作! 其次,只是鉴于Jiang老师提供的原 ...
- 机器人中的yaw/pitch/roll
1.yaw(pan)/pitch(tilt)/roll 我认为,yaw/pitch/roll绕哪个轴旋转,是要看坐标系的朝向的,如果坐标系的轴如下图,则对应关系是yaw(z轴).pitch(x轴).r ...
- Yaw Pitch Roll的变换顺序问题
今天花了不少时间去理解Yaw Pitch Roll的变换顺序 比如给定一个旋转(15, 30, 60),那么物体应该先围绕哪个轴转呢?总得有个顺序吧? 解决这个问题的第一个天坑就是:网上的资料坐标系都 ...
- UE中FRotator和Pitch(Roll,Yaw)以及相对朝向的关系
前几天,看人宅的塔防视频教程,他使用了塔的成员变量rotator.我可能在哪里少写了,所以,老是朝向不对. 跟踪调试了下,发现FRotator是由pitch,roll,yaw三个部分组成,而pitch ...
最新文章
- 用户信息检索另一台服务器,客户机上一用户访问另一台机器上的informix数据库...
- java环境变量用不用jre_为什么安装jdk时,会安装两个jre?不用配置jre的环境变量...
- 【PAT (Advanced Level) Practice】1149 Dangerous Goods Packaging (25 分)
- Ecshop:后台添加新功能栏目以及管理权限设置
- 集合之ArrayList(含JDK1.8源码分析)
- 1634C. OKEA
- python控制语句字符串截取_菜鸟python---流程控制语句
- [渲染层错误] multipolyline.styles: 样式id_【译】关于 SPA,你需要掌握的 4 层
- MFC开发IM-第八篇、调整各个控件的上下tab顺序
- JS实践与写博客-序
- 林权抵押贷款政策出台 将实现林业资源变资本
- android ui设计 面试问题,2019新版UI设计面试题汇总附答案
- win10修改dns服务器命令,win10怎么修改DNS服务器?win10修改DNS服务器的方法
- Busybox 1.17.4 编译及错误解决方案
- Oracle ORA-00955名称已由现有对象使用
- kettle启动时报错:Maximum wait time of 10 seconds exceed while acquiring lock
- 2021支付宝集五福活动开启啦,集卡攻略来啦
- MySQL简单入门教程
- Struts框架实战精讲 struts1(2)- 登录案例
- 清华大学胡事民是计算机视觉,清华团队将Transformer用到3D点云分割上后,效果好极了丨开源...