目录
学习视频链接:6.无人机路径规划及轨迹规划_哔哩哔哩_bilibili
一、构形空间
·机器人构形:机器人所有的位置点
·机器人自由度(DOF):用来表示机器人构形的最小实数坐标数
·机器人构形空间:包含所有可能的机器人构形的n维空间,记作C-space
·每个机器人姿态都是C-Space中的一个点
二、图的定义
图由节点和边构成
三、图搜索算法
1、概述
维护一个容器来存储所有待访问的节点,容器初始化时只存在初始状态Xs,按一定的循环顺序从容器中移出一个节点,得到该节点的所有邻接点,并将这些节点存入容器。当容器为空时结束循环,禁止从容器中移出的节点再次进入容器。
2、广度优先算法(BFS)和深度优先算法(DFS)
1、广度优先算法(BFS)
先进入队列的节点会被先拿出来
2、深度优先算法(DFS)
后进入队列的节点会被先拿出来
3、对比
3、贪婪最佳优先算法
通过启发式函数取出节点(欧式距离&曼哈顿距离)
欧式距离:两点之间的直线距离
曼哈顿距离:在二维平面中,两个点 (x1, y1) 和 (x2, y2) 之间的曼哈顿距离计算公式为 |x1 - x2| + |y1 - y2| 。在三维空间中,如果有两点 a(x1, y1, z1) 和 b(x2, y2, z2),则它们之间的曼哈顿距离是 |x1 - x2| + |y1 - y2| + |z1 - z2|
优点:没有障碍物时可以很快的规划路径
缺点:存在障碍物时,规划出来的路径不是最短路径
4、Dijkstar算法和A*算法
1、Dijkstar算法
策略:每次从容器中取出累计代价g(n)最小的节点。已扩展节点的累计代价应为到起始点的最短路径代价。
g(n):从初始点到点n的累计代价
算法流程:
优点:具有完备性和最优性
缺点:扩展不具有方向性,没有利用到目标点的信息
2、A*算法(Dijkstar+启发式函数)
策略:取出具有最小f(n)的节点
累计代价 g(n):从起始状态到节点“n”的最小估计代价
启发式函数h(n):从节点到目标点的最小估计代价
从起始状态到目标状态,经过节点“n”的最小估计代价为 f(n)=g(n)+h(n)
算法流程:
可采用的启发函数:所有节点到终点的代价小于等于从节点n到终点的真实最小距离
加权A*算法:
3、区别
Dijkstar算法:朝着各个方向搜索
A*算法:朝着目标点方向搜索
未完待续