[STM32F0] 欧拉角的问题

[复制链接]
 楼主| Cjy_JDxy 发表于 2017-11-23 09:40 | 显示全部楼层 |阅读模式
MPU6050的数据都读出来了。不知道欧拉角是什么意思。
        sprintf(p,"%4f",pitch);
                       
                       
                       
                        sprintf(r,"%4f",roll);
                       
                       
                       
                        sprintf(y,"%4f",yaw);

我猜想pitch可能是和水平面的夹角,roll是和垂直面的夹角,那yaw呢?
谁知道,望告知,谢谢!
幸福四叶草 发表于 2017-11-23 13:24 | 显示全部楼层
pitch:俯仰角(y轴旋转角),roll:横滚角(x轴旋转角),yaw:航向角(z轴旋转角)
 楼主| Cjy_JDxy 发表于 2017-11-23 13:27 | 显示全部楼层
幸福四叶草 发表于 2017-11-23 13:24
pitch:俯仰角(y轴旋转角),roll:横滚角(x轴旋转角),yaw:航向角(z轴旋转角) ...

谢谢
changle11sdo5 发表于 2017-11-23 19:41 来自手机 | 显示全部楼层
不懂不要问我,问飞机
timg.jpg
643757107 发表于 2017-11-29 15:26 | 显示全部楼层
关于旋转永远是做游戏的难点和混乱点。我们知道表示一个旋转有多种方式,简单的欧拉角,复杂点的四元数,再复杂点的矩阵。之前接触unity可以用四元数和欧拉角两种方式表示旋转,最近一直研究虚幻引擎,目前只看到了欧拉角这一种旋转方式。

欧拉角是表达旋转的最简单的一种方式,形式上它是一个三维向量,其值分别代表物体绕坐标系三个轴(x,y,z轴)的旋转角度。这样的话,很容易想到,同样的一个三维向量,代表了绕x,y,z的旋转值,先进行那个旋转是否对结果有影响呢?显然是有影响的,可以拿着你的手机试一下,不同的旋转顺序会代表不同的旋转结果。所以,一般引擎都会规定自己的旋转顺序。
下面三张动图形象的表示了欧拉角的旋转方式。第一张是绕x轴旋转pitch,第二张绕y轴旋转yaw,第三张是绕z轴旋转roll。
1.gif
2.gif
3.gif





绕三个轴的旋转值pitch,yaw,roll来自航空界的叫法,翻译为俯仰角,偏航角,翻滚角,非常形象。它们不一定如上所述,一定分别代表绕x,y,z的旋转值。
从英文意思出发,roll:是卷;滚动,转动;辗的意思;
yaw是(火箭、飞机、宇宙飞船等)偏航的意思;
pitch是倾斜;投掷;搭帐篷;坠落的意思;
所以,roll的意思是翻滚,就是绕着机身所在的那个轴。yaw是偏航的意思,偏航就是绕着重力方向为轴。pitch倾斜、坠落的意思,坠落就是以翅膀所在的直线为轴发生旋转。

另外值得注意的是,pitch值是不能超过90度,这里牵扯到了万向锁的知识,不再多说,网上很多讨论。

下面这张图是以摄像机的角度来阐述欧拉角的,可以加深理解。可以看到,pitch,yaw,roll在这里并不是常见的代表绕x,y,z的旋转值。
这里写图片描述 4.png

643757107 发表于 2017-11-29 15:27 | 显示全部楼层
借助上面飞机动图应该很容易理解了吧。
捉虫天师 发表于 2017-11-29 15:29 | 显示全部楼层
果然有高人,形象生动。
zhuotuzi 发表于 2017-11-30 21:27 来自手机 | 显示全部楼层
好厉害,这个各种晃动都测出来了
heisexingqisi 发表于 2017-11-30 23:58 来自手机 | 显示全部楼层
这个是陀螺仪测的吗?
 楼主| Cjy_JDxy 发表于 2017-12-1 08:22 | 显示全部楼层
heisexingqisi 发表于 2017-11-30 23:58
这个是陀螺仪测的吗?

是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:绿水本无忧因风皱面,青山原不老为雪白头。

553

主题

3530

帖子

20

粉丝
快速回复 在线客服 返回列表 返回顶部