在看完px4固定翼的姿态控制代码后,我有几点思考

1.我们知道程序中姿态控制的方法是将控制角度转化为控制角速度。那pitch来说,先求出设定的pitch和当前的pitch的差值(delta pitch)。然后将delta pitch除以时间常数得到目标pitch_rate。接着将目标pitch_rate和当前的pitch_rate做差送入pi+ff控制器,将控制器的输出送入actuator。从而达到控制角度的目的。

2.roll的控制和上面的pitch控制一样。但是raw的控制不一样,因为raw的控制不涉及角度的控制,也就是他没有目标角度值,他只有目标角速度,而这个目标角速度是通过协调转弯方程直接求得的,然后和当前的raw_rate做差送入pi+ff控制器,将控制器的输出送入actuator。我理解控制raw的过程是一个纯粹的速率控制,因为我最后只管速率有没有达到我的设定值,而不去管这个过程角度变化了多少。

3.比较上面两种控制,我发现第一个控制是一个角度+角速度的内外环控制,外环是角度,内环是角速度,最终还是要控制角度。而第二个控制只有一个角速度控制环。

4.还有一点就是第一种控制下目标速度是一个变值,不是固定的,因为角度差在变。而第二个控制中目标速度是一个定值。

5.在说说为什么roll没有角度控制,我觉得因该是飞机在平飞时很少用到rudder,基本只有在转弯时才用到。

6.再说说姿态控制的作用吧:这个程序的作用其实就是起到控制actuator的作用,你给我目标姿态,我就用我的控制算法去达到这个目标,在这个程序中我不管你这个目标姿态是怎么产生的(手动产生还是其他的算法产生)。

关于px4源码中固定翼姿态控制相关推荐

  1. 【PX4-AutoPilot教程-1】PX4源码文件目录架构分析

    PX4源码文件目录架构分析 PX4源代码的结构复杂,这是源代码的总目录结构(以v1.13.0为例): Firmware ├─boards ├─build ├─cmake ├─Documentation ...

  2. px4源码编译之 建立自己的程序模块

    前言:在网上找了一大圈,如何在px4源码examples中添加自己的程序,包括官网那个都没有用,后来发现需要在对应的编译位置对cmake文件进行修改,具体如下: 1.在你想要的位置新建文件夹,建议和你 ...

  3. MXNET源码中NDArray数据的获取和打印

    虽然本人也很想写一个系列的分析文章,奈何水平不足,零零碎碎学到一点就写一点吧 本人是想学习MXNET的源码,首先想要添加一些打印,debug一下,第一个问题是如何在C++源码中打印出NDArray结构 ...

  4. Redis源码和java jdk源码中hashcode的不同实现

    一.redis实际上是使用了siphash 这个比较简单,我说的简单是指redis代码比较少不像jdk一样调用C++代码调用栈非常深. 先看这个rehashing.c 主要就是dictKeyHash函 ...

  5. Caffe源码中io文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/util/io.hpp文件 ...

  6. 盘点 HashMap 源码中的那些优雅的设计!

    以下文章来源方志朋的博客,回复"666"获面试宝典 一.HashMap构造器 HashMap总共给我们提供了三个构造器来创建HashMap对象. 1.无参构造函数public Ha ...

  7. rust墙壁升级点什么_分享:如何在阅读Rust项目源码中学习

    今天做了一个Substrate相关的小分享,公开出来. 因为我平时也比较忙,昨天才选定了本次分享的主题,准备比较仓促,细节可能不是很充足,但分享的目的也是给大家提供一个学习的思路,更多的细节大家可以在 ...

  8. 总结|ORB_SLAM2源码中字典使用细节

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言 前段时间,主要对ORB-SLAM2中字典的训练与使用进行了些研究,关于字典的训练之前也写过一篇文 ...

  9. Android之在BaseAdapter源码中了解观察者模式

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/76146635 本文出自:[顾林海的博客] 个人开发的微信小程序,目前功 ...

最新文章

  1. iptables为什么需要增加loopback回环的规则
  2. Linux内核和应用层程序通信get/setsockopt示例
  3. 前端学习(1749):前端调试值之如何查看js和css源码
  4. linux下源码安装官方最新版Python
  5. ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )[转载]
  6. 网站CPU占满,微信经常SSL不能建立的错误排查
  7. lesson6 DAAD转换与单片机接口
  8. Android Studio 离线本地 TTS语音合成 Kotlin代码
  9. 自组织映射 (SOM) 解决旅行商问题 (TSP)
  10. css text-transform实现英文字母或拼音大小写转换
  11. 6500元都不到?战神Z8-DA5NP配置强悍,神船的性价比又回来了
  12. 473. 火柴拼正方形
  13. C/C++运行错误收藏
  14. Flutter与Android原生交互
  15. 前端Docker部署方案
  16. traceroute命令(unix)/tracert命令(windows)的工作原理
  17. linux下载文件到本地
  18. 74cms前台sql注入
  19. 一文看懂区块链架构设计(附知识图谱)
  20. Net通用进销存管理系统 + 开发文档+ 使用说明

热门文章

  1. 深入了解JVM之内存模型(四)
  2. 天天肝大厂面试题,邮储银行Java笔试
  3. 【渝粤题库】陕西师范大学202221保险学Ⅱ 作业(高起本、专升本)
  4. Rviz中控制机器人模型运动(arbotix)
  5. C++——动态空间分配
  6. EDM邮件群发:群发邮件不进垃圾箱的独家秘笈
  7. 第二证券|钠电池三种技术路线谁更将率先取代锂电池?
  8. 运放电路的工作原理_陶瓷气体放电管工作原理全业电子
  9. python中if brthon环境安装包_Python实现base64编码的图片保存到本地功能示例
  10. 串口发送程序linux,单片机IO口模拟串口程序(发送+接收