Apollo Planner

10 篇文章 0 订阅
3 篇文章 1 订阅

参考文章

https://blog.csdn.net/AdamShan/article/details/80779615
https://blog.csdn.net/weixin_43619346/article/details/104973670

笛卡尔坐标系的替代解决方案为 Frenet 坐标系,Frenet 坐标系描述了汽车相对于道路的位置,在 Frenet 框架中,s 代表沿道路的距离称为纵坐标,d表示与纵向线的位移称为横坐标。

世界坐标系下的一个位置可能在Frenet 坐标系中表示的位置不是唯一的,可以通过限制曲率条件做到一对一的转换关系。

 

 

planing主要是根据routing产生的全局路径规划一条几秒内运行的轨迹,这个轨迹包括了路径+速度两部分。

在apollo中,用到的方法主要有两种,分别是路径-速度解耦方法和lattice规划方式。

1. 速度-路径解耦规划

路径-速度解耦规划将轨迹规划分为两步:

路径规划、速度规划。

首先在路径规划步骤中生成候选曲线,使用成本函数对每条路径进行评估,该函数包含平滑度、安全性、与车道中心的偏离以及想要考虑的其他任何因素,按成本对路径进行排名并选择成本最低的路径。

确定沿这条路线行进的速度,需要选择的是与路径点相关的一系列速度而不是单个速度,将该序列称作“速度曲线”。可以使用优化功能为路径选择,受到各种限制的良好速度曲线,通过将路径和速度曲线相结合可构建车辆行驶轨迹。

为了在路径-速度解耦规划中生成候选路径,

  • 首先将路段分割成单元格,
  • 然后对这些单元格中的点进行随机采样

通过从每个单元格中取一个点并将点连接,创建了候选路径,通过重复此过程可以构建多个候选路径。

生成一条可行路径后,建立S-T图,这里的S指的是路径,而不是frenet中的s,T指的则是时间。

 

这两个图其实就很好的解释了整个过程,只要错开其他车辆出现在规划路径上的时间,即可实现避障的过程。

2. lattice方法

这里有两种不同的方式,其实本质上是一样的。

一种是建立d-t图和s-t图。

另一种是建立s-t和s-d图。

个人感觉第二种方法更容易理解。

横向:车辆最终沿着参考线(道路中心线)平行的方向行驶,所以我们令 di˙=di¨=0 ,那么目标配置只涉及 di 和 Tj 两个变量的组合。

定义 (dmin,dmax) 和 (Tmin,Tmax) 来约束目标配置的取值范围,通过 Δd 和 ΔT 来限制采样密度,从而在每一个制动周期获得一个有限的备选轨迹集合,如下图所示:

要在备选集合中选择最优轨迹(即上图中的绿色轨迹),我们需要设计损失函数,对于不同的场景,损失函数也不相同,以横向轨迹为例,在较高速度的情况下,损失函数为:

 

 

纵向:

纵向轨迹的优化场景大致分成如下三类:

* 跟车

* 汇流和停车

* 车速保持

在高速公路等应用场景中,目标配置中并不需要考虑目标位置(即 s1 ),所以在该场景下,目标配置仍然是 (s0,s0˙,s0¨) ,目标配置变成了 (s1˙,s1¨) ,损失函数为:

其中 sc˙ 是我们想要保持的纵向速度,第三个惩罚项的引入实际上是为了让目标配置中的纵向速度尽可能接近设定速度,该情景下的目标配置集为:

即优化过程中的可变参数为 Δsi˙ 和 Tj ,同样,也可以通过设置 ΔT 和 ΔΔsi˙ 来设置轨迹采样的密度,从而获得一个有限的纵向轨迹集合:

其中,绿线即为纵向最优轨迹。以上我们分别讨论了横向和纵向的最优轨迹搜索方法,在应用中,我们将两个方向的损失函数合并为一个,即:

这样,我们就可以通过最小化 Ctotal 得到优化轨迹集合(我们不能得到“最优”的轨迹多项式参数,还可以得到“次优”,“次次优”轨迹等等)。

 

 

二次规划

二次规划主要是将规划的点位和路径进行优化,使得更符合车辆模型和保证舒适感。

可以用5次轨迹多项式求解进行优化。

三次多项式轨迹规划只能够保证速度和位移连续,并不能保证加速度连续。加速度不连续将会对使电机抖动、甚至冲击。

 

加速度不连续的话,会导致人感觉到车辆jerk特别大,不舒服。

 

https://blog.csdn.net/weixin_39258979/article/details/105755351

 

总结:

路径-速度解耦的方法是产生一条路径,然后在此路径上进行速度规划,这个过程对异常的处理可能比较乏力,只能通过重规划。

 

lattice的方法产生了多条备选路径,即使最优路径在执行过程中发现问题,也可以从优先队列中取出次优、次次优路径进行解决,其实是一种相对较好的方式。

 

路径-速度解耦需要估计动态障碍物在路径中出现的时间,这个需要一定的预测能力。

 

lattice其实是遍历了整个可行空间,相对简单一点,但是速度可能相对较低。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Apollo Lattice Planner是一个先进的自动驾驶规划器。它是百度Apollo自动驾驶平台的核心组件之一,旨在帮助无人驾驶车辆安全、高效地规划行驶路径。 Apollo Lattice Planner采用了格点(lattice)规划方法,通过将道路划分为一系列网格点,然后根据车辆动力学与约束条件,在这些网格点间搜索最优路径。与传统的基于图搜索的方法不同,格点规划具有更高的计算效率和适应性,并且能够兼顾车辆舒适性和行驶效率。 该规划器具备多个主要功能。首先,它可以根据车辆的感知信息和规划目标生成全局路径,通过高精度地图来避免碰撞、超速等问题。其次,Apollo Lattice Planner可以根据交通规则和预测模块的信息,智能地生成局部路径以适应复杂的交通环境,如变道、绕过障碍物等。此外,该规划器还可以根据实时感知信息进行路径修正,确保车辆能够快速且安全地反应不断变化的道路状况。 Apollo Lattice Planner的优势在于它的高度可靠性和适应性。它可以通过对驾驶场景的建模以及实时感知信息的分析,为无人驾驶车辆提供最佳的路径规划方案。它还可以根据不同行驶需求,比如快速行驶、舒适行驶等进行调整,以满足不同用户的需求。此外,该规划器还支持多车辆协同行驶,可以根据不同车辆的感知信息与规划目标动态优化路径规划,提高整体交通效率。 总之,Apollo Lattice Planner是一款先进的自动驾驶规划器,通过格点规划方法,能够智能、高效地规划无人驾驶车辆的行驶路径,提供安全、可靠的驾驶体验。 ### 回答2: Apollo Lattice Planner是一种用于自动驾驶系统的路径规划算法。它是在Baidu Apollo平台中开发的一种高效的规划器,主要用于城市环境的自动驾驶。 Apollo Lattice Planner使用基于格子的表示方法来生成可行的路径。通过将城市地图离散化为均匀网格,该算法能够更好地处理城市环境中的不规则道路和复杂交通情况。它将车辆当前位置与目标位置作为输入,并在城市地图上搜索最佳路径。该路径需要满足一系列的约束条件,如避免碰撞、保持车辆的稳定性和合理规划转弯等。 为了生成可行路径,Apollo Lattice Planner利用了快速的广度优先搜索算法。该算法在网格地图上进行搜索,通过考虑车辆的动力学属性和交通规则,确定每个格子的可行性,并进行路径评估。通过搜索和评估过程,该算法可以找到对于车辆来说最安全和最高效的路径。 Apollo Lattice Planner在实际应用中已经取得了较好的效果。通过合理规划路径,它能够使自动驾驶系统在城市道路上更加安全、高效地行驶。同时,它还可以与其他模块(如感知和控制)进行协同工作,从而实现整个自动驾驶系统的正常运行。 总之,Apollo Lattice Planner是一种用于自动驾驶系统的高效路径规划算法,它使用基于格子的表示方法,在城市环境中能够生成安全、高效的路径。它在自动驾驶领域中具有重要的应用潜力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值