Skip to content

Latest commit

 

History

History

Astart改进

1 目录概述

routing_planning/Astart改进

针对A*算法做出优化:加入靠近路沿的启发函数,并对生成的轨迹点做了均值滤波处理,使轨迹更加平滑。

2 算法介绍

2.1 Astart改进

 编译:g++ -std=c++11  xxx.cpp -o xx $(pkg-config --cflags --libs opencv) (需要安装opencv)

实现思路:

先用opencv将图片做灰度处理,再做二值化,将像素保存到vector二维数组作为地图,设置起点和终点,调用AStart算法(改进版:加入路沿代价函数)找到一条路径,由于算法会导致路径出现锯齿状,故用均值滤波对路径点做平滑处理。

算法流程:

  1. 原始地图:

mapload4

  1. A*算法生成的路径不平滑且贴近路沿,故增加道路膨胀层并加入靠近路沿的启发函数:

loadToMap1 loadToMap4

  1. 利用均值滤波对路径做平滑处理并加大膨胀半径:

loadToMap7