尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

无人机路径规划算法全解析:从A*到强化学习的工程实践

发布时间:2026/9/29 1:17:22

资讯中心
01
ARTICLE

无人机路径规划算法全解析:从A*到强化学习的工程实践

无人机路径规划算法全解析:从A*到强化学习的工程实践
说到无人机路径规划算法我最初入行的时候觉得这个词有点被高估了。路径规划嘛从起点飞到终点中间躲开障碍物地面上自动驾驶研究了这么多年空中不该更难到哪里去。直到我把第一台多旋翼飞起来把真实的三维栅格地图和机载算力摆到面前才发现这问题是典型的听起来容易做起来难——三维空间搜索、动力学约束、有限的机载计算资源、传感器误差、动态环境每一个维度都在把这个方向往更深的地方推。这篇内容是我基于多年做无人机系统开发和算法研究的经历对路径规划算法从传统到智能再到学习范式的一次系统梳理。它不打算复述教科书而是想讲清楚几件事无人机路径规划到底在优化什么、约束什么从A*到RRT、从粒子群到深度学习每个算法家族的核心思想和适用边界以及真正把算法放到机载平台上跑的时候你会遇到哪些论文里不会写的坑。适合刚接触这个方向的研究生、准备做路径规划方向毕设的本科生以及已经在做飞控或任务系统、想补规划算法这块短板的工程师。1. 无人机路径规划到底在解决什么问题从飞起来到飞得聪明1.1 一个看似简单的问题为什么能被研究几十年路径规划的数学描述其实很简洁在一个已知或部分已知的三维工作空间中给定起点和目标点找一条连续轨迹在满足无人机动力学约束、避障约束、任务时间约束的前提下最小化某个代价函数。代价函数通常取路径长度、飞行时间、能量消耗或者安全性的某种度量。但问题就藏在约束两个字里。地面机器人面对的是二维平面无人机是三维空间搜索维度直接升一维计算量指数增长。固定翼无人机有最小转弯半径多旋翼虽然有悬停能力但有最大俯仰角、最大速度和加速度限制。这意味着规划出来的路径不仅要几何上不碰障碍物还要物理上飞得出来。这两者之间的差距是很多新手第一次把自己写的A*路径接到飞控上时发现飞机在空中直接抽搐的原因之一。所以严格讲无人机路径规划可以分为两个层面任务层面的宏观路径规划解决往哪个方向飞轨迹层面的运动规划解决怎么控制飞机飞好这条线。很多综述把两者混在一起谈实际工程中它们是两个模块跑在不同的控制周期上。宏观规划器的更新频率往往只有1到10Hz而底层轨迹跟踪控制器跑在50到200Hz两者之间还要有专门的轨迹平滑层。1.2 评价一个路径规划算法的核心指标评价算法好坏不能只看找到没有和快不快。工程上通常看四个维度而且这四者常常互相矛盾。最优性找到的路径相对于代价函数的接近程度。A在有相容启发函数时能保证最优RRT能渐进最优但渐进意味着要花大量时间采样。完备性与概率完备性完备意味着如果路径存在算法一定能找到概率完备意味着随着采样数趋于无穷找到路径的概率趋于1。Dijkstra和A*是完备的RRT系列是概率完备的。这个区别决定了算法能用在哪类问题上。计算效率决定算法能否实时跑。这个指标在论文里经常被一笔带过但在机载嵌入式平台上是被卡得最死的。路径质量包括路径长度、平滑度、飞行时间的综合表现。工程里最常见的坑是算法求出的最短路径由大量折线段组成直接交给飞控会被当作瞬时改变航向的指令导致飞行颠簸甚至触发保护。所以路径生成之后往往还要做平滑这就引入了一个新的问题。理解了这四个指标再看后面所有算法就有一条清晰的评价主线每个算法都是在这四个目标之间的某种妥协。1.3 发展脉络从静态搜索到学习驱动的三次转向以我的观察路径规划这几十年的发展可以粗略分成三个阶段。第一阶段以图搜索和采样为主旋律。Dijkstra1959和A*1968奠定了栅格地图上的完备搜索范式1986年Khatib提出人工势场法1998年LaValle提出RRT2000年代初RRT*、PRM把采样方法推向成熟。这个阶段的思维底色是确定性环境已知或基本静止算法在几何空间中找一条满足代价的路径。第二阶段是群体智能优化算法的爆发。遗传算法、粒子群、蚁群大约从2000年开始被大量引入路径规划。这个阶段的思维底色是全局搜索不追求实时而是试图在复杂约束和多目标优化中找到更接近全局最优的解。论文里非常热闹实际工程落地效果却参差不齐。第三阶段是学习和感知驱动的规划。深度学习让无人机具备了从视觉图像里直接感知环境的能力强化学习则让规划从显式搜索走向策略学习。这个阶段的思维底色是不确定性下的自适应环境不是给定的而是感知出来的障碍物不是静止的而是动态的。同时学习方法的可解释性和安全性问题也在这些年被反复讨论。有了这条时间线接下来几章分别拆开讲你就能理解每个算法为什么在那个时代被提出来又为什么在今天仍然有一席之地。2. 确定性时代的经典算法A*与RRT为什么到今天还不过时2.1 A*图搜索的效率标杆和它在三维栅格里的表现A的原理说穿了就是把Dijkstra的盲目扩展改成有方向地扩展。它用 f(n)g(n)h(n) 来评估节点优先级其中 g(n) 是从起点到当前节点的真实代价h(n) 是从当前节点到目标的启发式估计。当 h(n) 满足一致性条件也就是对任意相邻节点h(n) ≤ c(n,n)h(n) 时A不仅完备而且最优。这个启发式是A的灵魂。在三维栅格地图里最常用的启发式是三维欧氏距离h(n)sqrt((x-x_goal)^2(y-y_goal)^2(z-z_goal)^2)。它天然满足一致性计算量也很小。如果你想让A搜得快一点可以尝试在启发式里加入最小转弯代价或者地形代价的估计——代价估得越接近真实代价搜索就越高效。但注意一旦启发式高估了真实代价你可能丢失最优性工程上这叫不可采纳的启发式有时候为了实时性可以接受但要知道自己在做什么。我在实际工程里用A处理三维栅格的一个经验是不要直接在原始分辨率上做全局搜索。一方面一个1km乘1km乘200m的区域如果栅格分辨率是1m就是2亿个栅格单元内存和耗时都很难看另一方面底层规划根本不需要那么高的分辨率。比较常见的做法是先建一个低分辨率的全局栅格地图比如5m或10m用A搜出一条全局走廊再在走廊的局部区域用高分辨率地图做细节规划。这种由粗到细的策略比单次高分辨率搜索能快一到两个数量级。A*的代码实现本身不算难但有两个容易踩的坑。一是CloseSet的重判条件如果你用OpenSet和ClosedSet两个结构要注意扩展节点时判断的是已经在ClosedSet里就跳过而不是曾经在OpenSet里就跳过否则在某些地图上会漏掉最优解。二是邻域的选择二维栅格常常用8邻域三维栅格如果用26邻域搜索空间会急剧膨胀实际很多场景用6邻域就够代价是路径会稍微绕一点反正后续要平滑这个绕的成本通常可以接受。2.2 RRT与RRT*为什么随机采样方法能在高维空间胜出A*的优势建立在栅格化上但栅格化本身在高维空间里是灾难维度一高栅格数量指数级增加这就是所谓的维度诅咒。RRT的思路则完全不同——不显式地离散化整个空间而是随机地在连续空间中采样把采样点连接到已有的随机树上。这样它天然地避开对自由空间的完整建模在高维或复杂几何环境中效率非常高。RRT的核心流程可以用一段伪代码概括Tree {start} while not timeout: q_rand random_sample() q_near nearest_neighbor(Tree, q_rand) q_new steer(q_near, q_rand, step_size) if collision_free(q_near, q_new): Tree.add(q_new) if distance(q_new, goal) threshold: return extract_path(Tree, q_new)看起来很简单但每一步都有讲究。random_sample() 的分布可以改造如果完全均匀随机搜索会很散实践中常见做法是以一定概率直接采样目标点附近比如10%的概率直接把 q_rand 设为 q_goal这样能大幅加速收敛。nearest_neighbor() 在三维空间直接遍历树找最近点就行树节点上千之后每帧遍历一次也还扛得住。collision_free() 是性能瓶颈因为要对 q_near 到 q_new 的线段做连续碰撞检测一般要按步长多次采样检测。RRT在RRT基础上加了重连操作新节点加入后检查其邻域内的已有节点如果从新节点到这些节点的路径比原来的父节点路径更短就重新接线。这个rewire过程让RRT具备了渐进最优性——随着采样点增加路径会越来越接近最优。代价是每一帧的计算量都比RRT大不少在机载平台上需要权衡。在无人机路径规划里RRT家族最吸引人的地方在于它可以很自然地扩展到动力学层面也就是Kinodynamic RRT——把无人机的速度、加速度甚至角速度约束直接塞进steer()步骤让生成的路径在物理上就是可飞的。我见过不少团队把Kinodynamic RRT用在城市峡谷环境的局部规划上效果比单纯A*加平滑好很多。但它的随机性也带来可复现性差的问题同样的起点终点两次跑出的路径可能完全不同这在需要轨迹可预测的行业中是个缺点。2.3 人工势场法理解它的陷阱才能理解为什么要混合多种方法人工势场法的思想很直观目标点产生引力场障碍物产生斥力场无人机沿着势场的合力方向运动。它最大的优点是计算极快、适合在线避障所以在移动机器人里很受欢迎。但无人机用势场法有个经典问题——局部极小值。当无人机进入U形障碍物的凹槽里时引力和斥力合成出现合力为零的点无人机会在那里反复震荡这就是所谓的死锁。教科书里给出的解法包括添加随机扰动、使用虚拟障碍物推动、把势场扩展到带高度维的形式等。但在工程实践中我几乎没见过把纯势场法作为无人机唯一规划器的。更常见的用法是把它作为局部避障的一个低层保险全局路径规划器负责大方向局部检测到突发障碍物时用势场法快速推开同时向全局规划器发请求重新规划。纯势场法的问题不在于它本身而在于你把它放在整个架构的哪个位置。2.4 经典算法的工程对比与选型第一原则这一代算法的对比信息整理成一张表方便做选型时快速参考。算法完备性最优性计算效率适用场景主要坑Dijkstra完备最优较低静态小地图盲目扩展搜索范围大A*完备有相容启发时最优较高栅格化全局规划分辨率选择、启发式设计人工势场法不保证不保证极高局部避障局部极小值、参数敏感RRT概率完备不保证高高维/连续空间路径抖动、不光滑RRT*概率完备渐进最优中高维优化收敛慢、资源消耗我在这代算法上的一条核心体会是不要期待一个算法同时满足完备、最优、实时、平滑四个要求它们之间本来就是互斥的。工程上最合理的起点是A做全局静态规划 RRT或DWA做局部动态规划这两种算法的互补性远比它们之间的竞争关系重要。先把这条主线跑通再谈优化和扩展。3. 智能优化算法粒子群、遗传、蚁群能解决什么问题3.1 三种代表性算法的核心思想遗传算法GA受生物进化启发把路径编码为一串基因例如一系列航点坐标初始种群随机产生一批路径用适应度函数综合路径长度、安全性、飞行时间等评价每条路径然后通过选择、交叉、变异迭代进化。它的优势是天然支持多目标优化你可以把路径长度、转弯角度、禁飞区穿越惩罚全部加权放进适应度函数算法会在迭代中自动寻找权衡解。粒子群算法PSO的直观理解是一群粒子在搜索空间里飞行每个粒子记住自己的历史最优位置同时参考整个群体的历史最优位置来调整自己的速度。位置更新公式是v_i(t1) w*v_i(t) c1*r1*(pbest_i - x_i(t)) c2*r2*(gbest - x_i(t)) x_i(t1) x_i(t) v_i(t1)看到 w、c1、c2 这三个参数你就知道为什么这类算法常被称为调参游戏。w 是惯性权重控制粒子维持原来速度的倾向c1 是自我认知系数c2 是社会认知系数。工程上默认的 w 从0.9线性衰减到0.4是一种很常用的策略。PSO在三维连续空间的位置搜索上非常直接因此很多文献用它来做无人机三维航迹规划把一条由N个航点组成的三维路径看作一个粒子。蚁群算法ACO的核心是正反馈机制。蚂蚁在经过的路径上留下信息素信息素浓度高的路径吸引更多蚂蚁选择从而留下更多信息素。在路径规划里可以把栅格地图或路网图的每条边赋予信息素浓度最终收敛到一条信息素浓度最高的路径。这个机制特别适合组合优化类型的路径问题比如多目标点访问顺序的优化。3.2 为什么它们在论文里很热闹落地时却很尴尬我必须给想直接把这套算法用于无人机实际飞行的朋友泼一盆冷水。这类智能优化算法有一个共同问题它们都需要在迭代中逐步逼近最优解而每一次迭代都要评估大量候选解一个种群几十上百个个体、一个粒子群几十个粒子每个候选解一次评估往往就相当于一次路径代价计算。在三维栅格地图上跑一轮GA或PSO耗时通常是几十秒到几分钟级别。这个时间尺度放在需要秒级重规划的动态环境中是完全不可接受的。另一个问题是参数敏感性。w、c1、c2、变异率、交叉率、种群规模每一个参数都要针对具体地图调换个地图可能又得重新调。很多研究者花了大量精力调参最后得到的最优路径和A*在同样地图上花几百毫秒搜索出来的路径相比提升往往不到5%计算耗时却高了两三个数量级。这种性价比在工程决策里很难站住脚。不过如果把问题域缩窄到离线全局规划智能算法还是有不可替代的价值。大型三维环境下的多目标航迹规划比如无人机需要依次访问10个任务点并且覆盖一定区域或者带复杂禁飞区和多约束的航迹规划这类问题搜索空间巨大传统图搜索会面临内存和耗时双爆炸而GA或PSO可以在可接受时间内找到一条工程上可用的次优解。所以我的建议是把智能算法定位成离线任务规划器而不是在线路径规划器它们会和A*、RRT形成很好的互补。3.3 实战中的混合套路用智能算法搜索走廊用采样算法做细节具体怎么混合分享一个我亲测有效的套路。先用PSO或GA在低分辨率栅格地图上搜索出一条路径走廊。注意这条走廊不是一条精确路径而是一系列球形或柱形的可行区域——算法只需要保证走廊内的每个点大概率不碰障碍物不需要精确到栅格级别。这一步搜索空间大但低分辨率地图计算量可控通常秒级能完成。接着把走廊区域内的地图切出来用高分辨率地图跑RRT*或带动力学约束的RRT。因为搜索空间被走廊限制住了RRT的随机采样不需要在全图撒点收敛速度会快很多同时又能发挥RRT在高精度连续空间中的优势。最后再做轨迹平滑和速度规划。整个流程下来全局最优性由第一步的智能算法兜底虽然不保证全局最优但走廊已经避开大范围劣质区域局部精细化和动力学可行性由第二步RRT保证计算量则被控制在了可机载执行的范围。这个混合架构我在多个项目里用过稳定性远好于单用一个算法。4. 学习与感知时代强化学习和视觉感知如何改变路径规划4.1 强化学习的路径规划框架状态、动作、奖励三件套强化学习把路径规划重新定义成一个序贯决策问题无人机在每个时刻处于某个状态 s_t位置、速度、朝向、局部障碍物信息等采取一个动作 a_t加速度指令、航向角变化量等环境返回奖励 r_t并转移到下一个状态 s_{t1}。算法目标是学一个策略 π(a|s)让累积奖励最大化。在这个框架下路径规划不再是一个一次性的搜索问题而是一个反复试错中学会决策的问题。DQN用深度网络拟合Q值函数适合离散动作空间DDPG和PPO则能处理连续控制。我在无人机避障项目里经常用PPO因为它对超参数的敏感度比DDPG低训练更稳而且自带的采样效率优化在机器人控制任务上表现不错。Reward设计是这个框架里最见功力的地方。一个常见的错误是只给到达目标1撞上障碍物-1这种稀疏奖励这对无人机来说几乎没法训练因为学习信号太稀疏。实践中要把奖励拆细距离目标每缩短一点给一个小的正奖励靠近障碍物给惩罚速度超过安全范围给惩罚转弯过急给惩罚。把奖励函数设计到能反映你希望无人机表现出什么行为的程度训练才能收敛。但这里有个残酷的现实仿真里训练好的策略移植到真实无人机上往往会水土不服。仿真中的动力学模型、传感器噪声、光照条件和现实总有差距这就是sim-to-real gap。行业里目前的主流解决方案不是追求完美的端到端而是把学习算法生成的策略作为先验在真机上用少量样本做微调或者用domain randomization在仿真中随机化大量参数来增强泛化性。这条路能走通但远没有论文里看起来那么平顺。4.2 视觉感知是路径规划的眼睛感知-规划闭环路径规划能不能做出正确的决策高度依赖于上游感知的质量。这就是无人机视觉感知在业内被频繁讨论的原因——没有可靠的障碍物检测和定位规划器再强也只是在空中盲目飞行。一个典型的视觉感知-规划闭环是这样机载摄像头采集图像经过深度神经网络做语义分割或障碍物检测比如识别出电线、树枝、建筑边缘同时通过视觉里程计或视觉SLAM估计无人机自身位置构建局部占用栅格地图这个局部地图再和全局地图融合输入给规划器。规划器重新规划路径后由底层控制器执行整个闭环以10到30Hz的频率不断刷新。这里的工程细节非常多。运行在嵌入式平台上的感知模型必须有非常小的计算量所以像YOLO系、轻量级分割网络这类模型在机载平台上的部署很常见。帧率也远比分辨率重要——10Hz的障碍物检测比2Hz的高清图片对规划的实际帮助大得多因为无人机在高速运动时低帧率感知意味着障碍物在两次检测之间可能已经移动了很大距离。我在做机载系统时宁可牺牲分辨率也要保帧率。4.3 端到端规划与学习传统混合路线的现实对比端到端的思路很吸引人摄像头图像直接进神经网络输出控制指令路径规划被隐含在网络的权重里。好处是省去了大量的感知-建图-规划模块坏处是可解释性差你无法知道网络为什么选择了某条路径。对于无人机这种安全关键的系统可解释性差不是一种简单的风格偏好而是工程上的核心障碍。一旦出现一次飞行事故如果系统是基于A*决策的你可以回放地图、检查路径代价的每一步很快定位问题但如果是神经网络直接决策的你只能给出一堆权重和激活值很难回答为什么在那里选择绕到障碍物左侧而不是右侧。客户以及你自己作为工程师都不会舒服。所以目前行业里更靠谱的路线是混合架构用深度学习做感知识别障碍物和地物用传统规划算法做路径决策用强化学习做特定子问题比如局部避障策略、复杂地形的动态调整。我倾向于把端到端看作长期探索方向而把学习传统看作当前工程落地的最优解。5. 动态环境与多机协同路径规划最现实的考验5.1 动态障碍物与在线重规划把无人机从已知静态环境放到有车辆移动、有人流穿梭、有其他无人机干扰的现实环境中路径规划的难度会有质变。静态规划器算出的路径可能在几秒后就因为有新障碍物出现而不可行。解决思路有两类。一类是重规划思路持续感知环境变化一旦发现原路径被堵或者新的动态障碍物进入安全范围立刻触发局部重规划。这类方法的瓶颈在触发频率和规划耗时如果重规划一次要几秒钟而障碍物几米每秒地移动重规划还没完成就可能撞上了。所以局部规划器必须足够快这也就是为什么DWA动态窗口法这类在短时间窗口内采样速度指令、选一条能避开障碍物的方法在无人机低空飞行里很常见。另一类是预测避让思路不把所有障碍物当作随机事件而是尝试对动态障碍物的运动做短时预测比如用卡尔曼滤波或简单的恒定速度模型在代价函数里把未来可能碰撞的量估计进去。这里我特别推荐速度障碍法VO及其多智能体版本RVO它不直接规划路径而是计算当前速度如果保持不变最早的碰撞时刻然后从一系列候选速度中选一个既能避开碰撞又能朝目标前进的速度。RVO的核心假设是对方也会采取同样的避让规则这让它非常适合多无人机之间的相互避让。5.2 多无人机协同规划集中式与分布式的取舍多无人机协同路径规划是这几年需求增长最快的方向之一——多机编队巡检、多机协同搜索、多机同时到达。规划层面的问题一下子复杂起来不仅要保证每架无人机自身避障还要保证机与机之间互相不碰撞同时还要满足任务层面的协同约束比如同时到达、保持编队阵型、覆盖效率最大化。集中式规划的思路把所有无人机的状态统一放入一个规划问题里求解比如用混合整数规划或图搜索在联合状态空间找解。这个思路理论上能得到全局最优但计算复杂度随无人机数量爆炸式增长两三架还能忍超过五架基本就不可行了。我见过一些项目把集中式规划离线算好飞行时只做跟踪算是把复杂计算和实时执行分离开了。分布式规划则让每架无人机独立计算通过通信交换位置和意图用一致性协议或优先级协商来避免冲突。常见的做法是优先级规划给每架无人机分配优先级优先级高的先规划路径优先级低的在规划时把高优先级无人机的路径当作动态障碍物避让。这种方法的计算量基本不随无人机数量灾难性上升但在高动态任务中通信延迟和丢包会成为主要矛盾。我实际做过的经验是编队数量在10架以下分布式优先级规划配合RVO避让是最容易落地且扩展性好的方案超过10架甚至几十架就得考虑分层架构——上层做任务分配下层做编队保持和避碰。5.3 被低估的不确定性感知误差比算法本身更致命很多从论文走向工程的人在动态环境中栽跟头往往不是因为算法选错了而是没有考虑传感器看到的和实际场景有偏差。激光雷达和视觉传感器的距离测量都有噪声GPS在楼宇峡谷和树冠下有明显的多径误差IMU会漂移。当规划器依赖的这些输入本身不准确时即使算法再精妙也难免出错。处理不确定性的工程手段通常有三个层次。第一层是最简单的膨胀障碍物把检测到的障碍物半径向外扩大一个安全余量余量大小参考传感器误差的3σ。说白了就是我宁愿多绕一点也不接近不确定的地方。第二层是概率建模用占据栅格地图的概率形式表示环境规划时把每个栅格的占据概率乘进代价函数。第三层是用机会约束规划或者鲁棒优化从数学上保证碰撞概率不超过某个阈值——这种方法学术价值高但工程落地复杂一般团队不太会直接使用。我的建议是第一层是最容易被忽略却性价比最高的。很多无人机项目的事故追根溯源不是算法不强而是安全余量没留够。规划器名义上规划了一条距离障碍物50厘米的路径但传感器误差一叠加实际距离可能只有20厘米甚至更近一个突风就完蛋。所以我在实际系统里安全余量永远优先于路径最优性。6. 工程落地的选型经验与踩坑记录6.1 不同应用场景下算法选型的快速对照前面几章讲了算法原理和发展脉络但最实际的永远是我这个场景该用什么。我按常见的四类无人机任务场景给一个选型建议仅代表个人经验。应用场景环境特征优先考虑算法原因室内巡检/建图静态为主、空间狭小、GPS不可用A全局 DWA局部或RRT地图规模可控完备性更可靠户外测绘/航测开阔、预定义航线直线段航点规划最小转弯半径约束任务主导路径规划压力不大电力巡检/桥梁检测复杂结构物、有静态障碍物离线智能算法搜走廊 在线RRT全局避绕复杂障碍物局部精细化城市低空物流/动态避障动态障碍物多、不确定性高RVO避让 势场法局部推挤 A*重规划实时性优先安全余量要足多机编队巡检机间冲突为主分布式优先级规划 RVO扩展性好通信开销可控这张表不算普适但作为起点足够用。实际项目里还需要根据计算平台、传感器配置、任务节拍进一步细化。6.2 机载算力预算为什么论文算法跑不到真机上机载平台和桌面电脑的差距是路径规划从论文到产品之间最现实的一道坎。像Pixhawk这类开源飞控平台虽然能跑简单规划任务但稍微复杂的算法就要交给机载计算机比如NVIDIA Jetson系列或更小的嵌入式板卡。这类平台的CPU算力通常比桌面电脑低一个数量级内存也小得多。我建议在项目初期就把算力预算定下来例如全局重规划允许耗时2秒局部重规划必须在100毫秒内完成感知帧率不低于10Hz留给路径规划模块的CPU占用率不超过30%。定了这个预算很多算法的适用性立刻清晰A在低分辨率三维栅格上通常能满足秒级重规划RRT在大地图上往往超预算GA/PSO基本只能离线用深度强化学习策略如果不在NPU上加速也容易吃满CPU。栅格地图的内存也要提前算。一个1000乘1000乘100的三维栅格如果每个栅格用1字节存储占据概率大约95MB机载平台上有些吃得下有些吃不下。实际做法是把地图分块加载或者用八叉树结构OctoMap稀疏存储空区域不占内存——这个优化在三维路径规划里几乎是必做的。6.3 坐标系和单位最容易让人翻车的隐藏坑路径规划算法本身再复杂也怕坐标系和单位搞错。无人机系统涉及多个坐标系地理坐标系经纬度、导航坐标系ENU或NED、机体系、地图坐标系。规划器通常在地图坐标系下运行而飞控输出的是地理坐标或者本地导航坐标两者转换一旦出错表现就是规划的路径和实际飞行的路径整体偏了一个角度或平移了一段距离。我早期踩过一个很典型的坑地图构建用的是ENU东-北-天底层飞控的期望航向角用的是NED北-东-地的约定结果坐标转换里少乘了一个旋转矩阵无人机在测试场上飞出了一条整体方向偏了大约45度的路径。排查过程倒查了几个坐标系最后发现是旋转矩阵的顺序写错了。这种问题在仿真里很难暴露因为仿真环境的数据往往是自洽的到了真机上才原形毕露。我的建议是在系统联调之前单独做一个坐标系转换的单元测试把经纬度、地面站坐标、地图坐标往返转换一次保证误差在厘米级。6.4 路径平滑让规划结果真正飞得出来规划器输出的路径本质上是一条线段序列每个拐点对无人机来说就是一次瞬时的大角度航向变化这在物理上是不可实现的。所以路径生成之后一定要做平滑处理。最简单的做法是用B样条或贝塞尔曲线对路径做插值。基于控制点的B样条能把路径变得光滑同时可以通过控制点密度控制路径对原始线的贴近程度。别一味追求绝对光滑而把路径拉得远离障碍物那样会增加飞行距离也会降低安全性。更进阶的做法是轨迹优化在满足动力学约束最大速度、最大加速度、最小转弯半径的前提下以最短时间或最小能量为目标用线性二次规划或模型预测控制对路径做优化。这个方向已经很成熟很多开源框架比如ETH的轨迹生成工具可以直接复用。不过我要提醒的是轨迹优化层一旦引入你要把它和路径规划层放在不同的控制周期上考虑否则会陷入优化太慢拖垮实时性的尴尬。6.5 我给新入坑者的建议顺序如果刚接触无人机路径规划我的个人建议是先别急着上深度学习。先把A在二维栅格上跑通然后扩展到三维栅格再把RRT和RRT在同一套地图上跑通体会一下完备搜索和采样搜索在效率与最优性上的差异然后用Gazebo或PX4仿真环境把规划器和飞控接起来跑通规划到跟踪的闭环最后再加感知模块。很多人在第一步都没做扎实就直接跳到端到端最后卡在仿真与现实差距上反而花了最多时间。这个顺序不是我拍脑袋定的。它跟我自己从论文到真机的成长路径几乎一致也是我见过的成功率最高的路线。最后再说一次我这些年最大的感触路径规划从来不缺新算法缺的是把算法放到真机上以后仍然能让它稳定工作的工程能力。A*和RRT这种老算法就是因为简单、可解释、容易调试才能在几十年后依然活跃在机载平台上。如果你能把一个算法从仿真跑到真机把坐标系、安全余量、算力预算这些脏活都干利索你手里的路径规划能力就已经超过大多数只写论文的人。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。