Lattice Planner从入坑到入土(一)

        最近在使用DWA和TEB,发现对障碍物的规划如何同其它局部规划器进行切换控制时会出现局部死区的情况(各种原因导致,最典型的是出现无规划的状况)。

        然而Lattice Planner简单粗暴直接的解决了一系列问题,也省去了各规划区切换的问题。

一、Frenet坐标系

        经典论文:Optimal Trajectory Generation for Dynamic Street Scenarios in a Frene´t Frame

                          基于Frenet坐标系的自动驾驶轨迹规划与优化算法 - 道客巴巴

        我们常用的是笛卡尔坐标系(后续称 cartesian 坐标系),其中最常用的就是典型的直角坐标系,还有东北天坐标系,即ENU坐标系。在对车辆坐标进行描述时,在 cartesian 坐标系中,我们使用的是车辆的位置、状态信息,用(x,y,θ,vx,vy,vθ)来表示:

         那么在路径规划中,我们通过全局规划器(A*/Dijkstra等)规划出了一条全局路径,也就是图中的曲线,后续我们称为 reference line,其方向以箭头为正向。

        假设现在车辆坐标为 (x,y) ,朝向为箭头所指方向,记为 θ ,从reference line 找一个最近点,记为点 (x2,y2),其切线方向记为 \Theta _{2} ,那么车辆的暂运行的误差就始终需要通过这两个在 cartesian 坐标系下的量来进行计算:

        那么 Frenet 坐标系提出就是为了符合车辆的运动状态,即纵向状态与横向状态,采用四次/五次多项式来描述车辆当前的运行轨迹,后续表示为 Trajectory 。

        Frenet 坐标系我借用一位大神画的一个动态图来表示(大神的文章我没找到,当时存了个图,未表明出处,后续专门补一下,非常抱歉),这里要记住,Frenet坐标系是随车辆在 cartesian 坐标下的位置进行改变的,理解为随动:

        这个动图中的坐标系就是笛卡尔坐标系,而随鼠标活动的就是 Frenet 坐标系, Frenet坐标系中我们将沿 reference line 切线的蓝色作为 s 轴 ,红色的为横向 d 轴,正常的路线的采样我们使用论文中的这张图更为准确:

        Frenet 坐标系的好处有两点:

        1---在此坐标系下我们可以清楚的知道当前偏离车道中心线的距离以及车辆沿车道中心线形势距离。

        2---cartesian 坐标系下的运动规划是 t 时间内它所规划的横向与纵向运动,是一个耦合系统,转为 Frennet 坐标系下将其分解为 横向---t 与 纵向---t 两个一维规划问题,并且可以各自对 t 求导,更容易表达车辆状态。

二、Frenet坐标系与笛卡尔坐标系的状态转换

我们在cartesian坐标系下的运动状态描述为\left [\vec{x}, \Theta ,v_{x},a_{x}, k_{x}\right ]:

        \vec{x}--------cartesian坐标系下的位置,这里用向量来表示,也可以表示为位置(x,y);

        \Theta--------朝向角;

        v_{x}-------车辆速度;

        a_{x}-------车辆加速度;

        k_{x}-------实际轨迹曲率;

我们说车辆在Frenet坐标系下的运动状态描述为 \left [ s,s{}',s{}'',d,d{}',d{}'',\dot{d},\ddot{d}\right ]

        s-----------纵向位移;

        s{}'----------纵向速度 (纵向位移对时间t);

        s{}''---------纵向加速度;

        同理 d,d{}',d{}''分别对应横向位移,速度,加速度;

        比较特殊的是 \dot{d} 与 \ddot{d},是横向位移对弧长的一阶导数与二阶导数。

(代码中由于符号 d 代表了导数,所以上方在Frenet坐标系运动描述中的 d 全部置换为 l,并且与下方的 “l” 一一对应

2.1 Frenet坐标系的point match

        上述具体的推理过程这里并不展示,主要说一个重点,即求车辆当前状态下在 reference line上所对应的 Frenet 坐标系下的运动状态,首先主要是投影点的状态计算。reference line 是车辆运动参考线,也可以说是当前车道中心线,在Apollo中对其进行了离散化处理,这里因为直接使用了全局规划器,就不涉及离散化处理,即微观化(简单理解放大)都为点:

        

        后续的计算就不列举了,后续推算出一般手稿插在这里,不想自己推感兴趣的查看该论文:

       Frenet坐标系匹配

2.2 Frenet坐标系与cartesian坐标系的转换

        这里直接放结果:

cartesian 坐标系转 Frenet坐标系:

         其中:对 s_{r} 也就是累积 reference line 的长度,下表为 x 代表 reference 参考线。

Frenet 坐标系转 cartesian 坐标系:


        理解了两个坐标系直接的转换后,就可以看下一步,关于路径规划的两个一维问题,横向轨迹采样生成,与纵向轨迹采样生成两个问题,并将两个轨迹合二为一,进行代价函数的评估,也就是轨迹优选。

        对于障碍物的 S-T 图,与障碍物状况下的代价函数和轨迹评估下一节也会加入损失函数,但具体不展开,后续进行一个补充。(可理解为约束函数和损失无穷量)。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值