PX4混控

9 篇文章 0 订阅
订阅专栏
1 篇文章 0 订阅
订阅专栏

https://blog.csdn.net/qq_27016651/article/details/81123204  感谢博主的无私分享!

混控步骤:

一、忽略偏航进行融合处理

1根据混控矩阵计算得到out,这一步已经包含油门,同时记录下最大输出和最小输出,outputs保存四个电机的输出值。

2第一种情况,min小于0,max大于0,min,max之差小于1,可以通过偏移解决。加油油门增加幅度大于|min|,可以通过增加油门的方式解决,boost = -min_out;如果油门增加幅度太小,需要把roll和pitch的缩小后再计算。代码如下如图。

举个例子,当前thrust为0.2,计算得到新的输出值之后,min为-0.2,max为0.6,roll和pitch带来转速上的变化是0.4,由于只计算了Roll和Pitch,所以在旋翼里面,min和max到thrust的距离一定是一样的。这种情况就是第一种情况,并且油门增大幅度为0.2*0.5=0.1,不足以平衡min的大小。需要对Roll和Pitch进行缩放。计算得到boost=0.1,roll_pitch_scale=0.75,然后再计算下面的代码。可以知道min=0,max=0.6,没有饱和。

二、添加偏航后进行处理

首先分析out<0的情况,通过第一步的处理可知out在0到1范围内,假设此时out=0.2;当加上偏航后,out=-0.1,因此偏航就占用了-0.3,但是出现了下溢出,为了防止溢出yaw只能占用-out也即是-0.2,因此对-out进行除以_rotors[i].yaw_scale处理,得到处理后的yaw值,从而有效抑制下溢出;

然后是out>1的情况,通过第一步的处理可知out在0到1范围内,假设此时out=0.8;当加上偏航后,out=1.1,因此偏航就占用了0.3,但是出现了上溢出,为了防止溢出yaw只能占用1-out也即是1-0.8=0.2,因此对1-out进行除以_rotors[i].yaw_scale处理,得到处理后的yaw值,从而有效抑制上溢出;yaw处理也到此结束战斗。

三、融合怠速处理

这个相对比较容易理解就不说了,一般会把_idle_speed赋0;

四、对整体输出的处理(专业说法叫slew rate limiting)

其实这个地方感觉有点像滤波处理,当当前时刻比上一时刻的变化大与最大阈值时,就要省掉当前的值,用上一刻的值加上最大阈值进行代替,当当前时刻比上一时刻的变化小于最小阈值时,就要省掉当前的值,用上一刻的值加上最小阈值进行代替,我感觉就是为了是控制更平稳,增加一定的抗干扰能力,但响应有可能会变慢。接下来就是细节分析了

在文件Firmware-master\ROMFS\px4fmu_common\mixers中预定机身的类型,打开quad_+.main如下:

它们可以用作为定制或者一般测试目的的基础。

语法

混频器的定义是一个文本文件:每行以一个简单的大写字母开头,后面跟着一个重要的冒号。其他的所有行都被忽略,意味着解释性文本可以自由地与定义混合。

每个文件可能定义不止一个混频器。混频器给执行器的分配就是指定读取混频器定义的设备

一个混频器以下面这样一行的形式开始

<tag>:<mixer arguments>

标签选择了混频器的类型,‘M’表示一个简单的加法混频器,‘R’表示多旋翼混频器等。

上面的函数表示数据读取函数,即是将quad_+.main文件中的数据存放到相关参数中,

同时返回数据

通过函数

返回到实际中(以quad_+.main为例),也即是

再根据下面的程序,将roll_scale,pitch_scale,raw_scale,idle_speed分别映射到_roll_scale,_pitch_scale,_yaw_scale,_idle_speed中

接下来就是下面程序中未知数的确定了,

可以知道_rotors为一结构体变量数组,数组的大小为_rotor_count, 在mc_mixer.cpp中还定义了一下结构体变量

通过mc_mixer.cpp中的以下代码将*_rotors与这些数据联系在一起

这一部分感觉不像是多旋翼多控制输出的控制,这部分的控制输出是被限制在4,暂不考虑这一块,通过查阅资料,有一下说明:

对应的定义在程序中未能找到,查看PX4源程序发现:

mixer混控器根据机型进行力矩分配。根据叶素理论,螺旋桨旋转产生的s升力/扭矩与转速的平方以及拉力系数/扭矩系数相关。构造力矩分配矩阵,通过一些资料获得了一些相关矩阵,如下所示:

当使用不同的Layout时,对应不同的力矩矩阵,矩阵的第一行对应第一个电机的输出,第一行中的数据分别对应

_rotors1.roll_scale,_rotors1.pitch_scale,_rotors1.raw_scale,_rotors1.out_scale

具体的赋值过程在程序中并未发现,只能根据资料获得,

这个程序中出现了FLT_EPSILON,这个参数表示最小浮点数,在float.h中有相关定义,具体定义也可以参考下图:

 

 

px4中文维基
11-24
PX4的架构中包含了飞行模式、飞行控制栈、中间件、混控输出、PWM限制以及状态机等重要概念。用户可以通过地面站,比如QGroundControl(QGC),来实现飞行的视频流、光流、多旋翼PID调参、日志分析以及系统预检等操作...
PX4混控矩阵的移植
qq_27016651的博客
07-19 3041
首先感谢各位提供帮助的大神们,我也只是把人的心得总结一下,加上自己的一点感悟: 混控步骤: 一、忽略偏航进行融合处理 1根据混控矩阵计算得到out,这一步已经包含油门,同时记录下最大输出和最小输出,outputs保存四个电机的输出值。 2第一种情况,min小于0,max大于0,min,max之差小于1,可以通过偏移解决。加油油门增加幅度大于|min|,可以通过增加油门的方式解决,boost...
px4直升机混控逻辑整理
渡之的博客
03-01 1869
目录 一、直升机混控矩阵的介绍: 二、源代码解读 一、直升机混控矩阵的介绍: 直升机混控: 直升机混控将三个控制输入(roll,pitch,thrust)组合为四个输出(斜盘伺服系统和主电机ESC设置)。 直升机混控的第一个输出是主电机的油门设置。 随后的输出是斜盘伺服器。 可以通过添加简单的混合器来控制尾桨。 推力控制输入既用于主电动机设置,也用于斜盘的总螺距。 它使用油门曲线和俯仰曲线,均由五个点组成。 混合器定义以以下内容开头: H: <number of swash-.
PX4二次开发快速入门
最新发布
weixin_36851949的博客
08-18 353
文章目录前言一、概述二、二次开发基础(自定义工作队列,自定义uorb)自定义工作队列自定义uorb消息三、自定义串口驱动(添加一个毫米波雷达并定高)四、自定义I2C驱动(驱动一个oled显示屏)五、自定义参数六、自定义日志记录七、自定义机型一、定义机型文件二、修改srcparser.py三、编译并下载固件四、修改QGC八...
PX4自定义混控
TLKids的博客
04-13 3129
文章目录前言混控器简介混控器的启动自定义混控器 前言 上一篇我对PX4的控制和输出的全流程都进行了较为详尽的分析,本来想着之后的研究主要在四旋翼控制算法上,不会定义啥新机型,混控器的部分就不再深究了。但是好奇心害死人呀,又捣鼓了一两天来实践了一下自定义混控器,现在也把大概流程记录一下,说不定啥时候就用上了。 混控器简介 PX4进行设计的时候就非常模块化,将每个部分尽可能的进行分离,保证各个部分专注自己的事情可以很好地被复用和被修改,混控器也是这样的设计。对于一般的无人机而言,我们都将其假定为刚体模型,最终的
PX4混控器定义
Miku_HU的博客
08-19 1751
PX4混控: 把输入指令 分配给电机以及舵机的执行器 信号传递 _Actuators_id= ORB_ID(actuator_controls_0) // 0号控制组 Orb_publish(_actuators_id, _actuators_0_pub, &_actuators); PX4混控器语法定义: 混控器分为简单混控器S和多旋翼混控器R 简单混控器S M:&...
PX4 ---- Mixer
lib0000的博客
03-04 1918
Mixer (混合控制) 作用 经过位置控制和姿态控制后,控制量通过 actuator_controls发布,其中 control 数组存放了四个的控制量。(roll, yaw, pitch , throttle) 这四个量投影到不同的轴臂上,投影关系即是混控矩阵。 换句话说,混控确定了飞机的控制输出(yaw, roll, pitch)映射到飞机各个 PWM 通道输出的关系。(例如电调) 输入 混控的输入来自控制组(control group)。这些大多是预先定义好的,参见此处。在混控文件中会确
PX4-Autopilot-Simulink-Interface:Simulink车辆PX4自动驾驶仪通讯和控制接口。 有关更多信息,请访问
02-03
PX4-Autopilot-Simulink-Interface 是一个项目,旨在实现Simulink与PX4自动驾驶仪之间的通信和控制接口。这个接口允许用户在MATLAB的Simulink环境中对PX4飞行控制系统进行仿真和设计,这对于无人机(UAV)、无人驾驶...
px41.8.0的启动脚本文件
04-19
px41.8.0的启动脚本文件,本人在里面加了详细的注释和注意事项,...启动脚本是一个神奇的东西,它能够识别出你对应的飞机类型,加载对应的混控器,选择对应的姿态、位置估计程序以及控制程序,初始化你需要的驱动程序。
基于PX4、ROS和Gazebo的无人机通用仿真平台
03-07
在现代科技领域,无人机技术的发展日新月异,而基于PX4、ROS(Robot Operating System)和Gazebo的无人机通用仿真平台则是该领域的重要研究工具。这些技术的结合为无人机的研发、测试和教育提供了强大的支持,使得...
滤镜和混合模式.pdf
06-14
例如,filter: drop-shadow(4px 4px 8px blue)会创建一个向右偏移4像素、向下偏移4像素、模糊半径为8像素且颜色为蓝色的阴影。 - grayscale(灰度): 灰度滤镜可将元素转换为灰度图像。例如,filter: grayscale(50%)...
PX4混控器相关知识梳理
qq_56552346的博客
03-24 1682
PX4从核心控制器获取所需的扭矩和推力指令,并将它们转换为控制电机或驱动器的驱动指令。例如,“向右转”需要给出一个扭矩指令:混控器又称为mixer。混控的作用是把输入指令分配到电机、舵机的执行器指令。将姿态控制的结果结合机型、尺寸PWM的输出,进而使得各个电机实现各自需要的转速。下图为PX4运行过程中比较核心的进程:红色框表示的是由导航与解算过程,得到飞机当前的位置属性和姿态属性。
px4 多旋翼混控学习记录
Dgbxzd的博客
03-01 295
PX4混控学习记录
PX4混控加载与混控输出代码解读
m2301023的博客
11-07 1821
混控器的作用是把姿态控制输出的roll,pitch,yaw力矩转换为电机的输出。PX4现将姿态控制分为几种,分别是固定翼姿态控制、无人车、无人船和多旋翼姿态控制(四轴、六轴、直升机等)。 本文代码版本是V1.13.0,在代码中追踪混控是如何加载与实现混控配置
三角翼航模尾翼混控原理探索
a_peng1的博客
07-06 1611
三角翼航模,混控算法探索
PX4参数THR_MDL_FAC的理解
weixin_36726332的博客
11-28 702
对参数THR_MDL_FAC的理解 /home/wp/src/PX/Firmware/src/lib/mixer_module/mixer_module.hpp 这里引入了参数THR_MDL_FAC的使用 DEFINE_PARAMETERS( (ParamInt<px4::params::MC_AIRMODE>) _param_mc_airmode, ///< mult...
PX4混控器Mixer的分析
上善若水
12-06 9893
PX4架构保证了核心控制器中不需要针对机身布局做特别处理。混控指的是把输入指令(例如:遥控器打右转)分配到电机以及舵机的执行器(如电调或舵机PWM)指令。对于固定翼的副翼控制而言,每个副翼由一个舵机控制,那么混控的意义就是控制其中一个副翼抬起而另一个副翼落下。同样的,对多旋翼而言,俯仰操作需要改变所有电机的转速。将混控逻辑从实际姿态控制器中分离出来可以大大提高复用性。 1 控制流程 一个特定的...
PX4中的控制分配
z1872385的博客
10-19 3355
PX4中的控制分配 本文主要讲讲在PX4代码中pwm计算的过程,即如何将旋翼姿态控制模块产生的控制指令 —三轴力矩+机体轴升力 转换为对应的PWM信号? 如果您想修改控制分配矩阵,或者修改混控算法,如:设计异型旋翼飞机、在混控中加入电机升力扭矩系数等需求,这篇文章或许对您有一定借鉴意义。 PX4固件版本: v1.8.2 飞行平台:四旋翼(其他旋翼机类似,但对于固定翼仅有参考意义) 前言 一般来说,旋翼无人机的控制分为位置环控制+姿态环控制两部分: 位置环输入 设定量:期望位置、期望速度、期望加速度等 状态量
px4混控器流程理解 motor test qgc调试
power的专栏
12-06 999
sys_autostart 索引是5000 启动是加载5000_generic_ground_vehicle文件,此脚本指定混控脚本文件55行是rover_generic ------------------------华丽分界线--------------四悬翼------ sys_autostart 索引是4011,PX4源码中的4011_dji_f450 set MIXER quad_x 对应的混控脚本quad_x.main.mix quad_x.toml ...
PX4混控器编程的教程
05-16
PX4混控器编程是无人机控制中非常关键的一个环节,下面是一个简单的教程: 1. 了解混控器的原理 混控器是将多个控制信号进行加权叠加,输出一个综合的控制信号,用于控制无人机的姿态和动作。 2. 配置混控器 在PX4中,混控器的配置可以通过QGroundControl或者命令行进行。可以通过修改参数来配置混控器的输入通道、输出通道、加权系数等。 3. 编写混控器代码 可以使用PX4的SDK(Software Development Kit)来编写混控器代码。SDK提供了一系列的API,可以方便地读取输入信号、计算加权系数、输出控制信号等。 4. 调试混控器 在编写混控器代码时,需要进行调试。可以通过调试器、日志、仿真等方式来验证混控器的正确性和稳定性。 总之,PX4混控器编程需要对无人机控制原理、PX4系统、编程语言等方面有一定的了解。希望这个简单的教程能为你提供一些帮助。
写文章

热门文章

  • printf()函数详解 80263
  • ubuntu 查看usb设备 69685
  • matlab randn函数产生高斯随机噪声 34769
  • socket 发送结构体数据 26605
  • 解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点 16576

分类专栏

  • AI 1篇
  • 深度强化学习 1篇
  • pixhawk ros 仿真
  • ros 键盘 配置 1篇
  • ubuntu 4篇
  • USB设备 2篇
  • ros设置
  • linux 3篇
  • ttyusb 1篇
  • 设备节点 1篇
  • ros 3篇
  • 惯性导航 1篇
  • 惯性导航姿态角 3篇
  • 滤波算法 3篇
  • 组合导航 1篇
  • 视觉感知系统 1篇
  • pixhawk px4 9篇
  • mavlink 1篇
  • matlab 1篇
  • 环境搭建
  • 编程语言
  • 网络编程 3篇
  • 树莓派 2篇
  • 系统 1篇
  • 网络编程 数据传输 1篇
  • 数学 1篇
  • 混控 1篇
  • Nuttx

最新评论

  • printf()函数详解

    csdn13309120721: 表情包写的很详细,一站就看懂了。博主好棒谢谢了。表情包

  • 强化学习PPO算法的思路流程

    今晚月光很美: 为什么看到有的 PPO 算法不是基于 AC 框架的,没有 critic 网络,PPO 算法是有多个版本吗

  • 解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点

    不加辣先生: https://blog.csdn.net/weixin_44023934/article/details/122252740?spm=1001.2014.3001.5501 多usb摄像头串口设备名固定和永久授权,互相学习一下

  • printf()函数详解

    夜雨夜不语: 那个类型中c的例子错了,要输出A得是65@楼主

  • 惯导姿态角的解释和固定的变换公式

    O牧羊少年O: 博主看的哪本书可以告知一下嘛,小弟想系统地学习一下

最新文章

  • 强化学习PPO算法的思路流程
  • mavlink模块中接收offboard模式下的mavlink消息流
  • 导航系统中常用坐标系
2020年1篇
2019年3篇
2018年34篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家四川卡通玻璃钢雕塑工厂吉安玻璃钢雕塑凳子河南户内玻璃钢雕塑多少钱内江玻璃钢卡通雕塑定制淮南玻璃钢雕塑加工四川仿铜玻璃钢雕塑制作芜湖校园玻璃钢雕塑沧州人物玻璃钢雕塑生产厂家芜湖公园玻璃钢雕塑武汉动物玻璃钢雕塑安装山西抽象玻璃钢雕塑景观玻璃钢卡通雕塑参考价高达玻璃钢雕塑昆山玻璃钢雕塑厂商定制沙洋玻璃钢雕塑厂家珠海玻璃钢艺术雕塑安徽玻璃钢奶牛雕塑毕节商场美陈装饰玻璃钢雕塑售价天水公园玻璃钢雕塑价格品质玻璃钢卡通雕塑代理商玻璃钢雕塑片汕尾玻璃钢园林雕塑摆件深圳动物玻璃钢雕塑定制惠州惠鑫玻璃钢雕塑厂天津玻璃钢奶牛雕塑邓州玻璃钢雕塑价格二七区玻璃钢小品雕塑南平玻璃钢仿真水果雕塑玻璃钢雕塑爬墙施工香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化