百度还有很多大厂都使用Lattice作为轨迹规划的方法,之前都是做低速规划,这部分接触的少,最近有机会接触Lattice规划,我来讲讲我的看法并给一个简单的Matlab实现,这部分使用Matlab实现的相关文章还是不多。

讲到Lattice肯定绕不过Optimal trajectories for time-critical street scenarios using discretized terminal manifolds经典,之前我也简单介绍过,柳梦璃:MATLAB路径规划算法由于当前理解的不够深入介绍的比较浅薄。

首先引入Frenet坐标系,见下图。对于车辆坐标系肯定首先想到直角坐标系。如果对于完全平直道路,其实直角坐标系和Frenet坐标系是重合的,下图中第二个case就是这种情况。Frenet坐标系以道路的中线作为其中的一个坐标轴为s轴,垂直与s轴作为d轴,这就造成了在s轴不同点所取得的d轴不平行。

这样做的好处,请想象如果我们能将s轴展开为直线,这样,如果就等同于上图的第二个case,从s轴上的任意点取得相同的d值对于道路中线的偏移是一样的。由于我们规划的轨迹就是想让车辆尽量沿着道路中线附近行驶,这样对于Frenet坐标系可以表示为规划轨迹的终点d(取d为比较小的值),对于直角坐标系却没有很好的表示方法。还有对于相同的s表示车辆需要行驶的路线长度一致,而直角坐标系下相同的x无法代表同样的意义。如果车辆一直沿着直线形式,采用直角坐标系绝对是最好的,但道路不是永远是直的,对于弯曲道路来说Frenet坐标系反而比直角坐标系自然。

在介绍Lattice之前,我们首先问一个问题,我们是否能够通过一次规划到达终点,显然在高速情况下终点在很远处,我们无法一次规划到终点,即使算力足够场景的变化也造成无法可以一次规划完成,因为我们不是全知全能,对场景的预测时间相对比较短。在不能一次到达终点的情况下我们规划所得就是到到某个中间状态的一段路径。这时候我们就会自然产生两种做法,一种不首先确定中间的状态,如DWA算法和很多Reactive的算法,很多基于MPC的方法,其实中间状态也不重要,这种算法路径的产生和路径所要达到的终点没有关系;一种就是路径是由由起点和终点所确定的没有终点就没法产生路径,如Lattice和触须算法。那我们再深入问一个问题,我们一次规划能否就只使用一个终点来产生路径,这显然不行,那么必然Lattice就是一种基于对终点采样的算法,一次先产生若干个终点再产生若干条路径,在这些路径中选择最好的一条。

这中规划思路反过来也要求Lattice使用Frenet坐标系,在Frenet坐标系下终点的位置可以表示为<s,d>的组合对,表达的意义很清晰,就是在前方道路中线附近的采样,试想如果采用直角坐标系终点位置该如何确定。

A. 终点位置采样,横向采样

下图代表一种采样方法,其中黑点为初始点,车辆当前的状态,红色为采样点,可见沿着s方向的采样就是沿着道路沿升方向采样,沿着d方向采样就是沿着道路扩展方向采样,使用Frenet表达采样方法符合直觉。

B. 速度曲线采样,纵向采样

当然我们还需要速度来控制车辆的油门和刹车。沿用横向采样的思路我们首先需要确定一个终点来规划整条曲线。很自然的问题是我们需不需要在速度规划时候考虑横向,答案为不需要,这里实际上使用PV(Path-Velocity)分离的思想。下图代表对于纵向的采样,分为两种情况是因为有不同的需求,如果不需对终点的位置做保证,如巡航工况就只需要采用下图右侧的采样策略,如果需要对位置同时也就要求如停车和跟车就采用下图左侧的采样策略,左侧产生的曲线s(t)为5阶曲线,右侧产生的v(t)为4阶曲线。

这里可以做第一阶段的总结,Lattice中采用PV分离的思想,曲线的产生依赖与终点的状态,采用Frenet坐标系。以下要解决的问题有PV分离后怎么结合,怎么由Frenet转换到直角坐标系中(控制算法大部分表示在直角坐标系中)和其相反问题,如何选择好的轨迹。

matlab 下采样_Lattice规划与Matlab实现(1)相关推荐

  1. ukf 在matlab 下的实现,ukf在matlab下的实现

    一个应用实例详解卡尔曼滤波及其算法实现 标签: 算法 filtermatlabalgorithm 优化工作 2012-05-14 10:48 75511 人阅读 评论(25) 收藏 举报 分类: 数据 ...

  2. matlab下pid控制仿真,基于MATLAB下PID控制仿真.PDF

    维普资讯 2004年第 4期 中 国 航 海 NO.4Dec.2004 塑 垒 垒 SerialNO.61 文章编号 :1000-4653(2004)04-0077-04 基于MATLAB下的PID控 ...

  3. matlab下pid控制仿真,利用Matlab实现PID控制仿真

    %PID Controller clear, clc, close all; ts=0.001; %采样时间=0.001s sys=tf(5.235e005,[1,87.35,1.047e004,0] ...

  4. matlab练习程序(点云下采样)

    点云处理有时因为数据量太大,我们需要对其进行下采样. 这里的方法是先将点云填入固定大小的三维网格中,然后每个网格中选一个点生成新的点云. 新点云即为下采样后的点云. 这里使用斯坦福兔子作为测试点云. ...

  5. YUV序列下采样以及彩色4:2:0与灰度4:0:0转换---基于matlab实现

    1.YUV序列(4:2:0)下采样 matlab代码: yuvDownSample.m clear clc%% Read yuv from file yuvseq = 'kendo0.yuv'; % ...

  6. matlab nsct工具箱,非下采样Contourlet变换工具包 nsct_toolbox (from matlab central)

    [实例简介] 非下采样Contourlet变换工具包 The main functions are the following: nsctdec, nsctrec, nsdfbdec, nsdfbre ...

  7. matlab 角度转四元数_基于Matlab的机械臂路径规划

    什么是 trajectory(路径)规划 中文路径在英语中可能有两种翻译: 1. path 2. trajectory 首先告诉大家,我们所说的"路径"是后者--trajector ...

  8. matlab采样频谱,Matlab对采样数据进行频谱分析

    使用Matlab对采样数据进行频谱分析 1.采样数据导入Matlab 采样数据的导入至少有三种方法. 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样. 第二种方法是 ...

  9. 采样定理实验报告matlab,matlab验证时域采样定理试验报告

    通信原理实验报告 采样定理实验名称: 日月11实验时间: 2012年12 应娜指 导老师:计算机学院院:学级:班 号:学 姓名: 通信原理实验报告一.实验名称 MATLAB验证低通抽样定理 二.实验目 ...

最新文章

  1. Oracle原理:11g的体系结构
  2. Flex scroller皮肤的使用
  3. 产品结构bom设计 mongodb_超全!注塑产品结构设计准则
  4. 使用SQL SSIS和BIML自动化Salesforce数据复制
  5. 常用编码软件简单使用记录 2 : 非自主编码器
  6. 9.企业安全建设指南(金融行业安全架构与技术实践) --- 安全认证
  7. 【学习笔记】数据分析师相关岗位招聘情况分析
  8. IntelliJ IDEA 记学习笔《装阿里代码规范插件》
  9. 财务结账方法:账结法和表结法
  10. [论文笔记]Arbitrary-Oriented Scene Text Detection via Rotation Proposals
  11. el-table 大数据量渲染,页面卡顿的解决方案
  12. [转]开源大数据处理工具汇总
  13. Facebook仍将在2020年启动天秤座
  14. cassandra 数据库
  15. Linux内核wait,进程调度 – Linux内核API wait_for_completion
  16. “网淘”新主张 跳蚤市场成风尚
  17. “80后”国家杰青,任太原理工大学副校长!
  18. 遇到不可见字符\u200B
  19. 用Python实现模拟登录正方教务系统抢课
  20. Dubbo---使用直连方式 dubbo

热门文章

  1. 第三周博客作业西北师范大学|李晓婷
  2. 4.2.#{}和${}的用法
  3. Javascript原型理解图
  4. laravel 数据库操作(表、字段)
  5. HDU 5876 关于补图的bfs
  6. javascript 中的 call
  7. SQL Server中 sysobjects、syscolumns、systypes
  8. Morph-UGATIT:一种支持渐进式域迁移的图像翻译方法
  9. 实时语义分割算法大盘点
  10. 图像超分辨率也能改善天气预报?没错!