导读:在复杂的城市低空或密集树林中,无人机如何像鸟儿一样敏捷地躲避障碍并顺滑飞行?南京邮电大学赵烈海的硕士论文《面向复杂环境的四旋翼无人机避障方法研究》(2024年)给出了解释。本文剥离了底层复杂的物理姿态控制公式,纯从“算法与逻辑”的视角,拆解了这篇论文的核心避障策略。
1.论文基本信息
- 论文标题: 面向复杂环境的四旋翼无人机避障方法研究 (Research on Obstacle Avoidance Method of Quadrotor UAV for Complex Environment)
- 作者: 赵烈海(南京邮电大学)
- 年份: 2024年
2.核心问题:无人机导航的“两步走”战略
这篇论文采用了工业界最经典的无人机导航框架:前端粗略找路(路径规划) + 后端平滑处理(轨迹规划)。
想象一下无人机的视角:世界是一个由无数个三维小方块组成的 《我的世界》(Minecraft)。无人机要从A点飞到B点,它面临两个致命痛点:
- 找路太慢:在密密麻麻的方块中,传统的寻路算法(如A*)每走一步都要看遍周围,计算量极大,导致“大脑卡顿”。
- 飞得太抖:好不容易在方块迷宫里找到一条由折线组成的路径,如果无人机直接照着飞,会在每个拐角急刹车、急转弯,不仅耗电,还容易失控。但如果强行把折线“磨圆滑”,曲线又极容易凸出去撞到墙上。
针对这两个痛点,作者分别给出了绝妙的算法解法。
3.大脑找路:JA* 算法的降维打击
在前端路径规划中,作者提出了一种名为 JA (Jump A) 的改进算法,它结合了传统 A* 算法和 JPS (Jump Point Search, 跳点搜索) 策略。
痛点:传统A*的“谨小慎微”
传统的 A* 算法就像一个极度谨慎的探险家,哪怕前方是一条笔直空旷的走廊,他也会每走一小步就停下来,往上下左右看一圈,评估下一步该怎么走。这在空旷地带纯属浪费计算机内存和算力。
破局:JPS跳点搜索的“加速跑”
JA* 算法引入了三维跳点搜索策略。它的核心逻辑非常像我们在游戏里的跑图操作:如果在安全空旷的区域,就直接按住“加速跑”一口气冲到底,直到遇到岔路口或障碍物的拐角(跳点)才停下来思考。
此外,作者还加入了一步极具工程智慧的“剪枝算法”(Pruning)。它会把路径上那些多余的中间拐点直接“砍掉”,把多段小折线拉直成一条长斜线。
效果:通过这种策略,算法评估的节点数量呈断崖式下降。论文实验数据表明,在障碍物密集的地图中,JA* 的搜索速度比传统 A* 算法提升了数倍,同时内存开销显著减小。
4.小脑修路:绝对安全的“隐形隧道”
前端算出来的路线再怎么剪枝,依然是带有棱角的“折线”。为了让无人机飞得丝滑,我们需要进行后端的“轨迹规划”。
痛点:平滑与安全的矛盾
工业界常采用“最小化跃度(Minimum-jerk)”算法来生成平滑曲线。但这就引出了一个矛盾:数学上生成的平滑曲线很容易“胖”出原始折线的范围,从而切入障碍物方块内部,导致撞机。
破局:安全飞行走廊 (SFC) + 贝塞尔曲线 (Bezier Curve)
为了解决这个矛盾,论文打出了一套极其优雅的组合拳:
- 构建安全飞行走廊 (Safe Flight Corridor, SFC)
作者首先对障碍物进行了“膨胀”处理(给无人机预留出安全距离),然后沿着前端生成的折线,在三维空间中吹起一个个无形的“椭球体”,将它们连接起来并切出凸多面体,形成一条绝对不包含任何障碍物的“隐形隧道”。 - 贝塞尔曲线的魔法
作者用计算机图形学中的贝塞尔曲线替代了传统的多项式。贝塞尔曲线有一个极其无敌的数学特性——凸包性(Convex Hull Property):这条曲线永远不会超出它的“控制点”所围成的多边形范围。
作者巧妙地将贝塞尔曲线的控制点全部死死限制在刚才生成的“安全飞行走廊”内部。这样一来,无论曲线怎么平滑、怎么扭曲,它都绝对不会超出这条隐形隧道,自然也就达到了100%不碰壁的绝对安全!
5.思考与启发
现实世界中的优秀工程方案,往往不是死磕某一个极其复杂的完美公式,而是多种经典算法的巧妙组合与缝合。
- 前端找路:用 A* 保证找得到路 + 用 JPS 保证找得快 + 用剪枝保证路径短。
- 后端修路:用飞行走廊划定安全区 + 用贝塞尔曲线保证平滑且绝不出界。