欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

四旋翼无人机自主导航技术深度笔记:建模、状态估计、运动规划与控制

2026/7/5编程开发

本文系统梳理四旋翼无人机自主飞行的核心技术栈:建模、状态估计、运动规划与控制。

一、引言:为什么需要这样一份指南?

无人机自主导航是一个跨学科的综合问题,涉及空气动力学、传感器融合、路径规划和实时控制。对于初学者而言,学术论文往往过于简洁且缺乏全局视角,导致很难建立起完整的知识体系。作者 Carlos Gonzalez 在本科阶段也曾深陷这种困惑——读了大量论文却仍然无法拼凑出“如何让四旋翼自主飞行”的全景图。经过多年实践与整合,他决定撰写这份“速成指南”,旨在为后来者提供一个直观、连贯的入门路径,而非一份权威教科书。

本文是对 Carlos 系列博客的深度整合与扩展,覆盖了四旋翼自主飞行的四个核心模块:

  • 模型(Model):四旋翼的动力学与运动学建模
  • 状态估计(State Estimation):如何利用传感器数据推断无人机当前状态
  • 运动规划(Motion Planning):如何生成安全可行的飞行轨迹
  • 控制(Control):如何让无人机精确跟踪规划好的轨迹

此外,还涉及**微分平坦性(Differential Flatness)**这一简化控制设计的数学工具,以及完整的系统架构示例。

二、四旋翼标准模型

2.1 基本假设与坐标系

四旋翼无人机通常被建模为一个刚体,具有六个自由度(3个位置 + 3个姿态角)。标准建模中采用两个主要坐标系:

  • 世界坐标系(惯性系):固定在地面,通常以起飞点为原点,Z轴向上。
  • 机体坐标系:固定在无人机中心,X轴指向机头方向,Y轴指向右侧,Z轴垂直机体向上。

2.2 动力学方程

四旋翼的动力学模型由牛顿-欧拉方程描述:

平移运动:
[ m \ddot{\mathbf{p}} = m \mathbf{g} + \mathbf{R}{IB} \cdot \mathbf{F}{thrust} ]
其中:

  • ( \mathbf{p} ) 是世界坐标系下的位置向量
  • ( m ) 是无人机质量
  • ( \mathbf{g} ) 是重力加速度向量(通常为 ( [0, 0, -g]^T ))
  • ( \mathbf{R}_{IB} ) 是从机体坐标系到世界坐标系的旋转矩阵
  • ( \mathbf{F}_{thrust} ) 是机体坐标系下的总推力向量(通常沿机体Z轴)

旋转运动:
[ \mathbf{I} \dot{\boldsymbol{\omega}} = \boldsymbol{\tau} - \boldsymbol{\omega} \times (\mathbf{I} \boldsymbol{\omega}) ]
其中:

  • ( \mathbf{I} ) 是惯性张量矩阵
  • ( \boldsymbol{\omega} ) 是机体角速度向量
  • ( \boldsymbol{\tau} ) 是施加在机体上的总力矩向量(由四个旋翼的推力差产生)

2.3 控制输入与混控矩阵

四旋翼有四个控制输入:总推力(Thrust)和三个轴上的力矩(Roll、Pitch、Yaw)。这四个输入由四个电机的转速共同决定。每个电机的转速 ( \omega_i ) 产生推力 ( F_i = k_F \omega_i^2 ) 和反扭矩 ( M_i = k_M \omega_i^2 )。

通过混控矩阵(Mixing Matrix)可以将期望的推力和力矩映射到四个电机的转速指令:

[
\begin{bmatrix} F_{total} \ \tau_x \ \tau_y \ \tau_z \end{bmatrix} =
\begin{bmatrix} k_F & k_F & k_F & k_F \
0 & -l k_F & 0 & l k_F \
-l k_F & 0 & l k_F & 0 \
-k_M & k_M & -k_M & k_M \end{bmatrix}
\begin{bmatrix} \omega_1^2 \ \omega_2^2 \ \omega_3^2 \ \omega_4^2 \end{bmatrix}
]

其中 ( l ) 是电机到无人机中心的臂长,( k_F ) 和 ( k_M ) 分别是推力和扭矩系数。

三、仿真:从模型到轨迹

有了数学模型,就可以在计算机中仿真四旋翼的运动。仿真通常采用数值积分方法(如四阶龙格-库塔法),在每个时间步根据当前状态和控制输入更新位置、速度、姿态和角速度。

仿真对于以下工作至关重要:

  • 验证控制算法:在真实飞行前测试控制器性能
  • 参数调优:调整PID增益或其他控制参数
  • 故障模拟:测试电机失效等异常情况下的应对策略
  • 训练学习算法:强化学习等数据驱动方法需要大量仿真数据

四、状态估计:从传感器到信念

4.1 为什么需要状态估计?

四旋翼的控制器需要知道当前状态(位置、速度、姿态、角速度)才能计算控制指令。然而,没有任何传感器能直接提供完整、准确的状态信息。例如:

  • IMU(惯性测量单元):提供加速度和角速度,但存在漂移和噪声
  • GPS:提供位置和速度,但室内不可用且更新率低
  • 视觉/激光雷达:提供环境特征,但计算量大且可能受光照影响

状态估计的任务就是融合多个传感器的数据,得到对当前状态的最优估计。

4.2 常用方法

卡尔曼滤波(Kalman Filter, KF)

卡尔曼滤波是线性系统的最优估计器。它假设系统动态和观测都是线性的,且噪声服从高斯分布。其核心步骤包括:

  1. 预测:根据系统模型预测下一时刻的状态和协方差
  2. 更新:利用新观测数据修正预测结果

扩展卡尔曼滤波(Extended Kalman Filter, EKF)

对于四旋翼这种非线性系统,EKF 通过对非线性函数进行一阶泰勒展开近似线性化。EKF 是实际无人机中最常用的状态估计方法之一,能够融合 IMU、GPS、磁力计、气压计等多种传感器。

无迹卡尔曼滤波(Unscented Kalman Filter, UKF)

UKF 通过 sigma 点传播来近似非线性变换的概率分布,避免了 EKF 的线性化误差,在强非线性场景下表现更好。

粒子滤波(Particle Filter)

粒子滤波使用一组加权粒子来近似任意分布,适用于非高斯、多模态的复杂场景,但计算量较大。

4.3 常见传感器融合方案

一个典型的四旋翼状态估计系统可能包含:

  • IMU + GPS + 气压计(室外):EKF 融合加速度、角速度、GPS 位置/速度、气压高度
  • IMU + 视觉里程计(室内/无GPS):利用相机跟踪特征点估计运动
  • IMU + 激光雷达 + 视觉(复杂环境):多传感器融合,提供更鲁棒的估计

五、微分平坦性:简化控制的神器

5.1 什么是微分平坦?

微分平坦(Differential Flatness)是系统的一种特殊性质:如果系统是微分平坦的,那么所有状态变量和控制输入都可以表示为某些“平坦输出”(flat outputs)及其有限阶导数的代数函数。

对于四旋翼,平坦输出通常选择为:

  • 位置 ( \mathbf{p} = [x, y, z]^T )
  • 偏航角 ( \psi )

5.2 四旋翼的微分平坦性

四旋翼是微分平坦的,这意味着给定位置轨迹 ( \mathbf{p}(t) ) 和偏航轨迹 ( \psi(t) ) 及其导数,我们可以唯一地确定:

  • 姿态(滚转角 ( \phi ) 和俯仰角 ( \theta ))
  • 角速度 ( \boldsymbol{\omega} )
  • 控制输入(推力 ( T ) 和力矩 ( \boldsymbol{\tau} ))

具体推导过程如下:

  1. 从位置轨迹的二阶导数(加速度)得到所需的总推力方向
  2. 结合偏航角,唯一确定旋转矩阵 ( \mathbf{R}_{IB} )
  3. 从旋转矩阵提取欧拉角 ( \phi, \theta, \psi )
  4. 对位置轨迹求三阶导数(加加速度)得到角速度
  5. 对位置轨迹求四阶导数(加加速度的导数)得到力矩

5.3 微分平坦的意义

  • 轨迹规划简化:只需规划平坦输出(位置和偏航)的轨迹,就能自动满足动力学约束
  • 控制解耦:将复杂的姿态-推力控制问题转化为对平坦输出轨迹的跟踪
  • 计算高效:不需要求解复杂的优化问题,解析表达式即可计算所需控制量

六、运动规划:如何生成安全轨迹

6.1 规划问题的定义

运动规划的目标是找到一条从起点到终点的轨迹,满足:

  • 动力学可行:无人机能够实际执行(推力、角度、角速度在限制范围内)
  • 安全:避开障碍物
  • 最优:最小化时间、能量或其他代价

6.2 常用方法

插值法(Interpolation)

最简单的轨迹生成方法。给定一系列路径点,使用多项式插值(如三次样条、五次样条)生成平滑轨迹。优点是计算简单,缺点是无法考虑障碍物。

快速随机搜索树(RRT)

RRT 通过在状态空间中随机采样并逐步扩展树状结构来搜索可行路径。

  • 优点:能处理高维空间和复杂约束,概率完备
  • 缺点:生成的路径通常不平滑,需要后处理
  • 变种:RRT* 引入渐近最优性,能随着采样增加收敛到最优解

轨迹优化(Trajectory Optimization)

将轨迹规划建模为优化问题,目标函数通常包含:

  • 平滑性代价(最小化加加速度或 snap)
  • 时间代价
  • 障碍物避碰约束(作为不等式约束或惩罚项)

常用方法包括:

  • 最小 snap 轨迹:在给定路径点下求解最小化 snap(位置的四阶导数)的多项式轨迹,能保证推力变化平缓
  • 序列二次规划(SQP):迭代求解非线性优化问题
  • 模型预测控制(MPC):在滚动时域内优化,适合动态环境

6.3 轨迹表示

一个常见的做法是将轨迹表示为分段多项式函数:
[ \mathbf{p}(t) = \sum_{i=0}^{N} \mathbf{c}_i t^i ]
其中系数 ( \mathbf{c}_i ) 通过优化求解,约束条件包括起始/终止状态、中间路径点位置、以及连续性(位置、速度、加速度在分段点连续)。

七、控制:让轨迹变为现实

7.1 控制架构

典型的四旋翼控制采用级联结构:

  1. 位置控制器:接收期望位置轨迹,输出期望姿态和推力
  2. 姿态控制器:接收期望姿态,输出期望力矩
  3. 电机混控:将期望推力和力矩映射到四个电机转速

7.2 PID 控制

PID(比例-积分-微分)控制是最常用的方法。例如,对于高度控制:
[ T_{des} = K_p (z_{des} - z) + K_i \int (z_{des} - z) dt + K_d (\dot{z}_{des} - \dot{z}) + mg ]

7.3 几何控制(Geometric Control)

对于姿态控制,传统的欧拉角表示存在万向节锁问题。几何控制直接在 ( SO(3) ) 流形上设计控制器,利用旋转矩阵表示姿态,避免了奇异点。

7.4 模型预测控制(MPC)

MPC 通过在有限时域内在线求解优化问题来计算控制输入,能显式处理约束(如推力限制、角度限制)。计算量较大,但性能优于 PID。

7.5 控制与规划的协调

在实际系统中,运动规划器生成一条参考轨迹,控制器负责跟踪该轨迹。如果规划器生成了微分平坦的轨迹,控制器可以直接使用轨迹及其导数作为前馈项,提高跟踪精度。

八、完整系统架构

一个完整的四旋翼自主飞行系统通常包含以下模块:

  1. 感知模块:传感器数据采集与处理
  2. 状态估计模块:融合传感器数据,输出状态估计
  3. 规划模块:根据目标位置和环境地图生成轨迹
  4. 控制模块:根据状态估计和参考轨迹计算控制指令
  5. 执行模块:电机驱动与混控

各模块之间的数据流如下:

  • 传感器 → 状态估计 → 规划器/控制器
  • 规划器 → 控制器 → 执行器
  • 状态估计 → 规划器(用于更新地图和重规划)

九、FAQ:常见问题解答

Q: 这份指南的目标读者是谁?

A: 主要面向对四旋翼自主飞行感兴趣但缺乏系统知识的新手。作者的目标是提供一个“跳板”,让读者快速理解各模块的作用和相互关系,而非深入每个细节。

Q: 为什么没有写成一篇学术论文?

A: 作者最初尝试写论文,但篇幅超过80页,过于冗长。拆分后的博客形式更加易读,语言也更口语化,适合直观理解。每个帖子都附有参考文献,供希望深入学习的读者参考。

Q: 部分内容标记为(WIP)是什么意思?

A: 表示该部分仍在撰写中,但会尽快完成。

十、总结与展望

四旋翼自主导航是一个系统工程,需要将建模、估计、规划和控制紧密集成。理解每个模块的基本原理和它们之间的接口,是构建实际系统的关键。

未来方向包括:

  • 学习与控制的结合:利用强化学习或模仿学习进行端到端控制
  • 多传感器融合:更鲁棒的状态估计,特别是在 GNSS 拒止环境中
  • 实时重规划:在动态环境中快速重新生成安全轨迹
  • 集群协同:多无人机协同导航与任务分配

原文链接:https://www.cggonzalez.com/blog/index.html

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消