DQN 出主意、MPC 踩油门:混合规划把最坏求解耗时砍掉 56%
DQN 出主意、MPC 踩油门混合规划把最坏求解耗时砍掉 56%原文Collision-Free Trajectory Planning of Mobile Robots by Integrating Deep Reinforcement Learning and Model Predictive Control作者Ze Zhang、Yao Cai、Kristian Ceder、Arvid Enliden、Ossian Eriksson、Soleil Kylander、Rajath Sridhara、Knut ÅkessonChalmers University of Technology瑞典哥德堡会议2023 IEEE 19th International Conference on Automation Science and Engineering (CASE)DOI: 10.1109/CASE56687.2023.10260515代码开源github.com/Woodenonez/TrajTrack_MPCnDQN_RLBoost图注虚线框路径规划器、传感器系统是这篇论文假设已经给你的部分实线框是本工作的贡献DQN 读参考路径与地图观测输出一条绕开障碍的参考轨迹经 Switch 切换后交给 MPC 生成真正下发的控制量右侧小图示意 DQN 给出的轨迹虚线/ MPC 最终执行的轨迹点划线与原始参考路径的关系。深度强化学习DRL快但不保证不撞模型预测控制MPC安全但算得慢——这篇 CASE 2023 的论文给出了一个很实用的分工让 DQN 只当参谋提一条参考轨迹让 MPC 当驾驶员确保不撞、算得动。结果是多数场景成功率 100%最坏单步求解耗时降低约 56%。研究背景与现有方法不足论文从 AGV 与 AMR 的区别切入AGV 沿预设路径行驶遇到障碍只能减速、停车被动避障AMR 则需要主动绕开障碍这就要求控制器在线把障碍物纳入决策。经典的运动规划与控制被打包成三步——路径规划、轨迹生成、轨迹跟踪控制其中前两步可以离线或在线完成只有跟踪控制必须是实时的。两条现有路线各有硬伤DRL如 DQN直接控制机器人动作前向推理极快本文测出单步仅 0.35 ms 级别能学到复杂的绕障策略但无法保证成功率、也没有安全性约束。更麻烦的是纯 DRL 的动作平滑度差——机器人会抽动。纯 MPC 做避障有约束、有最优性保证但a求解耗时高尤其最坏情况本文实测单步平均 38.51 ms、最坏181.73 msb在非凸障碍例如 U 形障碍下容易陷进局部极小直接卡住。作者的判断是这两者的短板恰好互补——DRL 擅长给出一个有希望的绕行方向MPC 擅长在约束下把车辆稳稳带过去。于是关键设计问题变成怎样让一个学出来的策略不用直接控制机器人却仍然发挥它的价值核心创新点1把 DQN 的输出从动作改造成参考轨迹。这是全文最关键的一步DQN 依然按常规训练输出下一步的动作但这些动作不被执行而是被积分/串联成一条局部参考轨迹再由 MPC 在这个轨迹跟踪框架下接管输出真正下发的控制信号。这样一来DRL 的探索能力被保留用来提出绕障路线安全性与实时性交给经过验证的优化器用来执行非凸障碍下 MPC 陷入局部极小的问题也被 DQN 给出的另一条可行路径绕开了——实测中这正是混合方案成功率高于纯 MPC 的原因。2两种观测变体共用一套内部状态。状态由内部状态sints^{int}sint上一时刻线速度/角速度、最近 3 步的 close 标记、路径相关量共 9 维与外部状态sexts^{ext}sext组成激光版DQN-LsLs^{L}sL为 32 维激光/雷达量测视觉版DQN-V从 18×18 单位区域裁剪、压缩成54×54 像素的图像经 CNN 编码为 256 维潜向量再与sints^{int}sint拼接。动作空间是9 个离散动作8 个方向 停止结构简单、推理便宜。3Switch 切换机制。系统在原始参考路径和DQN 生成的参考轨迹之间切换无风险时走原路径省算力、不打扰需要绕障时切到 DQN 参考。4与避障语义绑定的奖励设计。奖励中融入了指向参考路径的光束分析beam pointing to the reference path据此判断间隙与偏航引导 agent 在保持朝向参考路径的同时完成绕障——这也是训练出可用参考轨迹的前提。图注左边是 9 个离散动作0–8中间是状态向量的组成sints^{int}sint的内部量 sLs^{L}sL的 32 维激光或sVs^{V}sV的 54×54×3 视觉观测右侧两个小图说明激光视角与视觉视角看到的世界有什么不同。这张图是理解它为什么能同时做激光版和视觉版的关键。实验平台纯仿真研究无实机验证。所有实验在Intel i7-9750H上运行神经网络推理在NVIDIA GTX 1650 Max-Q上完成。控制与优化栈MPC 由实时优化引擎OpEn实现避障约束用**惩罚法penalty method**处理DQN 基于Stable-Baselines3的默认 DQN 架构激光版为两层各 16 神经元的全连接视觉版为 CNN 两层各 64 神经元全连接。训练场景刻意设计成固定场景 随机场景两类以提升泛化性。固定场景为手工搭建的静态/动态障碍场景代码库中提供随机场景包含3 个随机尺寸、随机位置的静态障碍 随机数量的动态障碍沿随机生成的直线往复运动起点终点随机参考路径由可见图visibility graph A* 算法生成。训练超参折扣因子 γ0.98、学习率 α0.0001、随机探索比例 0.2梯度步数与环境步数 1:1。评估场景两个Scene 1直线车道6 种静态障碍情形(a) 中等/ (b) 约 4 倍于车体的矩形障碍、©(d) 交错矩形障碍、(e)(f) 浅/深的 U 形非凸障碍 1 种迎面/侧面而来的动态障碍Scene 2三组转弯场景直角右转、急转、U 形掉头转弯处额外放置静态障碍。评价指标6 项单步计算时间均值/最大/中位、与参考路径的偏差、动作平滑度动作的二阶导、间隙到障碍的最近距离、完成步数、成功率每格 50 次运行成功率低于 30% 的结果不予展示。主要结果实时性Scene 150 次运行的平均方法单步耗时 均值 / 最大 / 中位ms说明纯 MPC38.51 /181.73/ 22.62最坏情况是平均值近 5 倍实时性风险最大纯 DQN激光版0.35 / 0.61 / 0.34快两个数量级但成功率与动作平滑度差混合DQN MPC23.27 / 79.13 / 16.27均值降约 40%、最坏情况降约 56%、中位降约 28%论文特别强调最坏情况这个指标对实时控制系统而言均值好看没用worst-case 决定了你得留多大时间余量。安全性/成功率混合激光版HYB-L几乎在所有场景都能拿到 100% 成功率包括纯 MPC 会陷入局部极小的非凸 U 形障碍场景唯一例外是 Scene 2 的直角右转。与纯 DQN 版本相比混合版本在动作平滑度与成功率上都有明显改善——这正是MPC 兜底带来的收益。纯 DQN 版本成功率达到不了可展示水平论文明确说明成功率低于 30% 不展示结果。一个有意思的传感器互补现象直角右转场景中视觉版HYB-V的成功率反而优于激光版——因为激光雷达看不到转角之后的区域而视觉可以提前看到转角后的环境。反过来视觉版整体稳定性更差图像分辨率有限 CNN 训练不稳定作者把这一现象归因于此。图注这是评估用的静态障碍族谱——注意 (e)(f) 两个 U 形非凸障碍它们正是纯 MPC 会陷入局部极小、而混合方案能绕过去的分水岭场景。图注图上能看到系统内部到底在算什么紫色线是 DQN 给出的参考轨迹绿色线是实际参考黄色扇区与射线是激光的间隙分析红圈 1/2 标出动态障碍。这张图最直观地展示了DQN 提议—MPC 执行的中间产物长什么样。图注黑色箭头表示期望转弯方向转角处额外放了一个小障碍来制造高难度。这里就是 HYB-L 唯一没拿到 100% 成功率的场景也是视觉版反超激光版的场景。对机器人工程实践的启示学习提建议、优化兜底是眼下最稳的落地组合。不要让学出来的策略直接下发速度指令——把它降级成参考轨迹生成器把约束与安全交给 MPC既省掉了 DRL 的安全性论证又拿到了 DQN 的绕障直觉。看最坏耗时不看平均耗时。纯 MPC 的均值 38.51 ms 看起来还行但最坏 181.73 ms 足以让控制回路抖动甚至超时混合方案把最坏值压到 79.13 ms才是真正让系统敢跑的改动。传感器选型要考虑遮挡后的可见性。直角转角这种场景激光雷达天然吃亏视觉能提前看到转角后的空间——如果产线里有大量转角/遮挡场景视觉版或激光视觉融合值得投入。工程栈可以直接照抄OpEn实时优化 惩罚法避障约束 Stable-Baselines3DQN 训练全部是开源且成熟的组件论文还公开了代码与演示视频。训练场景要人为造出多样性。固定场景负责考试大纲随机场景随机障碍尺寸/位置/数量、随机起终点、随机参考路径负责泛化——这套做法可以直接搬到自己的仿真环境里。主要局限 未来方向只有仿真没有真机实验。论文明确把在真实系统上实现该方法列为未来工作因此轮式底盘的动力学误差、定位漂移、传感器噪声等现实因素尚未验证。依赖一条已知的原始参考路径。系统是在已有参考路径的基础上做局部绕行不具备全局重规划能力若原始路径不可行比如通道被完全堵死方案的前提就失效了。视觉版稳定性不足作者归因于图像分辨率与 CNN 训练不稳定实际工程中需要更谨慎地用视觉 DQN 做参考生成。评估样本量有限每格 50 次且没有对超参/奖励权重的敏感性分析动态障碍也是简单的往复直线运动没有做轨迹预测与交互博弈。未来方向提升视觉版 DQN 的稳定性、把方法部署到真实移动机器人上作者已在结论中提出。总结这篇论文的价值不在于提出多么复杂的算法而在于给出了一条让 DRL 与 MPC 各司其职的清晰分工DQN 不再直接控制机器人而是生成一条绕开障碍的参考轨迹MPC 在这个局部轨迹上做轨迹跟踪负责安全与实时性。结果是成功率从纯 DQN 不敢展示提升到混合版的近乎全场景 100%含非凸 U 形障碍同时把单步求解的最坏耗时从 181.73 ms 降到 79.13 ms约 −56%均值从 38.51 ms 降到 23.27 ms。它同时给出了一个很实用的传感器洞察激光看不到转角之后视觉可以。对于正在纠结该用 RL 还是该用 MPC 做避障的团队这是一份思路清晰、组件开源、可以直接试的参考方案。

相关新闻

关键字段OCR抽取实战:用 Python 完成文档信息抽取 + 自定义OCR模板 + 字段名/值/置信度/坐标框解析

关键字段OCR抽取实战:用 Python 完成文档信息抽取 + 自定义OCR模板 + 字段名/值/置信度/坐标框解析

背景做档案系统、数据中台、企业文档管理的同学,大概率被业务方提过这个需求:把一批扫描件、拍照单据、PDF文档丢进去,自动把合同编号、运单号、收发件人、项目编号这些字段抽出来,直接写进业务库。这件事听起来就是"调个OCR…

2026/10/1 16:14:36 阅读更多 →
MySQL 游标全解:声明游标、异常处理与条件处理程序实战

MySQL 游标全解:声明游标、异常处理与条件处理程序实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 16:14:36 阅读更多 →
AIHOT部署完全指南:Docker Compose、域名HTTPS、中国大陆加速与自动备份

AIHOT部署完全指南:Docker Compose、域名HTTPS、中国大陆加速与自动备份

AIHOT部署完全指南:Docker Compose、域名HTTPS、中国大陆加速与自动备份 【免费下载链接】AIHOT 一个自己找热点、自己写日报的网站框架。把信源和精选标准换成你的,它就是你的行业热点站。 项目地址: https://gitcode.com/gh_mirrors/ai/AIHOT 本…

2026/10/1 16:13:36 阅读更多 →

最新新闻

EasyExcel导出合计行的正确实现方案

EasyExcel导出合计行的正确实现方案

1. 为什么“合计行”是 EasyExcel 导出中最容易被低估的硬伤你有没有遇到过这样的场景:业务方发来一份 Excel 模板,最后一行写着“合计”,字体加粗、背景色浅灰、数字右对齐,还带千分位分隔符;你吭哧吭哧用 EasyExcel …

2026/10/1 19:42:18 阅读更多 →
技术专家、领域专家、行业专家:三条截然不同的成长路径

技术专家、领域专家、行业专家:三条截然不同的成长路径

1. 三种“专家”不是同一个物种——先搞清楚你要当哪一种聊到今天已经是第897期,我一直没正经写过一个话题:怎么从干活的人,变成别人眼里的专家。最近后台有好几个读者留言,问的是同一类问题——技术做到什么程度才算专家&#xf…

2026/10/1 19:42:18 阅读更多 →
PhpStorm vmoptions文件位置全解析:修改JVM参数的正确姿势

PhpStorm vmoptions文件位置全解析:修改JVM参数的正确姿势

不少人以为 PhpStorm 改完 vmoptions 就万事大吉了,结果重启后要么内存还是爆,要么翻遍了安装目录也找不到自己刚改的文件。我先把结论放这儿:不管是你在 IDE 菜单里点 Help -> Edit Custom VM Options ,还是手动去改某个文件…

2026/10/1 19:42:18 阅读更多 →
TFLite内存规划器深度解析:推理引擎如何复用中间tensor,压降峰值内存

TFLite内存规划器深度解析:推理引擎如何复用中间tensor,压降峰值内存

做端侧推理部署的人,应该都遇到过这种场景:模型权重明明只有几十MB,一跑起来App的内存却暴涨到两三百MB,动不动就被系统低内存回收。以前我排查这类问题,第一反应是换更小的模型、降输入分辨率,后来才意识到…

2026/10/1 19:42:18 阅读更多 →
MySQL通用日志general_log:从原理到实战,揭秘审计与排查利器

MySQL通用日志general_log:从原理到实战,揭秘审计与排查利器

凌晨两点被电话叫醒,几乎是每个搞过数据库的人都经历过的“必修课”。那天业务方告诉我,订单表里有一批数据被update了,但排查了一圈,代码没人动过,脚本没人跑过,binlog翻出来也只能看到具体SQL和事务序号&…

2026/10/1 19:42:18 阅读更多 →
FreeRTOS任务机制深度解析:TCB、任务栈与就绪表的内存本质

FreeRTOS任务机制深度解析:TCB、任务栈与就绪表的内存本质

1. 为什么FreeRTOS新手总在“任务”上栽跟头:从一句xTaskCreate()说起我带过不少刚接触FreeRTOS的嵌入式新人,他们常卡在一个看似最基础的问题上:明明照着例程写了xTaskCreate(),任务却没跑起来;或者任务跑着跑着就死机…

2026/10/1 19:41:18 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →