移动机器人运动规划 lecture 1 概述
前言
这里主要以学院派的分模块的规划为主,没有讲端到端的规划算法。本人也是小白一个,从零开始慢慢磨吧~!
自主移动机器人系统主要组成
流程简介
第一步:Estimation 状态估计
即我们通常所说的定位,他要求机器人可以实时地输出一个低时延、高精确度和高前后一致性的位置估计。
第二步:Perception 感知
基于第一步得到的位置估计,对周围环境做一个3D稠密的建图,这里涉及到地图的前后信息融合、如何让机器人利用融合后的地图等问题。
第三步:Planning 规划(本课的重点)
要求在复杂的、事先未知的环境里生成安全、动力学可行的运动轨迹,且要考虑到有限的感知、算力。
第四步:Control 控制
生成的运动轨迹被交给飞控,产生实时的控制信号,完成规划出的轨迹。
运动规划基本要求
- 安全性:避免碰撞
- 光滑性:节省能量、完成特定任务的光滑性、舒适性等
- 动力学可行性:可执行、可控的
学院派路径规划的pipeline
前端(路径发现/搜索)
path finding:称之为前端,一般不想在这个部分浪费太多的算力。所以一般把高维问题转化为低维、离散的问题,用这里的path finding先找到粗略可行的一条路径。
后端(轨迹生成/优化)
trajectory generation/optimization:进入到这里就到了后端:轨迹生成和轨迹优化环节,将前端生成的低维的粗略可行的路径转换为机器人可以执行的高维、连续的路径(满足各种要求的轨迹)。
算法 Overview (此处列举,后续课程会有详细介绍)
前端:路径规划方法
- 基于搜索的方法
1、 图搜索(把搜索任务以拓扑图形式表示,然后用图搜索方法来做):DFS,BFS等
2、Dijkstra(简单的广度优先搜索) 和 A*搜索(重点:带有强指向性的起点到终点的搜索)
3、跳点搜索JPS - 基于采样的方法
1、PRM
2、RRT
3、RRT*,启发式RRT*等 - 满足动力学约束的搜索方法
1、State Lattice Search(把控制机器人动力学的变量离散化,以离散化的路径去搜索)
2、Hybrid A*(与上类似,综合动力学与算力考量的方法,在每个grid只保留一个state)
3、Kinodynamic RRT*(不离散变量,离散状态,RRT框架)
后端:轨迹生成、轨迹优化方法
- Basic Minimum-snap(重点):先用RRT*找到几何安全路径,根据这个路径的分段点作为路标点生成本方法的优化路径。
- Hard constrained Minimum-snap:硬约束
- Soft constrained Minimum-snap:软约束(一般用来做local planning,局部的软优化)
无人机器人导航常用地图的表示
-
Occupancy grid map 栅格地图
-
Octo-map 八叉树地图(为节省内存)
-
Voxel hashing
-
Point cloud map 点云图(无序的)
-
TSDF map 根据距离截断关注的点
-
ESDF map,关注所有点与无人机的距离,软约束方法用到的建图方式
-
Free-space Roadmap、Voronoi Diagram Map等其他地图