姿态控制算法前期准备(四元数+PID算法理论+欧拉角理论)

一、需要的知识储备:

由于输入数据为四元组,因此需要对四元组有一些初步的了解:

  • **什么是四元数?**形如:
    q = a + b ∗ i + c ∗ j + d ∗ k q=a+b*i+c*j+d*k q=a+b∗i+c∗j+d∗k

​ 它是复数的推广,因此亦称超复数。它除了乘法交换律不成立外,通常代数的其余运算律都成立。其满足一下等式:
i 2 = j 2 = k 2 = i j k = − 1 i j = − j i = k , j k = − k j = i , k i = − i k = j i^2=j^2=k^2=ijk=-1 \\ ij=-ji=k,jk=-kj=i,ki=-ik=j i2=j2=k2=ijk=−1ij=−ji=k,jk=−kj=i,ki=−ik=j

  • 四元数基础知识

    四元数满足结合律和分配律,但是不满足乘法交换律。
    对 四 元 数 q = s + x i + y j + z k , 也 可 以 用 有 序 对 即 二 元 形 式 [ s , v ] 来 表 示 , 其 中 , s ∈ R , v ∈ R 3 s ∈ R , v ∈ R 3 , s ∈ R , v ∈ R 3 对四元数\textbf{q}=s+x\textbf{i}+y\textbf{j}+z\textbf{k},也可以用有序对\\ 即二元形式[s,\textbf{v}]来表示,其中,s ∈ R , v ∈ R 3 s\in R,v\in R^3,s∈R,v∈R^3 对四元数q=s+xi+yj+zk,也可以用有序对即二元形式[s,v]来表示,其中,s∈R,v∈R3s∈R,v∈R3,s∈R,v∈R3

1.1 四元数的模:
∣ q ∣ = s 2 + v 2 = s 2 + x 2 + y 2 + z 2 |q|=\sqrt{s^2 + v^2}=\sqrt{s^2+x^2+y^2+z^2} ∣q∣=s2+v2 ​=s2+x2+y2+z2 ​

1.2共轭四元数
q ∗ = [ s , − v ] , q q ∗ = [ s 2 − < v , − v > , − s v + s v + v × ( − v ) ] = [ s 2 + v 2 , 0 ] = ∣ q ∣ 2 q^∗=[s,−v],qq^∗=[s^2−<v,−v>,−sv+sv+v×(−v)]=[s^2+v^2,0]=|q|^2 q∗=[s,−v],qq∗=[s2−<v,−v>,−sv+sv+v×(−v)]=[s2+v2,0]=∣q∣2
1.3四元数的逆
q − 1 = q ∗ ∣ q ∣ 2 q^{-1}=\frac{q^*}{|q|^2} q−1=∣q∣2q∗​
1.4单位四元数

​ 给定任意的向量v,我们可以把这个向量写成一个系数和一个单位方向向量的乘积:
s 2 + v 2 = 1 s^2+v^2=1 s2+v2=1
1.5四元数的旋转

​ 四元数可以表示三维空间上任意的伸缩旋转变换,如果已知一个三维空间的伸缩旋转的转轴方向、旋转角 度和伸缩比例,来求相应的四元数,是比较容易的。
  四元数提供了一个很好的描述3D方位的方法,这使得它在计算机图像处理、机器人和虚拟现实以及任何涉及三维方位的地方有着广泛的应用,下面是几个例子:
  1、计算机辅助设计(CAD)。其本质需要软件对物体的旋转动作进行平滑处理,并图像显示。
  2、计算机游戏。Unity是开放3D游戏的平台,在很多地方我们都可以看到它的身影。很多游戏是需要图像的平移和旋转进行平滑过渡的,四元数就有了用武之地。
  3、欧拉角有一个万向锁问题也是旋转问题,用四元数可以解决,也和上面应用相关。

二、可选用算法:

1、PID算法(可输入四元数)

  • 算法理论

    P(比例环节):给定一个速度的大致范围,计算公式:
    K p ⋅ e ( t ) , K p 为 比 例 系 数 , e ( t ) 为 偏 差 K_p\cdot e(t),K_p为比例系数,e(t)为偏差 Kp​⋅e(t),Kp​为比例系数,e(t)为偏差
    I(积分环节):误差在一段时间范围的和,计算公式为:
    K i ⋅ ∫ 0 t e ( x ) d x , K i 为 积 分 系 数 K_i\cdot \begin{aligned}\int\limits_0^t e(x) \mathrm{d} x\end{aligned},K_i为积分系数 Ki​⋅0∫t​e(x)dx​,Ki​为积分系数
    D(微分环节):误差变换曲线在某出的倒数,计算公式为:
    K d ⋅ d e ( t ) d t , K d 为 比 例 系 数 , d e ( t ) d t 为 在 某 处 的 导 数 K_d\cdot \frac{de(t)}{dt},K_d为比例系数,\frac{de(t)}{dt}为在某处的导数 Kd​⋅dtde(t)​,Kd​为比例系数,dtde(t)​为在某处的导数
    遇到离散值时,我们需要将连续变量离散化,具体见下方图片:

2、欧拉角法(通过角度变换)

算法推演,角度变化:

姿态控制算法前期准备(四元数+PID算法理论+欧拉角理论)相关推荐

  1. 姿态解算 四元数、方向余弦、欧拉角、Mahony滤波、四轴

    姿态解算 四元数.方向余弦.欧拉角.Mahony滤波 说明:本文只是做了一些总结,需要一些对这方面的基础概念的了解. 一般人千万不要试图去深入探讨四元数 1. 方向余弦矩阵 方向余弦矩阵是使用欧拉角( ...

  2. matlab控制算法C语言,PID算法Matlab仿真程序和C程序

    <PID算法Matlab仿真程序和C程序>由会员分享,可在线阅读,更多相关<PID算法Matlab仿真程序和C程序(6页珍藏版)>请在人人文库网上搜索. 1.增量式PID控制算 ...

  3. 基于自适应算法和增量式PID算法的模拟直升飞机控制系统

    基于自适应算法和增量式PID算法的模拟直升飞机控制系统 文章目录 基于自适应算法和增量式PID算法的模拟直升飞机控制系统 控制系统硬件 单片机系统 传感器系统介绍 直升机模拟系统介绍 系统模块介绍 A ...

  4. [单片机学习笔记](35):串级PID算法应用剖析、通过串口控制电机、MPU6050获取平衡车姿态、自制平衡车PID算法程序设计

    串级PID算法应用剖析 这是经过给队友讲解串级PID的程序的之后的进一步的理解总结. 内环的实际值,取决于你能测出什么值给内环.而内环的输入就是内环误差 内环的输出值,是内环误差(内环目标值-内环实际 ...

  5. 控制算法-PID算法总结-从公式原理到参数整定解析(附C源码)

    目录 一.控制系统 1.1控制系统的分类 1.2 性能指标 二.PID算法的起源及特点 三.PID应用 四.PID公式原理 五.PID源码 六.PID整定方法 6.1 经验法 6.2 衰减曲线法 6. ...

  6. OCPC系列 - PID算法(理解PID算法)-比例控制算法、积分控制算法、微分控制算法

    OCPC中PID算法应用场景 任何一个广告投放体系在商业化的过程中必须考虑的两个因素就是,投放成本.投放量. 只有投放成本低于整个商业链条中可接受的成本,这个商业模式才能够成立,而投放量决定了这个模式 ...

  7. PID算法在ROS仿真环境中的理论及应用(ROS_F1TENTH)

    一.需求: 在F1TENTH 仿真环境simulator中,使用PID算法实现无人车沿墙走wall_following 源码链接:https://github.com/Grizi-ju/ros_pro ...

  8. PID控制算法实践应用(一):PID算法的离散化

    目录 前言 一.PID连续系统离散化 二.总结 前言 上一节中,论述了PID算法的基本形式,并对其控制过程的实现有了一个简要的说明,通过上一节的总结,基本已经可以明白PID控制的过程.这一节中先继续上 ...

  9. pixhawk的姿态控制算法解读

    作为学控制的,多轴的姿态控制简单了解一些,当初看px4代码时,对其姿态控制算法表示不能理解,又很难找到一些资料详细解释,经过仔细的推导,大概对其有了一定的认识,因此记录下思路,大概解释下算法代码,如有 ...

最新文章

  1. c语言求跳水运动员成绩,跳水排名_C语言编程实例_C语言_最全面的网站教程
  2. Django项目配合sentry实现浅析
  3. html5字体颜色自动转换,【转】js里alert里的字体颜色怎么设置:字体颜色方法;fontcolor(color)...
  4. github开源库(三)
  5. oracle analyze 全部表,Oracle analyze table
  6. Linux启动过程综述(转)
  7. html验证用户名长度,JQuery表单字符串长度验证
  8. 他对我有成见,怎么办
  9. Java程序设计基础(第五版)期末总复习
  10. python opencv图像叠加/图像融合/mask掩模
  11. 没有学历可以学习游戏建模吗?这问题真致命!
  12. SpringBoot项目启动异常:Field settlementMissService in...Service required a single bean, but 2 were found:
  13. 惊天翻转,复盘BSV的逆袭之路
  14. vue移动端项目微信公众号授权登录
  15. 关于英语的大小写规则
  16. 两台计算机是怎么“连接”在一起的
  17. 博图买什么样配置的笔记本_西门子PLC编程软件-博图软件用什么配置的电脑最好?...
  18. ejabberd XMPP服务器有用的配置及其介绍
  19. 非科编程逆袭国外名校计算机专业,三本生预科逆袭世界前100名校!H同学喜获3大计算机专业本科录取...
  20. HTML精仿ios相册,高仿ios相册地图功能

热门文章

  1. 扫雷游戏初步实现与心得
  2. 扫雷TigerMinesweeper_01
  3. JavaScript函数式编程之偏函数(Partial Function)
  4. php 负载均衡文件上传,nginx负载均衡同步上传文件的问题
  5. 使用Jsoup爬虫爬取相关图片
  6. Ettercap系列 II:基于命令行界面(结合driftnet截获目标机器正在浏览的图片)
  7. 不正经的C语言学习记录(一)
  8. 吃货联盟订餐系统(删除订单功能实现)
  9. python deepcopy报错_pip安装中的Deepcopy错误,pandas,selenium,everywh
  10. [2018.04.17][水][日志][6][#171~#181][贪心算法][已经丧心病狂][背景-amp;amp;amp;amp;gt;][最虚伪的算法]