前言与引用

这一个呢,主要是自己突然看一篇论文的时候不知道 为什么他提出的方法对于规划来说就是好的,规划又应该分为哪几个部分,解决的是哪几个部分的问题?带着这个问题,我就去搜:Motion Planning是什么?hhhh 然后从参考的知乎链接中到了这个课(其实我曾经在b站刷到过 但是当时我还没意识到自己的这一系列基础性问题 没问出问题,我向来是一个... 有问题再去学 再去找的 带着问题走)

  1. 知乎《Apollo Lattice Planner从学习到放弃.额不....到实践》:https://zhuanlan.zhihu.com/p/164635074
  2. 百度技术学院课程:https://bit.baidu.com/productsBuy?id=82
  3. 看的那篇论文是 Safe Trajectory Generation for Complex Urban Environments Using Spatio-temporal Semantic Corridor
  4. 课程中提到的参考 Steve Lavelle 的 Planning Algorithmhttp://planning.cs.uiuc.edu/par1.pdf

这里可能很多部分都是我看第二个参考百度技术学院课的一种文字总结形式而已哈

What is Motion Planning?

回答我当初看的初衷:什么是规划?

规划的本质是一个搜索。那搜索又是什么呢?

\[\arg \min _{x} f(x)
\]

给一个函数\(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的部分课程就是这个,其中在最后提到的整个规划的框架内,感觉缺少了行为规划器那块的东西,就是状态机?

总结

所以回答了自己的问题?

  1. 规划又应该分为哪几个部分

    就像上面提到的如果是针对整个车的规划问题,包括从全局到局部,到控制都是规划需要考虑的部分,如果是针对那篇论文,他解决的是第二部分的东西也就是Motion Planning: 局部感知后,对全局路径的修正,论文中处理的也是怎样把语义信息给结合起来

  2. 解决的是哪几个部分的问题?

    好像和上面的问题是重合的 hhhh

感觉百度的这节课挺棒的

Motion Planning 是什么的更多相关文章

  1. 泡泡一分钟:Automatic Parameter Tuning of Motion Planning Algorithms

    Automatic Parameter Tuning of Motion Planning Algorithms 运动规划算法的自动参数整定 Jos´e Cano, Yiming Yang, Brun ...

  2. 泡泡一分钟: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 ...

  3. 泡泡一分钟:Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions

    张宁  Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions 通过重 ...

  4. Grassfire算法- 运动规划(Motion planning)

     Grassfire算法: 一.概念 这个算法是做图像处理的抽骨架处理,目的是求出图像的骨架,可以想象一片与物体形状相同的草,沿其外围各点同时点火.当火势向内蔓延,向前推进的火线相遇处各点的轨迹就是中 ...

  5. 【论文阅读】Motion Planning through policy search

    想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...

  6. 运动规划 (Motion Planning): MoveIt! 与 OMPL

    原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...

  7. 运动规划 (Motion Planning): MoveIt! 与 OMPL---44

    原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 最近有不少人询问有关MoveIt!与OMPL相关的话题,但是大部分问题都集中于XXX功能怎么实现,XXX错 ...

  8. 【论文阅读】Socially aware motion planning with deep reinforcement learning-annotated

    目录 摘要部分: I. Introduction 介绍 II. Background 背景 A. Collision Avoidance with DRL B. Characterization of ...

  9. 运动规划(Motion Planning)

    相关介绍: https://mp.weixin.qq.com/s?__biz=MzA5MDE2MjQ0OQ==&mid=2652786406&idx=1&sn=f937dd6a ...

随机推荐

  1. 如何在CPU上优化GEMM(上)

    如何在CPU上优化GEMM(上) (TL:DR)TVM提供了抽象接口,用户分别描述算法和算法的实现组织(所谓的调度).通常,在高性能调度中编写算法会破坏算法的可读性和模块性.尝试各种看似有希望的时间表 ...

  2. 『言善信』Fiddler工具 — 6、Fiddler界面布局详解【命令行和状态栏】

    目录 1.命令行 2.状态栏 1.命令行 命令行在Fiddler的左下方的黑色窗口,也叫QuickExec,可以调用 Fiddler的内置命令. 这一系列内置的函数用于筛选和操作会话列表中的sessi ...

  3. JUC 并发编程--07 阻塞队列版本的 生产者消费者(不使用synchronized和 lock),也有一些疑惑,最终解惑

    直接上代码: 前提是你已经 熟悉了原子类,volatile,和阻塞队列 public class JucPCdemo03 { /** * 阻塞队列的应用: 这里实现的生产者消费者,生产一个消费一个 * ...

  4. MySQL面试题汇总

    事务是什么? 一系列操作,要么全部完成,要么一个都不做 事务的ACID特性 原子性:一系列操作要么都执行,要么都不执行 一致性:事务执行前后数据完整性不变,如转账前后总金额不变 隔离性:多个事务并发访 ...

  5. 删除主键时报错ORA-00955

    一.利用已有索引创建主键1.建表GAO@PROD> create table abcd(id number(10),name1 varchar2(20)); Table created. 2.插 ...

  6. Java并发之ReentrantLock源码解析(二)

    在了解如何加锁时候,我们再来了解如何解锁.可重入互斥锁ReentrantLock的解锁方法unlock()并不区分是公平锁还是非公平锁,Sync类并没有实现release(int arg)方法,这里会 ...

  7. Go语言获取Ubuntu所有网卡名

    Go语言获取Ubuntu所有网卡名 需求 获取当前机器下所有网卡名,以字符串数组的形式返回 实现demo package main import ( "fmt" "os/ ...

  8. Windows批处理文件编写宝典

    原贴:批处理新手入门导读 现在的教程五花八门,又多又杂.如何阅读,从哪里阅读,这些问题对新手来说,都比较茫然. 这篇文章的目的就是帮助新手理清学习顺序,快速入门.进步 1.如果你从来没有接触甚至没有听 ...

  9. (1)Canal入门

    1.前言 在我们系统开发过程中,根据业务场景很多数据库数据并不会直接给用户访问的,需要同步保存到ElasticSearch.Redis等存储应用当中(例如最常见的是搜索页面的ElasticSearch ...

  10. python读取csv文件数据绘制图像,例子绘制天气每天最高最低气温气象图