从约束出发:轨迹规划问题的求解及失败处理

        对于轨迹规划问题,经过建立适当的物理模型和数学模型,最后通常都能转换成一个优化问题,本文首先梳理了优化问题的基础知识和轨迹规划问题的求解,最后从约束的角度探讨了优化问题失败后的处理。

优化问题基础

        下面是标准的优化问题,其中,x为优化变量,f(x)为目标函数,g(x)为不等式约束,h(x)为等式约束;

        根据是否存在h和g,优化问题可分为无约束优化问题和有约束优化问题。对于无约束优化问题,有很成熟的求解算法,如各种梯度类算法。带约束优化问题的求解会复杂很多,而且没有通用的解决方法,一种简单常用的求解思路是把约束问题转化为一系列无约束问题,用一系列无约束优化问题的解来逼近约束问题的解。典型的如惩罚函数法,将对偏离约束的惩罚加到原来的目标函数组成新目标函数,从而转换成无约束目标函数。罚函数方法又可以分为外点罚函数法和内点罚函数法,两者的区别在于对约束的处理方式不同。

外点罚函数法

等式约束用h^2(x)惩罚,不等式约束用max\{g(x),0\}惩罚,所以新的目标函数为

\mathop{f}\limits_{}^-(x)=f(x)+(\sum_{i=1}^{m}{\sigma_i}h_i^2(x)+\sum_{i=1}^p{\sigma_i}[max\{g_i(x),0\}]^2)

只要无约束问题的解是约束问题的可行点就是原问题的极小值点,而且惩罚因子sigma越大,对无约束极小值点不在可行域内的惩罚越大, 所以也越可能落在可行域内。求解过程中,算法迭代进行,只要找到的无约束解不可行就增大罚因子,然后继续求解无约束极值点。这种方法的特点是,1. 不要求初始点在可行域内;2. 无法保证结果一定严格满足可行性条件;3. 随着惩罚因子的增大, 在新目标函数中目标函数占的比例越来越小,约束惩罚占的比例越来越大,使得优化问题的适定性变得越来越差。

内点罚函数法

 内点罚函数法又称为障碍函数法,使用对数函数、指数函数或倒数函数等作为惩罚函数处理不等式约束,当近似极小值点接近可行域边界时惩罚函数变得很大。 内点罚函数法的特点是,1. 不能处理含有等式约束的问题;2. 要求可行域含有内点;3. 由于可行域边界处的高墙的存在,内点罚函数法在近似点靠近可行域边界时罚函数会变得病态,往往难以求得最小值点。

轨迹规划问题

将轨迹规划问题转成标准的优化问题形式,目标函数f(x)为期望的轨迹所具有的属性,一般包括安全性、舒适性和通行效率;等式约束h(x)除包括起始点和终止点约束外,大部分的等式约束为相邻两点的跳转方程,即建立的物理模型;在不等式约束g(x)中,定义了优化变量的可行域,一般包括安全边界,车辆的物理操作边界等。

 目标函数和状态方程方面的讨论可以参考从描述驾驶体感到建立状态方程,本文主要讨论下轨迹规划中的约束问题及其求解方法;

轨迹规划问题中的约束主要包括状态量约束、控制量约束、以及可行驶区域约束。状态量和控制量的约束很好表示,都是典型的框约束,边界值也很好确定。但是可行驶区域,即位置(x,y)约束的表示和处理就比较复杂,其边界包括车道线、规则障碍物以及无语义障碍物。

对于优化问题的求解,一种方法是使用各种求解器(如ipopt、osqp等)来直接对优化问题进行求解,如Apollo使用osqp求解器,这些经过验证的成熟求解器稳定、可靠,有方便调用的接口,可以大大减小了开发工作量,但是其缺点也很明显,求解过程对开发者处于黑盒状态,开发者对其干预程度很低,难以根据需要提前结束求解或者使用中间结果。如果开发者自己开发求解器,虽然可白盒控制求解过程,但是工作量和开发难度都很大。

自动驾驶中的轨迹规划问题有其特点,1.实时性很强,对计算时间有严苛的要求;2.对结果的最优性要求不高;3. 必须要有轨迹输出,换句话说,没有最优的轨迹,求解器必须及时输出一条可行的轨迹。

智能驾驶技术从有图模式逐渐向无图模式过渡,轨迹规划问题从由参考线跟踪占主导的问题转变为障碍物避障为主导的问题,对应的求解方法也从传统的基于QP求解向基于ilqr求解。lqr方法的求解精度可能比不上梯度类算法,由于lqr是少有的可以通过解析方法来求极值的算法,所以其求解速度非常快,通常只有求解器求解时间的1/3~1/6。这个特点也是其在规划问题中使用越来越广泛的原因,而且其运算过程对开发者而言也是白盒状态。在ilqr的求解方法中,对于约束的处理,都是将其以惩罚项的形式写到目标函数中,然后进行lqr迭代求解,关于ilqr的基本知识可以参考从描述驾驶体感到建立状态方程。根据内外罚函数的特点,以及轨迹规划问题的特性,ilqr算法建议选择外罚函数法来处理约束条件。

约束及失败处理

约束可分为硬约束(hard-constraint)和软约束(soft-constraint)两种,硬约束在任何时候都必须满足,比如规划的轨迹不能与其他物体发生碰撞(安全性),比如规划的轨迹不能超过车辆的可执行能力(可控性)。软约束是尽可能满足的约束,比如轨迹需要尽可能在车道线中间,规划的速度尽可能接近驾驶员设定的速度。硬约束确保了解的有效性,而软约束则帮助我们在满足硬约束的基础上,优化解的质量。合理的约束对问题的求解至关重要,约束过多(过约束)会导致问题求解失败,约束过少(欠约束)会导致解的质量偏离我们的预期。约束的优先级划分对问题求解失败后的处理至关重要,轨迹规划问题的约束优先级为 可控性>安全性>软约束。安全性也可根据碰撞目标来进行划分优先级,例如vru目标大于无语义的护栏等。

由于外点罚函数法无法确保结果满足硬约束,所以在实际开发中,需要对ilqr输出的轨迹进行可行性检查,主要包括安全性和可控性。如果ilqr的输出轨迹不满足硬约束,必须要进行规划失败的后处理,下面讨论规划失败后的处理问题。

  1. ilqr的求解速度很快,所以可以在一次规划失败后,改变相关参数或约束后进行多次尝试;

  2. 由于外点罚函数法是将硬约束和软约束同时以罚函数的形式写到目标函数中,以权重的相对大小来调节彼此的作用,所以当某项硬约束被违反时,可尝试提高其权重;

  3. 降低速度来提高车辆的横向可达空间;

  4. 平滑参考线,降低其曲率;

  5. 尽可能挖掘可行驶空间,减少因平滑或边界近似而损耗的可行驶空间;

当处于极端场景下,经过上述的多次规划尝试后依旧失败(碰撞),则需要输出fallback轨迹,最佳的fallback轨迹的标准:1. 碰撞目标优先级尽可能低;2. 碰撞点在时间上最晚,以给驾驶员更多的反应时间。当然,这也可以通过多次尝试调整碰撞约束来确定。

### 轨迹规划与空间环境建模的技术和方法 #### 一、轨迹规划技术概述 轨迹规划是指在给定起点和终点之间,计算一条满足特定条件的路径。这些条件可能包括避开障碍物、遵循动力学约束以及优化某些性能指标如时间或能量消耗。 对于机械臂而言,存在两种主要类型的轨迹规划方式:笛卡尔空间规划和关节空间规划。前者能够更精准地控制末端执行器的位置和姿态变化;后者则侧重于调整各关节角度来实现目标位置的变化,但在复杂环境中难以保持高精度[^1]。 为了应对动态场景中的挑战,在进行轨迹规划时还需要考虑到实时更新的信息,比如突然出现的新障碍物或其他不可预见的因素影响下的重新规划能力。这通常涉及到传感器数据融合处理及快速响应机制的设计[^2]。 ```matlab % 这是一个简单的MATLAB代码片段用于演示如何定义一个基本的路径规划函数 function path = planPath(startPoint, endPoint, obstacles) % startPoint 和 endPoint 是 n 维向量表示起始点和结束点坐标 % obstacles 是 m×n 的矩阵每一行代表一个障碍物体积内的任意一点 % 初始化路径为空数组 path = []; % 实际应用中这里会调用复杂的算法来进行具体路径求解... end ``` #### 二、空间环境建模的方法介绍 构建有效的三维模型是成功实施机器人导航任务的关键一步。常用的空间环境建模手段有: - **栅格地图(Grid Map)**: 将工作区域划分为多个单元格(grid cell),并标记每个网格是否被占用(occupied)还是自由(free)状态。这种方法简单直观易于理解,但对于大型开放场地可能会造成存储效率低下问题。 - **多边形逼近(Polygonal Approximation)**: 使用一系列相连或多边形近似描述物理边界轮廓特征。它能较好平衡细节保留程度同内存开销之间的关系,适合用来表达较为规则形状的对象集合体。 - **八叉树结构(Octree Structure)**: 对整个体积范围按层次递归分割成八个子立方体直到达到预定分辨率为止。此法特别适用于稀疏分布型态的数据集压缩表示形式下高效检索查询操作需求场合之中。 通过上述不同维度上的抽象化处理过程,可以为后续更高层面上的任务决策提供坚实可靠的基础支持框架体系架构支撑平台服务接口协议标准指南建议白皮书草案提案议案报告总结回顾反思体会感悟心得笔记记录日志文档资料素材资源库建设维护管理运营推广宣传营销广告策划方案计划安排部署落实执行监督考核评估评价反馈意见交流沟通协作配合协调一致共同努力奋斗拼搏进取创新创造发明发现探索研究学习教育训练培训教程课程教材书籍出版发行传播扩散普及提高增强强化巩固加强重视关注关心关爱帮助扶持援助救济救助保护保障安全稳定和谐发展进步成长壮大成熟完善健全完备全面广泛深入细致认真负责敬业奉献牺牲精神品质特性特点优势特长特色亮点闪光点价值意义作用贡献影响力吸引力感染力号召力凝聚力战斗力执行力行动力实践力创造力想象力思维逻辑推理判断分析综合归纳演绎论证说明解释阐述论述论点观点立场态度情感情绪心理性格行为习惯生活方式生活理念人生观世界观价值观道德伦理法律规范社会秩序公共利益集体主义个人主义利他主义功利主义理想现实梦想追求目标方向道路途径桥梁纽带联系关联互动合作竞争对抗矛盾冲突解决办法措施策略战术战略方针政策法规制度规章条例规定约定俗成惯例传统习俗文化背景历史渊源根源起源发端开端起步出发点立足点基点支点重心中心焦点热点难点重点要点关键核心根本基础前提条件因素原因结果效应影响后果危害风险危机困难挫折失败教训经验借鉴参考对比参照比较对照映衬烘托渲染强调突出显示呈现展示展现表现体现反映折射暗示隐喻象征比喻拟人夸张讽刺幽默诙谐调侃嘲讽挖苦讥笑批评指责谴责控诉抗议反对抵制抵抗斗争反抗反叛背叛背离偏离脱离离开远离靠近接近接触连接链接联结联合联盟团结统一整体部分组成构成形成建立创建开创开辟拓展扩大延伸扩展延展伸展舒展展开铺展陈列展览表演演出活动事件事故灾难祸患危险威胁恐吓警告提醒警示警戒警惕谨慎小心注意留意留心在意介意在乎看重看轻忽视忽略漠视无视蔑视歧视偏见误解误会曲解误读错觉幻觉梦境想象幻想遐想联想构思设计创意创作制作制造生产加工处理处置治理整顿整改整治改善改进改良改革变革革新革命颠覆推翻重建重塑再造再生循环利用节约环保节能降耗减排减负减轻缓解消除去除根除铲除拔除剔除清除清扫打扫清洁净化美化绿化亮化照明采光通风透气散热降温保暖保温隔热隔音消音静音安静宁静寂静肃穆庄严神圣崇高伟大光荣辉煌灿烂绚丽多彩缤纷斑斓五彩缤纷万紫千红花言巧语甜言蜜语豪言壮语狂言妄语胡言乱语信口雌黄混淆视听误导欺骗蒙蔽隐瞒掩饰掩盖隐藏埋藏深藏不露若隐若现隐约可见模糊不清朦胧恍惚迷糊困惑迷茫彷徨犹豫徘徊踌躇不定举棋不定拿捏不准把握不住捉摸不透琢磨不透费尽心思绞尽脑汁冥思苦想要么...要么...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值