DWA + MPC 分层协作:让移动机器人既敢绕障、又能贴住路径
原文:Autonomous Navigation of Mobile Robots: A Hierarchical Planning--Control Framework with Integrated DWA and MPC
作者:Zhongrui Wang、Shuting Wang、Yuanlong Xie、Tifan Xiong、Chao Wang(华中科技大学机械科学与工程学院;哈尔滨工业大学机器人技术与系统国家重点实验室)
期刊:Sensors 2025, 25, 2014(MDPI,2025-03-23 出版,DOI: 10.3390/s25072014)

图注:整篇论文的"骨架"------规划模块负责选局部目标、优化评价函数并用动态窗口法生成局部路径,跟踪模块用曲率自适应参考点驱动 MPC,感知模块把机器人状态与障碍位置回送给控制器。它想回答的是:规划与控制到底该怎样互相"知情"。
论文把"局部路径规划(改进 DWA)"和"轨迹跟踪(曲率自适应 MPC)"从各管一段改造成互相知情的一体化分层框架:在仿真里把规划成功率从 60% 提到 95%、平均路径缩短 8.58 m,在实车上把平均跟踪误差从 11.3 cm / 10.9 cm 压到 1.1 cm / 1.7 cm,而且控制回路只要 10 Hz。
研究背景与现有方法不足
在人机协作、智能制造的共享空间里,移动机器人被同时要求两件事:别撞人(过程安全) 与 快点把活干完(任务效率)。这本来是"规划 + 控制"两个模块的工作,工业界也习惯把它们分开做------规划器只关心"找一条几何上没障碍的路",控制器只关心"跟着给定的路走"。
作者指出,这种解耦带来的坑在工程现场非常常见:
- 局部目标与全局路径脱节。 传统局部规划器常在机器人前方一个固定距离处取一个"局部目标点",它可能正好落在障碍物上或障碍物背后,于是规划器在障碍附近反复生成不可行路径、原地"兜圈子",直接把规划成功率拉到 60%(12/20)这类不可用的水平。
- 几何连续性与控制可跟踪性被忽略。 规划器输出的路径在障碍附近常有曲率突变(急拐),控制器为了追点会打出剧烈方向变化,既费能量也把跟踪误差推大,最终表现为"贴着障碍画龙"。论文用一张图(原文 Figure 1)总结了这类分层框架的典型失效。
- 绕障后回不到全局路径。 局部规划把机器人带偏之后,缺少"恢复"机制,机器人长时间沿局部路径游走,跟随误差持续累积。
一句话概括这层矛盾:规划器不知道"这条路控制上好不好跟",控制器也不知道"我的跟踪误差会反过来把规划带偏"。此外,复杂环境下还要保证起点---终点之间的路径连通性和规划成功率,这要求局部规划具备自适应能力。
核心创新点
作者的做法不是把两个模块合并成一个巨型优化,而是让两个模块在各自的目标函数里显式地"看见对方",并把这种耦合写成一个清晰的三模块框架(感知---规划---跟踪)。
1)分层框架本身就是一个贡献。 框架在路径生成阶段就引入路径跟踪约束,在控制阶段又反过来利用路径的几何特征(曲率),整体方案同时考虑轨迹可行性、绕障后与全局路径的连续性、以及跟踪精度。
2)局部路径规划层:在线局部目标点选择 + 改进评价函数。
- 当检测到需要绕障时,规划器不再取"固定距离"的局部点,而是在全局路径上以机器人当前位置为圆心、半径 2.0 m 生成一批候选子目标,用三项打分选出最优:障碍距离权重 0.5、与机器人距离权重 0.3、航向连续性权重 0.2。这一改动的直接效果是避免把目标点选在障碍里,从根上消掉了"在原地兜圈规划失败"的情形。
- DWA 的评价函数中新增曲率连续性项(权重 0.3),与距离项 0.2、速度项 0.1、障碍项 0.4 共同打分。目的是让局部路径尽量"平顺",为下游 MPC 降低跟踪难度。
3)轨迹跟踪层:曲率自适应参考点 + 自适应时域。
- 不再机械地"追离自己最近的那个路径点",而是根据局部路径曲率在线调整参考状态(曲率大时提前"看向"前方弯道),从而缓解绕障模式下跟踪精度的塌陷;
- 预测时域 Np 与控制器时域 Nc 随曲率在 5, 20 之间自适应:直线段用小时域省算力,高曲率段把时域拉长保精度------这是"精度与实时性之间自动换挡"的关键。

图注:整体流程可以看成一个带"双模式开关"的状态机:正常模式沿全局路径行驶,一旦检出障碍就切到避障模式(选最优局部目标 → 生成最优局部路径 → 跟踪局部路径),并在威胁解除后回到全局路径。两个模式共用同一套 MPC 跟踪器,只是参考轨迹不同。

图注:这一对示意图解释了"局部目标点该选在哪":当机器人到全局路径的距离较小(上图)时可在较大范围内选点;当偏离较大(下图)时目标区域被限制在图中红色虚线段的"待选区域",保证局部目标既避开障碍、又能把机器人拉回全局路径。
实验平台
- 仿真: 在全局路径上随机生成障碍物,构成 20 组随机障碍环境(用于规划层对比);障碍物等效半径 0.2 m、机器人半径 0.15 m、安全裕度 0.1 m,模拟室内常见的立柱、家具之类的障碍。
- 实车: 阿克曼转向底盘的自研原型车(原文 Figure 16:车体上装了平面 LiDAR、IMU、微控制器、车载处理器);计算单元为 NVIDIA Jetson TX1 ,软件栈是 ROS Melodic + C++ ,点云处理用 PCL,优化问题用 CasADi 框架 + 非线性规划求解器求解,控制回路频率 10 Hz;感知用最大量程 5 m 的平面 LiDAR + IMU 做障碍定位与自车状态估计。
- 对比基线: 规划层与标准 DWA 对比(两者都接同一套 MPC 跟踪器);跟踪层与 PID 控制器(P=1, I=0.001, D=20)和标准 MPC(Np=10)对比。
- 关键参数: 最大线速度 0.3 m/s、最大角速度 1 rad/s;MPC 权重 Q=0.8、R=0.2、时域参数 µ=0.4;时域上限 Npmax=20、下限 Npmin=5;DWA/子目标权重如上文。
- 实车场景: Scene I 是带障碍的通道(含"从两个障碍之间穿过去"的窄通道导航);Scene II 中有一个来回走动的人作为动态障碍,需要避让后重新回到全局路径。

图注:实车平台的正脸:阿克曼转向底盘、平面 LiDAR、IMU、微控制器与车载处理器。这张图值得看,是因为论文里"毫米级/厘米级"的结论最终是在这套 10 Hz 的嵌入式平台上跑出来的,而不是大算力工作站。
主要结果
规划层(20 组随机障碍环境): 改进 DWA 把平均路径长度从 111.9768 m 降到 103.3942 m(减少 8.58 m,约 7.7%) ,规划成功率从 60%(12/20)提升到 95%(19/20)。作者把增益归因于两点:曲率连续性项带来的平顺路径,以及子目标选择策略带来的"更快回到全局路径"。
跟踪层(积分绝对误差 IAE 指标): 曲率自适应 MPC 全面优于 PID 与标准 MPC:
| 方法 | IAE-x | IAE-y |
|---|---|---|
| PID + DWA | 25.5889 | 30.0039 |
| MPC + DWA(标准 Np=10) | 20.4195 | 27.4022 |
| 本文 MPC + DWA | 11.2496 | 15.2733 |
即 x 方向误差比 PID 降低 56.04% 、比标准 MPC 降低 44.91% ;y 方向分别降低 49.10% 和 44.26%。
计算效率: 由于自适应时域让平均预测时域更短,最大计算时间降低 36.6% 、平均计算时间降低 23.5%------精度提升与算力下降同时发生,这也是本文最实用的一条结论。
实车结果: 与 PID 和基线 DWA 相比,分层策略把平均跟踪误差从 x: 0.113 m → 0.011 m(降 90.26%) 、y: 0.109 m → 0.017 m(降 84.40%),作者在结论中称绝对跟踪精度达到"毫米级"。Scene I 中机器人优先选择从两个障碍之间的窄通道穿过,使局部路径尽可能贴近全局路径;Scene II 中面对往返行走的人,机器人先向左侧避让、威胁解除后向右转恢复全局路径(原文 Figure 19--22)。

图注:三条曲线对比非常直观------PID+DWA(橙色虚线)峰值误差接近 0.4--0.6 m,MPC+DWA(蓝色虚线)在绕障段仍有 0.2--0.8 m 的尖峰,而本文方法(红色实线)绝大多数时间贴在 0 附近,只在避障瞬间出现小幅尖峰。

图注:上图说明时域确实在"换挡"------基线 MPC 恒定 Np=10,本文方法平时用 Np=5,遇到高曲率段瞬间拉到 20(局部放大窗里还能看到 10--15 的中间档);下图箱线图显示计算时间的均值与最坏值同时下降。
对机器人工程实践的启示
- 10 Hz 的实时性不是靠算力堆出来的。 全部实车实验跑在 Jetson TX1 这一代嵌入式平台上,靠的是"自适应时域 + 曲率自适应参考点"这类算法侧的减负手段------对成本敏感的移动机器人产品,这比换更大算力板更划算。
- 别让规划器只交一条几何路径。 把控制器的"能否跟得上"写进规划代价函数(本文的曲率连续性项),比后续在控制器里做补偿省事得多;反之,控制器也要利用路径曲率信息,而不是简单追最近点。
- 局部目标的选取需要安全约束。 给候选子目标加"到障碍的最小距离"阈值,能消除"目标落在障碍里→原地打转→规划失败"这类现场常见故障,这是本文成功率从 60% 到 95% 的主因。
- 指标要成对评估。 只看跟踪误差会忽略算力代价,只看成功率会忽略路径长度;本文的表 2/表 3 与计算时间箱线图是很好的评估模板。
- ROS 集成路径清晰。 LiDAR + IMU → PCL 点云处理 → 规划层/跟踪层两个模块 → CasADi 求解,均为 ROS Melodic 下的 C++ 实现,参数权重(曲率项 0.3、障碍项 0.4、时域上下限 5/20 等)可直接作为调参起点。
主要局限 + 未来方向
- 动态障碍场景偏弱。 实车只验证了"一个人来回走",没有行人意图预测、没有多目标交叉冲突,也没有概率化的不确定性建模。作者把"概率式障碍意图建模 + 规划--控制协同优化"明确列为未来方向。
- 限速较低、感知范围有限。 最大线速度 0.3 m/s、LiDAR 量程 5 m,高速与开阔/大场景下的表现未知。
- 参数较多。 DWA 四项权重、子目标三项权重、MPC 的 Q/R/µ、时域上下限、曲率阈值等都需要按平台重调,论文没有给出自动整定方法。
- 缺少与其他现代局部规划器(如 TEB、MPPI)的横向对比,也未见开源代码/数据集发布说明。
- 未来方向: 动态不确定性下的规划--控制协同优化(概率式障碍意图建模)、以及带优先级协调的分布式多机协同导航。
总结
这篇 Sensors 论文给出的方法论很朴素但非常工程:让规划与控制互相"知情"。规划侧用"可选局部目标区 + 曲率连续的评价函数"保证局部路径又安全又好跟,控制侧用"曲率自适应参考点 + 自适应时域"保证既跟得紧又算得快。最终结果是规划成功率 60% → 95%、路径缩短 8.58 m、IAE 误差下降 44%--56%、计算时间下降 23%--37%,实车平均跟踪误差降至厘米级以下(1.1 cm / 1.7 cm),而这一切跑在 10 Hz 的 Jetson TX1 上。对于正在做底盘导航工程化的团队,它提供了一套可直接复用的"分层 + 双侧耦合"模板与一组经过验证的参数配置。