Motion Planning 是什么
前言与引用
这一个呢,主要是自己突然看一篇论文的时候不知道 为什么他提出的方法对于规划来说就是好的,规划又应该分为哪几个部分,解决的是哪几个部分的问题?带着这个问题,我就去搜:Motion Planning是什么?hhhh 然后从参考的知乎链接中到了这个课(其实我曾经在b站刷到过 但是当时我还没意识到自己的这一系列基础性问题 没问出问题,我向来是一个... 有问题再去学 再去找的 带着问题走)
- 知乎《Apollo Lattice Planner从学习到放弃.额不....到实践》:https://zhuanlan.zhihu.com/p/164635074
- 百度技术学院课程:https://bit.baidu.com/productsBuy?id=82
- 看的那篇论文是 Safe Trajectory Generation for Complex Urban Environments Using Spatio-temporal Semantic Corridor
- 课程中提到的参考 Steve Lavelle 的 Planning Algorithm:http://planning.cs.uiuc.edu/par1.pdf
这里可能很多部分都是我看第二个参考百度技术学院课的一种文字总结形式而已哈
What is Motion Planning?
回答我当初看的初衷:什么是规划?
规划的本质是一个搜索。那搜索又是什么呢?
\]
给一个函数\(f(x)\) 找出最优解。这是数学意义上的,那对于规划中,就是给定现在的状态,给出最优的移动轨迹,那我们怎么定义出说这个轨迹是好的呢?也就是定出一个目标函数 像上面这样的\(f(x)\)
[x] 所以,按这个想法看来,就是trajectory generation部分,并不包含控制器的forward backward 这样的反馈
并不是,在后面的过程中分类中,解释了 只是不同的方向的人对于Motion Planning的定义不同,例如做机器人的考虑的是寻找目标点的路径,随后交给做控制的人去跟随住这样一个路径。
构建规划问题
课程中提到,构建自动驾驶中的Motion Planning问题是比较复杂的。把问题分分成简单的小问题,虽然其中有些问题又可以再次分成更小的问题,因为他们这一层还并不简单
1. Path Finding Problem
不需要关心环境,只需要关心整体的路径是怎样的。看起来有点像我们现在用的导航,感觉也是全局的路径规划问题
其中众所周知的算法:
BFS DFS: non-informative search
A*: 对比起来就快很多了,从这里也衍生了其他的全局的
但是呢,后面我们就会考虑A* 需要对全局环境障碍物提前知道,但实际情况是很难的,因为路径够长你的传感器就没法探知那么远的了。所以,在这里又分出了两类对环境的掌握情况:partially observed和 fully observed
partially observed: 如果使用的是贪心算法的,表现的形式就是一种incremental search 看到多少就按看到的去求出一个最优解
2. 路径的平滑
这一点在前面finding的举例,都是折线,是因为我们没考虑车辆运动学模型,也没考虑控制动力学方面,但其实这点想低速场景苟着的话,就把折线用五次平滑曲线弄一弄 也是OK的
3. 环境的动态性
前者 我们在构建的过程中总是缺了点什么:环境是动态的,我们不能将周围的所有东西都当做静态障碍物,特别是高速行驶的场景。而这一个问题,至今在规划中还是一个很难很好的解决的问题
4. 交通规则
怎样在模型中把交通规则给包含进去,然后再做规划
5. 实时性
视频中介绍的百度apollo规划模块的运转周期:100ms,反应时间是0.2-0.3s;对比人驾驶的反应时间大致是0.4-0.5s
Motion Planning for Autonomous driving 要求
safely and smoothly,本质上来讲是一个三维规划问题:X Y Time,但是从车辆动力学角度的话 维度可能还要进一步上升,因为涉及到车头方向、转向角、车辆速度、加速度等等
整体自动驾驶一览
轨迹在这里的定义就不是前面在第一点中提到的 路径是怎样的,而应该是随着时间这个路径应该怎么走英文上就换了个词:Trajectory
[x] 哦吼!所以Path和Trajectory是有分别的路径的意思的
Path是静态的,不包括时间;Trajectory是除了路径还有其他信息可以说是时间,speed profile,这条路径上速度的变化关系
至此 Overview的部分课程就是这个,其中在最后提到的整个规划的框架内,感觉缺少了行为规划器那块的东西,就是状态机?
总结
所以回答了自己的问题?
规划又应该分为哪几个部分
就像上面提到的如果是针对整个车的规划问题,包括从全局到局部,到控制都是规划需要考虑的部分,如果是针对那篇论文,他解决的是第二部分的东西也就是Motion Planning: 局部感知后,对全局路径的修正,论文中处理的也是怎样把语义信息给结合起来
解决的是哪几个部分的问题?
好像和上面的问题是重合的 hhhh
感觉百度的这节课挺棒的
Motion Planning 是什么的更多相关文章
- 泡泡一分钟:Automatic Parameter Tuning of Motion Planning Algorithms
Automatic Parameter Tuning of Motion Planning Algorithms 运动规划算法的自动参数整定 Jos´e Cano, Yiming Yang, Brun ...
- 泡泡一分钟:Motion Planning for a Small Aerobatic Fixed-Wing Unmanned Aerial Vehicle
Motion Planning for a Small Aerobatic Fixed-Wing Unmanned Aerial Vehicle Joshua Levin, Aditya Paranj ...
- 泡泡一分钟:Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions
张宁 Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions 通过重 ...
- Grassfire算法- 运动规划(Motion planning)
Grassfire算法: 一.概念 这个算法是做图像处理的抽骨架处理,目的是求出图像的骨架,可以想象一片与物体形状相同的草,沿其外围各点同时点火.当火势向内蔓延,向前推进的火线相遇处各点的轨迹就是中 ...
- 【论文阅读】Motion Planning through policy search
想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...
- 运动规划 (Motion Planning): MoveIt! 与 OMPL
原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...
- 运动规划 (Motion Planning): MoveIt! 与 OMPL---44
原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...
- 【论文阅读】Socially aware motion planning with deep reinforcement learning-annotated
目录 摘要部分: I. Introduction 介绍 II. Background 背景 A. Collision Avoidance with DRL B. Characterization of ...
- 运动规划(Motion Planning)
相关介绍: https://mp.weixin.qq.com/s?__biz=MzA5MDE2MjQ0OQ==&mid=2652786406&idx=1&sn=f937dd6a ...
随机推荐
- 深度学习LiDAR定位:L3-Net
深度学习LiDAR定位:L3-Net 摘要 本文提出L3-Net--一种新颖的基于学习的LiDAR定位系统,可实现厘米级的定位,与现有最高水平的传统定位算法相媲美.与传统定位算法不同,本文创新地实现了 ...
- CVPR 2020目标跟踪多篇开源论文(上)
CVPR 2020目标跟踪多篇开源论文(上) 1. SiamBAN:面向目标跟踪的Siamese Box自适应网络 作者团队:华侨大学&中科院&哈工大&鹏城实验室&厦门 ...
- BEP 7:CUDA外部内存管理插件(下)
BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有.为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM ...
- python_pycham,连接数据库,执行sql
本地搭建的mysql的新建的表的数据如下: 在pycham中连接mysql 执行sql ,举例编写如下: import pymysql if __name__ == '__main__': conn ...
- vulhub-struct2-s2-005
0x00 漏洞原理 s2-005漏洞的起源源于S2-003(受影响版本: 低于Struts 2.0.12),struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码).O ...
- springboot——发送put、delete请求
在springmvc中我们要发送put和delete请求,需要先配置一个过滤器HiddenHttpMethodFilter,而springboot中,已经帮我们自动配置了,所以我们可以不用配置这个过滤 ...
- noip2015 总结
神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方:首先将1写在第一行的 ...
- C#《大话设计模式》之原型模式学习日记
class Program { static void Main(string[] args) { Resume a = new Resume("大鸟"); a.SetPerson ...
- 【spring源码系列】之【Bean的生命周期】
为源码付出的每一分努力都不会白费. 1. Bean的实例化概述 前一篇分析了BeanDefinition的封装过程,最终将beanName与BeanDefinition以一对一映射关系放到beanDe ...
- ceph-csi源码分析(2)-组件启动参数分析
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(2)-组件启动参数分析 ceph-csi组件的源码分析分为五部分: ...