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

Overview

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

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

1.原始地图:

mapload4

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

loadToMap1

loadToMap4

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

loadToMap7

You might also like...
Owner
NeXTzhao
NeXTzhao