第十章 PX4-Pixhawk-姿态控制

- 这一章节我们对姿态控制进行解析,姿态解算我们还是从启动文件开始,找到姿态解算的启动文件rc.mc_app,这里面找到姿态解算的启动项为mc_att_control start 这里面不带任何参数,直接就是start。 
根据编译规则我们可以知道调用的事mc_att_control_main.cpp文件,这里我们不对这个函数之间的调用和new在继续去解读,如果不懂得就去参考前面几篇博客。这里我们直接到task_main函数中去进行解读。 
首先还是订阅相关数据和更新相关数据主要是PID数据和相关限幅数据。注意哦,姿态相关的参数都是在这里看的出可以调节的,调节的参数在mc_att_control params.c中,这些参数大家如果不怕炸鸡可以去试着调一调。 
接着进入大循环,首先还是防阻塞时间配置,配置好了之后就跑到轮询中。首先是对采样时间限制在2ms到20ms之间,然后就是更新飞机的相关数据。 
到这里就开始进入到控制模式了,首先是对姿态速度控制模式是否被使能,这个主要是利用遥控来控制来控制俯仰和横滚的速率的,然后判断遥控给出的值是否超过阈值,如果超过了就采用rattitude模式,前提是还要被使能,否则就进入角度控制模式。 
根据流程来说我们还是先分享角度控制吧。首先在角度控制中需要判断是否为那种尾座式飞机,我们这里只分析多旋翼,所以我们这里只对多旋翼的分析一下,多旋翼的就直接进入到姿态控制函数中。我们直接进入到conrtol_attitude函数中,这里的参数是时间间隔参数在积分项会用到。 
首先获取期望值,至于获取哪些值就自己到msg文件中自己去看,里面具体也有注释比较容易懂,都是英文写的,要是实在英语不过关就在线去。然后再获取期望油门值。然后通过期望四元素经过DCM得到旋转R矩阵。然后就是计算偏航值,这里的算法自己去找找理论去,这个利用了向量的计算方法,然后计算偏差角度。这一堆里面涉及到很多的理论,基本是向量运算,本人实力有限也不确定能不能讲清楚,所以这里不对这些来详细解读,这些里面主要是对偏航来做一系列计算。 
回到函数我们会知道在经过姿态控制函数之后就得到了姿态的期望值roll、pich、yaw、油门然后进行发布数据。 
进入到else中这里是对速度控制,然后遥控控制又超过了阈值,这里会将遥控数据经过转换得到期望值最后进行发布数据。 
接着就进入到角度度控制环路中这里面首先就是获取控制的角速率包括roll、pich、yaw计算当前角速率和期望角速率的偏差,然后计算控制量,这里面就用到了PID调节接着就是对各个数据的范围进行判定,这里就不用说了吧,对于搞飞机的这里的算法还是没问题吧。经典PID而已。 
到这里就基本讲完了,主要是计算控制量然后发布数据。这里提一下那些模式的控制在commander.cpp中这个文件我们也会讲,不过这个比较远,因为PX4里面的东西还远远没有讲完,有兴趣的同学可以先去看看,那里面可以说是APP层的一个控制,很多的命令控制都在这个文件中。

第十章 PX4-Pixhawk-姿态控制相关推荐

  1. PX4——mc_att_control(姿态控制)

         本文转载自  博主: summer   博客:<Pixhawk之姿态控制篇(1)_源码算法分析(超级有料)>         原博客地址:http://blog.csdn.net ...

  2. Pixhawk原生固件PX4之常用函数解读

    PX4Firmware 经常有人将Pixhawk.PX4.APM还有ArduPilot弄混.这里首先还是简要说明一下: Pixhawk是飞控硬件平台,PX4和ArduPilot都是开源的可以烧写到Pi ...

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

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

  4. Pixhawk系统架构介绍

    前段时间导师叫我做扑翼无人机,工程上需要实现的,能够通过程控飞起来,感觉难度挺大.先从研究PX4开始,打算一步步理解透整个PX4的框架,机型的适配.旋翼.固定翼的姿态控制,新机型的添加等等.不知道能不 ...

  5. PX4项目学习::(一)项目架构

    目录 序:项目整体嵌入式架构: 无人机方面做嵌入式编写的飞控总结 1软件: 2硬件: 1 PX4/Pixhawk的软件体系结构 2.下图所示为PX4的算法顶层架构. 左边是整个飞控系统的控制功能实现 ...

  6. PX4/Pixhawk---uORB深入理解和应用

     The Instructions of uORB 『PX4/Pixhawk』   『软件体系结构』 『uORB』 『主题发布』 『主题订阅』 1 简介 1.1 PX4/Pixhawk的软件体系结 ...

  7. PX4代码解析(2)

    前言 在大致了解PX4代码架构后,我们需要了解PX4的通信机制.在PX4代码架构中,每通信总线主要分为两个部分,一是内部通信总线uORB,即PX4内部进程通信采用的协议,例如PX4内部姿态控制需要获取 ...

  8. 关于Arduino、树莓派和 Pixhawk微处理器对比分析

    摘要:Arduino是一款基于微控制器(单片机)的电子开发板,它可以运行一些相对比较简单的应用程序.包含硬件(各种型号的Arduino板)和软件(Arduino IDE).树莓派(RaspberryP ...

  9. Pixhawk飞控代码(2019.11.28)

    此代码为Pixhawk飞控的代码,分享给飞控爱好者,如果代码版本过老请在Github上自行下载 链接:https://pan.baidu.com/s/1XNHjDc1yBhWiluK7lyMH0w 提 ...

  10. Pixhawk的历史

    发展历程:APM-->PX4FMU/IO-->Pixhawk: 1.Arduino简介 Arduino就是主要以以AVR单片机为核心控制器的单片机应用开发板(当然也有其他核心的例如STM3 ...

最新文章

  1. ubuntu mysql 内存满了_ubuntu – 如何为mySQL分配内存限制?
  2. 对约束条件优化问题的理解
  3. 类加载过程(加载+验证+准备+解析+初始化)
  4. 复习笔记(六)——C++运算符重载(难点)
  5. 什么是Starter
  6. 5-4日 socket套接字
  7. SAP CRM Fiori应用My Note的OData调用设计
  8. 解决 display 和 transition 冲突的问题
  9. 王道考研 计算机网络8 物理层基本概念 数据通信相关术语
  10. 数据结构-链表1-顺序存储
  11. 人工智能语言python实验报告_【报名】人工智能语言Python启蒙课程(五六年级)...
  12. Java Web学习总结(37)——Filter和Listener详解
  13. oracle 简单job
  14. C语言课程设计学生考勤管理系统
  15. 区分微信小程序是否支持canvas 2d
  16. neo4j ,neo4j-desktop国内下载镜像
  17. 【新概念4】【15】Secrecy in industry
  18. 解决mac突然连不上wifi了(wifi出现灰色小感叹号!)
  19. 怎样进行微信营销才比较好
  20. 当 Vite 遇上微前端

热门文章

  1. 从CMDB动态获取服务器列表,按照Ansible的约定
  2. hihocoder #1388 : Periodic Signal NTTFFT
  3. mysql半同步复制实现
  4. 【Treap】[BZOJ 3224]Tyvj 1728 普通平衡树
  5. jQuery event的复制粘贴的坑
  6. boost------signals2的使用1(Boost程序库完全开发指南)读书笔记
  7. php5.3开始出现的Function ereg() is deprecated Error问题解决办法
  8. C# WinForm开发系列 - Excel
  9. FMS3 服务器集群虚拟服务器配置入门
  10. Apache 创建虚拟主机目录和设置默认访问页面