深蓝 运动规划

文章目录

  • 【CH1】 Introduction
    • 一. Motion Planning 概念
    • 二. Front-end:Path finding
      • 1. Search-based methods
      • 2. Sampling-based methods
      • 3. Kinodynamic Path Finding
    • 三. Back-end:Trajectory Optimization
      • 1. minimum-snap
      • 2. Hard constrained minimum-snap
      • 3. Soft constrained minimum-snap
    • 四. Map representation
      • 1. grid map
      • 2. octomap
      • 3. voxel hashing
      • 4. point cloud map
      • 5. TSDF map
      • 6. ESDF map
  • 【CH2】 Search-based path finding
    • 一. Configuration Space
    • 二. Graph and Search method
      • 1. overview
      • 2. graph traversal
    • 三. Heuristic search
      • 1. Greedy Best First Search
      • 2. Djikstra
      • 3. A *
      • 4. JPS
  • 【CH3】 Sample-based path finding
    • 一. PRM
    • 二. RRT
    • 三. Optimal sampling-based path planning methods
      • 1. RRT*
      • 2. Kinodynamic RRT*
      • 3. Anytime-RRT*
    • 四. Advanced Sampling-based Methods
      • 1. Informed RRT*
      • 2. Cross-entropy motion planning
  • 【CH4】Kinodynamic path finding
    • 一. State Lattice Planning
      • 1. sample in control space
      • 2. sample in state space
    • 二. Boundary Value Problem
      • 1.Optimal Boundary Value Problem
    • 三. Hybrid A*
    • 四. Kinodynamic RRT*

【CH1】 Introduction

一. Motion Planning 概念

机器人运动规划:

前端: path finding

  • search for an initial safe path
  • low dimensional
  • discrete space

path finding 找到一个 collision free 的运动路径。

后端: trajectory generation/optimization

  • search for an executable trajectory
  • high dimensional
  • continuous space

从前端得到一个低维,粗略的路径之后,使用优化的技巧,把它变成高维的,满足机器人动力学要求的,光滑连续,安全保证等要求的一个路径,称为轨迹 motion planning.

二. Front-end:Path finding

1. Search-based methods

2. Sampling-based methods

  • PRM
  • RRT
  • RRT*
  • Informed RRT*
    深蓝 运动规划_第1张图片

3. Kinodynamic Path Finding

  • State lattice seach
  • Hybrid A *
  • Kinodynamic RRT*
    深蓝 运动规划_第2张图片

三. Back-end:Trajectory Optimization

1. minimum-snap

深蓝 运动规划_第3张图片

2. Hard constrained minimum-snap

3. Soft constrained minimum-snap

四. Map representation

1. grid map

2. octomap

3. voxel hashing

深蓝 运动规划_第4张图片

4. point cloud map

5. TSDF map

Truncated Signed Distance Functions
体素存储的是传感器射线到测量物体表面的距离。具体:一个视锥的范围内,存储物体表面[-delta,delta]距离内的值。
深蓝 运动规划_第5张图片

6. ESDF map

Euclidean Signed Distance Functions

【CH2】 Search-based path finding

一. Configuration Space

机器人原来是在工作空间中,根据机器人的大小对障碍物进行膨胀,此时机器人可以看成一个点,都转到配置空间中。
深蓝 运动规划_第6张图片

二. Graph and Search method

1. overview

深蓝 运动规划_第7张图片

2. graph traversal

广度优先搜索(BFS)维护的容器是队列,深度优先搜索(DFS)维护的容器是堆栈
深蓝 运动规划_第8张图片

DFS:维护的是堆栈,节点先进后出。所以后加进来的节点会首先弹出来,然后扩展,再压进堆栈,不断循环,直观的理解就是会朝着某一个方向搜索,即深度优先。
深蓝 运动规划_第9张图片
BFS:维护的是队列,节点先进先出。先加进来的节点会首先弹出来,然后扩展,再压进堆栈,不断循环,直观的理解就是它是一层一层不断扩展搜索的,即广度优先。
深蓝 运动规划_第10张图片

三. Heuristic search

1. Greedy Best First Search

BFS 和 DFS 从容器中弹出节点是根据 " first in" 或者 “ last in ” 的规则。
贪心算法中,从容器中弹出节点的规则是自己定义的,叫做 heuristic

2. Djikstra

3. A *

4. JPS

Jump Point Search
核心:find symmetry and break them

【CH3】 Sample-based path finding

一. PRM

Probabilistic Road Map

第一个阶段:Learning phase

  • Sample N points in C-space
  • Delete points that are not collision-free
  • Connect to nearest points and get collision-free segments.
  • Delete segments that are not collision free

如下图所示:采样N个点,删除那些在障碍物内的点。然后把点与点连接起来,但是连接时对距离做一定的限制,如果连线超过一定的距离,就不连了。此外连线中经过障碍的也要删去。
深蓝 运动规划_第11张图片
第二个阶段:Query phase

  • Search on the road map to find a path from the start to the goal (using Dijkstra’s algorithm or the A* algorithm).
    深蓝 运动规划_第12张图片

此外:Lazy collision-checking

在learning 阶段判断采样点落入障碍物中比较费时,这里就不考虑采样点落入障碍物中。

具体过程: 这种 lazy 的方式,只采样点,然后生成连线,但是不考虑采样点碰到障碍物。首先搜索一条路径不考虑障碍物,搜索到路径之后把碰到障碍物的边和障碍物内的采样点删去,再重新搜索。
深蓝 运动规划_第13张图片

二. RRT

Rapidly-exploring Random Tree

实现步骤:首先得到一个采样点(蓝色的点),从起点向采样点移动一定的距离 δ \delta δ ,得到一个新的红色点,如若这个点是 collision free 的,就把这个点个这条边加入树中。
深蓝 运动规划_第14张图片
然后再采样得到一个点 X r a n d X_{rand} Xrand, 找到树上距离 X r a n d X_{rand} Xrand 最近的一个点 X n e a r X_{near} Xnear,然后 X r a n d X_{rand} Xrand 移动一定的距离得到 X n e w X_{new} Xnew, 如果 X n e w X_{new} Xnewcollision free 的就把 X n e w X_{new} Xnew E i E_{i} Ei 添加到树中。
深蓝 运动规划_第15张图片

三. Optimal sampling-based path planning methods

1. RRT*

2. Kinodynamic RRT*

3. Anytime-RRT*

四. Advanced Sampling-based Methods

1. Informed RRT*

最左边是路径轨迹的生成部分,但是生成之后不是在整个空间中进行随机点的采样了。把采样范围限制在一个椭圆内。以起点和终点做为椭圆的焦点,生成的路径做为椭圆的常数。随着在限制范围内采样,路径变的优化,同时随着路径变短,椭圆也会变扁,采样范围变小。
深蓝 运动规划_第16张图片

2. Cross-entropy motion planning

【CH4】Kinodynamic path finding

希望每两个节点之前是 feasible motion connections

两种方法:

  • forward direction :discrete in control space
    把控制空间离散

  • reverse direction :discrete in state space
    把机器人周围的状态离散,再找一条当前状态到周围状态的连接

两种方法比较:

深蓝 运动规划_第17张图片

一. State Lattice Planning

1. sample in control space

问题:离散出来的状态有一条碰到障碍物,其他的几条也很有可能碰到,如何让离散的状态尽量分得开。

深蓝 运动规划_第18张图片

2. sample in state space

直接把周围的状态离散出来,反算这条边是怎么连接上的。

二. Boundary Value Problem

通过边界条件(0时刻和T时刻)来解,会得到很多组解,不知道哪一个才是最优的。

1.Optimal Boundary Value Problem

(…一些上学期学的最优控制里的东西)。

三. Hybrid A*

实现的步骤: 和 A * 类似

深蓝 运动规划_第19张图片
启发函数的选择:
深蓝 运动规划_第20张图片
和 A * 的不同点:

  1. 启发函数的选择
  2. 根据离散状态,寻找临近的点,不像A * 直接找上下左右相邻的点
  3. 不仅需要记录代价,还要记录和更新状态

四. Kinodynamic RRT*

你可能感兴趣的:(运动规划)