实现运动轨迹_【自动驾驶】运动规划丨速度规划丨时间维度

运动规划是自动驾驶技术栈中的关键一步,负责把上游的孤立、异构、模糊的多方面信息整合成自洽的运动轨迹(trajectory);好的轨迹需要满足多方面的要求,其中最重要的方面包括安全性(safety)和舒适性(comfort)。对于车辆自动驾驶来说,车辆的控制是限制在地面这个二维世界里。但轨迹并不在这个空间中,因为轨迹并不仅是简单的一个瞬时的状态,也需要考虑时间这一维度。因此,它是一条在二维空间和一维时间组成的三维空间中的曲线。轨迹的时间跨度,称为时域(horizon),通常要达到8-10秒这个范围(这个时间也跟算法的优化结果相关),才能满足公开道路产品级自动驾驶的需求。

大方:「QBlog 03」运动轨迹仅仅是2D的?——论运动规划的维度​zhuanlan.zhihu.com
827d47bd591b6ccdcd6be8159c3fe4c6.png
为什么要在比较长的时间跨度上规划完整的运动,而不能只是简单地规划当前瞬间的动作(油门、刹车、转向)呢?目前很多基于端到端学习的规划方法都是这么做的,毕竟人类司机驾驶时,很多时候也只考虑眼前需要的动作而已。进行长时程的完整规划主要是为了保证未来的规划问题仍然可解。车辆从动力学上来说,惯性很大;从运动学上来说,又属于非完整系统(non-holonomic,即车辆不能瞬间改变朝向),所以如果只考虑当前位姿,是不能作出有前瞻性的驾驶动作的。缺乏前瞻性的驾驶动作虽然目前看来不错,但很容易把自己开进死胡同,造成一段时间之后无解。如果观察到路口的红灯,无人车必须根据当前速度提前刹车才能保证不闯红灯;如果只考虑眼前,会发现在到达路口之前都没有刹车的必要(不会立刻违反交通规则),而到了路口,再刹车就来不及了。这就是为什么模块的名字叫做运动规划(motion planning)——规划就是计划未来。端到端学习的方法只输出当前驾驶动作,实际上相当于把控制(control)也囊括在内了,但通常模型内部还是需要通过辅助损失函数(auxiliary loss)等方式对未来有一个预测和考量的(比如Waymo的ChauffeurNet)。在时空的三维空间中的轨迹,可以完整地描述未来一段时间之内的运动的全貌。因此,对这个完整运动的最优解算就可以实现有前瞻性的运动规划。这就是为什么我们要在运动规划的时候考虑未来时间这个维度。
为什么自动驾驶运动规划的更新周期那么短,却要规划出那么长的一段轨迹?​www.zhihu.com

总结如下:

  • 驾驶感受:驾驶员的大脑在时刻的运转,我们每看一次道路其实就是重新做了一次规划Replan,我们看的足够远我们的规划才足够稳定。如果我们的视线只盯着车前2m,车开的大概率是左冲右撞的,因为只有到跟前了我们才知道前边有个障碍物,慌忙打方向或紧急刹车。
  • 算法优化:在简单静态环境中,运动规划完全可以使用初始时刻规划好未来的一段路径和对应的速度,直到到达规划的终点再重新规划Replan。但现实环境是,1)场景很可能复杂,只使用一次规划耗时长,导致计算效率低;2)由于其他交通参与者的存在导致周围环境是随着时间变化的。所以在这样的场景下,为了是规划的路径质量更高,需要不断迭代来适应环境,规划的路径越长,则越好地避免陷入局部最优解,不影响规划的整体质量。
  • 规划的轨迹长
  1. 是为了保证轨迹(位姿、速度)在较长的时空内尽可能稳定+最优;
  2. 对于横向轨迹和纵向速度的跟随控制而言,证明跟踪的这一段是“正确的轨迹”。
  • 更新的周期短
  1. 是为了保证将环境变化(位姿、速度)实时地更新到轨迹结果中,尽快用新的测量信息来修正之前的误差。
  2. 对于控制而言,的确只用了dt的这一段信息

不考虑误差的话,多周期规划的轨迹在大地坐标下应是一致的。满足这个一致性条件,就可以定周期规划,更短周期去跟踪,最终行驶出一条符合预期的轨迹(位置和速度)。


运动规划考虑空间和未来时间这三个维度,就够了吗?要回答这个问题,绕不开体感这个话题。体感也就是物理舒适度(physical comfort),是驾驶舒适度的一个重要方面,反映了车辆运动的不平滑性。体感与舒适度的其他方面一样,比较主观,评估需要从多种指标考虑。常用的指标包括横向和纵向(lateral and longitudinal)的加速度(acceleration)和加加速度(jerk)等。从这些指标可以看出,对于体感来说,运动轨迹对时间的导数是非常重要的,理想的运动轨迹在时间上必须足够平滑。

a3911f6213ebe0f476b994ecddd67429.png
图:平滑的速度(v-t)曲线。轨迹的平滑性是舒适体感的核心。
上面说到,在运动规划给出的轨迹(对未来运动的规划)里,可以清楚地评估和优化未来运动的平滑性,但过去的运动轨迹则是另一番景象。过去是不可改写的,更重要的是,过去的轨迹是在过去每一个时间点的未来轨迹的初始段积累而成的,类似于控制中的滚动时域优化(receding horizon control)。过去某时刻对当时的未来的规划,也可以因时间推移,感知预测等信息的更新而更改;比如,两秒钟之前规划的轨迹中预计行驶两秒后到达的位置,可以不同于一秒前规划的轨迹中预计行驶一秒后到达的位置,而二者又皆可不同于当前实际所在位置。因此过去这个时间维度不仅仅是未来时间向相反方向的延伸。尤其是这两个时间维度的接合处,也就是当前时刻,是需要额外细致处理的。体感的效果,必须这些地方每一处都精心优化,才能得以保证。

就纵向的速度规划而言,时间维度是平衡横纵向控制的关键因素。针对不同场景规划出的轨迹线需要与之匹配出最优的速度和加速度。例如,对于前方静止障碍物,无人车需要实时地根据不同的当前车速,规划出减速曲线。其中,安全上能保证任何速度下,都能在障碍物前方几米内稳定刹停或者跟停;舒适上开始切入减速的冲击度连续;另外最好不触发AEB紧急制动,这是在感知融合后识别前方静止物后。

那么实际在纵向的速度规划中,时间维度和速度位置维度需要进行反复优化,相关的问题如:

ACC自适应巡航为什么不能识别静止物体?​www.zhihu.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HDU - 1247】Hat’s Words(字典树,预处理,tricks)

题干: A hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary. You are to find all the hat’s words in a dictionary. Input Standard input consists of a number of lowercase words, one …

mysql操作json优点和缺点_MySQL与JSON-为什么?

我正在设计一个小的网络应用程序/游戏。 哪个更好:MySQL表或json文件? 它们都存储信息。 它们都可以由PHP解析。 优点/缺点是什么?这就是我的意思:username | password-------------------seefour | abc123与{"username"…

【csust】最小素因子问题(树状数组)

题干: http://csustacm.com:4803/problem/1083 Description 寒冰射手艾希新学会了一个技能,艾希通过这个技能成为了一名声名远扬的神箭手,从此再也无人敢侵犯弗雷尔卓德! 这个技能的描述如下(假设英雄联盟内的每个…

操作表格_Excel表格基础操作-新手入门级

今日新学了几个基础操作,觉得很有意思,分享给大家。不过真心觉得,有些操作当时学会了,长时间不用,转眼就忘了;另一方面,如果购买相关课程,学着也没什么意思,我前段时间买…

【csust】寻宝(贪心,思维)

题干: Description 在一维坐标轴上有许多宝藏,总共n种宝藏,每种宝藏有k个。现在共k个人寻宝,k个人初始位置可以位于任意点。但是每人需要按指定顺序捡起宝藏(1->2->3->...->n,先捡第1种&…

dmsetup remove_all 这命令干啥的_分一个小知识,服务器上的一个解压与压缩文件的命令....

在服务器上对文件做解压操作,是一件非常常见的操作,如安装软件就有很多是要用的到这个操作的.去官网下载一个压缩包,然后解压,编译,再安装.当然网上是能找到相应的命令操作.但是每次都要去找命令,就算记住了,不知道为什么要这样去使用,那么如果不经常使用那还是会忘记的.所以要…

【POJ - 1947】Rebuilding Roads (树形dp,背包问题,树形背包dp)

题干&#xff1a; The cows have reconstructed Farmer Johns farm, with its N barns (1 < N < 150, number 1..N) after the terrible earthquake last May. The cows didnt have time to rebuild any extra roads, so now there is exactly one way to get from any …

seo vue 动态路由_基于vue.jsvue-router的动态更新TDK(SEO优化)

本文基于工作项目开发&#xff0c;做的整理笔记前几天帮朋友解决这个问题&#xff0c;顺带学习了一下&#xff0c;做个笔记Mark下。前提条件&#xff1a;你已经了解并使用vue&#xff0c;能够搭建应用站点。编码环境&#xff1a;system&#xff1a;OS X EI Capitan 10.13.3npm&…

*多叉树的树形背包常见建模方法

一.多叉树变二叉树。 这个技巧其实也有两种具体的方法&#xff1a;树的孩子兄弟表示法与dfs序法。 1.树的孩子兄弟表示法。 大家在学习树形结构时一定接触了一个多叉树变二叉树的方法&#xff0c;就是把每个点与它的第一个儿子连边&#xff0c;然后将它的儿子依次连接起来。可…

python把英语句子成分字母_求一个可以分析英语句子成分的软件或网站

目前还没有&#xff0c;最好的翻译软件都不能翻译英语语法&#xff0c;只能翻译语法结构简单的句子&#xff0c;更别提专业分析句子成分的软件了&#xff1b;出现专业分析英语句子成分的软件&#xff0c;英语老师应该就失业了。求一个可以分析英语句子成分的软件或网站句子是按…

【51nod - 1076】2条不相交的路径(Tarjan无向图判环)

题干&#xff1a; 给出一个无向图G的顶点V和边E。进行Q次查询&#xff0c;查询从G的某个顶点V[s]到另一个顶点V[t]&#xff0c;是否存在2条不相交的路径。&#xff08;两条路径不经过相同的边&#xff09; &#xff08;注&#xff0c;无向图中不存在重边&#xff0c;也就是说…

python 导入csv文件到oracle_python将文件夹下的所有csv文件存入mysql和oracle数据库

#oracle版首先新建python脚本(d:/python/orclImport.py)import os #引入os包if __name__ __main__:#遍历文件夹下所有的dmp文件&#xff0c;其中filename为所有文件、文件夹的名称。#因为我文件夹下确定都是dmp文件&#xff0c;所以无需进行特殊判断for filename in os.listdi…

createform用法_vue自定义表单生成器form-create使用详解

介绍form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成器。并且支持生成任何 Vue 组件。结合内置17种常用表单组件和自定义组件&#xff0c;再复杂的表单都可以轻松搞定。文档 | github演示项目: 开源的高品质微信商城功能自定义组件可生…

【蓝桥杯官网试题 - 历届试题】发现环(dfs+并查集,或无向图tarjan判环,无向环,或拓扑排序)

题干&#xff1a; 问题描述 小明的实验室有N台电脑&#xff0c;编号1~N。原本这N台电脑之间有N-1条数据链接相连&#xff0c;恰好构成一个树形网络。在树形网络上&#xff0c;任意两台电脑之间有唯一的路径相连。   不过在最近一次维护网络时&#xff0c;管理员误操作使得某…

倍福 在 vs 里 编程 是怎么做到的_截图里的文字要改,字体怎么做到一模一样?...

大家是不是碰到过这么一个尴尬的情况&#xff1a;一个截图里有一个错别字&#xff0c;或者其中一小段文字要修改&#xff0c;可是苦于找不到源文件&#xff0c;又没办法找出和原来文字一模一样的字体。每次遇到这样的情况你都是怎么处理的呢&#xff1f;火箭君今天给大家介绍一…

【ZOJ - 3591】Nim(博弈问题,思维,STLmap)

题干&#xff1a; Nim is a mathematical game of strategy in which two players take turns removing objects from distinct heaps. The game ends when one of the players is unable to remove object in his/her turn. This player will then lose. On each turn, a pla…

【牛客 - 369B】小A与任务(贪心,优先队列)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/369/B 来源&#xff1a;牛客网 小A手头有 n 份任务&#xff0c;他可以以任意顺序完成这些任务&#xff0c;只有完成当前的任务后&#xff0c;他才能做下一个任务 第 i 个任务需要花费 xixi 的时间…

word硬回车是怎么产生的_在word中怎样删除软硬回车?

1.点击“开始”&#xff0d;“程序”&#xff0d;“附件”&#xff0d;“记事本”&#xff0c;打开“记事本”&#xff0c;放在一边。2.打开需要调整的Word文档&#xff0c;在文章的任意处单击一下鼠标左键。然后按住键盘的“Ctrl”键不要松&#xff0c;再按一下“A”键&#x…

*【POJ - 3659】Cell Phone Network (树形dp,最小支配集)

题干&#xff1a; Farmer John has decided to give each of his cows a cell phone in hopes to encourage their social interaction. This, however, requires him to set up cell phone towers on his N (1 ≤ N ≤ 10,000) pastures (conveniently numbered 1..N) so the…

测试jdbc连mysql数据库_java连接mysql数据库及测试是否连接成功的方法

本文实例讲述了java连接mysql数据库及测试是否连接成功的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;package com.test.tool;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import…