全局路径规划
提供Dijkstra和A算法,默认使用Dijkstra
Dijkstra是把从出发点到终点的整个栅格地图上的所有的点,全部遍历,然后找到路径最短的一条。
A*算法是目标点对路径有指导性作用,不会遍历每个点。
Dijkstra算法
基本思想:由近到远,把起点到所有点的最短路径都算出来。
假设起点到直的上下左右四个点的距离为2,到斜的四个点的距离为3;取最小的点作为中心点,对其旁边的8个点进行距离计算;若点之前已经算过,就比较这次的计算结果和之前的,选择路径最短的方案保存下来。
循环上面这个过程,直到找到终点,找到的就是可以走的最短路径。
A*算法
两种距离的介绍
A*算法的关键:
假设同上,起点到直的上下左右四个点的距离为2,到斜的四个点的距离为3。计算旁边8个点的F值(F = G + H),取F值最小的点作为下一次计算的中心点,不断重复这个过程。新框中若有之前计算过的点,与之前的方案比G值,选择较小的方案留下。
局部路径规划
由全局路径规划器规划出一条大致的路径,然后交给局部路径规划器分成很多的小段,再进行局部路径规划。并且支持对动态障碍物的避障。
DWA算法
1.先做出一个假设,假设小车的位置是多少,假设小车的速度是多少
2.再建立运动模型
3.对速度进行采样,有了运动模型,就可以根据速度推算出一定时间内物体运动的轨迹。
4.判断路径的好坏,进行选择。
TEB算法
整个过程:全局路径——加入约束——g2o优化——速度指令
1.一条路径上插入N个状态
2.加入约束函数
由于约束函数的加入,使状态点变化,从而可能会使路径发生变化。
3.开源算法进行优化
参数设置
调参工具
rosrun rqt_reconfigure rqt_reconfigure
有问题可以私聊我咯~
可以加企鹅群 658476482 交流
另外承接各种单片机 FPGA设计~