第十章 PX4-Pixhawk-姿态控制

2023-05-16

-               第十章 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层的一个控制,很多的命令控制都在这个文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十章 PX4-Pixhawk-姿态控制 的相关文章

  • docker的image两个id相同名字不同

    今天建立docker容器的时候由于疏忽 xff0c 镜像的名字输错了 xff0c 结果容器创建成功后 xff0c 镜像中出现两个id相同 我们要删除第一个 xff1a docker rmi imageID 是删除口令 这种情况的操作 xff
  • 树莓派Pi OS备份镜像设置自动扩展磁盘,完全基于树莓派原版系统实现方式(镜像备份全流程)

    写入树莓派官方镜像的时候 xff0c 我们会发现当树莓派第一次启动后 xff0c 磁盘空间会自动扩充到整个TF卡 那么当我们自己制作镜像的时候 xff0c 能不能去除未使用的空间 xff0c 制作体积较小的镜像 xff0c 并在该镜像启动时
  • STM8S 红外解码+低功耗处理

    NEC协议 红外遥控的编码目前广泛使用的是 xff1a NEC Protocol 的 PWM xff08 脉冲宽度调制 xff09 和 PhilipsRC 5 Protocol 的 PPM xff08 脉冲位置调制 xff09 xff0c
  • YUV 数据和 Bitmap 互相转换

    YUV 数据和 Bitmap 互相转换 在 Android 的 Camera 应用开发过程中会遇到需要保存预览图像进行分析的情况 xff0c 比如人脸检测或扫描等场景 此时需要将预览的 YUV 数据转为为 Bitmap 保存下来 xff0c
  • Git从入门到熟练第九讲 合并分支和分支冲突

    前言 上一章我们讲解了分支的创建和删除 xff0c 以及对误删分支的恢复操作 xff0c git stash挂起分支修改 在这一讲我们则重点讲解分支合并git merge以及如何解决合并冲突 目录 课前准备 xff1a 9 1 合并分支 9
  • STM32 跳转系统BootLoader

    STM32 跳转系统BootLoader STM32 进入系统 bootLoader 主要有两种方法 xff1a xff08 1 xff09 一种是设置 boot 引脚 xff0c 进入系统 bootLoader xff08 2 xff09
  • 43 freertos任务通知-互斥量串口防止打印乱码

    四十三 freertos任务通知 互斥量串口防止打印乱码 span class token comment span span class token macro property span class token directive ha
  • canal监听mysql实践

    canal监听mysql实践 canal是用java开发的基于数据库增量日志解析 xff0c 提供增量数据订阅 amp 消费的中间件 目前 xff0c canal主要支持了MySQL的binlog解析 xff0c 解析完成后才利用canal
  • 自动驾驶算法学习:多传感器信息融合(标定, 数据融合, 任务融合)

    版权声明 xff1a 本文为博主转载文章 xff0c 遵循 CC 4 0 by sa 版权协议 xff0c 转载请附上原文出处链接和本声明 原文链接 xff1a https blog csdn net orange littlegirl a
  • Linux平台设备和驱动

    一 platform总线 一个现实的linux设备驱动通常需要挂接在一种总线上 xff0c 对于本身依附于PCI xff0c USB xff0c IIC xff0c SPI等的设备而言 xff0c 这自然不是问题 xff0c 但是在嵌入式系
  • 2019年终总结&小半年流媒体服务器开发经验总结

    2019年终总结 amp 小半年流媒体服务器开发经验总结 文章目录 2019年终总结 amp 小半年流媒体服务器开发经验总结19年开发小结流媒体服务框架设计登录服开发ffmpeg音视频合成服务开发 流媒体服务开发小结rtp处理视频的合成 a
  • 设备接入ONENET(3)STM32 + ESP8266(MQTT协议)接入云 :官方例程移植笔记(HAL+LL库)

    重要提示 xff1a 由于OneNET版本迭代 xff0c 导致鉴权方式可能变更 xff0c 若程序无法连接 xff0c 请参考官方手册或再OneNET论坛搜索相关内容 移植本意应该是指通过修改 使得运行原先在另一个平台可运行的程序 STM
  • pygame 学习笔记(4)推荐一本python入门游戏书籍《PYTHON游戏编程入门》

    简介 PYTHON游戏编程入门 xff08 More Python Programming for the Absolute Beginner xff09 是 S Harbour写的一本入门书籍 xff0c 基于pygame库 本书每一个章
  • VLC加载插件失败原因及解决

    最近做视频播放的程序 xff0c 找到了VLC开源库 在windows 43 vs2013 43 QT5 3环境下进行调试 出现了在调用libvlc new时提示不能找到插件 加载libvlc失败的问题 原因及解决方法如下 xff1a 1
  • logcat的使用

    参考链接 log信息级别 以下优先级从上往下排序 xff1a V xff1a verbose 显示全部信息 最低优先级 xff0c 对应Log v String tag String msg D xff1a debug 显示调试信息 xff
  • 物联网架构实例—解决Linux(Ubuntu)服务器最大TCP连接数限制

    1 前言 xff1a 在对物联网网关进行压测的时候 xff0c 发现在腾讯云部署网关程序 xff0c 设备接入数量只能达到4000多个长连接 xff0c 之后就再也无法接入终端了 之前在阿里云部署的时候明明可以到达2万左右 xff0c 而且
  • Prometheus从入门到跑路

    1 prometheus框架结构 2 prometheus组件介绍 2 1 Prometheus Server 这是Prometheus的服务端 xff0c 也就是核心 Prometheus本身是一个以进程方式启动 xff0c 之后以多进程
  • ucos-ii学习笔记1 创建任务&&任务调度

    span style font family none font size 12px background color rgb 255 255 255 span span 最近在学习嵌入式系统 xff0c 听说ucos ii是使用最广 xf
  • ucos ii学习笔记2 邮箱&&信息量

    上一篇说了ucos ii的大致运行原理 xff0c 这一篇主要用来说明不同任务之间的数据传递的 有人会说 xff1a 不同任务间的数据传递直接用全局变量不就好了 xff0c 我一开始也有这种疑惑 xff0c 也在简单程序中实验过没什么问题
  • ucos ii学习笔记4 软件定时器

    span span p span style font size 18px span span ucos ii从V2 83版本以后加入了软件定时器 xff0c 软件定时器的最快时钟节拍就等于ucos ii的系统时钟节拍 xff0c 由一个单

随机推荐

  • 时钟源关系初解

    最近发现自己对时钟的各种关系不是很清晰 xff0c 所以在这里初步的顺一下 以STM32F4为例 xff0c 大概都差不多 STM32F4有5个时钟源 xff0c 分别是HSI HSE LSI LSE PLL 从名字上看出HSI和HSE是高
  • up-board

    安装ubuntu16 04 安装board内核 http www eeboard com bbs thread 59222 1 1 html 对管脚的控制 http www eeboard com bbs thread 59257 1 1
  • 【嵌入式软件实习】找实习和电话面试记录与总结

    前言 前一段时间就是非常想找实习 xff0c 这次是接到了一家还算是比较大的公司的面试通知和实习offer 做一下简单的记录给在找实习的大家一个参考吧 主要内容为 xff1a 三连即可提高学习效率0 0 x1f9d1 x1f3fb 作者简介
  • Ubuntu更换apt镜像源

    原文 xff1a Ubuntu更换apt镜像源 在ubuntu中 xff0c 默认使用 ubuntu 的官方源http archive ubuntu com xff0c 但是这个官方源在国内下载的速度太慢 xff0c 甚至只有几十k 于是考
  • JS 闭包 详细说明(教程)

    首先 xff0c 闭包是一个高阶函数 xff0c 高阶函数除了可以接受函数作为参数外 xff0c 还可以把函数作为结果值返回 xff08 不知道高阶函数是啥 xff0c 点击链接 xff09 先通过一个例子来了解一下如何把函数作为结果值返回
  • STVP烧录程序

    STVP介绍 STVD xff1a ST Visual Develop xff0c 可视化开发工具STVP xff1a ST Visual Programmer xff0c 可视化编程工具 xff0c stvp主要打开一些固件 hex s1
  • 传感器标定系列——Kalibr工具

    文章目录 Kalibr介绍安装资源 Kalibr介绍 Kalibr is a toolbox that solves the following calibration problems 多相机标定 Multi Camera Calibra
  • TCP传输图片及多线程

    最终效果图 xff1a 注意 xff1a 图片发送大体流程同 Qt网络编程 TCP IP 一 只是在发送时这里采用 的 数据流QDataStream形式 因为使用摄像进行监控时也是对一帧一帧的图片进 行处理 xff0c 因此掌握了如何用Qt
  • GCC编译过程及基本命令总结

    一 GCC简介 GCC即GNU Compiler Collection xff0c 原本只是针对C语言的编译工具 xff0c 现在已经变成了一个工具集 xff0c 包含了C C 43 43 JAVA等语言的集合体 管理和维护 xff1a 由
  • 第一章 PX4-Pixhawk-程序编译过程解析

    第一章 PX4程序编译过程解析 PX4 是一款软硬件开源的项目 xff0c 目的在于学习和研究 其中也有比较好的编程习惯 xff0c 大家不妨可以学习一下国外牛人的编程习惯 这个项目是苏黎世联邦理工大学的一个实验室搞出来的 该方案是基于 N
  • 第二章 PX4-Pixhawk-RCS启动文件解析

    第二章 PX4 RCS 启动文件解析 RCS 的启动类似于 linux 的 shell 文件 xff0c 如果不知道 shell 文件是什么东西可以理解成是为程序的流程框 xff0c 它是告诉处理器应该怎么样去运行 xff0c 前一章介绍的
  • 第三章 PX4-Pixhawk-SPI底层驱动解析

    第三章 PX4 SPI 底层驱动解析 这一章节我们会对 PX4 的底层驱动进行解析 xff0c 我们这里主要解析的是 SPI 协议 xff0c 因为这个协议是所有传感器的一个协议 xff0c 至于 IIC 和串口就可以类似的读写一下 xff
  • 第四章 PX4-Pixhawk-MPU6000传感器驱动解析

    第四章MPU6000传感器驱动解析 Mpu6000 是一个 3 轴加速度和 3 轴陀螺仪传感器 xff0c 这一章节我们将对 MPU6000 这个传感器进行解析 xff0c 依照这个解析步骤同样可以对 L3GD20 xff08 3 轴陀螺仪
  • 第五章 PX4-Pixhawk-GPS解析

    第五章 PX4 GPS解析 在上一章节我们对传感器MPU6000做了一个解析 xff0c MPU6000所支持的协议是SPI 这一章节我们来解析GPS xff0c GPS使用的是串口通信 这里我们着重讲解UBLOX的解析过程 xff0c 并
  • 第六章 PX4-Pixhawk-Sensors解析

    xfeff xfeff 第六章 PX4 Sensors 解析 这一章节并不难 xff0c 也很容易理解 xff0c 但是这一章节有几个函数需要我们去理解一下 xff0c 所以这里我们这里写一章来说明一下 Sensors 是所有传感器进行数据
  • 第七章 PX4-Pixhawk-Mavlink解析

    xfeff xfeff 第七章 PX4 Mavlink 解析 首先我们是还是来说一说 mavlink 吧 Mavlink 协议是无人机的一种开源通信协议 可以理解就是按照一定的格式来发送数据 这一章节涉及到了消息的打包发送和接收解析 首先我
  • STM8S 低功耗模式

    功耗控制的概念调整 功耗控制之硬件调整 在硬件体系中可以有以下优化手段 xff1a 优化电路设计优化电源供电效率 xff08 减少用于发热的能源 xff09 调节单片机时钟频率 xff08 频率越高功耗越高 xff09 选择单片机或者外围的
  • 第八章 PX4-Pixhawk-SDlog解析

    xfeff xfeff 第八章 PX4 SDlog 解析 这一章节我们对 SD 存储卡来进行解析 SD 卡涉及到 log 日志 xff0c 在很多飞行中 log 文件非常重要的 xff0c 尤其是新手在炸机过程中有了这些数据我们基本上就能分
  • 第九章 PX4-pixhawk-姿态估计解析

    第九章 PX4 pixhawk 姿态估计解析 这一章节我们对姿态估计进行解析 xff0c 这一章节涉及到算法 xff0c 主要涉及到的还是DCM 方向余弦 算法 首先我们还从启动文件开始进行讲解 我们找到rc mc apps中 xff0c
  • 第十章 PX4-Pixhawk-姿态控制

    第十章 PX4 Pixhawk 姿态控制 这一章节我们对姿态控制进行解析 xff0c 姿态解算我们还是从启动文件开始 xff0c 找到姿态解算的启动文件rc mc app 这里面找到姿态解算的启动项为mc att control start