自动驾驶深度学习(第49/100天)路径规划进阶:从A*到RRT,自动驾驶如何找路?
阅读约8分钟 | 关键词:路径规划、A*算法、RRT、结构化/非结构化道路
前两篇我们聊了决策——车子决定“要变道”还是“要等”。今天聊聊决策之后的下一个问题:路怎么走?
路径规划的任务是:给定起点和终点,找出一条满足约束的几何路径——不能撞墙、不能压路肩、转弯不能太急(不然乘客会晕)。
🗺️ 一、路径规划的三个层次
自动驾驶的路径规划通常是分层的:
全局规划:导航地图给的路线。从A点到B点走哪些路、在哪个路口转弯。类似于手机的导航路线,更新频率低(几秒一次)。
局部规划:在全局路线的基础上,根据实时感知到的障碍物,生成未来几秒内的具体行驶轨迹。比如“前方有一辆停着的车,我要从左边绕过去”。更新频率高(几十毫秒一次)。
运动规划:给这条路径加上速度信息——什么时候加速、什么时候减速、在哪个点刹停。输出的是带时间戳的轨迹点序列。
今天我们重点讲局部规划,因为全局规划大家已经很熟悉了(就是导航),而运动规划我们第18天已经聊过。
🧮 二、A*算法:结构化道路的“老黄牛”
A*(A-Star)是路径规划里最经典的算法,广泛应用于自动泊车、封闭园区低速场景。
核心逻辑:把地图切成格子,从起点开始,评估每个格子的“代价值”——到起点的实际距离 + 到终点的估计距离(启发式)。每次选择代价最小的格子扩展,直到抵达终点。
优点:能找到最短路径(在格子的精度下),算法成熟、可预测、容易调试。
缺点:在复杂环境中计算量可能暴涨;生成的路径是“折线”不是“曲线”,方向盘会剧烈摆动,需要额外步骤平滑处理。
在高速结构化道路(车道线清晰、障碍物规律)场景中,A*配合车道中心线采样,效率足够高。
🌲 三、RRT:非结构化道路的“探路者”
RRT(快速探索随机树)在越野、矿区等没有车道线的场景中更有优势。没有车道线可循,路面任意位置都可能通行,需要算法自己“摸着走”。
核心逻辑:在空间中随机撒点,从起点开始“生长”一棵树,不断把树向随机点方向延伸,直到触达终点区域。
优点:在高维空间和复杂约束下依然有效;能处理非结构化环境(没有车道线、没有路沿的开放场地)。
缺点:找的路径通常不是最优的;随机采样导致结果每次可能不同,不“可预测”。
⚖️ 四、结构化 vs 非结构化:场景决定方法
自动驾驶的路径规划没有统一答案。选择A*还是RRT、参数怎么调,完全取决于应用场景:
· 高速NOA:车道线清晰、行驶方向固定。A*的确定性优势明显——可预测、可调试、可追溯。这也是为什么高速NOA已经相对成熟。
· 城市NOA:有车道线,但路口复杂。这介于结构化和非结构化之间。通常采用“车道级A* + 局部规划器”的混合方案,在路口和施工区等场景切换到更灵活的规划策略。
· 越野/矿区:没有车道线,地形起伏。RRT类算法发挥空间更大,但算力消耗也更大。
关键洞察:A*依赖“先验地图”(知道哪里能走、哪里不能走),RRT依赖“实时感知”(自己探索哪里能走)。两种方法都在进化,未来会越来越趋近于融合——用先验地图缩小搜索范围,用实时感知修正局部路径。
📌 给普通用户的一句话
路径规划的核心区别在于“有没有地图可依赖”。高速NOA相对成熟就是因为“地图好用”;城市NOA更困难,因为路口/施工区的路径要“现想”。你的车在这些场景下的表现,很大程度上取决于它用的是“寻路型”还是“探索型”算法,以及两者融合得好不好。
🎯 明天预告(第50天 / 动态篇)
结合今天的路径规划知识,解读一则行业新闻:某品牌越野智驾在沙漠中“迷路”——RRT算法的极限与挑战。
本系列为100天深度学习计划,每日1篇。欢迎随时提问。