Ardupilot姿态控制详解(完结篇)

Ardupilot姿态控制器 PID控制流程 APM的控制器主要分为attitude姿态控制器和pos位置控制器。这系列文章主要来讲一下姿态控制器内部的实现。本文主要目的是为了解析APM源码然后方便自己将其实现在自己的水下航行器控制器上的,因此将会以ArduCopter和ArduSub为例进行解析,其他无人机类型也是类似的,也可用作参考。 一、PID姿态控制器 1.1 Copter姿态控制官方原图 在真正开始解析源码之前,可以看一下Ardupilot官方网站上开发者手册对于直升机姿态控制器的描述(虽然官方的文档已经很久没更新了,4.x版本之后的.. 阅读详情

本文主要是对过去写的一些APM中姿态控制函数博文的汇总。

按照之前写的博文以及个人认为的学习顺序,给出APM姿态控制器的学习顺序如下:

APM姿态旋转理论基础

Ardupilot姿态控制器 PID控制流程

详解APM的开方控制器sqrt_controller(整定后的P控制器)

Ardupilot前馈及平滑函数input_euler_angle_roll_pitch_yaw解析

Ardupilot倾转分离函数thrust_heading_rotation_angles

Ardupilot四元数姿态控制函数attitude_controller_run_quat解析

Ardupilot速率控制器rate_controller_run解析(PID控制器)

看完之后应该会对APM的姿态控制了解更深一步。


由于官网的Copter的姿态控制PID流程图太老了,这边给出最新的4.X版本的控制计算

手把手推导APM的 sqrt_controller控制器 前言 玩过无人机的朋友对APM应该都不会陌生,如果是搞过多旋翼飞控且读过代码,肯定遇到过sqrt_controller控制器,它频繁的在位置、姿态控制中出现,所以非常有必要搞清楚这个控制原理。 下面以高度控制器为例来分析。 高度控制 APM的高度控制采用PID串级3环控制,即外环位置控制,中间速度控制,内环速度控制,如下图所示。 今天要讨论的sqrt_controller就是应用于位置控制器中。位置控制器的输出是速度控制器的参考reference输入,如果采用单P控制,其输出vel_ref = pos_e 阅读详情

相关推荐

详解APM的开方控制器sqrt_controller

前言 前面说过,sqrt_controller是对P项进行整定用途的,目的就是让P项的控制响应“软”下来,实际上就是一个经过改进的P控制器。读懂了sqrt_controller,那么你对APM的P控制器就了解得差不多了。 仅讨论P控制器,sqrt_controller的作用就是设定一个量linear_dist,以这个量的正负值为分界线划分出一个线性区域范围,在这个范围内表示误差量还很小,遵循Kp*error计算方式输出控制量。 超过linear_dist后,表明误差较大,此时不能由着误差单纯按照线性方式乘以

moumde的博客 4889

Ardupilot源码框架

Ardupilot源码地址:https://github.com/ArduPilot/ardupilot,官网地址:http://ardupilot.org/ 1、Ardupilot介绍   目前开源飞控有两个:Pixhawk和APM。Pixhawk是硬件平台,PX4是pixhawk的原生固件, APM(Ardupilot Mega)也是硬件,Ardupilot是APM的固件。后来开发者就把Ard...

low米的博客 6064

Ardupilot四元数姿态控制函数attitude_controller_run_quat解析

Ardupilot四元数姿态控制函数attitude_controller_run_quat解析源码解析细节讲解thrust_heading_rotation_angles()update_ang_vel_target_from_att_error()角度前馈量旋转解释姿态更新部分 在开始阅读本文之前,建议可以先看一下前面几篇博文,当然你基础好直接看也是没事的~ 详解APM的开方控制器sqrt_controller Ardupilot倾转分离函数thrust_heading_rotation_angles

moumde的博客 2957

Ardupilot姿态控制实战:从PID调参到四元数应用的避坑指南

本文深入探讨Ardupilot姿态控制的工程实践,聚焦PID调参与四元数应用两大核心。文章系统解析了串级PID结构,提供了从飞行现象到参数调整的诊断流程与基于日志的精细化调参方法,并详细阐述了四元数控制模式的启用时机、优势及开发中常见的归一化、误差计算等避坑要点,旨在帮助开发者构建高效可靠的姿态控制器调试方法论。

day7的博客 882

Ardupilot姿态控制全解析:从四元数误差到PID调参与日志排障

无人机飞行控制的核心在于姿态估计与姿态控制的闭环协同。传感器融合技术通过EKF等算法输出高精度姿态四元数,而控制环则将其转化为电机力矩,最终决定飞行稳定性。在Ardupilot飞控中,姿态控制采用典型的内外环级联结构:外环基于四元数误差计算期望角速度,内环通过PID控制器输出力矩指令,并依靠前馈与滤波机制平衡响应速度与阻尼。理解PID调参的本质,掌握角速度环参数体系,是解决无人机抖动、回摆、掉高等工程问题的关键。借助Mission Planner日志分析,结合MAVLink通信与Python脚本,开发者可以

weixin_29176179的博客 305

Pixhawk之UAV控制理论、ardupilot源码框架介绍

一、开篇         “您有无人机么?         没有。         那赶紧去某宝买一套。”         昨天开会开到接近下午一点钟,收获相当大,原本不太清楚的ardupilot框架现在也大致熟悉了,接下来主要就是结合源码了解其控制过程了,整体控制台过于复杂,还需要慢慢的研究。         但是,本篇博客还是不会太涉及那么多关于源代码的东西的,特别是关于通过代码实现

. 3万+

ArduPilot姿态控制算法在Pixhawk中的实践应用

深入剖析ArduPilot姿态控制算法在Pixhawk飞控硬件上的落地实现,涵盖EKF状态估计、PID控制器调参与实际飞行响应优化。结合ArduPilot开源框架特性,讲解如何通过MAVLink指令实时监控与修正姿态偏差,提升多旋翼和固定翼平台的动态稳定性。

weixin_42513870的博客 327

Ardupilot倾转分离函数thrust_heading_rotation_angles

Ardupilot倾转分离函数thrust_heading_rotation_angles什么是轴角分离源码分析一些细节补充效果显示及进一步修改 本文主要写一下自己对于APM倾转分离(轴角分离)函数的一些学习笔记及思考。 ZING已经很好地分析了APM轴角分离函数,以下是我参考的他的一些博文。 [飞控]姿态误差(四)-APM如何计算姿态误差 [飞控]倾转分离(一)-APM的倾转分离竟然没有效果? [飞控]倾转分离(补充)-等效旋转矢量(轴角)与旋转矩阵 后续分析过程会主要引用来自上面三篇,侵删。 什么是轴角

moumde的博客 2252

ArduPilot与PX4开源飞控对比:架构差异与选型指南

开源飞控系统是无人机开发的核心技术组件,其架构设计直接影响飞行控制算法的实现方式与系统性能。ArduPilot和PX4作为当前最主流的开源飞控平台,分别采用全集成和模块化两种典型架构模式。全集成架构提供开箱即用的稳定性,适合农业巡检等工业场景;模块化设计则通过uORB通信机制支持灵活定制,更符合科研项目需求。在硬件生态方面,ArduPilot对STM32F4/F7系列优化充分,而PX4能更好发挥STM32H7等高性能处理器优势。开发者需要根据项目类型(如物流运输、算法验证等)选择适合的飞控平台,同时考虑CA

weixin_30621711的博客 602

ardupilot 为什么要采样四元数姿态控制

本节主要说明清楚ardupilot姿态控制为什么要用到四元数,欢迎批评指正!!!

陌城烟雨 1112

从ESP/ABS选型看轮速传感器:为什么你的车用了AK+PWM+7/14mA三种协议?

本文深入解析了汽车轮速传感器的三种主流协议(7/14mA电流型、PWM型和AK协议型)及其混合应用场景。通过对比不同协议的技术特点、成本效益和工程挑战,揭示了现代车辆采用多种传感器协议背后的设计逻辑,包括成本控制、性能平衡和冗余设计等关键因素。

weixin_29266679的博客 523

海康工业相机SDK开发实战:从环境搭建到实时图像采集(附避坑指南)

本文详细介绍了海康工业相机SDK在Windows平台上的开发实战流程,涵盖从环境搭建、运行时库路径配置到实时图像采集的全过程。重点解析了MVS SDK部署、设备连接、参数设置及图像处理等核心环节,并提供了实用的避坑指南和错误排查方法,帮助开发者构建稳定的机器视觉系统。

weixin_29248611的博客 838

数字IC笔记-低功耗技术

传统的降低Power的方法主要有: 1.门控时钟技术(clock gating) 2.多阈值电压技术(MultiShreshold) 3.动态电压频率调节技术(DVFS) 目前有以下几种低功耗技术: 1.多电压技术(Multi-Voltage) 2.MTCOMS Power Gating 技术(多阈值功耗控制技术),比如基带部分中的2G、3G、CDMA、LTE等通过awake—>sleep—>awake的方式间歇式的打开或关断其电源,power gating 可以完全关掉dynamic的pow

sinat_41774721的博客 1924

BACnet/IP BBMD跨网段通信深度解析与最佳实践

本文介绍了在BACnet/IP网络中通过BBMD实现跨子网设备通信的关键配置方法。重点阐述了广播分发表(BDT)中掩码设置的重要性:使用子网掩码(255.255.255.0)会导致路由器拦截广播消息,而必须采用主机掩码(255.255.255.255)才能启用单播隧道机制,使BACnet广播消息封装为可路由的单播UDP包。文章详细说明了BDT条目的正确配置格式、BIP广播地址的作用,并提供了验证步骤,强调在跨网段场景中,正确设置掩码是确保设备发现和通信成功的关键因素。

零一架构师的专栏 1531

量子化学仿真软件:VASP_(9).磁性材料计算

在量子化学仿真软件 VASP 中,磁性材料的计算是一个复杂但重要的过程。通过正确设置磁性状态、分析磁性性质、优化计算参数以及研究磁性相变和磁动力学,可以更准确地描述和预测磁性材料的性能。希望本节的内容能够为研究磁性材料的科研人员提供有用的参考和指导。

kkchenjj的博客 1371

基于CST的PCB通孔三维建模实例

本文简明扼要地描述了如何利用CST的参数化脚本快速生成PCB的通孔三维模型,非常适合于进行快速精准的PCB参数分析。

一只豌豆象的博客 1820

2025年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(二)

本文整理了2025年11月架构设计师考试的16-30题真题及解析,涵盖多个计算机系统知识领域。主要内容包括:Linux绝对路径以根目录开始(A);模块调用下层数量用扇出表示(B);游乐园问题通过集合运算得出10人未游玩(B);磁盘位示图计算为200字节(C);测试用例核心是输入与预期输出(D)。其他题目涉及软件可靠性测试概念(B错)、评价程序准确度排序(真实程序最高,A)、测试阶段顺序(单元→组装→系统,A)、Web服务器压力测试前置步骤(C)、分时系统响应时间影响因素(用户数量多,A)、逆向工程方法(基于

一几文的编程学习笔记。 211

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: Ardupilot速率控制器rate_controller_run解析
下一篇: 传感器数据融合及姿态估计总结
moumde
博客等级 码龄10年 454粉丝 40原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值