/path_planning

Path planning algorithms on grid map

Primary LanguageJupyter NotebookMIT LicenseMIT

path_planning

Path planning algorithms on grid map

installation

pip install -r requirements.txt

description

there are astar, jps, jpsplus, bbox_pruning.

all results are described in jupyter notebook.

p.s. pruning algorithm can be applied for each solvers.

routine run

from solver.jpsplus import JPSPlus             #define the solver
from solver.pruning.bbox import BBoxPruning    #define pruning
from utils.distance import diagonalDistance    #define h function
from solver.base import findPathBase           #define search function
from graph.node import Node                    #define Node for start/finish
from graph.grid import GridMap                 #define occupancy grid map via string
from evaluation.test import simpleTest         #define eval function

startNode  = Node(x_start,  y_start)           #define start Node
finishNode = Node(x_finish, y_finish)          #define finish Node
grid       = GridMap()                         #define grid Map
grid.readFromString(mapstr, width, height)     #see additionals in main.ipynb

#routine run - always call solver.doPreprocess before eval

prune = BBoxPruning()
solver = JPSPlus(diagonalDistance, prune)
solver.doPreprocess(grid)
simpleTest(solver, findPathBase, grid, startNode, goalNode, visualise=True)

experimental results

MovingAI grid maps were used for experiments. We have chosen two maps lak307d as easy map and ost002d as complex map in order to show differences in results.

This browser does not support PDFs. Please download the PDF to view it: error.pdf.

This browser does not support PDFs. Please download the PDF to view it: comparison.pdf.