暑假期间,对于四旋翼有一点兴趣,没有亲手做,但是看了一些资料。这个系列文章只是对自己看的东西的记录,对于想要学习了解相关知识的同学没有任何参考价值!

本篇是系列第一篇,分为两部分。第一部分定性描述了四旋翼飞行的动力学原理,第二部分从旋转矩阵,欧拉角,四元数三个方面介绍了三维空间刚体运动的表示方法。

一.动力学模型

可以把四旋翼的运动模型分为动力学模型和运动学模型两个部分。由于四旋翼的动力学模型比较简单,这里只对四旋翼的运动控制定性说明。

1.升降运动
四旋翼的四个浆叶分X形或十字形,相邻的两个旋翼转动方向相反,它们产生的反向扭矩刚好相互抵消,使得四轴在偏航方向能够保持平衡。当转速增加,飞行器克服升力,高度升高。反之转速减小,高度也就随之下降。

2.俯仰运动
如图所示,当电机1转速增大,电机3转速减小,飞行器产生一个向上的力矩,随之电机1上升,电机3下降。同时飞行器会向电机3的方向前进。

3.横滚运动
如图所示,当电机1,2中的一个提高转速另一个减小,就会产生横滚运动。同时飞行器也会左右移动。

4.偏航运动
偏航运动是机体围绕Z轴旋转的过程。单个旋翼,旋转时会产生反扭距,使得机身朝反方向旋转,这也是直升机需要尾桨的原因。图中逆时针旋转的两个桨加速,顺时针旋转的两个桨减速,这样机体就能顺时针旋转。

2.三维空间刚体运动姿态表示

1.欧拉角
首先介绍欧拉发明的欧拉角说起。欧拉角应该是最容易理解的旋转表示方法。

如图所示,一般使用ZYX的顺序旋转物体,下图是一架飞机按照ZYX组合进行旋转产生欧拉角的过程,其中,ψ为偏航角,θ为俯仰角,φ为滚转角。这样使用三个参数就能唯一表示一种旋转方式。


欧拉角最大的问题是存在万向锁,数学上叫做奇异性。可以使用手中的手机感受一下。先将手机屏幕面于地面平行,绕Z轴旋转任意角度,然后将手机向上仰90度,使得屏幕面和地面垂直,这样不论如何,第三次旋转和第一次旋转将使用同一个Z轴,使得物体相当于损失了一个自由度。

2.旋转矩阵
在线性代数中学过,

[a1a2a3]=R∗[a1,a2,a3,]\begin{bmatrix} a_1\\a_2\\a_3 \end{bmatrix} \quad=R*\begin{bmatrix} a_1^,\\a_2^,\\a_3^, \end{bmatrix} \quad ⎣⎡​a1​a2​a3​​⎦⎤​=R∗⎣⎡​a1,​a2,​a3,​​⎦⎤​
将单位正交基a’转换为另一个正交基,这个转换矩阵R就是旋转矩阵。

在二维坐标系之下,旋转X轴一个角度θ,得到旋转矩阵
[cosθsinθ−sinθcosθ]\begin{bmatrix} cosθ&sinθ\\-sinθ&cosθ\\ \end{bmatrix} [cosθ−sinθ​sinθcosθ​]
同理,按照ψ为偏航角,θ为俯仰角,φ为滚转角的顺序旋转之后,可以得到以下三个旋转矩阵。

旋转矩阵R=RψRθRφ旋转矩阵R=R_ψR_θR_φ 旋转矩阵R=Rψ​Rθ​Rφ​

当俯仰角θ达到90度时,
R=[00−1sin(φ−ψ)cos(φ−ψ)0cos(φ−ψ)−sin(φ−ψ)0]R=\begin{bmatrix} 0&0&-1\\sin(φ-ψ)&cos(φ-ψ)&0\\cos(φ-ψ)&-sin(φ-ψ)&0 \end{bmatrix} R=⎣⎡​0sin(φ−ψ)cos(φ−ψ)​0cos(φ−ψ)−sin(φ−ψ)​−100​⎦⎤​
可见这个这个旋转矩阵的第一行和第三列固定不变,相当于损失了一个自由度,这也是万向锁的数学解释。

注意:不同的资料可能旋转矩阵表示不一样。本文中都是被动旋转求出的旋转矩阵。

3.四元数
先说明四元数的结构
q=q0+q1i+q2j+q3kq=q_0+q_1i+q_2j+q_3k q=q0​+q1​i+q2​j+q3​k
它拥有一个实部和三个虚部,它的设计不是随意的,而是专门为了表示旋转而发明。设一个点的坐标是【x,y,z】记为p,将它绕n轴旋转角度θ,得到点p’。
p=[0,x,y,z]=[0,v]q=[cosθ2,nsinθ2]p,=qpq−1(q−1是四元数q的逆)p=[0,x,y,z]=[0,v]\\q=[cos\frac{θ}{2},nsin\frac{θ}{2}]\\p^,=qpq^{-1} (q^{-1}是四元数q的逆) p=[0,x,y,z]=[0,v]q=[cos2θ​,nsin2θ​]p,=qpq−1(q−1是四元数q的逆)
那么,四元数不存在万向锁的问题,但是不直观,所以在实际应用需要把它归一化后使用如下的代码转换成欧拉角。

angle->pit=asin(-2*q1*q3+2*q0*q2)*57.3
angle->rol=-atan2(2*q2*q3+2*q0*q1,1-2*q1*q1-2*q2*q2)*57.3
angle->yaw=atan2(2*(q0*q3+q1*q2),1-q2*q2-q3*q3)*57.3

学习四旋翼(一):动力学模型和空间姿态表示相关推荐

  1. 四旋翼无人机动力学模型及控制

    四旋翼无人机动力学模型及控制 I: 欧拉角与旋转矩阵 Overview 欧拉角与旋转矩阵 Body Frame Angular Velocity and [ ϕ ˙ , θ ˙ , ψ ˙ ] T [ ...

  2. 四旋翼无人机动力学模型

    四旋翼无人机动力学模型 我看到无人机吊挂运输系统的建模也是这几种 拍自<四旋翼无人机控制  基于视觉的悬停与导航>

  3. 学习四旋翼(三):DMP姿态解算和串级PID控制姿态

    暑假期间,对于四旋翼有一点兴趣,没有亲手做,但是看了一些资料.这个系列文章只是对自己看的东西的记录,对于想要学习了解相关知识的同学没有任何参考价值! 本篇是系列第三篇,介绍了我对于MPU9250 DM ...

  4. matlab simulink四旋翼无人机模糊PID控制姿态

    1.内容简介 略 532-可以交流.咨询.答疑 2.内容说明 四旋翼无人机控制灵活.安全性能较高,能够实现空中悬停.翻滚.任意角度横 向飞行,常常替代人们从事高空危险作业,给我们的生活与工作带来了很多 ...

  5. GD32F103+MPU9150四旋翼飞行器第一步:姿态融合算法

    前言: 相比直升机来说,四旋翼乃至多旋翼飞行器的机械结构简单,操控灵活,飞行稳定,体积也能做的更小,当然也能更大,它将直升机复杂的机械结构设计难度转化到了电子电路和算法上面,因此四旋翼飞行器的设计更容 ...

  6. 微型四旋翼飞行器设计经验之瞎扯淡

    在正式开始记录微型四旋翼飞行器设计的学习笔记之前,感觉自己很有必要先给自己一个总结,也希望能够帮到更多的朋友少走弯路(虽然不知道帮助大不大). 去年九月下旬开始了微型四旋翼飞行器的学习与设计,在12月 ...

  7. 四旋翼与四元数学习笔记

    为了实现四旋翼无人机的编队控制,重点学习了四旋翼加速度转换为姿态角和推力指令的具体手段,详细学习了四元数.旋转矩阵.欧拉角在四旋翼上的应用,学习了四旋翼的几何控制法.姿态角控制器设计,学习了mavro ...

  8. 四旋翼无人机学习之准备篇(一)

    最近我哥要给我邮递个四旋翼无人机,再加上本人对蓝天从小就很感兴趣..所以在学习完四驱小车后打算上手下无人机 刚开始学习根本不知道要看哪些,在几天漫无头绪的学习,终于有点气色了,就把学习经验分享给大家 ...

  9. 启航篇——四旋翼飞行器之入坑两年心路历程和毕设总结

    笔者今年大四毕业,由于之前参加比赛及准备考研,没有时间总结这两年来做四旋翼飞行器的心得体会.现在借毕业设计这个契机,想把这件事做了,算是两年的收尾工作,也是个新的开始. 先从介绍这两年的经历开始吧.开 ...

最新文章

  1. 春节充电 | 文科生都能看懂的机器学习教程:梯度下降、线性回归、逻辑回归(附动图解释)...
  2. 使用ModelBinder自动过滤获取Model值的空格
  3. python让用户输入一个列表_Python:如何将用户输入添加到列表中?
  4. 【Linux 报错】com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The las
  5. leetcode 380. Insert Delete GetRandom O(1) | 380. O(1) 时间插入、删除和获取随机元素(Java)
  6. Polygon Cruncher减边用法
  7. 阻塞队列之七:DelayQueue延时队列
  8. Linux和unix发行版本,UNIX发展历史和发行版本
  9. 【举栗子】Docker 容器磁盘占满的几种情况 | CSDN博文精选
  10. drools 7.x-复杂事件处理入门
  11. HTML标签margin和padding的默认属性值
  12. PMP第五章:项目范围管理
  13. 运维工程师到底是做什么的?
  14. 解决LinuxMINT上连接ChinaUnicom问题
  15. 【docker-ce】k8s集群docker容器异常重启问题分析
  16. Hive集合数据类型(STRUCK,MAP,ARRAY)
  17. 神秘网络蠕虫不搞破坏却让几万台服务器抵抗木马
  18. 马力测试 软件,【图】【分享百公里加速测试软件DYNOLICIOUS】内附楼主的测试结果!...
  19. 弘辽科技:大裁员之后,京东最新财报来了
  20. 如何使上下文信息更有用? 关于上下文感知的神经对话模型的实证研究

热门文章

  1. cf #855 (Div. 3)
  2. Vue中使用v-print打印出现空白页
  3. shape context-形状上下文
  4. 盘点丨无人机与AI 深度融合及跨域应用
  5. 深度学习中关于模型融合问题
  6. 什么是4K HDR?HDR10+、HDR10 PRO、杜比视界HDR区别
  7. Python批量读取公司年报并进行情感分析--代码实战
  8. 三菱FX3U 485ADP与4台欧姆龙E5cc温控器远程+本地通讯程序
  9. JAVA后端判断纯中文正则汉字校验
  10. CISP、CISSP、CISA、CISP-PTE有什么别?